Skip to content

Commit

Permalink
DFPL-2514 If user uploading draft order is ctsc then use ctsc inbox. (#…
Browse files Browse the repository at this point in the history
…5736)

* If user uploading draft order is ctsc then use ctsc inbox.

* Fix checkstyle

* Fix checkstyle

---------

Co-authored-by: Braimah101 <41795070+Braimah101@users.noreply.github.com>
  • Loading branch information
jamesrferguson1 and Braimah101 authored Dec 3, 2024
1 parent bab52cd commit b0df543
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import uk.gov.hmcts.reform.fpl.config.CtscEmailLookupConfiguration;
import uk.gov.hmcts.reform.fpl.enums.CMOStatus;
import uk.gov.hmcts.reform.fpl.enums.CaseRole;
import uk.gov.hmcts.reform.fpl.enums.HearingOrderKind;
Expand Down Expand Up @@ -77,6 +78,7 @@ public class DraftOrderService {
private final HearingOrderKindEventDataBuilder hearingOrderKindEventDataBuilder;
private final ManageDocumentService manageDocumentService;
private final UserService userService;
private final CtscEmailLookupConfiguration ctscEmailLookupConfiguration;

public UploadDraftOrdersData getInitialData(CaseData caseData) {
final UploadDraftOrdersData eventData = caseData.getUploadDraftOrdersEventData();
Expand Down Expand Up @@ -270,7 +272,7 @@ public void confidentialAdditionalApplicationUpdateCase(CaseData caseData,
hearingOrder.getValue().setOrderConfidential(hearingOrder.getValue().getOrder());
hearingOrder.getValue().setOrder(null);
}
hearingOrder.getValue().setUploaderEmail(userService.getUserEmail());
hearingOrder.getValue().setUploaderEmail(getUploaderEmail());
}

HearingOrdersBundle hearingOrdersBundle = bundles.stream()
Expand All @@ -296,6 +298,13 @@ public void confidentialAdditionalApplicationUpdateCase(CaseData caseData,
hearingOrdersBundle.updateConfidentialOrders(draftOrders, C21, suffixes);
}

private String getUploaderEmail() {
if (userService.isHmctsAdminUser()) {
return ctscEmailLookupConfiguration.getEmail();
}
return userService.getUserEmail();
}

private boolean isInCmoDrafts(Element<HearingOrder> draft, List<Element<HearingOrder>> cmoDrafts) {
return cmoDrafts.stream()
.map(Element::getId)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import org.mockito.junit.jupiter.MockitoExtension;
import uk.gov.hmcts.reform.ccd.model.OrganisationPolicy;
import uk.gov.hmcts.reform.fpl.components.OptionCountBuilder;
import uk.gov.hmcts.reform.fpl.config.CtscEmailLookupConfiguration;
import uk.gov.hmcts.reform.fpl.enums.CMOType;
import uk.gov.hmcts.reform.fpl.enums.CaseRole;
import uk.gov.hmcts.reform.fpl.enums.HearingOrderKind;
Expand Down Expand Up @@ -56,14 +57,14 @@

import static com.google.common.collect.Lists.newArrayList;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static java.util.Collections.emptyList;
import static java.util.Map.of;
import static java.util.UUID.randomUUID;
import static org.apache.commons.lang3.RandomStringUtils.randomAlphanumeric;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.BDDMockito.given;
import static uk.gov.hmcts.reform.fpl.enums.CMOStatus.DRAFT;
import static uk.gov.hmcts.reform.fpl.enums.CMOStatus.SEND_TO_JUDGE;
Expand Down Expand Up @@ -99,12 +100,15 @@ class DraftOrderServiceTest {
@Mock
private UserService userService;

@Mock
private CtscEmailLookupConfiguration ctscEmailLookupConfiguration;

@BeforeEach
void init() {
service = new DraftOrderService(new ObjectMapper(),
time,
new HearingOrderKindEventDataBuilder(new IdentityService(), new OptionCountBuilder()),
manageDocumentService, userService
manageDocumentService, userService, ctscEmailLookupConfiguration
);
}

Expand Down Expand Up @@ -1114,6 +1118,36 @@ void shouldAddToExistingDraftHearingBundlesWhenUserUploadConfidentialDraftOrders

assertThat(existingBundle.getConfidentialOrdersBySuffix(suffix)).isEqualTo(newDraftOrders);
}

@Test
void shouldSetUploaderEmailToCtscEmailWhenUserIsCtscUser() {
CaseData caseData = mock(CaseData.class);
List<Element<HearingOrder>> draftOrders = List.of(Element.<HearingOrder>builder()
.value(HearingOrder.builder().build()).build());
List<Element<HearingOrdersBundle>> bundles = new ArrayList<>();

given(userService.isHmctsAdminUser()).willReturn(true);
given(ctscEmailLookupConfiguration.getEmail()).willReturn("ctsc@hmcts.com");

service.confidentialAdditionalApplicationUpdateCase(caseData, draftOrders, bundles);

assertThat(draftOrders.get(0).getValue().getUploaderEmail()).isEqualTo("ctsc@hmcts.com");
}

@Test
void shouldSetUploaderEmailToUserEmailWhenUserIsNotCtscUser() {
CaseData caseData = mock(CaseData.class);
List<Element<HearingOrder>> draftOrders = List.of(Element.<HearingOrder>builder()
.value(HearingOrder.builder().build()).build());
List<Element<HearingOrdersBundle>> bundles = new ArrayList<>();

given(userService.isHmctsAdminUser()).willReturn(false);
given(userService.getUserEmail()).willReturn("user@hmcts.com");

service.confidentialAdditionalApplicationUpdateCase(caseData, draftOrders, bundles);

assertThat(draftOrders.get(0).getValue().getUploaderEmail()).isEqualTo("user@hmcts.com");
}
}

private DynamicList dynamicList(List<Element<HearingBooking>> hearings, DynamicListElement... additional) {
Expand Down

0 comments on commit b0df543

Please sign in to comment.