diff --git a/src/main/java/uk/gov/hmcts/reform/adoption/adoptioncase/event/MigrateCase.java b/src/main/java/uk/gov/hmcts/reform/adoption/adoptioncase/event/MigrateCase.java new file mode 100644 index 000000000..2faa7b37e --- /dev/null +++ b/src/main/java/uk/gov/hmcts/reform/adoption/adoptioncase/event/MigrateCase.java @@ -0,0 +1,75 @@ +package uk.gov.hmcts.reform.adoption.adoptioncase.event; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; +import uk.gov.hmcts.ccd.sdk.api.CCDConfig; +import uk.gov.hmcts.ccd.sdk.api.CaseDetails; +import uk.gov.hmcts.ccd.sdk.api.ConfigBuilder; +import uk.gov.hmcts.ccd.sdk.api.callback.AboutToStartOrSubmitResponse; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.CaseData; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.State; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.UserRole; + +import java.util.Map; +import java.util.function.Consumer; + +import static uk.gov.hmcts.reform.adoption.adoptioncase.model.State.AwaitingPayment; +import static uk.gov.hmcts.reform.adoption.adoptioncase.model.State.Draft; +import static uk.gov.hmcts.reform.adoption.adoptioncase.model.State.LaSubmitted; +import static uk.gov.hmcts.reform.adoption.adoptioncase.model.State.Submitted; +import static uk.gov.hmcts.reform.adoption.adoptioncase.model.UserRole.SYSTEM_UPDATE; +import static uk.gov.hmcts.reform.adoption.adoptioncase.model.access.Permissions.CREATE_READ_UPDATE_DELETE; + +@Slf4j +@Component +public class MigrateCase implements CCDConfig { + + public static final String MIGRATE_CASE = "migrate-case"; + + // Note - keep "ADOP-log", it is useful for triggering an "event" without updating data + private final Map>> migrations = Map.of( + "ADOP-log", this::runLog + ); + + @Override + public void configure(final ConfigBuilder configBuilder) { + + configBuilder + .event(MIGRATE_CASE) + .forStates(Draft, AwaitingPayment, Submitted, LaSubmitted) + .name("Migrate case") + .description("Migrate case") + .retries(120, 120) + .grant(CREATE_READ_UPDATE_DELETE, SYSTEM_UPDATE) + .aboutToSubmitCallback(this::aboutToSubmit); + } + + public AboutToStartOrSubmitResponse aboutToSubmit(CaseDetails details, + CaseDetails beforeDetails) { + CaseData data = details.getData(); + String migrationId = data.getMigrationId(); + Long id = details.getId(); + + log.info("Migration {id = {}, case reference = {}} started", migrationId, id); + + if (!migrations.containsKey(migrationId)) { + throw new RuntimeException("No migration mapped to " + migrationId); + } + + migrations.get(migrationId).accept(details); + + log.info("Migration {id = {}, case reference = {}} finished", migrationId, id); + + State state = details.getState(); + + data.setMigrationId(null); + return AboutToStartOrSubmitResponse.builder() + .data(data) + .state(state) + .build(); + } + + private void runLog(CaseDetails caseDetails) { + log.info("Logging migration on case {}", caseDetails.getId()); + } +} diff --git a/src/main/java/uk/gov/hmcts/reform/adoption/adoptioncase/model/Applicant.java b/src/main/java/uk/gov/hmcts/reform/adoption/adoptioncase/model/Applicant.java index b25fd06cc..5579dbdeb 100644 --- a/src/main/java/uk/gov/hmcts/reform/adoption/adoptioncase/model/Applicant.java +++ b/src/main/java/uk/gov/hmcts/reform/adoption/adoptioncase/model/Applicant.java @@ -25,7 +25,7 @@ @AllArgsConstructor @NoArgsConstructor @JsonNaming(PropertyNamingStrategies.UpperCamelCaseStrategy.class) -@Builder +@Builder(toBuilder = true) public class Applicant { @CCD(label = "First names") diff --git a/src/main/java/uk/gov/hmcts/reform/adoption/adoptioncase/model/CaseData.java b/src/main/java/uk/gov/hmcts/reform/adoption/adoptioncase/model/CaseData.java index 46a6aae21..bdfc6edd1 100644 --- a/src/main/java/uk/gov/hmcts/reform/adoption/adoptioncase/model/CaseData.java +++ b/src/main/java/uk/gov/hmcts/reform/adoption/adoptioncase/model/CaseData.java @@ -3,6 +3,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonUnwrapped; import lombok.AllArgsConstructor; import lombok.Builder; @@ -22,6 +23,7 @@ import uk.gov.hmcts.reform.adoption.adoptioncase.model.access.DefaultAccess; import uk.gov.hmcts.reform.adoption.adoptioncase.model.access.SystemUpdateAccess; import uk.gov.hmcts.reform.adoption.adoptioncase.model.access.SystemUpdateCollectionAccess; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.access.SystemUpdateOnlyAccess; import uk.gov.hmcts.reform.adoption.document.DocumentType; import uk.gov.hmcts.reform.adoption.document.model.AdoptionDocument; import uk.gov.hmcts.reform.adoption.document.model.AdoptionUploadDocument; @@ -805,6 +807,13 @@ public class CaseData { private YesOrNo seekFurtherInformationAdopOrLaSelected; + @JsonInclude(JsonInclude.Include.NON_NULL) + @CCD( + label = "Migration ID", + access = {SystemUpdateOnlyAccess.class } + ) + private String migrationId; + public String getNameOfCourtFirstHearing() { if (Objects.nonNull(familyCourtName)) { return familyCourtName; diff --git a/src/main/java/uk/gov/hmcts/reform/adoption/adoptioncase/model/access/SystemUpdateOnlyAccess.java b/src/main/java/uk/gov/hmcts/reform/adoption/adoptioncase/model/access/SystemUpdateOnlyAccess.java new file mode 100644 index 000000000..426873f99 --- /dev/null +++ b/src/main/java/uk/gov/hmcts/reform/adoption/adoptioncase/model/access/SystemUpdateOnlyAccess.java @@ -0,0 +1,19 @@ +package uk.gov.hmcts.reform.adoption.adoptioncase.model.access; + +import com.google.common.collect.HashMultimap; +import com.google.common.collect.SetMultimap; +import uk.gov.hmcts.ccd.sdk.api.HasAccessControl; +import uk.gov.hmcts.ccd.sdk.api.HasRole; +import uk.gov.hmcts.ccd.sdk.api.Permission; + +import static uk.gov.hmcts.reform.adoption.adoptioncase.model.UserRole.SYSTEM_UPDATE; + +public class SystemUpdateOnlyAccess implements HasAccessControl { + @Override + public SetMultimap getGrants() { + SetMultimap grants = HashMultimap.create(); + grants.putAll(SYSTEM_UPDATE, Permissions.CREATE_READ_UPDATE_DELETE); + + return grants; + } +} diff --git a/src/test/java/uk/gov/hmcts/reform/adoption/caseworker/event/CaseWorkerAllocateJudgeTest.java b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseWorkerAllocateJudgeTest.java similarity index 56% rename from src/test/java/uk/gov/hmcts/reform/adoption/caseworker/event/CaseWorkerAllocateJudgeTest.java rename to src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseWorkerAllocateJudgeTest.java index 4cb8da30e..146a57afe 100644 --- a/src/test/java/uk/gov/hmcts/reform/adoption/caseworker/event/CaseWorkerAllocateJudgeTest.java +++ b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseWorkerAllocateJudgeTest.java @@ -1,31 +1,24 @@ -package uk.gov.hmcts.reform.adoption.caseworker.event; +package uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event; -import com.google.common.collect.ImmutableSet; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.junit.jupiter.MockitoExtension; import uk.gov.hmcts.ccd.sdk.ConfigBuilderImpl; -import uk.gov.hmcts.ccd.sdk.ResolvedCCDConfig; import uk.gov.hmcts.ccd.sdk.api.CaseDetails; import uk.gov.hmcts.ccd.sdk.api.Event; -import uk.gov.hmcts.ccd.sdk.api.HasRole; import uk.gov.hmcts.reform.adoption.adoptioncase.event.CaseWorkerAllocateJudge; +import uk.gov.hmcts.reform.adoption.adoptioncase.event.EventTest; import uk.gov.hmcts.reform.adoption.adoptioncase.model.CaseData; import uk.gov.hmcts.reform.adoption.adoptioncase.model.State; import uk.gov.hmcts.reform.adoption.adoptioncase.model.UserRole; -import java.lang.reflect.InvocationTargetException; -import java.util.HashMap; -import java.util.Map; - import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.platform.commons.util.ReflectionUtils.findMethod; import static uk.gov.hmcts.reform.adoption.adoptioncase.event.CaseWorkerAllocateJudge.CASEWORKER_ALLOCATE_JUDGE; import static uk.gov.hmcts.reform.adoption.testutil.TestDataHelper.caseData; @ExtendWith(MockitoExtension.class) -public class CaseWorkerAllocateJudgeTest { +public class CaseWorkerAllocateJudgeTest extends EventTest { @InjectMocks CaseWorkerAllocateJudge caseWorkerAllocateJudge; @@ -43,33 +36,6 @@ void shouldAddConfigurationToConfigBuilder() { .contains(CASEWORKER_ALLOCATE_JUDGE); } - - public static ConfigBuilderImpl createCaseDataConfigBuilder() { - return new ConfigBuilderImpl<>(new ResolvedCCDConfig<>( - CaseData.class, - State.class, - UserRole.class, - new HashMap<>(), - ImmutableSet.copyOf(State.class.getEnumConstants()))); - } - - - @SuppressWarnings({"unchecked"}) - public static Map> getEventsFrom( - final ConfigBuilderImpl configBuilder) { - - return (Map>) findMethod(ConfigBuilderImpl.class, "getEvents") - .map(method -> { - try { - method.setAccessible(true); - return method.invoke(configBuilder); - } catch (IllegalAccessException | InvocationTargetException e) { - throw new AssertionError("Unable to invoke ConfigBuilderImpl.class method getEvents", e); - } - }) - .orElseThrow(() -> new AssertionError("Unable to find ConfigBuilderImpl.class method getEvents")); - } - private CaseDetails getCaseDetails() { final var details = new CaseDetails(); final var data = caseData(); diff --git a/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseWorkerManageHearingTest.java b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseWorkerManageHearingTest.java index 60d47c4cc..61b824aa8 100644 --- a/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseWorkerManageHearingTest.java +++ b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseWorkerManageHearingTest.java @@ -1,22 +1,20 @@ package uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event; import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.collect.ImmutableSet; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import uk.gov.hmcts.ccd.sdk.ConfigBuilderImpl; -import uk.gov.hmcts.ccd.sdk.ResolvedCCDConfig; import uk.gov.hmcts.ccd.sdk.api.CaseDetails; import uk.gov.hmcts.ccd.sdk.api.Event; -import uk.gov.hmcts.ccd.sdk.api.HasRole; import uk.gov.hmcts.ccd.sdk.api.callback.AboutToStartOrSubmitResponse; import uk.gov.hmcts.ccd.sdk.type.DynamicList; import uk.gov.hmcts.ccd.sdk.type.DynamicListElement; import uk.gov.hmcts.ccd.sdk.type.ListValue; import uk.gov.hmcts.ccd.sdk.type.YesOrNo; +import uk.gov.hmcts.reform.adoption.adoptioncase.event.EventTest; import uk.gov.hmcts.reform.adoption.adoptioncase.model.ApplyingWith; import uk.gov.hmcts.reform.adoption.adoptioncase.model.CaseData; import uk.gov.hmcts.reform.adoption.adoptioncase.model.ManageHearingDetails; @@ -27,10 +25,7 @@ import uk.gov.hmcts.reform.adoption.adoptioncase.model.State; import uk.gov.hmcts.reform.adoption.adoptioncase.model.UserRole; import uk.gov.hmcts.reform.adoption.document.CaseDataDocumentService; -import uk.gov.hmcts.reform.idam.client.models.User; -import uk.gov.hmcts.reform.idam.client.models.UserDetails; -import java.lang.reflect.InvocationTargetException; import java.time.Clock; import java.time.Instant; import java.time.LocalDate; @@ -46,15 +41,13 @@ import java.util.UUID; import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.platform.commons.util.ReflectionUtils.findMethod; import static org.mockito.Mockito.when; import static uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event.CaseWorkerManageHearing.CASEWORKER_MANAGE_HEARING; import static uk.gov.hmcts.reform.adoption.adoptioncase.search.CaseFieldsConstants.BLANK_SPACE; -import static uk.gov.hmcts.reform.adoption.testutil.TestConstants.TEST_AUTHORIZATION_TOKEN; import static uk.gov.hmcts.reform.adoption.testutil.TestDataHelper.caseData; @ExtendWith(MockitoExtension.class) -class CaseWorkerManageHearingTest { +class CaseWorkerManageHearingTest extends EventTest { @InjectMocks @@ -339,41 +332,4 @@ private CaseDetails getCaseDetailsForHearing() { details.setId(1L); return details; } - - - public static ConfigBuilderImpl createCaseDataConfigBuilder() { - return new ConfigBuilderImpl<>(new ResolvedCCDConfig<>( - CaseData.class, - State.class, - UserRole.class, - new HashMap<>(), - ImmutableSet.copyOf(State.class.getEnumConstants()) - )); - } - - @SuppressWarnings({"unchecked"}) - public static Map> getEventsFrom( - final ConfigBuilderImpl configBuilder) { - - return (Map>) findMethod(ConfigBuilderImpl.class, "getEvents") - .map(method -> { - try { - method.setAccessible(true); - return method.invoke(configBuilder); - } catch (IllegalAccessException | InvocationTargetException e) { - throw new AssertionError("Unable to invoke ConfigBuilderImpl.class method getEvents", e); - } - }) - .orElseThrow(() -> new AssertionError("Unable to find ConfigBuilderImpl.class method getEvents")); - } - - private User getCaseworkerUser() { - UserDetails userDetails = UserDetails - .builder() - .forename("testFname") - .surname("testSname") - .build(); - - return new User(TEST_AUTHORIZATION_TOKEN, userDetails); - } } diff --git a/src/test/java/uk/gov/hmcts/reform/adoption/caseworker/event/CaseWorkerSeekFurtherInformationTest.java b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseWorkerSeekFurtherInformationTest.java similarity index 75% rename from src/test/java/uk/gov/hmcts/reform/adoption/caseworker/event/CaseWorkerSeekFurtherInformationTest.java rename to src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseWorkerSeekFurtherInformationTest.java index bb724cfe5..afb0b9bd6 100644 --- a/src/test/java/uk/gov/hmcts/reform/adoption/caseworker/event/CaseWorkerSeekFurtherInformationTest.java +++ b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseWorkerSeekFurtherInformationTest.java @@ -1,47 +1,38 @@ -package uk.gov.hmcts.reform.adoption.caseworker.event; +package uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event; import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.collect.ImmutableSet; +import jakarta.servlet.http.HttpServletRequest; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import uk.gov.hmcts.ccd.sdk.ConfigBuilderImpl; -import uk.gov.hmcts.ccd.sdk.ResolvedCCDConfig; import uk.gov.hmcts.ccd.sdk.api.CaseDetails; import uk.gov.hmcts.ccd.sdk.api.Event; -import uk.gov.hmcts.ccd.sdk.api.HasRole; import uk.gov.hmcts.ccd.sdk.api.callback.AboutToStartOrSubmitResponse; import uk.gov.hmcts.ccd.sdk.type.AddressUK; import uk.gov.hmcts.ccd.sdk.type.DynamicList; import uk.gov.hmcts.ccd.sdk.type.DynamicListElement; import uk.gov.hmcts.ccd.sdk.type.ListValue; -import uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event.CaseworkerSeekFurtherInformation; +import uk.gov.hmcts.reform.adoption.adoptioncase.event.EventTest; import uk.gov.hmcts.reform.adoption.adoptioncase.model.CaseData; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.OtherAdoptionAgencyOrLocalAuthority; import uk.gov.hmcts.reform.adoption.adoptioncase.model.State; import uk.gov.hmcts.reform.adoption.adoptioncase.model.UserRole; -import uk.gov.hmcts.reform.adoption.adoptioncase.model.OtherAdoptionAgencyOrLocalAuthority; import uk.gov.hmcts.reform.adoption.document.CaseDataDocumentService; import uk.gov.hmcts.reform.adoption.document.model.AdoptionUploadDocument; import uk.gov.hmcts.reform.adoption.idam.IdamService; -import uk.gov.hmcts.reform.idam.client.models.User; -import uk.gov.hmcts.reform.idam.client.models.UserDetails; -import jakarta.servlet.http.HttpServletRequest; -import java.lang.reflect.InvocationTargetException; import java.time.Clock; import java.time.Instant; import java.time.LocalDate; import java.time.ZoneId; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.UUID; import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.platform.commons.util.ReflectionUtils.findMethod; import static org.mockito.Mockito.when; import static org.springframework.http.HttpHeaders.AUTHORIZATION; import static uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event.CaseworkerSeekFurtherInformation.CASEWORKER_SEEK_FURTHER_INFORMATION; @@ -50,7 +41,7 @@ import static uk.gov.hmcts.reform.adoption.testutil.TestDataHelper.caseData; @ExtendWith(MockitoExtension.class) -public class CaseWorkerSeekFurtherInformationTest { +public class CaseWorkerSeekFurtherInformationTest extends EventTest { @InjectMocks CaseworkerSeekFurtherInformation caseworkerSeekFurtherInformation; @@ -153,41 +144,4 @@ private CaseDetails getCaseDetails() { details.setId(1L); return details; } - - - public static ConfigBuilderImpl createCaseDataConfigBuilder() { - return new ConfigBuilderImpl<>(new ResolvedCCDConfig<>( - CaseData.class, - State.class, - UserRole.class, - new HashMap<>(), - ImmutableSet.copyOf(State.class.getEnumConstants()))); - } - - - @SuppressWarnings({"unchecked"}) - public static Map> getEventsFrom( - final ConfigBuilderImpl configBuilder) { - - return (Map>) findMethod(ConfigBuilderImpl.class, "getEvents") - .map(method -> { - try { - method.setAccessible(true); - return method.invoke(configBuilder); - } catch (IllegalAccessException | InvocationTargetException e) { - throw new AssertionError("Unable to invoke ConfigBuilderImpl.class method getEvents", e); - } - }) - .orElseThrow(() -> new AssertionError("Unable to find ConfigBuilderImpl.class method getEvents")); - } - - private User getCaseworkerUser() { - UserDetails userDetails = UserDetails - .builder() - .forename("testFname") - .surname("testSname") - .build(); - - return new User(TEST_AUTHORIZATION_TOKEN, userDetails); - } } diff --git a/src/test/java/uk/gov/hmcts/reform/adoption/caseworker/event/CaseworkerAddNoteTest.java b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerAddNoteTest.java similarity index 68% rename from src/test/java/uk/gov/hmcts/reform/adoption/caseworker/event/CaseworkerAddNoteTest.java rename to src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerAddNoteTest.java index cc96d559c..fc0f2b809 100644 --- a/src/test/java/uk/gov/hmcts/reform/adoption/caseworker/event/CaseworkerAddNoteTest.java +++ b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerAddNoteTest.java @@ -1,39 +1,30 @@ -package uk.gov.hmcts.reform.adoption.caseworker.event; +package uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event; -import com.google.common.collect.ImmutableSet; +import jakarta.servlet.http.HttpServletRequest; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import uk.gov.hmcts.ccd.sdk.ConfigBuilderImpl; -import uk.gov.hmcts.ccd.sdk.ResolvedCCDConfig; import uk.gov.hmcts.ccd.sdk.api.CaseDetails; import uk.gov.hmcts.ccd.sdk.api.Event; -import uk.gov.hmcts.ccd.sdk.api.HasRole; import uk.gov.hmcts.ccd.sdk.type.ListValue; -import uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event.CaseworkerCaseNote; +import uk.gov.hmcts.reform.adoption.adoptioncase.event.EventTest; import uk.gov.hmcts.reform.adoption.adoptioncase.model.CaseData; import uk.gov.hmcts.reform.adoption.adoptioncase.model.CaseNote; import uk.gov.hmcts.reform.adoption.adoptioncase.model.State; import uk.gov.hmcts.reform.adoption.adoptioncase.model.UserRole; import uk.gov.hmcts.reform.adoption.idam.IdamService; -import uk.gov.hmcts.reform.idam.client.models.User; -import uk.gov.hmcts.reform.idam.client.models.UserDetails; -import jakarta.servlet.http.HttpServletRequest; -import java.lang.reflect.InvocationTargetException; import java.time.Clock; import java.time.Instant; import java.time.LocalDate; import java.time.ZoneId; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.platform.commons.util.ReflectionUtils.findMethod; import static org.mockito.Mockito.when; import static org.springframework.http.HttpHeaders.AUTHORIZATION; import static uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event.CaseworkerCaseNote.CASEWORKER_ADD_CASE_NOTE; @@ -41,7 +32,7 @@ import static uk.gov.hmcts.reform.adoption.testutil.TestDataHelper.caseData; @ExtendWith(MockitoExtension.class) -class CaseworkerAddNoteTest { +class CaseworkerAddNoteTest extends EventTest { @Mock private HttpServletRequest httpServletRequest; @@ -113,16 +104,6 @@ void shouldSuccessfullyAddCaseNoteToCaseDataWhenThereAreExistingCaseNotes() { assertThat(result.getData().getCaseNote()).isNotNull(); } - - public static ConfigBuilderImpl createCaseDataConfigBuilder() { - return new ConfigBuilderImpl<>(new ResolvedCCDConfig<>( - CaseData.class, - State.class, - UserRole.class, - new HashMap<>(), - ImmutableSet.copyOf(State.class.getEnumConstants()))); - } - private CaseDetails getCaseDetails() { final var details = new CaseDetails(); final var data = caseData(); @@ -135,31 +116,4 @@ private CaseDetails getCaseDetails() { return details; } - - @SuppressWarnings({"unchecked"}) - public static Map> getEventsFrom( - final ConfigBuilderImpl configBuilder) { - - return (Map>) findMethod(ConfigBuilderImpl.class, "getEvents") - .map(method -> { - try { - method.setAccessible(true); - return method.invoke(configBuilder); - } catch (IllegalAccessException | InvocationTargetException e) { - throw new AssertionError("Unable to invoke ConfigBuilderImpl.class method getEvents", e); - } - }) - .orElseThrow(() -> new AssertionError("Unable to find ConfigBuilderImpl.class method getEvents")); - } - - private User getCaseworkerUser() { - UserDetails userDetails = UserDetails - .builder() - .forename("testFname") - .surname("testSname") - .build(); - - return new User(TEST_AUTHORIZATION_TOKEN, userDetails); - } - } diff --git a/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerAmendApplicantTest.java b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerAmendApplicantTest.java new file mode 100644 index 000000000..f592d8156 --- /dev/null +++ b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerAmendApplicantTest.java @@ -0,0 +1,38 @@ +package uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.junit.jupiter.MockitoExtension; +import uk.gov.hmcts.ccd.sdk.ConfigBuilderImpl; +import uk.gov.hmcts.ccd.sdk.api.Event; +import uk.gov.hmcts.reform.adoption.adoptioncase.event.EventTest; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.CaseData; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.State; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.UserRole; + +import static org.assertj.core.api.Assertions.assertThat; +import static uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event.CaseworkerAmendApplicant.CASEWORKER_AMEND_APPLICANT; + +/** + * Unit Test class targeted for Amend Case Details functionality. + * CaseworkerAmendApplicant configuration class will be used as base in all Tests + */ +@ExtendWith(MockitoExtension.class) +public class CaseworkerAmendApplicantTest extends EventTest { + + @InjectMocks + CaseworkerAmendApplicant caseworkerAmendApplicant; + + /** + * Test Scenario: Should be able to ADD Configuration to the CCD Config Builder. + */ + @Test + void shouldAddConfigurationToConfigBuilder() { + final ConfigBuilderImpl configBuilder = createCaseDataConfigBuilder(); + caseworkerAmendApplicant.configure(configBuilder); + assertThat(getEventsFrom(configBuilder).values()) + .extracting(Event::getId) + .contains(CASEWORKER_AMEND_APPLICANT); + } +} diff --git a/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerAmendCaseTest.java b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerAmendCaseTest.java new file mode 100644 index 000000000..11a3ecdc7 --- /dev/null +++ b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerAmendCaseTest.java @@ -0,0 +1,38 @@ +package uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.junit.jupiter.MockitoExtension; +import uk.gov.hmcts.ccd.sdk.ConfigBuilderImpl; +import uk.gov.hmcts.ccd.sdk.api.Event; +import uk.gov.hmcts.reform.adoption.adoptioncase.event.EventTest; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.CaseData; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.State; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.UserRole; + +import static org.assertj.core.api.Assertions.assertThat; +import static uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event.CaseworkerAmendCase.CASEWORKER_AMEND_CASE; + +/** + * Unit Test class targeted for Amend Case Details functionality. + * CaseworkerAmendCase configuration class will be used as base in all Tests + */ +@ExtendWith(MockitoExtension.class) +public class CaseworkerAmendCaseTest extends EventTest { + + @InjectMocks + CaseworkerAmendCase caseworkerAmendCase; + + /** + * Test Scenario: Should be able to ADD Configuration to the CCD Config Builder. + */ + @Test + void shouldAddConfigurationToConfigBuilder() { + final ConfigBuilderImpl configBuilder = createCaseDataConfigBuilder(); + caseworkerAmendCase.configure(configBuilder); + assertThat(getEventsFrom(configBuilder).values()) + .extracting(Event::getId) + .contains(CASEWORKER_AMEND_CASE); + } +} diff --git a/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerAmendOtherPartiesDetailsTest.java b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerAmendOtherPartiesDetailsTest.java index c76232811..df31b90a6 100644 --- a/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerAmendOtherPartiesDetailsTest.java +++ b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerAmendOtherPartiesDetailsTest.java @@ -1,17 +1,16 @@ package uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event; -import com.google.common.collect.ImmutableSet; +import jakarta.servlet.http.HttpServletRequest; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import uk.gov.hmcts.ccd.sdk.ConfigBuilderImpl; -import uk.gov.hmcts.ccd.sdk.ResolvedCCDConfig; import uk.gov.hmcts.ccd.sdk.api.CaseDetails; import uk.gov.hmcts.ccd.sdk.api.Event; -import uk.gov.hmcts.ccd.sdk.api.HasRole; import uk.gov.hmcts.ccd.sdk.type.YesOrNo; +import uk.gov.hmcts.reform.adoption.adoptioncase.event.EventTest; import uk.gov.hmcts.reform.adoption.adoptioncase.model.AdoptionAgencyOrLocalAuthority; import uk.gov.hmcts.reform.adoption.adoptioncase.model.CaseData; import uk.gov.hmcts.reform.adoption.adoptioncase.model.Children; @@ -23,28 +22,20 @@ import uk.gov.hmcts.reform.adoption.adoptioncase.model.UserRole; import uk.gov.hmcts.reform.adoption.adoptioncase.model.YesNoNotSure; import uk.gov.hmcts.reform.adoption.idam.IdamService; -import uk.gov.hmcts.reform.idam.client.models.User; -import uk.gov.hmcts.reform.idam.client.models.UserDetails; -import jakarta.servlet.http.HttpServletRequest; -import java.lang.reflect.InvocationTargetException; import java.time.Clock; import java.time.Instant; import java.time.LocalDate; import java.time.ZoneId; -import java.util.HashMap; -import java.util.Map; import java.util.TreeSet; import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.platform.commons.util.ReflectionUtils.findMethod; import static uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event.CaseworkerAmendOtherPartiesDetails.CASEWORKER_AMEND_OTHER_PARTIES_DETAILS; -import static uk.gov.hmcts.reform.adoption.testutil.TestConstants.TEST_AUTHORIZATION_TOKEN; import static uk.gov.hmcts.reform.adoption.testutil.TestDataHelper.caseData; @ExtendWith(MockitoExtension.class) -class CaseworkerAmendOtherPartiesDetailsTest { +class CaseworkerAmendOtherPartiesDetailsTest extends EventTest { @Mock @@ -119,40 +110,4 @@ private CaseDetails getCaseDetails() { details.setId(1L); return details; } - - - public static ConfigBuilderImpl createCaseDataConfigBuilder() { - return new ConfigBuilderImpl<>(new ResolvedCCDConfig<>( - CaseData.class, - State.class, - UserRole.class, - new HashMap<>(), - ImmutableSet.copyOf(State.class.getEnumConstants()))); - } - - @SuppressWarnings({"unchecked"}) - public static Map> getEventsFrom( - final ConfigBuilderImpl configBuilder) { - - return (Map>) findMethod(ConfigBuilderImpl.class, "getEvents") - .map(method -> { - try { - method.setAccessible(true); - return method.invoke(configBuilder); - } catch (IllegalAccessException | InvocationTargetException e) { - throw new AssertionError("Unable to invoke ConfigBuilderImpl.class method getEvents", e); - } - }) - .orElseThrow(() -> new AssertionError("Unable to find ConfigBuilderImpl.class method getEvents")); - } - - private User getCaseworkerUser() { - UserDetails userDetails = UserDetails - .builder() - .forename("testFname") - .surname("testSname") - .build(); - - return new User(TEST_AUTHORIZATION_TOKEN, userDetails); - } } diff --git a/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerCheckAndSendOrdersTest.java b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerCheckAndSendOrdersTest.java index 48af74686..3c369ff1c 100644 --- a/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerCheckAndSendOrdersTest.java +++ b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerCheckAndSendOrdersTest.java @@ -1,51 +1,42 @@ package uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event; import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.collect.ImmutableSet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.constraints.NotNull; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import uk.gov.hmcts.ccd.sdk.ConfigBuilderImpl; -import uk.gov.hmcts.ccd.sdk.ResolvedCCDConfig; import uk.gov.hmcts.ccd.sdk.api.CaseDetails; import uk.gov.hmcts.ccd.sdk.api.Event; -import uk.gov.hmcts.ccd.sdk.api.HasRole; import uk.gov.hmcts.ccd.sdk.type.DynamicList; import uk.gov.hmcts.ccd.sdk.type.DynamicListElement; import uk.gov.hmcts.ccd.sdk.type.ListValue; +import uk.gov.hmcts.reform.adoption.adoptioncase.event.EventTest; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.AdoptionOrderData; import uk.gov.hmcts.reform.adoption.adoptioncase.model.CaseData; -import uk.gov.hmcts.reform.adoption.adoptioncase.model.State; -import uk.gov.hmcts.reform.adoption.adoptioncase.model.OrderCheckAndSend; -import uk.gov.hmcts.reform.adoption.adoptioncase.model.SelectedOrder; import uk.gov.hmcts.reform.adoption.adoptioncase.model.ManageOrdersData; -import uk.gov.hmcts.reform.adoption.adoptioncase.model.AdoptionOrderData; -import uk.gov.hmcts.reform.adoption.adoptioncase.model.UserRole; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.OrderCheckAndSend; import uk.gov.hmcts.reform.adoption.adoptioncase.model.OrderData; import uk.gov.hmcts.reform.adoption.adoptioncase.model.OrderStatus; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.SelectedOrder; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.State; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.UserRole; import uk.gov.hmcts.reform.adoption.document.CaseDataDocumentService; import uk.gov.hmcts.reform.adoption.idam.IdamService; -import uk.gov.hmcts.reform.idam.client.models.User; -import uk.gov.hmcts.reform.idam.client.models.UserDetails; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.validation.constraints.NotNull; -import java.lang.reflect.InvocationTargetException; import java.time.Clock; -import java.time.LocalDateTime; import java.time.Instant; -import java.time.ZoneId; import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.ZoneId; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.UUID; -import java.util.Arrays; import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.platform.commons.util.ReflectionUtils.findMethod; import static org.mockito.Mockito.when; import static org.springframework.http.HttpHeaders.AUTHORIZATION; import static uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event.CaseworkerCheckAndSendOrders.CASEWORKER_CHECK_AND_SEND_ORDERS; @@ -55,7 +46,7 @@ import static uk.gov.hmcts.reform.adoption.testutil.TestDataHelper.caseData; @ExtendWith(MockitoExtension.class) -class CaseworkerCheckAndSendOrdersTest { +class CaseworkerCheckAndSendOrdersTest extends EventTest { @Mock private HttpServletRequest httpServletRequest; @@ -135,7 +126,7 @@ void caseworkerAboutToSubmit_OK() { when(clock.getZone()).thenReturn(zoneId); when(httpServletRequest.getHeader(AUTHORIZATION)).thenReturn(TEST_AUTHORIZATION_TOKEN); - when(idamService.retrieveUser(TEST_AUTHORIZATION_TOKEN)).thenReturn(getCaseworkerUser()); + when(idamService.retrieveUser(TEST_AUTHORIZATION_TOKEN)).thenReturn(getJudgeUser()); var result = caseworkerCheckAndSendOrders.aboutToSubmit(caseDetails, caseDetails); assertThat(result.getData().getManageOrderList().get(0).getValue().getOrderStatus()).isEqualTo(OrderStatus.SERVED); @@ -165,32 +156,6 @@ private ManageOrdersData getManageOrderData() { return manageOrdersData; } - public static ConfigBuilderImpl createCaseDataConfigBuilder() { - return new ConfigBuilderImpl<>(new ResolvedCCDConfig<>( - CaseData.class, - State.class, - UserRole.class, - new HashMap<>(), - ImmutableSet.copyOf(State.class.getEnumConstants()) - )); - } - - @SuppressWarnings({"unchecked"}) - public static Map> getEventsFrom( - final ConfigBuilderImpl configBuilder) { - - return (Map>) findMethod(ConfigBuilderImpl.class, "getEvents") - .map(method -> { - try { - method.setAccessible(true); - return method.invoke(configBuilder); - } catch (IllegalAccessException | InvocationTargetException e) { - throw new AssertionError("Unable to invoke ConfigBuilderImpl.class method getEvents", e); - } - }) - .orElseThrow(() -> new AssertionError("Unable to find ConfigBuilderImpl.class method getEvents")); - } - private CaseDetails getCaseDetails() { return CaseDetails.builder() .data(caseData()) @@ -211,16 +176,4 @@ private void prepareCheckAndSendDropdownList(List> data.setCheckAndSendOrderDropdownList(DynamicList.builder().listItems(listElements) .value(element).build()); } - - private User getCaseworkerUser() { - UserDetails userDetails = UserDetails - .builder() - .forename("testFname") - .roles(Arrays.asList(UserRole.DISTRICT_JUDGE.getRole())) - .surname("testSname") - .build(); - - return new User(TEST_AUTHORIZATION_TOKEN, userDetails); - } - } diff --git a/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerManageOrdersTest.java b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerManageOrdersTest.java index 634263697..09db458de 100644 --- a/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerManageOrdersTest.java +++ b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerManageOrdersTest.java @@ -1,78 +1,72 @@ package uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event; -import com.google.common.collect.ImmutableSet; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.junit.jupiter.MockitoExtension; import uk.gov.hmcts.ccd.sdk.ConfigBuilderImpl; -import uk.gov.hmcts.ccd.sdk.ResolvedCCDConfig; import uk.gov.hmcts.ccd.sdk.api.CaseDetails; import uk.gov.hmcts.ccd.sdk.api.Event; -import uk.gov.hmcts.ccd.sdk.api.HasRole; import uk.gov.hmcts.ccd.sdk.api.callback.AboutToStartOrSubmitResponse; import uk.gov.hmcts.ccd.sdk.type.AddressUK; import uk.gov.hmcts.ccd.sdk.type.YesOrNo; import uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event.page.ManageOrders; +import uk.gov.hmcts.reform.adoption.adoptioncase.event.EventTest; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.AdoptionAgencyOrLocalAuthority; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.AdoptionOrderData; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.Applicant; import uk.gov.hmcts.reform.adoption.adoptioncase.model.CaseData; import uk.gov.hmcts.reform.adoption.adoptioncase.model.GeneralDirectionOrderTypes; -import uk.gov.hmcts.reform.adoption.adoptioncase.model.UserRole; -import uk.gov.hmcts.reform.adoption.adoptioncase.model.State; import uk.gov.hmcts.reform.adoption.adoptioncase.model.ManageOrdersData; -import uk.gov.hmcts.reform.adoption.adoptioncase.model.AdoptionOrderData; -import uk.gov.hmcts.reform.adoption.adoptioncase.model.SocialWorker; import uk.gov.hmcts.reform.adoption.adoptioncase.model.Parent; -import uk.gov.hmcts.reform.adoption.adoptioncase.model.Applicant; -import uk.gov.hmcts.reform.adoption.adoptioncase.model.AdoptionAgencyOrLocalAuthority; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.SocialWorker; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.State; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.UserRole; -import java.lang.reflect.InvocationTargetException; import java.time.LocalDateTime; -import java.util.HashMap; import java.util.HashSet; -import java.util.Map; import java.util.Set; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.junit.platform.commons.util.ReflectionUtils.findMethod; import static uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event.CaseworkerManageOrders.CASEWORKER_MANAGE_ORDERS; import static uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event.page.ManageOrders.ERROR_CHECK_HEARINGS_SELECTION; -import static uk.gov.hmcts.reform.adoption.adoptioncase.model.AdoptionOrderData.RecipientsA206.RESPONDENT_BIRTH_MOTHER; -import static uk.gov.hmcts.reform.adoption.adoptioncase.model.AdoptionOrderData.RecipientsA206.RESPONDENT_BIRTH_FATHER; import static uk.gov.hmcts.reform.adoption.adoptioncase.model.AdoptionOrderData.RecipientsA206.ADOPTION_AGENCY; -import static uk.gov.hmcts.reform.adoption.adoptioncase.model.AdoptionOrderData.RecipientsA206.OTHER_PERSON_WITH_PARENTAL_RESPONSIBILITY; -import static uk.gov.hmcts.reform.adoption.adoptioncase.model.AdoptionOrderData.RecipientsA206.LEGAL_GUARDIAN_CAFCASS; +import static uk.gov.hmcts.reform.adoption.adoptioncase.model.AdoptionOrderData.RecipientsA206.APPLICANTS_LOCAL_AUTHORITY; import static uk.gov.hmcts.reform.adoption.adoptioncase.model.AdoptionOrderData.RecipientsA206.CHILDS_LOCAL_AUTHORITY; +import static uk.gov.hmcts.reform.adoption.adoptioncase.model.AdoptionOrderData.RecipientsA206.LEGAL_GUARDIAN_CAFCASS; import static uk.gov.hmcts.reform.adoption.adoptioncase.model.AdoptionOrderData.RecipientsA206.OTHER_ADOPTION_AGENCY; -import static uk.gov.hmcts.reform.adoption.adoptioncase.model.AdoptionOrderData.RecipientsA206.APPLICANTS_LOCAL_AUTHORITY; +import static uk.gov.hmcts.reform.adoption.adoptioncase.model.AdoptionOrderData.RecipientsA206.OTHER_PERSON_WITH_PARENTAL_RESPONSIBILITY; +import static uk.gov.hmcts.reform.adoption.adoptioncase.model.AdoptionOrderData.RecipientsA206.RESPONDENT_BIRTH_FATHER; +import static uk.gov.hmcts.reform.adoption.adoptioncase.model.AdoptionOrderData.RecipientsA206.RESPONDENT_BIRTH_MOTHER; import static uk.gov.hmcts.reform.adoption.adoptioncase.model.AdoptionOrderData.RecipientsA76.APPLICANT1; import static uk.gov.hmcts.reform.adoption.adoptioncase.model.AdoptionOrderData.RecipientsA76.APPLICANT2; +import static uk.gov.hmcts.reform.adoption.adoptioncase.model.ManageOrdersData.HearingNotices.HEARING_DATE_TO_BE_SPECIFIED_IN_THE_FUTURE; +import static uk.gov.hmcts.reform.adoption.adoptioncase.model.ManageOrdersData.HearingNotices.LIST_FOR_FIRST_HEARING; +import static uk.gov.hmcts.reform.adoption.adoptioncase.model.ManageOrdersData.HearingNotices.LIST_FOR_FURTHER_HEARINGS; import static uk.gov.hmcts.reform.adoption.adoptioncase.model.ManageOrdersData.ManageOrderType.CASE_MANAGEMENT_ORDER; import static uk.gov.hmcts.reform.adoption.adoptioncase.model.ManageOrdersData.ManageOrderType.FINAL_ADOPTION_ORDER; import static uk.gov.hmcts.reform.adoption.adoptioncase.model.ManageOrdersData.ManageOrderType.GENERAL_DIRECTIONS_ORDER; import static uk.gov.hmcts.reform.adoption.adoptioncase.model.ManageOrdersData.ModeOfHearing.SET_MODE_OF_HEARING; -import static uk.gov.hmcts.reform.adoption.adoptioncase.model.ManageOrdersData.HearingNotices.LIST_FOR_FIRST_HEARING; -import static uk.gov.hmcts.reform.adoption.adoptioncase.model.ManageOrdersData.HearingNotices.LIST_FOR_FURTHER_HEARINGS; -import static uk.gov.hmcts.reform.adoption.adoptioncase.model.ManageOrdersData.HearingNotices.HEARING_DATE_TO_BE_SPECIFIED_IN_THE_FUTURE; import static uk.gov.hmcts.reform.adoption.adoptioncase.search.CaseFieldsConstants.ADOP_AGENCY_NOT_APPLICABLE; import static uk.gov.hmcts.reform.adoption.adoptioncase.search.CaseFieldsConstants.APPLICANTS_LA_NOT_APPLICABLE; import static uk.gov.hmcts.reform.adoption.adoptioncase.search.CaseFieldsConstants.BIRTH_FATHER_NOT_APPLICABLE; import static uk.gov.hmcts.reform.adoption.adoptioncase.search.CaseFieldsConstants.BIRTH_MOTHER_NOT_APPLICABLE; import static uk.gov.hmcts.reform.adoption.adoptioncase.search.CaseFieldsConstants.CHILDS_LA_NOT_APPLICABLE; +import static uk.gov.hmcts.reform.adoption.adoptioncase.search.CaseFieldsConstants.ERROR_CHECK_RECIPIENTS_SELECTION; import static uk.gov.hmcts.reform.adoption.adoptioncase.search.CaseFieldsConstants.FIRST_APPLICANT_NOT_APPLICABLE; import static uk.gov.hmcts.reform.adoption.adoptioncase.search.CaseFieldsConstants.LEGAL_GUARDIAN_NOT_APPLICABLE; import static uk.gov.hmcts.reform.adoption.adoptioncase.search.CaseFieldsConstants.OTHER_ADOP_AGENCY_NOT_APPLICABLE; import static uk.gov.hmcts.reform.adoption.adoptioncase.search.CaseFieldsConstants.OTHER_LA_NOT_APPLICABLE; import static uk.gov.hmcts.reform.adoption.adoptioncase.search.CaseFieldsConstants.OTHER_PARENT_AGENCY_NOT_APPLICABLE; import static uk.gov.hmcts.reform.adoption.adoptioncase.search.CaseFieldsConstants.SECOND_APPLICANT_NOT_APPLICABLE; -import static uk.gov.hmcts.reform.adoption.adoptioncase.search.CaseFieldsConstants.ERROR_CHECK_RECIPIENTS_SELECTION; import static uk.gov.hmcts.reform.adoption.testutil.TestDataHelper.caseData; /** * The type Caseworker manage orders test. */ @ExtendWith(MockitoExtension.class) -class CaseworkerManageOrdersTest { +class CaseworkerManageOrdersTest extends EventTest { @InjectMocks private ManageOrders manageOrdersPage; @@ -404,44 +398,4 @@ private CaseDetails getCaseDetails() { .id(1L) .build(); } - - /** - * Gets events from. - * - * @param the type parameter - * @param the type parameter - * @param the type parameter - * @param configBuilder the config builder - * @return the events from - */ - @SuppressWarnings({"unchecked"}) - public static Map> getEventsFrom( - final ConfigBuilderImpl configBuilder) { - - return (Map>) findMethod(ConfigBuilderImpl.class, "getEvents") - .map(method -> { - try { - method.setAccessible(true); - return method.invoke(configBuilder); - } catch (IllegalAccessException | InvocationTargetException e) { - throw new AssertionError("Unable to invoke ConfigBuilderImpl.class method getEvents", e); - } - }) - .orElseThrow(() -> new AssertionError("Unable to find ConfigBuilderImpl.class method getEvents")); - } - - - /** - * Create case data config builder config builder. - * - * @return the config builder - */ - public static ConfigBuilderImpl createCaseDataConfigBuilder() { - return new ConfigBuilderImpl<>(new ResolvedCCDConfig<>( - CaseData.class, - State.class, - UserRole.class, - new HashMap<>(), - ImmutableSet.copyOf(State.class.getEnumConstants()))); - } } diff --git a/src/test/java/uk/gov/hmcts/reform/adoption/caseworker/event/CaseworkerReviewDocumentsTest.java b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerReviewDocumentsTest.java similarity index 78% rename from src/test/java/uk/gov/hmcts/reform/adoption/caseworker/event/CaseworkerReviewDocumentsTest.java rename to src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerReviewDocumentsTest.java index c90530432..62c7101e6 100644 --- a/src/test/java/uk/gov/hmcts/reform/adoption/caseworker/event/CaseworkerReviewDocumentsTest.java +++ b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerReviewDocumentsTest.java @@ -1,19 +1,18 @@ -package uk.gov.hmcts.reform.adoption.caseworker.event; +package uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event; -import com.google.common.collect.ImmutableSet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.constraints.NotNull; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import uk.gov.hmcts.ccd.sdk.ConfigBuilderImpl; -import uk.gov.hmcts.ccd.sdk.ResolvedCCDConfig; import uk.gov.hmcts.ccd.sdk.api.CaseDetails; import uk.gov.hmcts.ccd.sdk.api.Event; -import uk.gov.hmcts.ccd.sdk.api.HasRole; import uk.gov.hmcts.ccd.sdk.type.Document; import uk.gov.hmcts.ccd.sdk.type.ListValue; -import uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event.CaseworkerReviewDocuments; +import uk.gov.hmcts.reform.adoption.adoptioncase.event.EventTest; import uk.gov.hmcts.reform.adoption.adoptioncase.model.CaseData; import uk.gov.hmcts.reform.adoption.adoptioncase.model.State; import uk.gov.hmcts.reform.adoption.adoptioncase.model.UserRole; @@ -21,23 +20,15 @@ import uk.gov.hmcts.reform.adoption.document.model.AdoptionDocument; import uk.gov.hmcts.reform.adoption.document.model.AdoptionUploadDocument; import uk.gov.hmcts.reform.adoption.idam.IdamService; -import uk.gov.hmcts.reform.idam.client.models.User; -import uk.gov.hmcts.reform.idam.client.models.UserDetails; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.validation.constraints.NotNull; -import java.lang.reflect.InvocationTargetException; import java.time.Clock; import java.time.Instant; import java.time.LocalDate; import java.time.ZoneId; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.platform.commons.util.ReflectionUtils.findMethod; import static org.mockito.Mockito.when; import static org.springframework.http.HttpHeaders.AUTHORIZATION; import static uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event.CaseworkerReviewDocuments.CASEWORKER_REVIEW_DOCUMENT; @@ -45,7 +36,7 @@ import static uk.gov.hmcts.reform.adoption.testutil.TestDataHelper.caseData; @ExtendWith(MockitoExtension.class) -public class CaseworkerReviewDocumentsTest { +public class CaseworkerReviewDocumentsTest extends EventTest { @Mock private HttpServletRequest httpServletRequest; @@ -177,40 +168,4 @@ void shouldAddConfigurationToConfigBuilder() { .extracting(Event::getId) .contains(CASEWORKER_REVIEW_DOCUMENT); } - - public static ConfigBuilderImpl createCaseDataConfigBuilder() { - return new ConfigBuilderImpl<>(new ResolvedCCDConfig<>( - CaseData.class, - State.class, - UserRole.class, - new HashMap<>(), - ImmutableSet.copyOf(State.class.getEnumConstants()) - )); - } - - @SuppressWarnings({"unchecked"}) - public static Map> getEventsFrom( - final ConfigBuilderImpl configBuilder) { - - return (Map>) findMethod(ConfigBuilderImpl.class, "getEvents") - .map(method -> { - try { - method.setAccessible(true); - return method.invoke(configBuilder); - } catch (IllegalAccessException | InvocationTargetException e) { - throw new AssertionError("Unable to invoke ConfigBuilderImpl.class method getEvents", e); - } - }) - .orElseThrow(() -> new AssertionError("Unable to find ConfigBuilderImpl.class method getEvents")); - } - - private User getCaseworkerUser() { - UserDetails userDetails = UserDetails - .builder() - .forename("testFname") - .surname("testSname") - .build(); - - return new User(TEST_AUTHORIZATION_TOKEN, userDetails); - } } diff --git a/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerSendOrReplyTest.java b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerSendOrReplyTest.java index 304fb9de7..31dffa716 100644 --- a/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerSendOrReplyTest.java +++ b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerSendOrReplyTest.java @@ -1,6 +1,7 @@ package uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event; -import com.google.common.collect.ImmutableSet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.constraints.NotNull; import org.apache.commons.collections4.CollectionUtils; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -9,42 +10,32 @@ import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import uk.gov.hmcts.ccd.sdk.ConfigBuilderImpl; -import uk.gov.hmcts.ccd.sdk.ResolvedCCDConfig; import uk.gov.hmcts.ccd.sdk.api.CaseDetails; import uk.gov.hmcts.ccd.sdk.api.Event; -import uk.gov.hmcts.ccd.sdk.api.HasRole; import uk.gov.hmcts.ccd.sdk.type.DynamicList; import uk.gov.hmcts.ccd.sdk.type.DynamicListElement; import uk.gov.hmcts.ccd.sdk.type.ListValue; import uk.gov.hmcts.ccd.sdk.type.YesOrNo; import uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event.page.SendOrReply; +import uk.gov.hmcts.reform.adoption.adoptioncase.event.EventTest; import uk.gov.hmcts.reform.adoption.adoptioncase.model.CaseData; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.MessageSendDetails; import uk.gov.hmcts.reform.adoption.adoptioncase.model.SelectedMessage; import uk.gov.hmcts.reform.adoption.adoptioncase.model.State; import uk.gov.hmcts.reform.adoption.adoptioncase.model.UserRole; -import uk.gov.hmcts.reform.adoption.adoptioncase.model.MessageSendDetails; import uk.gov.hmcts.reform.adoption.idam.IdamService; -import uk.gov.hmcts.reform.idam.client.models.User; -import uk.gov.hmcts.reform.idam.client.models.UserDetails; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.validation.constraints.NotNull; -import java.lang.reflect.InvocationTargetException; import java.time.Clock; +import java.time.Instant; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.ZoneId; -import java.time.Instant; import java.time.format.DateTimeFormatter; import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; import java.util.List; -import java.util.Arrays; +import java.util.UUID; import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.platform.commons.util.ReflectionUtils.findMethod; import static org.mockito.Mockito.when; import static org.springframework.http.HttpHeaders.AUTHORIZATION; import static uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event.CaseworkerSendOrReply.CASEWORKER_SEND_OR_REPLY; @@ -55,7 +46,7 @@ import static uk.gov.hmcts.reform.adoption.testutil.TestDataHelper.caseData; @ExtendWith(MockitoExtension.class) -public class CaseworkerSendOrReplyTest { +public class CaseworkerSendOrReplyTest extends EventTest { @Mock private HttpServletRequest httpServletRequest; @@ -72,34 +63,6 @@ public class CaseworkerSendOrReplyTest { @InjectMocks private CaseworkerSendOrReply caseworkerSendOrReply; - - public static ConfigBuilderImpl createCaseDataConfigBuilder() { - return new ConfigBuilderImpl<>(new ResolvedCCDConfig<>( - CaseData.class, - State.class, - UserRole.class, - new HashMap<>(), - ImmutableSet.copyOf(State.class.getEnumConstants()) - )); - } - - - @SuppressWarnings({"unchecked"}) - public static Map> getEventsFrom( - final ConfigBuilderImpl configBuilder) { - - return (Map>) findMethod(ConfigBuilderImpl.class, "getEvents") - .map(method -> { - try { - method.setAccessible(true); - return method.invoke(configBuilder); - } catch (IllegalAccessException | InvocationTargetException e) { - throw new AssertionError("Unable to invoke ConfigBuilderImpl.class method getEvents", e); - } - }) - .orElseThrow(() -> new AssertionError("Unable to find ConfigBuilderImpl.class method getEvents")); - } - @Test void caseworkerSendOrReplyConfigure() { final ConfigBuilderImpl configBuilder = createCaseDataConfigBuilder(); @@ -213,24 +176,13 @@ void caseworkerSendOrReplyAboutToSubmitEventTest_Ok_ReplyMessage_closed() { final var zoneId = ZoneId.systemDefault(); final var expectedDate = LocalDate.ofInstant(instant, zoneId); when(httpServletRequest.getHeader(AUTHORIZATION)).thenReturn(TEST_AUTHORIZATION_TOKEN); - when(idamService.retrieveUser(TEST_AUTHORIZATION_TOKEN)).thenReturn(getCaseworkerUser()); + when(idamService.retrieveUser(TEST_AUTHORIZATION_TOKEN)).thenReturn(getJudgeUser()); var result = caseworkerSendOrReply.aboutToSubmit(caseDetails, caseDetails); assertThat(caseDetails.getData().getListOfOpenMessages()).isEmpty(); assertThat(caseDetails.getData().getClosedMessages()).hasSize(1); } - private User getCaseworkerUser() { - UserDetails userDetails = UserDetails - .builder() - .forename("testFname") - .surname("testSname") - .roles(Arrays.asList(UserRole.DISTRICT_JUDGE.getRole())) - .build(); - - return new User(TEST_AUTHORIZATION_TOKEN, userDetails); - } - @NotNull private MessageSendDetails getOpenMessageObject() { MessageSendDetails message = new MessageSendDetails(); diff --git a/src/test/java/uk/gov/hmcts/reform/adoption/caseworker/event/CaseworkerTransferCourtTest.java b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerTransferCourtTest.java similarity index 53% rename from src/test/java/uk/gov/hmcts/reform/adoption/caseworker/event/CaseworkerTransferCourtTest.java rename to src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerTransferCourtTest.java index 517b30120..549c81e71 100644 --- a/src/test/java/uk/gov/hmcts/reform/adoption/caseworker/event/CaseworkerTransferCourtTest.java +++ b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerTransferCourtTest.java @@ -1,31 +1,23 @@ -package uk.gov.hmcts.reform.adoption.caseworker.event; +package uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event; -import com.google.common.collect.ImmutableSet; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.junit.jupiter.MockitoExtension; import uk.gov.hmcts.ccd.sdk.ConfigBuilderImpl; -import uk.gov.hmcts.ccd.sdk.ResolvedCCDConfig; import uk.gov.hmcts.ccd.sdk.api.CaseDetails; import uk.gov.hmcts.ccd.sdk.api.Event; -import uk.gov.hmcts.ccd.sdk.api.HasRole; -import uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event.CaseworkerTransferCourt; +import uk.gov.hmcts.reform.adoption.adoptioncase.event.EventTest; import uk.gov.hmcts.reform.adoption.adoptioncase.model.CaseData; import uk.gov.hmcts.reform.adoption.adoptioncase.model.State; import uk.gov.hmcts.reform.adoption.adoptioncase.model.UserRole; -import java.lang.reflect.InvocationTargetException; -import java.util.HashMap; -import java.util.Map; - import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.platform.commons.util.ReflectionUtils.findMethod; -import static uk.gov.hmcts.reform.adoption.testutil.TestDataHelper.caseData; import static uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event.CaseworkerTransferCourt.CASEWORKER_TRANSFER_COURT; +import static uk.gov.hmcts.reform.adoption.testutil.TestDataHelper.caseData; @ExtendWith(MockitoExtension.class) -public class CaseworkerTransferCourtTest { +public class CaseworkerTransferCourtTest extends EventTest { @InjectMocks CaseworkerTransferCourt caseworkerTransferCourt; @@ -43,33 +35,6 @@ void shouldAddConfigurationToConfigBuilder() { .contains(CASEWORKER_TRANSFER_COURT); } - - public static ConfigBuilderImpl createCaseDataConfigBuilder() { - return new ConfigBuilderImpl<>(new ResolvedCCDConfig<>( - CaseData.class, - State.class, - UserRole.class, - new HashMap<>(), - ImmutableSet.copyOf(State.class.getEnumConstants()))); - } - - - @SuppressWarnings({"unchecked"}) - public static Map> getEventsFrom( - final ConfigBuilderImpl configBuilder) { - - return (Map>) findMethod(ConfigBuilderImpl.class, "getEvents") - .map(method -> { - try { - method.setAccessible(true); - return method.invoke(configBuilder); - } catch (IllegalAccessException | InvocationTargetException e) { - throw new AssertionError("Unable to invoke ConfigBuilderImpl.class method getEvents", e); - } - }) - .orElseThrow(() -> new AssertionError("Unable to find ConfigBuilderImpl.class method getEvents")); - } - private CaseDetails getCaseDetails() { final var details = new CaseDetails(); final var data = caseData(); diff --git a/src/test/java/uk/gov/hmcts/reform/adoption/caseworker/event/CaseworkerUploadDocumentTest.java b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerUploadDocumentTest.java similarity index 86% rename from src/test/java/uk/gov/hmcts/reform/adoption/caseworker/event/CaseworkerUploadDocumentTest.java rename to src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerUploadDocumentTest.java index 5bb35f520..ba157a2c1 100644 --- a/src/test/java/uk/gov/hmcts/reform/adoption/caseworker/event/CaseworkerUploadDocumentTest.java +++ b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CaseworkerUploadDocumentTest.java @@ -1,43 +1,36 @@ -package uk.gov.hmcts.reform.adoption.caseworker.event; +package uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event; -import com.google.common.collect.ImmutableSet; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import uk.gov.hmcts.ccd.sdk.ConfigBuilderImpl; -import uk.gov.hmcts.ccd.sdk.ResolvedCCDConfig; import uk.gov.hmcts.ccd.sdk.api.CaseDetails; import uk.gov.hmcts.ccd.sdk.api.Event; -import uk.gov.hmcts.ccd.sdk.api.HasRole; import uk.gov.hmcts.ccd.sdk.type.Document; import uk.gov.hmcts.ccd.sdk.type.ListValue; -import uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event.CaseworkerUploadDocument; +import uk.gov.hmcts.reform.adoption.adoptioncase.event.EventTest; import uk.gov.hmcts.reform.adoption.adoptioncase.model.CaseData; import uk.gov.hmcts.reform.adoption.adoptioncase.model.State; import uk.gov.hmcts.reform.adoption.adoptioncase.model.UserRole; import uk.gov.hmcts.reform.adoption.document.DocumentCategory; import uk.gov.hmcts.reform.adoption.document.model.AdoptionUploadDocument; -import java.lang.reflect.InvocationTargetException; import java.time.Clock; import java.time.Instant; import java.time.LocalDate; import java.time.ZoneId; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.platform.commons.util.ReflectionUtils.findMethod; import static org.mockito.Mockito.when; import static uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event.CaseworkerUploadDocument.CASEWORKER_UPLOAD_DOCUMENT; import static uk.gov.hmcts.reform.adoption.testutil.TestDataHelper.caseData; @ExtendWith(MockitoExtension.class) -public class CaseworkerUploadDocumentTest { +public class CaseworkerUploadDocumentTest extends EventTest { @InjectMocks CaseworkerUploadDocument caseworkerUploadDocument; @@ -222,29 +215,4 @@ private AdoptionUploadDocument setAdoptionDocumentCategory(DocumentCategory cate .role("TEST_ROLE") .build(); } - - public static ConfigBuilderImpl createCaseDataConfigBuilder() { - return new ConfigBuilderImpl<>(new ResolvedCCDConfig<>( - CaseData.class, - State.class, - UserRole.class, - new HashMap<>(), - ImmutableSet.copyOf(State.class.getEnumConstants()))); - } - - @SuppressWarnings({"unchecked"}) - public static Map> getEventsFrom( - final ConfigBuilderImpl configBuilder) { - - return (Map>) findMethod(ConfigBuilderImpl.class, "getEvents") - .map(method -> { - try { - method.setAccessible(true); - return method.invoke(configBuilder); - } catch (IllegalAccessException | InvocationTargetException e) { - throw new AssertionError("Unable to invoke ConfigBuilderImpl.class method getEvents", e); - } - }) - .orElseThrow(() -> new AssertionError("Unable to find ConfigBuilderImpl.class method getEvents")); - } } diff --git a/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CitizenAddPaymentTest.java b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/event/CitizenAddPaymentTest.java similarity index 71% rename from src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CitizenAddPaymentTest.java rename to src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/event/CitizenAddPaymentTest.java index 13021e95a..0ebe8eb29 100644 --- a/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CitizenAddPaymentTest.java +++ b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/event/CitizenAddPaymentTest.java @@ -1,19 +1,15 @@ -package uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event; +package uk.gov.hmcts.reform.adoption.adoptioncase.event; -import com.google.common.collect.ImmutableSet; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import uk.gov.hmcts.ccd.sdk.ConfigBuilderImpl; -import uk.gov.hmcts.ccd.sdk.ResolvedCCDConfig; import uk.gov.hmcts.ccd.sdk.api.CaseDetails; import uk.gov.hmcts.ccd.sdk.api.Event; -import uk.gov.hmcts.ccd.sdk.api.HasRole; import uk.gov.hmcts.ccd.sdk.type.ListValue; import uk.gov.hmcts.ccd.sdk.type.OrderSummary; -import uk.gov.hmcts.reform.adoption.adoptioncase.event.CitizenAddPayment; import uk.gov.hmcts.reform.adoption.adoptioncase.model.CaseData; import uk.gov.hmcts.reform.adoption.adoptioncase.model.Payment; import uk.gov.hmcts.reform.adoption.adoptioncase.model.State; @@ -25,17 +21,11 @@ import uk.gov.hmcts.reform.adoption.service.task.EventService; import uk.gov.hmcts.reform.authorisation.generators.AuthTokenGenerator; import uk.gov.hmcts.reform.ccd.client.model.SubmittedCallbackResponse; -import uk.gov.hmcts.reform.idam.client.models.User; -import uk.gov.hmcts.reform.idam.client.models.UserDetails; -import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.platform.commons.util.ReflectionUtils.findMethod; import static org.mockito.Mockito.when; import static uk.gov.hmcts.reform.adoption.adoptioncase.event.CitizenAddPayment.CITIZEN_ADD_PAYMENT; import static uk.gov.hmcts.reform.adoption.adoptioncase.model.State.AwaitingPayment; @@ -43,12 +33,10 @@ import static uk.gov.hmcts.reform.adoption.adoptioncase.model.State.Submitted; import static uk.gov.hmcts.reform.adoption.payment.model.PaymentStatus.IN_PROGRESS; import static uk.gov.hmcts.reform.adoption.payment.model.PaymentStatus.SUCCESS; -import static uk.gov.hmcts.reform.adoption.testutil.TestConstants.TEST_AUTHORIZATION_TOKEN; import static uk.gov.hmcts.reform.adoption.testutil.TestDataHelper.caseData; - @ExtendWith(MockitoExtension.class) -class CitizenAddPaymentTest { +class CitizenAddPaymentTest extends EventTest { @InjectMocks private CitizenAddPayment citizenAddPayment; @@ -68,8 +56,6 @@ class CitizenAddPaymentTest { @Mock private EventService eventPublisher; - public static final String SOME_SERVICE_AUTHORIZATION_TOKEN = "ServiceToken"; - @Test void citizenAddPaymentCSubmitted() { var caseDetails = getCaseDetails(); @@ -140,40 +126,4 @@ private CaseDetails getCaseDetails() { .id(1L) .build(); } - - private User getCaseworkerUser() { - UserDetails userDetails = UserDetails - .builder() - .forename("testFname") - .surname("testSname") - .build(); - - return new User(TEST_AUTHORIZATION_TOKEN, userDetails); - } - - public static ConfigBuilderImpl createCaseDataConfigBuilder() { - return new ConfigBuilderImpl<>(new ResolvedCCDConfig<>( - CaseData.class, - State.class, - UserRole.class, - new HashMap<>(), - ImmutableSet.copyOf(State.class.getEnumConstants()) - )); - } - - @SuppressWarnings({"unchecked"}) - public static Map> getEventsFrom( - final ConfigBuilderImpl configBuilder) { - - return (Map>) findMethod(ConfigBuilderImpl.class, "getEvents") - .map(method -> { - try { - method.setAccessible(true); - return method.invoke(configBuilder); - } catch (IllegalAccessException | InvocationTargetException e) { - throw new AssertionError("Unable to invoke ConfigBuilderImpl.class method getEvents", e); - } - }) - .orElseThrow(() -> new AssertionError("Unable to find ConfigBuilderImpl.class method getEvents")); - } } diff --git a/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CitizenCreateApplicationTest.java b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/event/CitizenCreateApplicationTest.java similarity index 67% rename from src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CitizenCreateApplicationTest.java rename to src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/event/CitizenCreateApplicationTest.java index 243ed6ba2..c640797ab 100644 --- a/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/CitizenCreateApplicationTest.java +++ b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/event/CitizenCreateApplicationTest.java @@ -1,4 +1,4 @@ -package uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event; +package uk.gov.hmcts.reform.adoption.adoptioncase.event; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -7,21 +7,17 @@ import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import uk.gov.hmcts.ccd.sdk.api.CaseDetails; -import uk.gov.hmcts.reform.adoption.adoptioncase.event.CitizenCreateApplication; import uk.gov.hmcts.reform.adoption.adoptioncase.model.CaseData; import uk.gov.hmcts.reform.adoption.adoptioncase.model.State; import uk.gov.hmcts.reform.adoption.idam.IdamService; import uk.gov.hmcts.reform.authorisation.generators.AuthTokenGenerator; import uk.gov.hmcts.reform.ccd.client.CoreCaseDataApi; -import uk.gov.hmcts.reform.idam.client.models.User; -import uk.gov.hmcts.reform.idam.client.models.UserDetails; import static org.assertj.core.api.Assertions.assertThat; -import static uk.gov.hmcts.reform.adoption.testutil.TestConstants.TEST_AUTHORIZATION_TOKEN; import static uk.gov.hmcts.reform.adoption.testutil.TestDataHelper.caseData; @ExtendWith(MockitoExtension.class) -class CitizenCreateApplicationTest { +class CitizenCreateApplicationTest extends EventTest { @InjectMocks private CitizenCreateApplication citizenCreateApplication; @@ -35,9 +31,6 @@ class CitizenCreateApplicationTest { @Mock private AuthTokenGenerator authTokenGenerator; - private static final String AUTH_TOKEN = "Bearer someAuthToken"; - public static final String SOME_SERVICE_AUTHORIZATION_TOKEN = "ServiceToken"; - @Test @DisplayName("Testing submitted event for citizen case creation with dss meta data") void testing_citizen_submission_with_dssData_aboutToSubmit() { @@ -53,14 +46,4 @@ private CaseDetails getCaseDetails() { .id(1L) .build(); } - - private User getCaseworkerUser() { - UserDetails userDetails = UserDetails - .builder() - .forename("testFname") - .surname("testSname") - .build(); - - return new User(TEST_AUTHORIZATION_TOKEN, userDetails); - } } diff --git a/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/event/EventTest.java b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/event/EventTest.java new file mode 100644 index 000000000..acea21688 --- /dev/null +++ b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/event/EventTest.java @@ -0,0 +1,69 @@ +package uk.gov.hmcts.reform.adoption.adoptioncase.event; + +import com.google.common.collect.ImmutableSet; +import uk.gov.hmcts.ccd.sdk.ConfigBuilderImpl; +import uk.gov.hmcts.ccd.sdk.ResolvedCCDConfig; +import uk.gov.hmcts.ccd.sdk.api.Event; +import uk.gov.hmcts.ccd.sdk.api.HasRole; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.CaseData; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.State; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.UserRole; +import uk.gov.hmcts.reform.idam.client.models.User; +import uk.gov.hmcts.reform.idam.client.models.UserDetails; + +import java.lang.reflect.InvocationTargetException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static org.junit.platform.commons.util.ReflectionUtils.findMethod; +import static uk.gov.hmcts.reform.adoption.adoptioncase.model.UserRole.DISTRICT_JUDGE; +import static uk.gov.hmcts.reform.adoption.testutil.TestConstants.TEST_AUTHORIZATION_TOKEN; + +public abstract class EventTest { + + public ConfigBuilderImpl createCaseDataConfigBuilder() { + return new ConfigBuilderImpl<>(new ResolvedCCDConfig<>( + CaseData.class, + State.class, + UserRole.class, + new HashMap<>(), + ImmutableSet.copyOf(State.class.getEnumConstants()) + )); + } + + @SuppressWarnings({"unchecked"}) + public Map> getEventsFrom( + final ConfigBuilderImpl configBuilder) { + + return (Map>) findMethod(ConfigBuilderImpl.class, "getEvents") + .map(method -> { + try { + method.setAccessible(true); + return method.invoke(configBuilder); + } catch (IllegalAccessException | InvocationTargetException e) { + throw new AssertionError("Unable to invoke ConfigBuilderImpl.class method getEvents", e); + } + }) + .orElseThrow(() -> new AssertionError("Unable to find ConfigBuilderImpl.class method getEvents")); + } + + private User getCaseworkerUser(List roles) { + UserDetails userDetails = UserDetails + .builder() + .forename("testFname") + .roles(roles) + .surname("testSname") + .build(); + + return new User(TEST_AUTHORIZATION_TOKEN, userDetails); + } + + public User getCaseworkerUser() { + return getCaseworkerUser(List.of()); + } + + public User getJudgeUser() { + return getCaseworkerUser(List.of(DISTRICT_JUDGE.getRole())); + } +} diff --git a/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/LocalAuthoritySubmitApplicationTest.java b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/event/LocalAuthoritySubmitApplicationTest.java similarity index 64% rename from src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/LocalAuthoritySubmitApplicationTest.java rename to src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/event/LocalAuthoritySubmitApplicationTest.java index 81a3e87df..bb0939391 100644 --- a/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/caseworker/event/LocalAuthoritySubmitApplicationTest.java +++ b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/event/LocalAuthoritySubmitApplicationTest.java @@ -1,17 +1,13 @@ -package uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event; +package uk.gov.hmcts.reform.adoption.adoptioncase.event; -import com.google.common.collect.ImmutableSet; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import uk.gov.hmcts.ccd.sdk.ConfigBuilderImpl; -import uk.gov.hmcts.ccd.sdk.ResolvedCCDConfig; import uk.gov.hmcts.ccd.sdk.api.CaseDetails; import uk.gov.hmcts.ccd.sdk.api.Event; -import uk.gov.hmcts.ccd.sdk.api.HasRole; -import uk.gov.hmcts.reform.adoption.adoptioncase.event.LocalAuthoritySubmitApplication; import uk.gov.hmcts.reform.adoption.adoptioncase.model.CaseData; import uk.gov.hmcts.reform.adoption.adoptioncase.model.State; import uk.gov.hmcts.reform.adoption.adoptioncase.model.UserRole; @@ -20,12 +16,7 @@ import uk.gov.hmcts.reform.adoption.service.task.EventService; import uk.gov.hmcts.reform.ccd.client.model.SubmittedCallbackResponse; -import java.lang.reflect.InvocationTargetException; -import java.util.HashMap; -import java.util.Map; - import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.platform.commons.util.ReflectionUtils.findMethod; import static org.mockito.Mockito.when; import static uk.gov.hmcts.reform.adoption.adoptioncase.event.LocalAuthoritySubmitApplication.LOCAL_AUTHORITY_SUBMIT; import static uk.gov.hmcts.reform.adoption.adoptioncase.model.State.LaSubmitted; @@ -33,7 +24,7 @@ import static uk.gov.hmcts.reform.adoption.testutil.TestDataHelper.caseData; @ExtendWith(MockitoExtension.class) -public class LocalAuthoritySubmitApplicationTest { +public class LocalAuthoritySubmitApplicationTest extends EventTest { @InjectMocks private LocalAuthoritySubmitApplication localAuthoritySubmitApplication; @@ -79,30 +70,4 @@ private CaseDetails getCaseDetails() { .id(1L) .build(); } - - public static ConfigBuilderImpl createCaseDataConfigBuilder() { - return new ConfigBuilderImpl<>(new ResolvedCCDConfig<>( - CaseData.class, - State.class, - UserRole.class, - new HashMap<>(), - ImmutableSet.copyOf(State.class.getEnumConstants()) - )); - } - - @SuppressWarnings({"unchecked"}) - public static Map> getEventsFrom( - final ConfigBuilderImpl configBuilder) { - - return (Map>) findMethod(ConfigBuilderImpl.class, "getEvents") - .map(method -> { - try { - method.setAccessible(true); - return method.invoke(configBuilder); - } catch (IllegalAccessException | InvocationTargetException e) { - throw new AssertionError("Unable to invoke ConfigBuilderImpl.class method getEvents", e); - } - }) - .orElseThrow(() -> new AssertionError("Unable to find ConfigBuilderImpl.class method getEvents")); - } } diff --git a/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/event/MigrateCaseTest.java b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/event/MigrateCaseTest.java new file mode 100644 index 000000000..c92a5f361 --- /dev/null +++ b/src/test/java/uk/gov/hmcts/reform/adoption/adoptioncase/event/MigrateCaseTest.java @@ -0,0 +1,60 @@ +package uk.gov.hmcts.reform.adoption.adoptioncase.event; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.junit.jupiter.MockitoExtension; +import uk.gov.hmcts.ccd.sdk.ConfigBuilderImpl; +import uk.gov.hmcts.ccd.sdk.api.CaseDetails; +import uk.gov.hmcts.ccd.sdk.api.Event; +import uk.gov.hmcts.ccd.sdk.api.callback.AboutToStartOrSubmitResponse; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.CaseData; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.State; +import uk.gov.hmcts.reform.adoption.adoptioncase.model.UserRole; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.assertThrows; +import static uk.gov.hmcts.reform.adoption.adoptioncase.event.MigrateCase.MIGRATE_CASE; + +@ExtendWith(MockitoExtension.class) +public class MigrateCaseTest extends EventTest { + + @InjectMocks + private MigrateCase migrateCase; + + @Test + void shouldSetupMigrateCaseEvent() { + final ConfigBuilderImpl configBuilder = createCaseDataConfigBuilder(); + migrateCase.configure(configBuilder); + + assertThat(getEventsFrom(configBuilder).values()) + .extracting(Event::getId) + .contains(MIGRATE_CASE); + } + + @Test + void shouldPerformMigrationWithGivenIdAndNullifyMigrationId() { + CaseDetails caseDetails = setupCaseWithMigrationId("ADOP-log"); + + AboutToStartOrSubmitResponse resp = migrateCase.aboutToSubmit(caseDetails, null); + + assertThat(resp.getData().getMigrationId()).isNullOrEmpty(); + } + + @Test + void shouldThrowExceptionWhenMigrationRunWithInvalidId() { + CaseDetails caseDetails = setupCaseWithMigrationId("THIS-MIGRATION-ID-IS-NOT-VALID"); + assertThrows("No migration mapped to THIS-MIGRATION-ID-IS-NOT-VALID", RuntimeException.class, + () -> migrateCase.aboutToSubmit(caseDetails, null) + ); + } + + private CaseDetails setupCaseWithMigrationId(String migrationId) { + return CaseDetails.builder() + .data(CaseData.builder() + .migrationId(migrationId) + .build()) + .id(1L) + .build(); + } +} diff --git a/src/test/java/uk/gov/hmcts/reform/adoption/caseworker/event/CaseworkerAmendApplicantTest.java b/src/test/java/uk/gov/hmcts/reform/adoption/caseworker/event/CaseworkerAmendApplicantTest.java deleted file mode 100644 index b2fd38d74..000000000 --- a/src/test/java/uk/gov/hmcts/reform/adoption/caseworker/event/CaseworkerAmendApplicantTest.java +++ /dev/null @@ -1,77 +0,0 @@ -package uk.gov.hmcts.reform.adoption.caseworker.event; - -import com.google.common.collect.ImmutableSet; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.InjectMocks; -import org.mockito.junit.jupiter.MockitoExtension; -import uk.gov.hmcts.ccd.sdk.ConfigBuilderImpl; -import uk.gov.hmcts.ccd.sdk.ResolvedCCDConfig; -import uk.gov.hmcts.ccd.sdk.api.Event; -import uk.gov.hmcts.ccd.sdk.api.HasRole; -import uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event.CaseworkerAmendApplicant; -import uk.gov.hmcts.reform.adoption.adoptioncase.model.CaseData; -import uk.gov.hmcts.reform.adoption.adoptioncase.model.State; -import uk.gov.hmcts.reform.adoption.adoptioncase.model.UserRole; - -import java.lang.reflect.InvocationTargetException; -import java.util.HashMap; -import java.util.Map; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.platform.commons.util.ReflectionUtils.findMethod; -import static uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event.CaseworkerAmendApplicant.CASEWORKER_AMEND_APPLICANT; - -/** - * Unit Test class targeted for Amend Case Details functionality. - * CaseworkerAmendApplicant configuration class will be used as base in all Tests - */ -@ExtendWith(MockitoExtension.class) -public class CaseworkerAmendApplicantTest { - - @InjectMocks - CaseworkerAmendApplicant caseworkerAmendApplicant; - - /** - * Test Scenario: Should be able to ADD Configuration to the CCD Config Builder. - */ - @Test - void shouldAddConfigurationToConfigBuilder() { - final ConfigBuilderImpl configBuilder = createCaseDataConfigBuilder(); - caseworkerAmendApplicant.configure(configBuilder); - assertThat(getEventsFrom(configBuilder).values()) - .extracting(Event::getId) - .contains(CASEWORKER_AMEND_APPLICANT); - } - - /** - * Helper method to create CCD Config builder object to be used for relevant Tests. - * - * @return - ConfigBuilderImpl - */ - public static ConfigBuilderImpl createCaseDataConfigBuilder() { - return new ConfigBuilderImpl<>(new ResolvedCCDConfig<>( - CaseData.class, - State.class, - UserRole.class, - new HashMap<>(), - ImmutableSet.copyOf(State.class.getEnumConstants()) - )); - } - - @SuppressWarnings({"unchecked"}) - public static Map> getEventsFrom( - final ConfigBuilderImpl configBuilder) { - - return (Map>) findMethod(ConfigBuilderImpl.class, "getEvents") - .map(method -> { - try { - method.setAccessible(true); - return method.invoke(configBuilder); - } catch (IllegalAccessException | InvocationTargetException e) { - throw new AssertionError("Unable to invoke ConfigBuilderImpl.class method getEvents", e); - } - }) - .orElseThrow(() -> new AssertionError("Unable to find ConfigBuilderImpl.class method getEvents")); - } -} diff --git a/src/test/java/uk/gov/hmcts/reform/adoption/caseworker/event/CaseworkerAmendCaseTest.java b/src/test/java/uk/gov/hmcts/reform/adoption/caseworker/event/CaseworkerAmendCaseTest.java deleted file mode 100644 index 7969b4d18..000000000 --- a/src/test/java/uk/gov/hmcts/reform/adoption/caseworker/event/CaseworkerAmendCaseTest.java +++ /dev/null @@ -1,77 +0,0 @@ -package uk.gov.hmcts.reform.adoption.caseworker.event; - -import com.google.common.collect.ImmutableSet; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.InjectMocks; -import org.mockito.junit.jupiter.MockitoExtension; -import uk.gov.hmcts.ccd.sdk.ConfigBuilderImpl; -import uk.gov.hmcts.ccd.sdk.ResolvedCCDConfig; -import uk.gov.hmcts.ccd.sdk.api.Event; -import uk.gov.hmcts.ccd.sdk.api.HasRole; -import uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event.CaseworkerAmendCase; -import uk.gov.hmcts.reform.adoption.adoptioncase.model.CaseData; -import uk.gov.hmcts.reform.adoption.adoptioncase.model.State; -import uk.gov.hmcts.reform.adoption.adoptioncase.model.UserRole; - -import java.lang.reflect.InvocationTargetException; -import java.util.HashMap; -import java.util.Map; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.platform.commons.util.ReflectionUtils.findMethod; -import static uk.gov.hmcts.reform.adoption.adoptioncase.caseworker.event.CaseworkerAmendCase.CASEWORKER_AMEND_CASE; - -/** - * Unit Test class targeted for Amend Case Details functionality. - * CaseworkerAmendCase configuration class will be used as base in all Tests - */ -@ExtendWith(MockitoExtension.class) -public class CaseworkerAmendCaseTest { - - @InjectMocks - CaseworkerAmendCase caseworkerAmendCase; - - /** - * Test Scenario: Should be able to ADD Configuration to the CCD Config Builder. - */ - @Test - void shouldAddConfigurationToConfigBuilder() { - final ConfigBuilderImpl configBuilder = createCaseDataConfigBuilder(); - caseworkerAmendCase.configure(configBuilder); - assertThat(getEventsFrom(configBuilder).values()) - .extracting(Event::getId) - .contains(CASEWORKER_AMEND_CASE); - } - - /** - * Helper method to create CCD Config builder object to be used for relevant Tests. - * - * @return - ConfigBuilderImpl - */ - public static ConfigBuilderImpl createCaseDataConfigBuilder() { - return new ConfigBuilderImpl<>(new ResolvedCCDConfig<>( - CaseData.class, - State.class, - UserRole.class, - new HashMap<>(), - ImmutableSet.copyOf(State.class.getEnumConstants()) - )); - } - - @SuppressWarnings({"unchecked"}) - public static Map> getEventsFrom( - final ConfigBuilderImpl configBuilder) { - - return (Map>) findMethod(ConfigBuilderImpl.class, "getEvents") - .map(method -> { - try { - method.setAccessible(true); - return method.invoke(configBuilder); - } catch (IllegalAccessException | InvocationTargetException e) { - throw new AssertionError("Unable to invoke ConfigBuilderImpl.class method getEvents", e); - } - }) - .orElseThrow(() -> new AssertionError("Unable to find ConfigBuilderImpl.class method getEvents")); - } -}