From 6cfd3382ac61f8a3ced7d3ce56e2c1a17be12944 Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Fri, 27 Sep 2024 10:51:50 +0100 Subject: [PATCH 01/42] Spring Boot 3 Upgrade pt1 --- build.gradle | 315 +++++--------- .../v2/internal/GetUIStartTriggerTest.java | 4 +- .../S-1032.1.td.json | 2 +- ...est.java => WireMockBaseContractTest.java} | 4 +- .../CasesControllerProviderTest.java | 4 +- .../ContractTestSubmitCaseTransaction.java | 2 +- .../controller/SecurityMockConfiguration.java | 28 +- .../controller/TestIdamConfiguration.java | 2 +- .../CaseAssignedUserRolesProviderTest.java | 4 +- .../uk/gov/hmcts/ccd/ApplicationParams.java | 4 +- .../hmcts/ccd/AuthCheckerConfiguration.java | 2 +- .../hmcts/ccd/CoreCaseDataApplication.java | 9 +- .../hmcts/ccd/RestTemplateConfiguration.java | 49 ++- .../gov/hmcts/ccd/SecurityConfiguration.java | 50 ++- .../hmcts/ccd/TransactionConfiguration.java | 2 +- .../hmcts/ccd/auditlog/AuditInterceptor.java | 8 +- .../ccd/config/SwaggerConfiguration.java | 93 +---- .../gov/hmcts/ccd/data/JsonDataConverter.java | 4 +- .../ccd/data/ReferenceDataRepository.java | 4 +- .../hmcts/ccd/data/SignificantItemEntity.java | 22 +- .../hmcts/ccd/data/caseaccess/AMSwitch.java | 4 +- .../data/caseaccess/CaseUserAuditEntity.java | 16 +- .../caseaccess/CaseUserAuditRepository.java | 10 +- .../ccd/data/caseaccess/CaseUserEntity.java | 12 +- .../caseaccess/DefaultCaseRoleRepository.java | 2 +- .../caseaccess/DefaultCaseUserRepository.java | 8 +- .../CachedCaseDetailsRepository.java | 2 +- .../casedetails/CaseAuditEventEntity.java | 26 +- .../casedetails/CaseAuditEventMapper.java | 4 +- .../casedetails/CaseAuditEventRepository.java | 14 +- .../data/casedetails/CaseDetailsEntity.java | 24 +- .../data/casedetails/CaseDetailsMapper.java | 4 +- .../DefaultCaseDetailsRepository.java | 16 +- .../data/casedetails/JurisdictionMapper.java | 4 +- .../casedetails/MetaDataQueryBuilder.java | 10 +- .../query/CaseDetailsQueryBuilder.java | 18 +- .../query/CaseDetailsQueryBuilderFactory.java | 2 +- .../query/CountCaseDetailsQueryBuilder.java | 8 +- .../query/SelectCaseDetailsQueryBuilder.java | 8 +- ...electCaseDetailsReferenceQueryBuilder.java | 8 +- .../casedetails/search/CriterionFactory.java | 4 +- .../search/FieldMapSanitizeOperation.java | 4 +- .../search/SearchQueryFactoryOperation.java | 10 +- .../DefaultSupplementaryDataRepository.java | 8 +- .../FindSupplementaryDataQueryBuilder.java | 8 +- ...ncrementSupplementaryDataQueryBuilder.java | 4 +- .../SetSupplementaryDataQueryBuilder.java | 4 +- .../SupplementaryDataQueryBuilder.java | 8 +- .../SupplementaryDataUserType.java | 26 ++ .../ccd/data/caselinking/CaseLinkEntity.java | 8 +- .../definition/CachedUIDefinitionGateway.java | 6 +- .../definition/HttpUIDefinitionGateway.java | 6 +- .../definition/UIDefinitionRepository.java | 6 +- .../documentdata/DocumentDataRequest.java | 4 +- .../ccd/data/draft/DefaultDraftGateway.java | 2 +- .../data/message/MessageCandidateMapper.java | 4 +- .../message/MessageCandidateRepository.java | 10 +- .../message/MessageQueueCandidateEntity.java | 12 +- .../data/user/IdamJurisdictionsResolver.java | 2 +- .../gov/hmcts/ccd/data/user/UserService.java | 2 +- .../jexl/JexlEnablingConditionParser.java | 2 +- .../CaseUpdateViewEventBuilder.java | 4 +- .../aggregated/CaseViewFieldBuilder.java | 4 +- .../aggregated/CompoundFieldOrderService.java | 4 +- .../domain/model/aggregated/UserDefault.java | 9 +- .../aggregated/UserDefaultCollection.java | 8 +- .../model/callbacks/CallbackResponse.java | 8 +- .../ccd/domain/model/casedeletion/TTL.java | 4 +- .../casefileview/CategoriesAndDocuments.java | 4 +- .../domain/model/casefileview/Category.java | 4 +- .../domain/model/casefileview/Document.java | 9 +- .../ccd/domain/model/common/HttpError.java | 2 +- .../definition/AccessTypeDefinition.java | 2 +- .../model/definition/BannersResult.java | 9 +- .../domain/model/definition/CaseDetails.java | 8 +- .../definition/CaseEventFieldDefinition.java | 32 +- .../model/definition/CaseFieldDefinition.java | 5 +- .../model/definition/CaseRoleDefinition.java | 12 +- .../model/definition/CaseStateDefinition.java | 16 +- .../definition/CaseTypeTabDefinition.java | 5 +- .../model/definition/CaseTypeTabField.java | 14 +- .../model/definition/CriteriaField.java | 15 +- .../DraftResponseToCaseDetailsBuilder.java | 4 +- .../definition/EventPostStateDefinition.java | 6 +- .../definition/FixedListItemDefinition.java | 10 +- .../definition/JurisdictionDefinition.java | 19 +- .../JurisdictionUiConfigResult.java | 8 +- .../model/definition/SearchInputField.java | 4 +- .../SearchInputFieldsDefinition.java | 12 +- .../ccd/domain/model/definition/UserRole.java | 22 +- .../ccd/domain/model/definition/Version.java | 12 +- .../domain/model/definition/WizardPage.java | 18 +- .../definition/WizardPageCollection.java | 12 +- .../WizardPageComplexFieldOverride.java | 5 +- .../model/definition/WizardPageField.java | 5 +- .../definition/WorkbasketInputField.java | 5 +- .../WorkbasketInputFieldsDefinition.java | 12 +- .../model/draft/CreateCaseDraftRequest.java | 11 +- .../model/draft/UpdateCaseDraftRequest.java | 2 +- .../model/globalsearch/SearchCriteria.java | 4 +- .../model/globalsearch/SearchPartyValue.java | 4 +- .../model/refdata/BuildingLocation.java | 4 +- .../ccd/domain/model/refdata/CourtVenue.java | 4 +- .../model/refdata/ServiceReferenceData.java | 4 +- .../SearchResultViewHeaderGroup.java | 12 +- .../global/GlobalSearchRequestPayload.java | 4 +- .../ccd/domain/model/search/global/Party.java | 2 +- .../model/search/global/SearchCriteria.java | 6 +- .../ccd/domain/model/std/AuditEvent.java | 7 +- .../domain/model/std/MessageInformation.java | 5 +- .../model/std/MessageQueueCandidate.java | 2 +- .../model/std/validator/EventValidator.java | 4 +- ...pplementaryDataUpdateRequestValidator.java | 4 +- .../globalsearch/SearchCriteriaValidator.java | 4 +- .../globalsearch/SortByValidator.java | 4 +- .../globalsearch/SortDirectionValidator.java | 4 +- .../globalsearch/ValidSearchCriteria.java | 4 +- .../validator/globalsearch/ValidSortBy.java | 4 +- .../globalsearch/ValidSortDirection.java | 4 +- .../MergeDataToSearchResultOperation.java | 4 +- .../CategoriesAndDocumentsService.java | 4 +- .../casefileview/FileViewDocumentService.java | 2 +- .../service/caselinking/CaseLinkService.java | 2 +- .../service/common/CaseDataExtractor.java | 4 +- .../common/CaseEventEnablingService.java | 2 +- .../CasePostStateEvaluationService.java | 2 +- .../service/common/CasePostStateService.java | 2 +- .../service/common/CaseTypeService.java | 6 +- .../ComplexCaseTypeMetadataExtractor.java | 2 +- .../service/common/EventTriggerService.java | 4 +- .../SimpleCaseTypeMetadataExtractor.java | 2 +- .../ccd/domain/service/common/UIDService.java | 4 +- .../DefaultCreateCaseOperation.java | 2 +- .../createcase/SubmitCaseTransaction.java | 2 +- .../createevent/CreateCaseEventService.java | 2 +- .../DefaultCreateEventOperation.java | 4 +- .../CaseDocumentAmApiClient.java | 4 +- .../getcasedocument/CaseDocumentService.java | 4 +- .../CaseDocumentTimestampService.java | 4 +- .../getcasedocument/CaseDocumentUtils.java | 2 +- .../DocumentIdValidationService.java | 4 +- .../getdraft/DefaultGetDraftsOperation.java | 2 +- .../message/CaseEventMessageService.java | 2 +- .../date/DateTimeEntryProcessor.java | 1 - .../date/DateTimeSearchInputProcessor.java | 1 - .../elasticsearch/ElasticsearchMappings.java | 5 +- .../dto/ElasticSearchCaseDetailsDTO.java | 4 +- .../global/GlobalSearchQueryBuilder.java | 2 +- .../GlobalSearchResponseTransformer.java | 4 +- .../service/stdapi/DocumentsOperation.java | 6 +- .../DefaultUpsertDraftOperation.java | 2 +- .../DefaultValidateCaseFieldsOperation.java | 2 +- .../domain/types/BaseLocationValidator.java | 6 +- .../domain/types/BaseTypeConfiguration.java | 2 +- .../ccd/domain/types/CaseDataValidator.java | 6 +- .../ccd/domain/types/CollectionValidator.java | 4 +- .../domain/types/CustomNumberValidator.java | 4 +- .../ccd/domain/types/DateTimeValidator.java | 4 +- .../hmcts/ccd/domain/types/DateValidator.java | 4 +- .../ccd/domain/types/DocumentValidator.java | 4 +- .../domain/types/DynamicListValidator.java | 4 +- .../DynamicMultiSelectListValidator.java | 4 +- .../types/DynamicRadioListValidator.java | 4 +- .../ccd/domain/types/EmailValidator.java | 4 +- .../ccd/domain/types/FixedListValidator.java | 4 +- .../domain/types/FixedRadioListValidator.java | 4 +- .../ccd/domain/types/MoneyGBPValidator.java | 4 +- .../types/MultiSelectListValidator.java | 4 +- .../OrgPolicyCaseAssignedRoleValidator.java | 6 +- .../ccd/domain/types/PhoneUKValidator.java | 4 +- .../ccd/domain/types/PostCodeValidator.java | 4 +- .../ccd/domain/types/RegionValidator.java | 6 +- .../ccd/domain/types/TextAreaValidator.java | 4 +- .../TextCaseReferenceCaseLinkValidator.java | 6 +- .../hmcts/ccd/domain/types/TextValidator.java | 4 +- .../ccd/domain/types/YesNoValidator.java | 4 +- .../domain/types/sanitiser/CaseSanitiser.java | 6 +- .../types/sanitiser/CollectionSanitiser.java | 6 +- .../types/sanitiser/ComplexSanitiser.java | 6 +- .../types/sanitiser/DocumentSanitiser.java | 6 +- .../client/DocumentManagementRestClient.java | 4 +- .../exceptions/RestExceptionHandler.java | 7 +- .../ccd/endpoint/std/CallbackEndpoint.java | 22 +- .../ccd/endpoint/std/CaseAccessEndpoint.java | 62 ++- .../ccd/endpoint/std/CaseDetailsEndpoint.java | 242 +++++------ .../ccd/endpoint/std/CaseSearchEndpoint.java | 29 +- .../ccd/endpoint/std/DraftsEndpoint.java | 67 ++- .../ccd/endpoint/std/EventsEndpoint.java | 30 +- .../endpoint/std/GlobalSearchEndpoint.java | 73 ++-- .../ccd/endpoint/std/MigrationEndpoint.java | 19 +- .../hmcts/ccd/endpoint/ui/QueryEndpoint.java | 79 ++-- .../ccd/endpoint/ui/UserProfileEndpoint.java | 11 +- .../infrastructure/RandomKeyGenerator.java | 4 +- ...StoreHttpStatusRequestRejectedHandler.java | 4 +- .../JwtGrantedAuthoritiesConverter.java | 2 +- .../filters/ExceptionHandlingFilter.java | 6 +- .../filters/SecurityLoggingFilter.java | 8 +- .../V1EndpointsPathParamSecurityFilter.java | 8 +- .../ccd/security/idam/IdamRepository.java | 2 +- .../CaseAssignedUserRolesController.java | 223 +++++----- .../external/controller/CaseController.java | 387 +++++++++--------- .../CaseDataValidatorController.java | 51 ++- .../controller/CaseDocumentController.java | 54 ++- .../controller/CaseFileViewController.java | 38 +- .../controller/CaseUserController.java | 60 ++- .../controller/DocumentController.java | 50 +-- .../controller/StartEventController.java | 109 +++-- .../controller/TestingSupportController.java | 28 +- .../domain/CaseAssignedUserRolesResponse.java | 8 +- .../v2/external/resource/CaseResource.java | 2 +- .../internal/controller/UICaseController.java | 63 +-- .../controller/UICaseSearchController.java | 116 +++--- .../controller/UIDefinitionController.java | 141 +++---- .../controller/UIDraftsController.java | 55 +-- .../controller/UIStartTriggerController.java | 110 ++--- .../controller/UIUserProfileController.java | 26 +- .../CaseSearchResultViewResource.java | 11 +- .../ccd/validator/CaseTypeIdValidator.java | 4 +- .../validator/annotation/ValidCaseTypeId.java | 4 +- .../ccd/AbstractBaseIntegrationTest.java | 2 +- .../ccd/AuthCheckingConfigurationTest.java | 2 +- .../uk/gov/hmcts/ccd/ElasticsearchIT.java | 6 +- .../ccd/RestTemplateConfigurationTest.java | 5 +- .../uk/gov/hmcts/ccd/TestConfiguration.java | 1 + .../gov/hmcts/ccd/TestIdamConfiguration.java | 2 +- .../uk/gov/hmcts/ccd/WireMockBaseTest.java | 6 +- .../ccd/data/AbstractReferenceDataIT.java | 2 +- .../DefaultCaseUserRepositoryTest.java | 4 +- .../CaseAuditEventRepositoryTest.java | 6 +- .../DefaultCaseDetailsRepositoryTest.java | 10 +- .../CaseDetailsQueryBuilderFactoryTest.java | 8 +- .../query/CaseDetailsQueryBuilderTest.java | 8 +- .../SearchQueryFactoryOperationTest.java | 4 +- ...FindSupplementaryDataQueryBuilderTest.java | 12 +- ...mentSupplementaryDataQueryBuilderTest.java | 12 +- .../SetSupplementaryDataQueryBuilderTest.java | 12 +- .../caselinking/CaseLinkRepositoryTest.java | 2 +- .../DefaultCaseDefinitionRepositoryIT.java | 2 +- ...DefinitionGatewayServiceExceptionTest.java | 6 +- .../HttpUIDefinitionGatewayTest.java | 6 +- .../domain/model/common/HttpErrorTest.java | 2 +- .../SearchCriteriaValidatorTest.java | 2 +- .../globalsearch/SortByValidatorTest.java | 2 +- .../SortDirectionValidatorTest.java | 2 +- .../CallbackInvokerWireMockTest.java | 2 +- .../CallbackServiceWireMockTest.java | 6 +- .../CreateCaseEventServiceTest.java | 2 +- .../CaseDocumentMetadataMapperTest.java | 4 +- .../lau/AuditCaseRemoteOperationIT.java | 2 +- .../stdapi/DocumentsOperationTest.java | 2 +- .../domain/types/CaseDataValidatorTest.java | 2 +- .../exceptions/RestExceptionHandlerTest.java | 4 +- .../ccd/endpoint/std/CallbackEndpointIT.java | 2 +- .../hmcts/ccd/endpoint/std/CallbackTest.java | 2 +- .../endpoint/std/CaseAccessEndpointIT.java | 2 +- .../endpoint/std/CaseDetailsEndpointIT.java | 25 +- .../std/CaseDetailsEndpointPostStateIT.java | 2 +- .../std/CaseDetailsEndpointUserRolesIT.java | 2 +- .../endpoint/std/CaseSearchEndpointIT.java | 2 +- .../ccd/endpoint/std/DraftsEndpointIT.java | 2 +- .../ccd/endpoint/std/EventsEndpointIT.java | 2 +- .../endpoint/std/GlobalSearchEndpointIT.java | 2 +- .../ccd/endpoint/std/MigrationEndpointIT.java | 2 +- .../hmcts/ccd/endpoint/ui/CallbackTest.java | 2 +- .../hmcts/ccd/endpoint/ui/CaseRolesIT.java | 2 +- .../ccd/endpoint/ui/QueryEndpointIT.java | 2 +- .../endpoint/ui/SearchInputEndpointTest.java | 2 +- .../ccd/endpoint/ui/SearchWithSortIT.java | 2 +- .../endpoint/ui/UserProfileEndpointTest.java | 2 +- ...eHttpStatusRequestRejectedHandlerTest.java | 2 +- .../JwtGrantedAuthoritiesConverterTest.java | 8 +- .../filters/ExceptionHandlingFilterTest.java | 6 +- .../filters/SecurityLoggingFilterTest.java | 4 +- ...1EndpointsPathParamSecurityFilterTest.java | 4 +- .../ccd/swagger/SwaggerGeneratorTest.java | 4 +- .../AddCaseAssignedUserRolesControllerIT.java | 1 - ...BaseCaseAssignedUserRolesControllerIT.java | 2 +- .../controller/CaseControllerDCPIT.java | 2 +- .../controller/CaseControllerEventsIT.java | 2 +- .../controller/CaseControllerTestIT.java | 2 +- .../CaseDataValidatorControllerDCPIT.java | 2 +- .../controller/CaseDocumentControllerIT.java | 6 +- .../CaseFileViewControllerTestIT.java | 2 +- .../controller/CaseUserControllerIT.java | 2 +- .../controller/DocumentControllerITest.java | 2 +- .../StartEventControllerCaseRolesIT.java | 2 +- .../controller/StartEventControllerIT.java | 2 +- .../TestingSupportControllerTestIT.java | 2 +- .../UICaseControllerCaseRolesIT.java | 2 +- .../controller/UICaseControllerDCPIT.java | 2 +- .../UICaseControllerGetCaseCallbackIT.java | 2 +- .../controller/UIDefinitionControllerIT.java | 2 +- .../UIStartEventControllerCaseRolesIT.java | 2 +- .../UIStartTriggerControllerDCPIT.java | 2 +- .../controller/UIUserProfileControllerIT.java | 2 +- .../validator/CaseTypeIdValidatorTest.java | 2 +- 296 files changed, 1937 insertions(+), 2176 deletions(-) rename src/contractTest/java/uk/gov/hmcts/ccd/{WireMockBaseTest.java => WireMockBaseContractTest.java} (97%) create mode 100644 src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserType.java diff --git a/build.gradle b/build.gradle index 86f943916d..7bf4f9850e 100644 --- a/build.gradle +++ b/build.gradle @@ -1,18 +1,9 @@ -buildscript { - ext { - springBootVersion = '2.7.18' - } - dependencies { - classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") - } -} - plugins { id 'application' id 'jacoco' id 'idea' id 'eclipse' - id 'org.springframework.boot' version '2.7.12' + id 'org.springframework.boot' version '3.0.13' id 'com.github.ben-manes.versions' version '0.51.0' id 'io.spring.dependency-management' version '1.1.5' id 'org.sonarqube' version '5.0.0.4638' @@ -27,18 +18,27 @@ plugins { apply from: './gradle/suppress.gradle' -def versions = [ - pact_version : '4.1.7', -] - -ext['spring-security.version'] = '5.7.11' -ext['spring-framework.version'] = '5.3.27' -ext['jackson.version'] = '2.16.0' - -configurations { - compileClasspath { - resolutionStrategy.force 'org.springframework.cloud:spring-cloud-starter:4.0.5' - } +ext { + set('springCloudVersion', '2022.0.5') + set('spring-framework.version', '6.0.21') + set('spring-security.version', '6.0.8') + set('log4j2.version', '2.17.1') + set('jackson.version', '2.16.0') + set('snakeyaml.version', '2.2') + junitJupiterVersion = '5.9.3' + junitVintageVersion = '5.9.3' + powermockVersion = '2.0.7' + appInsightsVersion = '2.4.1' + pactProviderVersion = '4.1.7' + lombokVersion = '1.18.34' + limits = [ + 'instruction': 90, + 'branch' : 85, + 'line' : 90, + 'complexity' : 88, + 'method' : 90, + 'class' : 98 + ] } dependencyUpdates.resolutionStrategy = { @@ -96,25 +96,6 @@ repositories { } } -ext { - junitJupiterVersion = '5.8.2' - junitVintageVersion = '5.8.2' - powermockVersion = '2.0.7' - reformLogging = '6.0.1' - appInsightsVersion = '2.4.1' - swagger2Version = '3.0.0' - hibernateVersion = '5.6.10.Final' - limits = [ - 'instruction': 90, - 'branch' : 85, - 'line' : 90, - 'complexity' : 88, - 'method' : 90, - 'class' : 98 - ] - springCloudVersion = '2021.0.3' -} - java { toolchain { languageVersion = JavaLanguageVersion.of(17) @@ -162,132 +143,92 @@ tasks.withType(Test) { dependencies { - implementation('org.springframework.cloud:spring-cloud-starter-bootstrap') { - version { - strictly '4.0.5' - } - } - - implementation('org.springframework.cloud:spring-cloud-starter') { - version { - strictly '4.0.5' - } - } - - implementation('org.springframework.boot:spring-boot-starter') { - version { - strictly '3.1.8' - } - } - - implementation('org.springframework.security:spring-security-rsa'){ - version { - strictly '1.0.12.RELEASE' - } - } - - implementation('org.bouncycastle:bcprov-jdk18on') { - version { - strictly '1.77' - } - } - - implementation('commons-io:commons-io') { - version { - strictly '2.16.1' - } - } - - - implementation 'com.google.code.gson:gson:2.8.9' - implementation group: 'org.springframework.cloud', name: 'spring-cloud-starter-openfeign', version: '3.1.9' - - implementation group: 'com.github.hmcts.java-logging', name: 'logging', version: reformLogging - implementation group: 'com.microsoft.azure', name: 'applicationinsights-logging-logback', version: appInsightsVersion - implementation group: 'com.microsoft.azure', name: 'applicationinsights-spring-boot-starter', version: appInsightsVersion - - implementation 'org.mapstruct:mapstruct-jdk8:1.3.1.Final' - compileOnly 'org.projectlombok:lombok:1.18.28' - annotationProcessor 'org.mapstruct:mapstruct-processor:1.3.1.Final', 'org.projectlombok:lombok:1.18.28', 'org.projectlombok:lombok-mapstruct-binding:0.2.0' - testAnnotationProcessor 'org.mapstruct:mapstruct-processor:1.3.1.Final', 'org.projectlombok:lombok:1.18.16', 'org.projectlombok:lombok-mapstruct-binding:0.2.0' - - testCompileOnly 'org.projectlombok:lombok:1.18.28' - testAnnotationProcessor 'org.projectlombok:lombok:1.18.28' - - implementation('org.springframework.boot:spring-boot-starter-actuator') - - implementation("org.springframework.boot:spring-boot-starter-data-jpa") - implementation('org.springframework.hateoas:spring-hateoas:1.5.5') - - implementation group: 'org.springframework.plugin', name: 'spring-plugin-core' - implementation(group: 'org.springframework.boot', name: 'spring-boot-starter-jdbc') { + // Lombok + compileOnly group: 'org.projectlombok', name: 'lombok', version: lombokVersion + annotationProcessor group: 'org.projectlombok', name: 'lombok', version: lombokVersion + annotationProcessor group: 'org.projectlombok', name: 'lombok-mapstruct-binding', version: '0.2.0' + testCompileOnly group: 'org.projectlombok', name: 'lombok', version: lombokVersion + testAnnotationProcessor group: 'org.projectlombok', name: 'lombok', version: lombokVersion + testAnnotationProcessor group: 'org.projectlombok', name: 'lombok-mapstruct-binding', version: '0.2.0' + + // Spring + implementation group: 'org.springframework.boot', name: 'spring-boot-starter-actuator' + implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa' + implementation group: 'org.springframework.boot', name: 'spring-boot-starter-web' + implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation' + implementation group: 'org.springframework.boot', name: 'spring-boot-starter-cache' + implementation group: 'org.springframework.boot', name: 'spring-boot-starter-jdbc', { exclude group: 'org.apache.tomcat', module: 'tomcat-jdbc' } - implementation('org.springframework.boot:spring-boot-starter-web') - implementation('org.springframework.retry:spring-retry') - implementation('org.springframework.boot:spring-boot-starter-cache') - implementation 'com.github.ben-manes.caffeine:caffeine:3.1.6' - - implementation group: 'javax.inject', name: 'javax.inject', version: '1' - implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.7' - implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.17.1' - implementation group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.13' - implementation group: 'io.springfox', name: 'springfox-boot-starter', version: swagger2Version - - implementation "org.flywaydb:flyway-core:8.5.13" - implementation group: 'org.yaml', name: 'snakeyaml', version: '2.0' - implementation group: 'io.jsonwebtoken', name: 'jjwt', version:'0.9.1' - implementation group: 'com.github.hmcts', name: 'service-auth-provider-java-client', version: '4.0.3' - implementation group: 'com.github.hmcts', name: 'idam-java-client', version: '2.0.1' - implementation group: 'org.bouncycastle', name: 'bcpkix-jdk15to18', version: '1.77' - + implementation group: 'org.springframework.boot', name: 'spring-boot-starter-oauth2-resource-server' + implementation group: 'org.springframework.cloud', name: 'spring-cloud-starter-openfeign' + implementation group: 'org.springframework.hateoas', name: 'spring-hateoas' + implementation group: 'org.springframework.plugin', name: 'spring-plugin-core' + implementation group: 'org.springframework.retry', name: 'spring-retry' implementation group: 'org.springframework.security', name: 'spring-security-oauth2-client' - implementation group: 'org.springframework.boot', name: 'spring-boot-starter-oauth2-resource-server', version: '2.7.18' implementation group: 'org.springframework.security', name: 'spring-security-oauth2-resource-server' implementation group: 'org.springframework.security', name: 'spring-security-oauth2-core' implementation group: 'org.springframework.security', name: 'spring-security-oauth2-jose' + implementation group: 'org.springframework.security', name: 'spring-security-core' + implementation group: 'org.springframework.security', name: 'spring-security-config' + implementation group: 'org.springframework.security', name: 'spring-security-web' + implementation group: 'org.springframework.security', name: 'spring-security-crypto' - implementation "io.github.openfeign:feign-httpclient:11.0" + implementation group: 'org.springdoc', name: 'springdoc-openapi-starter-webmvc-ui', version: '2.6.0' - implementation group: 'net.minidev', name: 'json-smart', version: '2.4.7' + // HMCTS + implementation group: 'com.github.hmcts', name: 'service-auth-provider-java-client', version: '5.2.0' + implementation group: 'com.github.hmcts', name: 'idam-java-client', version: '3.0.3' + implementation group: 'com.github.hmcts', name: 'ccd-case-document-am-client', version: '1.8.1' + implementation group: 'com.github.hmcts.java-logging', name: 'logging', version: '6.1.6' + implementation group: 'com.auth0', name: 'java-jwt', version: '4.4.0' + implementation group: 'com.github.ben-manes.caffeine', name: 'caffeine', version: '3.1.6' + implementation group: 'com.google.code.gson', name: 'gson', version: '2.11.0' + implementation group: 'com.jayway.jsonpath', name: 'json-path', version: '2.4.0' + implementation group: 'com.microsoft.azure', name: 'applicationinsights-logging-logback', version: appInsightsVersion + implementation group: 'com.microsoft.azure', name: 'applicationinsights-spring-boot-starter', version: appInsightsVersion implementation group: 'com.nimbusds', name: 'nimbus-jose-jwt', version: '9.21' - implementation group: 'io.vavr', name: 'vavr', version: '0.10.4' - - testImplementation group: 'io.github.openfeign.form', name: 'feign-form', version: '3.8.0' - implementation group: 'io.github.openfeign.form', name: 'feign-form-spring', version: '3.8.0' - implementation group: 'com.sun.mail', name: 'mailapi', version: '1.6.1' + implementation group: 'com.vladmihalcea', name: 'hibernate-types-60', version: '2.21.1' + implementation group: 'commons-fileupload', name: 'commons-fileupload', version: '1.5' + implementation group: 'commons-io', name: 'commons-io', version: '2.17.0' implementation group: 'commons-lang', name: 'commons-lang', version: '2.6' implementation group: 'commons-validator', name: 'commons-validator', version: '1.6' - // CVE-2019-10086 force update of commons-beanutils. - implementation group: 'commons-beanutils', name: 'commons-beanutils', version: '1.9.4' - implementation group: 'com.jayway.jsonpath', name: 'json-path', version: '2.4.0' + implementation group: 'io.github.openfeign', name: 'feign-httpclient', version: '11.0' + implementation group: 'io.github.openfeign.form', name: 'feign-form-spring', version: '3.8.0' + implementation group: 'io.jsonwebtoken', name: 'jjwt', version: '0.9.1' + implementation group: 'io.searchbox', name: 'jest', version: '6.3.1', { + exclude group: 'org.apache.logging.log4j', module: 'log4j-core' + } + implementation group: 'io.vavr', name: 'vavr', version: '0.10.4' + implementation group: 'jakarta.inject', name: 'jakarta.inject-api', version: '2.0.1' + implementation group: 'jakarta.persistence', name: 'jakarta.persistence-api', version: '3.1.0' + implementation group: 'jakarta.servlet', name: 'jakarta.servlet-api', version: '6.1.0' + implementation group: 'net.minidev', name: 'json-smart', version: '2.4.7' + implementation group: 'org.apache.commons', name: 'commons-jexl3', version: '3.4.0' + implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.17.0' + implementation group: 'org.apache.httpcomponents.client5', name: 'httpclient5', version: '5.2.3' + implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.17.1' implementation group: 'org.awaitility', name: 'awaitility', version: '3.1.6' + implementation group: 'org.bouncycastle', name: 'bcpkix-jdk15to18', version: '1.77' + implementation group: 'org.elasticsearch', name: 'elasticsearch', version: '7.16.2', { + exclude group: 'org.apache.logging.log4j', module: 'log4j-api' + } + implementation group: 'org.flywaydb', name: 'flyway-core', version: '8.5.13' + implementation group: 'org.jooq', name: 'jool-java-8', version: '0.9.14' + implementation group: 'org.mapstruct', name: 'mapstruct-jdk8', version: '1.3.1.Final' + implementation group: 'org.yaml', name: 'snakeyaml', version: '2.2' + annotationProcessor group: 'org.mapstruct', name: 'mapstruct-processor', version: '1.3.1.Final' + implementation group: 'pl.jalokim.propertiestojson', name: 'java-properties-to-json', version: '5.3.0' + testAnnotationProcessor group: 'org.mapstruct', name: 'mapstruct-processor', version: '1.3.1.Final' + testImplementation group: 'io.github.openfeign.form', name: 'feign-form', version: '3.8.0' - // CVE-2021-28170 - implementation "org.glassfish:jakarta.el:4.0.1" - - implementation group: 'commons-fileupload', name: 'commons-fileupload', version: '1.5' - implementation group: 'commons-io', name: 'commons-io', version: '2.16.1' - - // use the latest org.springframework.security - implementation group: 'org.springframework.security', name: 'spring-security-core' - implementation group: 'org.springframework.security', name: 'spring-security-config' - implementation group: 'org.springframework.security', name: 'spring-security-web' - implementation group: 'org.springframework.security', name: 'spring-security-crypto' - - implementation group: 'com.vladmihalcea', name: 'hibernate-types-52', version: '2.9.13' - implementation "org.hibernate:hibernate-core:${hibernateVersion}" - implementation group: 'org.apache.commons', name: 'commons-jexl3', version: '3.1' - implementation group: 'pl.jalokim.propertiestojson', name: 'java-properties-to-json', version: '5.1.3' - -// FIXME 0.6 doesn't support jsonb; 0.7 doesn't work on Windows -// runtime group: 'com.impossibl.pgjdbc-ng', name: 'pgjdbc-ng', version: '0.6' + // FIXME 0.6 doesn't support jsonb; 0.7 doesn't work on Windows + // runtime group: 'com.impossibl.pgjdbc-ng', name: 'pgjdbc-ng', version: '0.6' runtimeOnly group: 'org.postgresql', name: 'postgresql', version: '42.5.5' runtimeOnly group: 'com.zaxxer', name: 'HikariCP', version: '4.0.2' - implementation 'org.springframework.boot:spring-boot-starter-validation' configurations.all { exclude group: 'com.vaadin.external.google', module: 'android-json' @@ -296,13 +237,12 @@ dependencies { testImplementation "org.flywaydb:flyway-core:8.5.13" testImplementation('org.springframework.boot:spring-boot-starter-test') - testImplementation('org.springframework.cloud:spring-cloud-starter-contract-stub-runner') + testImplementation('org.springframework.cloud:spring-cloud-starter-contract-stub-runner:4.1.4') testImplementation ('com.opentable.components:otj-pg-embedded:0.12.0') testImplementation group: 'org.assertj', name: 'assertj-core', version: '3.22.0' testImplementation group: 'org.assertj', name: 'assertj-vavr', version: '0.4.2' testImplementation("org.testcontainers:postgresql:1.17.6") - testImplementation ('com.github.tomakehurst:wiremock-jre8:2.25.1') - testImplementation ('org.springframework.cloud:spring-cloud-contract-wiremock:2.2.4.RELEASE') + testImplementation ('org.springframework.cloud:spring-cloud-contract-wiremock:4.1.4') // To avoid compiler warnings about @API annotations in JUnit5 code. testImplementation 'org.apiguardian:apiguardian-api:1.0.0' testImplementation "org.junit.jupiter:junit-jupiter-api:${junitJupiterVersion}" @@ -313,68 +253,31 @@ dependencies { testImplementation group:'org.mockito', name: 'mockito-junit-jupiter', version:'3.6.0' testImplementation group: 'org.powermock', name: 'powermock-api-mockito2', version: powermockVersion testImplementation group: 'org.powermock', name: 'powermock-module-junit4', version: powermockVersion - testImplementation group: 'io.rest-assured', name: 'rest-assured', version: '4.3.0' + testImplementation group: 'io.rest-assured', name: 'rest-assured', version: '5.5.0' testImplementation group: 'com.xebialabs.restito', name: 'restito', version: '0.9.3' testImplementation 'io.github.openfeign:feign-jackson:9.7.0' testImplementation group: 'org.testcontainers', name: 'elasticsearch', version: '1.19.3' testImplementation group: 'org.testcontainers', name: 'junit-jupiter', version: '1.19.3' - testImplementation 'com.github.hmcts:fortify-client:1.3.0:all' testImplementation group: 'commons-lang', name: 'commons-lang', version: '2.6' // for sonar analysis testImplementation group: 'org.openid4java', name: 'openid4java', version: '1.0.0' - // remove me once insights is in - implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.10' - implementation group: 'ch.qos.logback', name: 'logback-core', version: '1.2.10' - - //excluding log4j-core which causes a vulnerability issue - implementation(group: 'io.searchbox', name: 'jest', version: '6.3.1') { - exclude group: 'org.apache.logging.log4j', module: 'log4j-core' - } - implementation(group: 'org.elasticsearch', name: 'elasticsearch', version: '7.16.2') { - exclude group: 'org.apache.logging.log4j', module: 'log4j-api' - } - implementation 'org.jooq:jool-java-8:0.9.14' - implementation 'com.github.hmcts:ccd-case-document-am-client:1.7.1' - testImplementation group: 'com.github.hmcts', name: 'ccd-test-definitions', version: '7.22.3' testImplementation group: 'com.github.hmcts', name: 'befta-fw', version: '9.0.2' + testImplementation group: 'com.github.hmcts', name: 'fortify-client', version: '1.3.0', classifier: 'all' - contractTestImplementation "org.junit.jupiter:junit-jupiter-api:${junitJupiterVersion}" - contractTestImplementation "org.junit.jupiter:junit-jupiter-engine:${junitJupiterVersion}" - contractTestImplementation group: 'au.com.dius.pact.provider', name: 'junit5', version: versions.pact_version - contractTestImplementation group: 'au.com.dius.pact.provider', name: 'spring', version: versions.pact_version - contractTestImplementation group: 'au.com.dius.pact.provider', name: 'junit5spring', version: versions.pact_version - contractTestRuntimeOnly group: 'io.springfox', name: 'springfox-boot-starter', version: swagger2Version + contractTestImplementation group: 'au.com.dius.pact.provider', name: 'junit5', version: pactProviderVersion + contractTestImplementation group: 'au.com.dius.pact.provider', name: 'spring', version: pactProviderVersion + contractTestImplementation group: 'au.com.dius.pact.provider', name: 'junit5spring', version: pactProviderVersion contractTestImplementation group: 'io.vavr', name: 'vavr', version: '0.10.4' - contractTestImplementation group: 'org.springframework.security', name: 'spring-security-oauth2-client' - contractTestImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-oauth2-resource-server' - contractTestImplementation group: 'org.springframework.security', name: 'spring-security-oauth2-resource-server' - contractTestImplementation group: 'org.springframework.security', name: 'spring-security-oauth2-core' - contractTestImplementation group: 'org.springframework.security', name: 'spring-security-oauth2-jose' contractTestImplementation group: 'com.microsoft.azure', name: 'applicationinsights-core', version: '2.6.1' - contractTestImplementation group: 'javax.inject', name: 'javax.inject', version: '1' - contractTestImplementation group: 'com.github.hmcts', name: 'idam-java-client', version: '2.0.1' - contractTestImplementation('org.springframework.hateoas:spring-hateoas:1.5.5') contractTestImplementation(group: 'io.searchbox', name: 'jest', version: '6.3.1') { exclude group: 'org.apache.logging.log4j', module: 'log4j-core' } - contractTestImplementation(group: 'org.springframework.boot', name: 'spring-boot-starter-jdbc') { - exclude group: 'org.apache.tomcat', module: 'tomcat-jdbc' - } - contractTestImplementation("org.springframework.boot:spring-boot-starter-data-jpa") contractTestImplementation group: 'org.apache.commons', name: 'commons-jexl3', version: '3.1' contractTestImplementation(group: 'org.elasticsearch', name: 'elasticsearch', version: '7.16.2') { exclude group: 'org.apache.logging.log4j', module: 'log4j-api' } - contractTestImplementation 'com.github.hmcts:ccd-case-document-am-client:1.7.1' - contractTestAnnotationProcessor group: 'org.projectlombok', name: 'lombok', version: '1.18.28' - contractTestImplementation 'org.springframework.boot:spring-boot-starter-cache' - contractTestImplementation 'com.github.ben-manes.caffeine:caffeine:3.1.6' - aatImplementation group: 'commons-lang', name: 'commons-lang', version: '2.6' - aatImplementation group: 'io.rest-assured', name: 'rest-assured', version: '4.3.0' - aatImplementation group: 'org.projectlombok', name: 'lombok', version: '1.18.28' - aatAnnotationProcessor group: 'org.projectlombok', name: 'lombok', version: '1.18.28' } // end::dependencies[] @@ -384,32 +287,12 @@ dependencyManagement { } dependencies { - // Versions prior to 30.0 vulnerable to CVE-2020-8908 - dependency 'com.google.guava:guava:32.1.2-jre' - - // CVE-2023-41080 - dependencySet(group: 'org.apache.tomcat.embed', version: '9.0.82') { - entry 'tomcat-embed-core' - entry 'tomcat-embed-el' - entry 'tomcat-embed-websocket' - } - // CVE-2019-10086 - dependencySet(group: 'commons-beanutils', version: '1.9.4') { - entry 'commons-beanutils' - } - - // Required for Embedded ES with Java 11 - dependency 'org.rauschig:jarchivelib:1.0.0' - // Remove once BEFTA rest-assured is updated - dependencySet(group: 'io.rest-assured', version: '4.3.0') { - entry 'json-path' - entry 'xml-path' - } - dependencySet(group: 'org.codehaus.groovy', version: '3.0.2') { + dependencySet(group: 'org.codehaus.groovy', version: '4.0.22') { entry 'groovy' entry 'groovy-xml' entry 'groovy-json' + entry 'groovy-all' } } } diff --git a/src/aat/java/uk/gov/hmcts/ccd/datastore/tests/v2/internal/GetUIStartTriggerTest.java b/src/aat/java/uk/gov/hmcts/ccd/datastore/tests/v2/internal/GetUIStartTriggerTest.java index 84e0de28df..db66014dc6 100644 --- a/src/aat/java/uk/gov/hmcts/ccd/datastore/tests/v2/internal/GetUIStartTriggerTest.java +++ b/src/aat/java/uk/gov/hmcts/ccd/datastore/tests/v2/internal/GetUIStartTriggerTest.java @@ -12,7 +12,7 @@ import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.isEmptyString; +import static org.hamcrest.Matchers.emptyString; import static org.hamcrest.Matchers.not; import static org.hamcrest.Matchers.nullValue; import static uk.gov.hmcts.ccd.datastore.tests.fixture.AATCaseType.CASE_TYPE; @@ -46,7 +46,7 @@ void shouldRetrieveWhenExists() { // Metadata .body("id", equalTo(CREATE)) - .body("event_token", is(not(isEmptyString()))) + .body("event_token", is(not(emptyString()))) .body("name", is(CREATE_NAME)) .body("description", is(nullValue())) .body("case_id", is(nullValue())) diff --git a/src/aat/resources/features/F-1003 - Case Creation With Documents/S-1032.1.td.json b/src/aat/resources/features/F-1003 - Case Creation With Documents/S-1032.1.td.json index e800c0b1d4..4d410cfaef 100644 --- a/src/aat/resources/features/F-1003 - Case Creation With Documents/S-1032.1.td.json +++ b/src/aat/resources/features/F-1003 - Case Creation With Documents/S-1032.1.td.json @@ -13,7 +13,7 @@ "expectedResponse": { "_extends_": "Common_400_Response", "body": { - "exception": "javax.validation.ConstraintViolationException", + "exception": "jakarta.validation.ConstraintViolationException", "message": "createCase.caseTypeId: Case Type Id is invalid", "path" : "/case-types/BEFTA_%2526%255E%2524%25C2%25A3CASETYPE_2_1/cases", "details": null, diff --git a/src/contractTest/java/uk/gov/hmcts/ccd/WireMockBaseTest.java b/src/contractTest/java/uk/gov/hmcts/ccd/WireMockBaseContractTest.java similarity index 97% rename from src/contractTest/java/uk/gov/hmcts/ccd/WireMockBaseTest.java rename to src/contractTest/java/uk/gov/hmcts/ccd/WireMockBaseContractTest.java index c2ac093995..ce83264012 100644 --- a/src/contractTest/java/uk/gov/hmcts/ccd/WireMockBaseTest.java +++ b/src/contractTest/java/uk/gov/hmcts/ccd/WireMockBaseContractTest.java @@ -18,11 +18,11 @@ import org.springframework.context.annotation.Configuration; import org.springframework.test.util.ReflectionTestUtils; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.io.IOException; @AutoConfigureWireMock(port = 0) -public abstract class WireMockBaseTest { +public abstract class WireMockBaseContractTest { private static final Logger LOG = LoggerFactory.getLogger(WireMockBaseTest.class); diff --git a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/CasesControllerProviderTest.java b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/CasesControllerProviderTest.java index cf91b5b6da..3727d429c7 100644 --- a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/CasesControllerProviderTest.java +++ b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/CasesControllerProviderTest.java @@ -19,7 +19,7 @@ import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit.jupiter.SpringExtension; -import uk.gov.hmcts.ccd.WireMockBaseTest; +import uk.gov.hmcts.ccd.WireMockBaseContractTest; import uk.gov.hmcts.ccd.auditlog.AuditService; import uk.gov.hmcts.ccd.data.casedetails.query.UserAuthorisationSecurity; import uk.gov.hmcts.ccd.domain.model.definition.CaseDetails; @@ -55,7 +55,7 @@ @TestPropertySource(locations = "/application.properties") @ActiveProfiles("SECURITY_MOCK") @IgnoreNoPactsToVerify -public class CasesControllerProviderTest extends WireMockBaseTest { +public class CasesControllerProviderTest extends WireMockBaseContractTest { private static final String CASEWORKER_USERNAME = "caseworkerUsername"; private static final String CASEWORKER_PASSWORD = "caseworkerPassword"; diff --git a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/ContractTestSubmitCaseTransaction.java b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/ContractTestSubmitCaseTransaction.java index d74e597156..ef5d5d8ae7 100644 --- a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/ContractTestSubmitCaseTransaction.java +++ b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/ContractTestSubmitCaseTransaction.java @@ -1,6 +1,6 @@ package uk.gov.hmcts.ccd.v2.external.controller; -import javax.inject.Inject; +import jakarta.inject.Inject; import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Service; diff --git a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/SecurityMockConfiguration.java b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/SecurityMockConfiguration.java index 6eec7dee5d..bc13d988f8 100644 --- a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/SecurityMockConfiguration.java +++ b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/SecurityMockConfiguration.java @@ -1,14 +1,15 @@ package uk.gov.hmcts.ccd.v2.external.controller; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; -import org.springframework.core.annotation.Order; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.builders.WebSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.config.annotation.web.configuration.WebSecurityCustomizer; import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationConverter; +import org.springframework.security.web.SecurityFilterChain; + import uk.gov.hmcts.ccd.data.SecurityUtils; import uk.gov.hmcts.ccd.security.JwtGrantedAuthoritiesConverter; import uk.gov.hmcts.ccd.security.filters.SecurityLoggingFilter; @@ -18,15 +19,14 @@ import java.util.Collection; import java.util.Optional; import java.util.function.Function; -import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; +import jakarta.inject.Inject; +import jakarta.servlet.http.HttpServletRequest; @Profile("SECURITY_MOCK") @Configuration @EnableWebSecurity -@Order(1) -public class SecurityMockConfiguration extends WebSecurityConfigurerAdapter { +public class SecurityMockConfiguration { private final ServiceAuthFilter serviceAuthFilter; @@ -49,10 +49,9 @@ public SecurityMockConfiguration(final JwtGrantedAuthoritiesConverter jwtGranted jwtAuthenticationConverter.setJwtGrantedAuthoritiesConverter(jwtGrantedAuthoritiesConverter); } - - @Override - public void configure(WebSecurity web) { - web.ignoring().antMatchers( + @Bean + public WebSecurityCustomizer webSecurityCustomizer() { + return (web) -> web.ignoring().requestMatchers( "/case-types/**", "/caseworkers/**", "/citizens/**", @@ -61,14 +60,15 @@ public void configure(WebSecurity web) { "/"); } - @Override - protected void configure(HttpSecurity http) throws Exception { - http.authorizeRequests().antMatchers( + @Bean + public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { + http.authorizeHttpRequests().requestMatchers( "/case-types/**", "/caseworkers/**", "/citizens/**", "/searchCases/**", "/cases/**" ).permitAll(); + return http.build(); } } diff --git a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/TestIdamConfiguration.java b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/TestIdamConfiguration.java index ffe0b0562f..3d3d17d0ae 100644 --- a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/TestIdamConfiguration.java +++ b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/TestIdamConfiguration.java @@ -22,7 +22,7 @@ public ClientRegistrationRepository clientRegistrationRepository() { private ClientRegistration clientRegistration() { return ClientRegistration.withRegistrationId("oidc") - .redirectUriTemplate("{baseUrl}/{action}/oauth2/code/{registrationId}") + .redirectUri("{baseUrl}/{action}/oauth2/code/{registrationId}") .authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE) .scope("read:user") .authorizationUri("http://idam/o/authorize") diff --git a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTest.java b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTest.java index 12188096f9..6267ab040f 100644 --- a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTest.java +++ b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTest.java @@ -18,7 +18,7 @@ import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; import uk.gov.hmcts.ccd.ApplicationParams; -import uk.gov.hmcts.ccd.WireMockBaseTest; +import uk.gov.hmcts.ccd.WireMockBaseContractTest; import uk.gov.hmcts.ccd.data.SecurityUtils; import uk.gov.hmcts.ccd.domain.model.std.CaseAssignedUserRole; import uk.gov.hmcts.ccd.domain.service.caseaccess.CaseAccessOperation; @@ -41,7 +41,7 @@ @ContextConfiguration(classes = {CaseAssignedUserRolesProviderTestContext.class, TestIdamConfiguration.class}) @IgnoreNoPactsToVerify @ActiveProfiles("CASE_ASSIGNED") -public class CaseAssignedUserRolesProviderTest extends WireMockBaseTest { +public class CaseAssignedUserRolesProviderTest extends WireMockBaseContractTest { @Autowired ApplicationParams applicationParams; diff --git a/src/main/java/uk/gov/hmcts/ccd/ApplicationParams.java b/src/main/java/uk/gov/hmcts/ccd/ApplicationParams.java index 1f730a41df..dd9c3251c2 100644 --- a/src/main/java/uk/gov/hmcts/ccd/ApplicationParams.java +++ b/src/main/java/uk/gov/hmcts/ccd/ApplicationParams.java @@ -3,8 +3,8 @@ import org.springframework.beans.factory.annotation.Value; import uk.gov.hmcts.ccd.endpoint.exceptions.ServiceException; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.time.Duration; diff --git a/src/main/java/uk/gov/hmcts/ccd/AuthCheckerConfiguration.java b/src/main/java/uk/gov/hmcts/ccd/AuthCheckerConfiguration.java index 0be231fdee..3f1f8aa237 100644 --- a/src/main/java/uk/gov/hmcts/ccd/AuthCheckerConfiguration.java +++ b/src/main/java/uk/gov/hmcts/ccd/AuthCheckerConfiguration.java @@ -5,7 +5,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.util.Collection; import java.util.Optional; import java.util.function.Function; diff --git a/src/main/java/uk/gov/hmcts/ccd/CoreCaseDataApplication.java b/src/main/java/uk/gov/hmcts/ccd/CoreCaseDataApplication.java index c941d4e4de..07c89239c3 100644 --- a/src/main/java/uk/gov/hmcts/ccd/CoreCaseDataApplication.java +++ b/src/main/java/uk/gov/hmcts/ccd/CoreCaseDataApplication.java @@ -2,6 +2,7 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.hateoas.config.EnableHypermediaSupport; @@ -13,7 +14,13 @@ @SpringBootApplication @EnableTransactionManagement(proxyTargetClass = true) @EnableRetry -@ComponentScan({ "uk.gov.hmcts.ccd" }) +@ComponentScan({ + "uk.gov.hmcts.ccd" +}) +@EnableFeignClients(basePackages = { + "uk.gov.hmcts.reform.idam", + "uk.gov.hmcts.reform.ccd.document.am.feign" +}) @EnableHypermediaSupport(type = { EnableHypermediaSupport.HypermediaType.HAL }) public class CoreCaseDataApplication { diff --git a/src/main/java/uk/gov/hmcts/ccd/RestTemplateConfiguration.java b/src/main/java/uk/gov/hmcts/ccd/RestTemplateConfiguration.java index b3d94af9da..0540c94a85 100644 --- a/src/main/java/uk/gov/hmcts/ccd/RestTemplateConfiguration.java +++ b/src/main/java/uk/gov/hmcts/ccd/RestTemplateConfiguration.java @@ -1,9 +1,15 @@ package uk.gov.hmcts.ccd; -import org.apache.http.client.HttpClient; -import org.apache.http.client.config.RequestConfig; -import org.apache.http.impl.client.HttpClientBuilder; -import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; +import org.apache.hc.client5.http.HttpRoute; +import org.apache.hc.client5.http.classic.HttpClient; +import org.apache.hc.client5.http.config.ConnectionConfig; +import org.apache.hc.client5.http.config.RequestConfig; +import org.apache.hc.client5.http.impl.classic.HttpClientBuilder; +import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager; +import org.apache.hc.core5.function.Resolver; +import org.apache.hc.core5.http.io.SocketConfig; +import org.apache.hc.core5.util.TimeValue; +import org.apache.hc.core5.util.Timeout; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; @@ -15,7 +21,7 @@ import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.web.client.RestTemplate; -import javax.annotation.PreDestroy; +import jakarta.annotation.PreDestroy; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -69,7 +75,6 @@ public RestTemplate restTemplate() { final RestTemplate restTemplate = new RestTemplate(); HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(getHttpClient()); - requestFactory.setReadTimeout(readTimeout); LOG.info("readTimeout: {}", readTimeout); restTemplate.setRequestFactory(requestFactory); return restTemplate; @@ -81,7 +86,6 @@ public RestTemplate documentRestTemplate() { final RestTemplate restTemplate = new RestTemplate(); HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(getHttpClient()); - requestFactory.setReadTimeout(readTimeout); LOG.info("readTimeout: {}", readTimeout); restTemplate.setRequestFactory(requestFactory); @@ -136,17 +140,34 @@ private HttpClient getHttpClient(final int timeout) { LOG.info("connectionTimeout: {}", timeout); cm.setMaxTotal(maxTotalHttpClient); - cm.closeIdleConnections(maxSecondsIdleConnection, TimeUnit.SECONDS); + cm.closeIdle(TimeValue.ofSeconds(maxSecondsIdleConnection)); cm.setDefaultMaxPerRoute(maxClientPerRoute); - cm.setValidateAfterInactivity(validateAfterInactivity); - final RequestConfig - config = + Resolver connectionConfigResolver = new Resolver() { + @Override + public ConnectionConfig resolve(HttpRoute route) { + return ConnectionConfig.custom() + .setConnectTimeout(Timeout.ofSeconds(timeout)) + .setSocketTimeout(Timeout.ofSeconds(timeout)) + .setValidateAfterInactivity(TimeValue.ofSeconds(validateAfterInactivity)) + .build(); + } + }; + cm.setConnectionConfigResolver(connectionConfigResolver); + Resolver socketConfigResolver = new Resolver() { + @Override + public SocketConfig resolve(HttpRoute route) { + return SocketConfig.custom() + .setSoTimeout(Timeout.ofSeconds(readTimeout)) + .build(); + } + }; + cm.setSocketConfigResolver(socketConfigResolver); + final RequestConfig config = RequestConfig.custom() - .setConnectTimeout(timeout) - .setConnectionRequestTimeout(timeout) - .setSocketTimeout(timeout) + .setConnectionRequestTimeout(timeout, TimeUnit.SECONDS) .build(); + return HttpClientBuilder.create() .useSystemProperties() .setDefaultRequestConfig(config) diff --git a/src/main/java/uk/gov/hmcts/ccd/SecurityConfiguration.java b/src/main/java/uk/gov/hmcts/ccd/SecurityConfiguration.java index ce4e0f3ad3..6214075ead 100644 --- a/src/main/java/uk/gov/hmcts/ccd/SecurityConfiguration.java +++ b/src/main/java/uk/gov/hmcts/ccd/SecurityConfiguration.java @@ -4,9 +4,8 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.builders.WebSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.config.annotation.web.configuration.WebSecurityCustomizer; import org.springframework.security.oauth2.core.DelegatingOAuth2TokenValidator; import org.springframework.security.oauth2.core.OAuth2TokenValidator; import org.springframework.security.oauth2.jwt.Jwt; @@ -16,7 +15,9 @@ import org.springframework.security.oauth2.jwt.JwtTimestampValidator; import org.springframework.security.oauth2.jwt.NimbusJwtDecoder; import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationConverter; -import org.springframework.security.oauth2.server.resource.web.BearerTokenAuthenticationFilter; +import org.springframework.security.oauth2.server.resource.web.authentication.BearerTokenAuthenticationFilter; +import org.springframework.security.web.SecurityFilterChain; + import uk.gov.hmcts.ccd.data.SecurityUtils; import uk.gov.hmcts.ccd.security.JwtGrantedAuthoritiesConverter; import uk.gov.hmcts.ccd.security.filters.ExceptionHandlingFilter; @@ -24,8 +25,8 @@ import uk.gov.hmcts.ccd.security.filters.V1EndpointsPathParamSecurityFilter; import uk.gov.hmcts.reform.authorisation.filters.ServiceAuthFilter; -import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; +import jakarta.inject.Inject; +import jakarta.servlet.http.HttpServletRequest; import java.util.Collection; import java.util.Optional; import java.util.function.Function; @@ -34,7 +35,7 @@ @Configuration @EnableWebSecurity -public class SecurityConfiguration extends WebSecurityConfigurerAdapter { +public class SecurityConfiguration { @Value("${spring.security.oauth2.client.provider.oidc.issuer-uri}") private String issuerUri; @@ -78,35 +79,30 @@ public SecurityConfiguration(final JwtGrantedAuthoritiesConverter jwtGrantedAuth jwtAuthenticationConverter.setJwtGrantedAuthoritiesConverter(jwtGrantedAuthoritiesConverter); } - @Override - public void configure(WebSecurity web) { - web.ignoring().antMatchers(AUTH_WHITELIST); + @Bean + public WebSecurityCustomizer webSecurityCustomizer() { + return (web) -> web.ignoring().requestMatchers(AUTH_WHITELIST); } - @Override - protected void configure(final HttpSecurity http) throws Exception { + @Bean + public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http .addFilterBefore(exceptionHandlingFilter, BearerTokenAuthenticationFilter.class) .addFilterBefore(serviceAuthFilter, BearerTokenAuthenticationFilter.class) .addFilterAfter(securityLoggingFilter, BearerTokenAuthenticationFilter.class) .addFilterAfter(v1EndpointsPathParamSecurityFilter, SecurityLoggingFilter.class) - .sessionManagement().sessionCreationPolicy(STATELESS).and() - .csrf().disable() - .formLogin().disable() - .logout().disable() - .authorizeRequests() - // To preserve v1EndpointsPathParamSecurityFilter 403 response - .antMatchers("/error").permitAll() - .anyRequest() - .authenticated() - .and() - .oauth2ResourceServer() - .jwt() - .jwtAuthenticationConverter(jwtAuthenticationConverter) - .and() - .and() + .sessionManagement(sm -> sm.sessionCreationPolicy(STATELESS)) + .csrf(csrf -> csrf.disable()) + .formLogin(fl -> fl.disable()) + .logout(logout -> logout.disable()) + .authorizeHttpRequests(auth -> + auth.requestMatchers("/error") + .permitAll() + .anyRequest() + .authenticated()) + .oauth2ResourceServer(oauth -> oauth.jwt().jwtAuthenticationConverter(jwtAuthenticationConverter)) .oauth2Client(); - + return http.build(); } @Bean diff --git a/src/main/java/uk/gov/hmcts/ccd/TransactionConfiguration.java b/src/main/java/uk/gov/hmcts/ccd/TransactionConfiguration.java index 2dfccfa273..cbb2e7cf7d 100644 --- a/src/main/java/uk/gov/hmcts/ccd/TransactionConfiguration.java +++ b/src/main/java/uk/gov/hmcts/ccd/TransactionConfiguration.java @@ -7,7 +7,7 @@ import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement; -import javax.persistence.EntityManagerFactory; +import jakarta.persistence.EntityManagerFactory; @Configuration @EnableTransactionManagement diff --git a/src/main/java/uk/gov/hmcts/ccd/auditlog/AuditInterceptor.java b/src/main/java/uk/gov/hmcts/ccd/auditlog/AuditInterceptor.java index 9432b99235..ffc983b063 100644 --- a/src/main/java/uk/gov/hmcts/ccd/auditlog/AuditInterceptor.java +++ b/src/main/java/uk/gov/hmcts/ccd/auditlog/AuditInterceptor.java @@ -4,20 +4,20 @@ import org.slf4j.LoggerFactory; import org.springframework.lang.Nullable; import org.springframework.web.method.HandlerMethod; -import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; +import org.springframework.web.servlet.HandlerInterceptor; import uk.gov.hmcts.ccd.ApplicationParams; import uk.gov.hmcts.ccd.auditlog.aop.AuditAspect; import uk.gov.hmcts.ccd.auditlog.aop.AuditContext; import uk.gov.hmcts.ccd.auditlog.aop.AuditContextHolder; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.Base64; import java.util.List; -public class AuditInterceptor extends HandlerInterceptorAdapter { +public class AuditInterceptor implements HandlerInterceptor { private static final Logger LOG = LoggerFactory.getLogger(AuditAspect.class); diff --git a/src/main/java/uk/gov/hmcts/ccd/config/SwaggerConfiguration.java b/src/main/java/uk/gov/hmcts/ccd/config/SwaggerConfiguration.java index 359053fd06..d1a87d07e9 100644 --- a/src/main/java/uk/gov/hmcts/ccd/config/SwaggerConfiguration.java +++ b/src/main/java/uk/gov/hmcts/ccd/config/SwaggerConfiguration.java @@ -1,5 +1,6 @@ package uk.gov.hmcts.ccd.config; +import org.springdoc.core.models.GroupedOpenApi; import org.springframework.boot.actuate.autoconfigure.endpoint.web.CorsEndpointProperties; import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties; import org.springframework.boot.actuate.autoconfigure.web.server.ManagementPortType; @@ -15,25 +16,14 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.env.Environment; -import org.springframework.http.MediaType; import org.springframework.util.StringUtils; -import springfox.documentation.builders.ApiInfoBuilder; -import springfox.documentation.builders.PathSelectors; -import springfox.documentation.builders.RequestHandlerSelectors; -import springfox.documentation.builders.RequestParameterBuilder; -import springfox.documentation.service.ApiInfo; -import springfox.documentation.service.Contact; -import springfox.documentation.service.RequestParameter; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spring.web.plugins.Docket; + import uk.gov.hmcts.ccd.endpoint.std.CaseDetailsEndpoint; import uk.gov.hmcts.ccd.endpoint.ui.QueryEndpoint; import uk.gov.hmcts.ccd.v2.external.controller.CaseController; import uk.gov.hmcts.ccd.v2.internal.controller.UICaseController; import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; import java.util.Collection; import java.util.List; @@ -41,83 +31,32 @@ public class SwaggerConfiguration { @Bean - public Docket apiV1External() { - return getNewDocketForPackageOf(CaseDetailsEndpoint.class, "v1_external", apiV1Info()); + public GroupedOpenApi apiV1External() { + return getNewGroupedOpenApiForPackageOf(CaseDetailsEndpoint.class, "v1_external"); } @Bean - public Docket apiV2External() { + public GroupedOpenApi apiV2External() { - return getNewDocketForPackageOf(CaseController.class, "v2_external", apiV2Info()); + return getNewGroupedOpenApiForPackageOf(CaseController.class, "v2_external"); } @Bean - public Docket apiV1Internal() { + public GroupedOpenApi apiV1Internal() { - return getNewDocketForPackageOf(QueryEndpoint.class, "v1_internal", apiV1Info()); + return getNewGroupedOpenApiForPackageOf(QueryEndpoint.class, "v1_internal"); } @Bean - public Docket apiV2Internal() { - return getNewDocketForPackageOf(UICaseController.class, "v2_internal", apiV2Info()); - } - - private Docket getNewDocketForPackageOf(Class klazz, String groupName, ApiInfo apiInfo) { - return new Docket(DocumentationType.SWAGGER_2) - .groupName(groupName) - .select() - .apis(RequestHandlerSelectors.basePackage(klazz.getPackage().getName())) - .paths(PathSelectors.any()) - .build().useDefaultResponseMessages(false) - .apiInfo(apiInfo) - .globalRequestParameters(Arrays.asList(headerAuthorization(), headerServiceAuthorization())); - } - - private ApiInfo apiV1Info() { - return new ApiInfoBuilder() - .title("Core Case Data - Data store API") - .description("Create, modify, retrieve and search cases") - .license("") - .licenseUrl("") - .version("1.0.1") - .contact(new Contact("CCD", - "https://tools.hmcts.net/confluence/display/RCCD/Reform%3A+Core+Case+Data+Home", - "corecasedatateam@hmcts.net")) - .termsOfServiceUrl("") - .build(); - } - - private ApiInfo apiV2Info() { - return new ApiInfoBuilder() - .title("CCD Data Store API") - .description("Create, modify, retrieve and search cases") - .license("MIT") - .licenseUrl("https://opensource.org/licenses/MIT") - .version("2-beta") - .contact(new Contact("CCD", - "https://tools.hmcts.net/confluence/display/RCCD/Reform%3A+Core+Case+Data+Home", - "corecasedatateam@hmcts.net")) - .build(); - } - - private RequestParameter headerAuthorization() { - return new RequestParameterBuilder() - .name("Authorization") - .description("Keyword `Bearer` followed by a valid IDAM user token") - .in("header") - .accepts(Collections.singleton(MediaType.APPLICATION_JSON)) - .required(true) - .build(); + public GroupedOpenApi apiV2Internal() { + return getNewGroupedOpenApiForPackageOf(UICaseController.class, "v2_internal"); } - private RequestParameter headerServiceAuthorization() { - return new RequestParameterBuilder() - .name("ServiceAuthorization") - .description("Valid Service-to-Service JWT token for a whitelisted micro-service") - .in("header") - .accepts(Collections.singleton(MediaType.APPLICATION_JSON)) - .required(true) - .build(); + private GroupedOpenApi getNewGroupedOpenApiForPackageOf(Class klazz, String groupName) { + return GroupedOpenApi.builder() + .group(groupName) + .packagesToScan(klazz.getPackage().getName()) + .build(); } //CCD-3509 CVE-2021-22044 required to fix null pointers in integration tests, @@ -140,7 +79,7 @@ public WebMvcEndpointHandlerMapping webEndpointServletHandlerMapping(WebEndpoint return new WebMvcEndpointHandlerMapping(endpointMapping, webEndpoints, endpointMediaTypes, corsProperties.toCorsConfiguration(), new EndpointLinksResolver(allEndpoints, basePath), - shouldRegisterLinksMapping, null); + shouldRegisterLinksMapping); } private boolean shouldRegisterLinksMapping(WebEndpointProperties webEndpointProperties, Environment environment, diff --git a/src/main/java/uk/gov/hmcts/ccd/data/JsonDataConverter.java b/src/main/java/uk/gov/hmcts/ccd/data/JsonDataConverter.java index a5b06ac1d2..296e2ccbb7 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/JsonDataConverter.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/JsonDataConverter.java @@ -4,8 +4,8 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; -import javax.persistence.AttributeConverter; -import javax.persistence.Converter; +import jakarta.persistence.AttributeConverter; +import jakarta.persistence.Converter; import java.io.IOException; @Converter(autoApply = true) diff --git a/src/main/java/uk/gov/hmcts/ccd/data/ReferenceDataRepository.java b/src/main/java/uk/gov/hmcts/ccd/data/ReferenceDataRepository.java index fa0e4a2517..7db9a51440 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/ReferenceDataRepository.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/ReferenceDataRepository.java @@ -14,8 +14,8 @@ import uk.gov.hmcts.ccd.domain.model.refdata.BuildingLocation; import uk.gov.hmcts.ccd.domain.model.refdata.ServiceReferenceData; -import javax.inject.Inject; -import javax.inject.Named; +import jakarta.inject.Inject; +import jakarta.inject.Named; import java.util.Arrays; import java.util.Collections; import java.util.List; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/SignificantItemEntity.java b/src/main/java/uk/gov/hmcts/ccd/data/SignificantItemEntity.java index 95099fffc2..4081c93c03 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/SignificantItemEntity.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/SignificantItemEntity.java @@ -3,17 +3,17 @@ import uk.gov.hmcts.ccd.data.casedetails.CaseAuditEventEntity; import uk.gov.hmcts.ccd.domain.model.callbacks.SignificantItemType; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.OneToOne; -import javax.persistence.Table; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; @Table(name = "case_event_significant_items") @Entity diff --git a/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/AMSwitch.java b/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/AMSwitch.java index ab397f9309..bee2de547a 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/AMSwitch.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/AMSwitch.java @@ -3,8 +3,8 @@ import com.google.common.collect.Maps; import uk.gov.hmcts.ccd.ApplicationParams; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.util.Map; @Named diff --git a/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/CaseUserAuditEntity.java b/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/CaseUserAuditEntity.java index e78eb53fa6..cffd5469e1 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/CaseUserAuditEntity.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/CaseUserAuditEntity.java @@ -2,14 +2,14 @@ import org.hibernate.annotations.CreationTimestamp; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import java.time.LocalDateTime; @Entity diff --git a/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/CaseUserAuditRepository.java b/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/CaseUserAuditRepository.java index d57fc42eac..4699f708b8 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/CaseUserAuditRepository.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/CaseUserAuditRepository.java @@ -3,11 +3,11 @@ import uk.gov.hmcts.ccd.data.SecurityUtils; import uk.gov.hmcts.ccd.data.caseaccess.CaseUserAuditEntity.Action; -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; +import jakarta.inject.Inject; +import jakarta.inject.Named; +import jakarta.inject.Singleton; +import jakarta.persistence.EntityManager; +import jakarta.persistence.PersistenceContext; import static uk.gov.hmcts.ccd.data.caseaccess.CaseUserAuditEntity.Action.GRANT; import static uk.gov.hmcts.ccd.data.caseaccess.CaseUserAuditEntity.Action.REVOKE; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/CaseUserEntity.java b/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/CaseUserEntity.java index 5a95a917d6..641ac0f822 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/CaseUserEntity.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/CaseUserEntity.java @@ -1,11 +1,11 @@ package uk.gov.hmcts.ccd.data.caseaccess; -import javax.persistence.Column; -import javax.persistence.EmbeddedId; -import javax.persistence.Entity; -import javax.persistence.NamedQueries; -import javax.persistence.NamedQuery; -import javax.persistence.Table; +import jakarta.persistence.Column; +import jakarta.persistence.EmbeddedId; +import jakarta.persistence.Entity; +import jakarta.persistence.NamedQueries; +import jakarta.persistence.NamedQuery; +import jakarta.persistence.Table; import java.io.Serializable; @Entity diff --git a/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/DefaultCaseRoleRepository.java b/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/DefaultCaseRoleRepository.java index 6216a2a0e2..1c8e1821d0 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/DefaultCaseRoleRepository.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/DefaultCaseRoleRepository.java @@ -20,7 +20,7 @@ import java.util.Arrays; import java.util.Set; import java.util.stream.Collectors; -import javax.inject.Inject; +import jakarta.inject.Inject; import static org.springframework.http.HttpMethod.GET; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/DefaultCaseUserRepository.java b/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/DefaultCaseUserRepository.java index 816fc87d1e..91989d1c22 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/DefaultCaseUserRepository.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/DefaultCaseUserRepository.java @@ -4,10 +4,10 @@ import org.springframework.stereotype.Repository; import uk.gov.hmcts.ccd.domain.service.casedataaccesscontrol.RoleAssignmentCategoryService; -import javax.inject.Inject; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; -import javax.persistence.TypedQuery; +import jakarta.inject.Inject; +import jakarta.persistence.EntityManager; +import jakarta.persistence.PersistenceContext; +import jakarta.persistence.TypedQuery; import java.util.List; import java.util.Set; import java.util.stream.Collectors; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CachedCaseDetailsRepository.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CachedCaseDetailsRepository.java index ee6bb7becc..3dc8e7d57f 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CachedCaseDetailsRepository.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CachedCaseDetailsRepository.java @@ -15,7 +15,7 @@ import java.util.function.Function; import java.util.stream.Collectors; -import javax.inject.Inject; +import jakarta.inject.Inject; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventEntity.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventEntity.java index 75226ce6e4..3fad67e2ce 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventEntity.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventEntity.java @@ -5,19 +5,19 @@ import uk.gov.hmcts.ccd.data.JsonDataConverter; import uk.gov.hmcts.ccd.data.SignificantItemEntity; -import javax.persistence.CascadeType; -import javax.persistence.Column; -import javax.persistence.Convert; -import javax.persistence.Entity; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.NamedQueries; -import javax.persistence.NamedQuery; -import javax.persistence.OneToOne; -import javax.persistence.Table; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Convert; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.NamedQueries; +import jakarta.persistence.NamedQuery; +import jakarta.persistence.OneToOne; +import jakarta.persistence.Table; import java.time.LocalDateTime; import static uk.gov.hmcts.ccd.data.casedetails.CaseAuditEventEntity.FIND_BY_CASE_DATA_ID_HQL; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventMapper.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventMapper.java index 8fa0e74b5e..3338df8457 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventMapper.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventMapper.java @@ -2,8 +2,8 @@ import java.util.List; import java.util.stream.Collectors; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import uk.gov.hmcts.ccd.config.JacksonUtils; import uk.gov.hmcts.ccd.data.SignificantItemEntity; import uk.gov.hmcts.ccd.domain.model.callbacks.SignificantItem; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventRepository.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventRepository.java index 24e3bd1e91..902dbd0df5 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventRepository.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventRepository.java @@ -7,13 +7,13 @@ import uk.gov.hmcts.ccd.domain.model.std.AuditEvent; import uk.gov.hmcts.ccd.endpoint.exceptions.ResourceNotFoundException; -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; -import javax.persistence.EntityManager; -import javax.persistence.NoResultException; -import javax.persistence.PersistenceContext; -import javax.persistence.Query; +import jakarta.inject.Inject; +import jakarta.inject.Named; +import jakarta.inject.Singleton; +import jakarta.persistence.EntityManager; +import jakarta.persistence.NoResultException; +import jakarta.persistence.PersistenceContext; +import jakarta.persistence.Query; import java.util.List; import java.util.Optional; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseDetailsEntity.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseDetailsEntity.java index e7c5e6e0f7..8d5d8b43d5 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseDetailsEntity.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseDetailsEntity.java @@ -3,18 +3,18 @@ import com.fasterxml.jackson.databind.JsonNode; import uk.gov.hmcts.ccd.data.JsonDataConverter; -import javax.persistence.Column; -import javax.persistence.Convert; -import javax.persistence.Entity; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.NamedQueries; -import javax.persistence.NamedQuery; -import javax.persistence.Table; -import javax.persistence.Version; +import jakarta.persistence.Column; +import jakarta.persistence.Convert; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.NamedQueries; +import jakarta.persistence.NamedQuery; +import jakarta.persistence.Table; +import jakarta.persistence.Version; import java.time.LocalDate; import java.time.LocalDateTime; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseDetailsMapper.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseDetailsMapper.java index 2375de5cba..d719fcb6c4 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseDetailsMapper.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseDetailsMapper.java @@ -3,8 +3,8 @@ import uk.gov.hmcts.ccd.config.JacksonUtils; import uk.gov.hmcts.ccd.domain.model.definition.CaseDetails; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.util.List; import java.util.stream.Collectors; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/DefaultCaseDetailsRepository.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/DefaultCaseDetailsRepository.java index 130115ae71..34ed98c246 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/DefaultCaseDetailsRepository.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/DefaultCaseDetailsRepository.java @@ -18,14 +18,14 @@ import uk.gov.hmcts.ccd.endpoint.exceptions.ReferenceKeyUniqueConstraintException; import uk.gov.hmcts.ccd.endpoint.exceptions.ResourceNotFoundException; -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; -import javax.persistence.EntityManager; -import javax.persistence.OptimisticLockException; -import javax.persistence.PersistenceContext; -import javax.persistence.PersistenceException; -import javax.persistence.Query; +import jakarta.inject.Inject; +import jakarta.inject.Named; +import jakarta.inject.Singleton; +import jakarta.persistence.EntityManager; +import jakarta.persistence.OptimisticLockException; +import jakarta.persistence.PersistenceContext; +import jakarta.persistence.PersistenceException; +import jakarta.persistence.Query; import java.time.LocalDateTime; import java.time.ZoneOffset; import java.util.Collections; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/JurisdictionMapper.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/JurisdictionMapper.java index 64dd001a82..35785b0d29 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/JurisdictionMapper.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/JurisdictionMapper.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.data.casedetails; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import uk.gov.hmcts.ccd.domain.model.aggregated.JurisdictionDisplayProperties; import uk.gov.hmcts.ccd.domain.model.definition.JurisdictionDefinition; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/MetaDataQueryBuilder.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/MetaDataQueryBuilder.java index ac8cecbdc6..59c2721ec7 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/MetaDataQueryBuilder.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/MetaDataQueryBuilder.java @@ -1,10 +1,10 @@ package uk.gov.hmcts.ccd.data.casedetails; -import javax.inject.Named; -import javax.inject.Singleton; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; -import javax.persistence.Query; +import jakarta.inject.Named; +import jakarta.inject.Singleton; +import jakarta.persistence.EntityManager; +import jakarta.persistence.PersistenceContext; +import jakarta.persistence.Query; @Named @Singleton diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseDetailsQueryBuilder.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseDetailsQueryBuilder.java index 1c94ff9180..81ce686177 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseDetailsQueryBuilder.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseDetailsQueryBuilder.java @@ -6,15 +6,15 @@ import uk.gov.hmcts.ccd.data.casedetails.SecurityClassification; import uk.gov.hmcts.ccd.data.casedetails.search.MetaData; -import javax.persistence.EntityManager; -import javax.persistence.TypedQuery; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Order; -import javax.persistence.criteria.Path; -import javax.persistence.criteria.Predicate; -import javax.persistence.criteria.Root; -import javax.persistence.criteria.Subquery; +import jakarta.persistence.EntityManager; +import jakarta.persistence.TypedQuery; +import jakarta.persistence.criteria.CriteriaBuilder; +import jakarta.persistence.criteria.CriteriaQuery; +import jakarta.persistence.criteria.Order; +import jakarta.persistence.criteria.Path; +import jakarta.persistence.criteria.Predicate; +import jakarta.persistence.criteria.Root; +import jakarta.persistence.criteria.Subquery; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.ArrayList; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseDetailsQueryBuilderFactory.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseDetailsQueryBuilderFactory.java index baa4105b09..7f5e89eece 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseDetailsQueryBuilderFactory.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseDetailsQueryBuilderFactory.java @@ -5,7 +5,7 @@ import uk.gov.hmcts.ccd.data.casedetails.CaseDetailsEntity; import uk.gov.hmcts.ccd.data.casedetails.search.MetaData; -import javax.persistence.EntityManager; +import jakarta.persistence.EntityManager; import java.util.List; @Component diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/query/CountCaseDetailsQueryBuilder.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/query/CountCaseDetailsQueryBuilder.java index fb48ab9b1a..d0c2b9d7c9 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/query/CountCaseDetailsQueryBuilder.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/query/CountCaseDetailsQueryBuilder.java @@ -1,9 +1,9 @@ package uk.gov.hmcts.ccd.data.casedetails.query; -import javax.persistence.EntityManager; -import javax.persistence.TypedQuery; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Predicate; +import jakarta.persistence.EntityManager; +import jakarta.persistence.TypedQuery; +import jakarta.persistence.criteria.CriteriaQuery; +import jakarta.persistence.criteria.Predicate; public class CountCaseDetailsQueryBuilder extends CaseDetailsQueryBuilder { diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/query/SelectCaseDetailsQueryBuilder.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/query/SelectCaseDetailsQueryBuilder.java index f91753b649..62670d7143 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/query/SelectCaseDetailsQueryBuilder.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/query/SelectCaseDetailsQueryBuilder.java @@ -2,10 +2,10 @@ import uk.gov.hmcts.ccd.data.casedetails.CaseDetailsEntity; -import javax.persistence.EntityManager; -import javax.persistence.TypedQuery; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Predicate; +import jakarta.persistence.EntityManager; +import jakarta.persistence.TypedQuery; +import jakarta.persistence.criteria.CriteriaQuery; +import jakarta.persistence.criteria.Predicate; public class SelectCaseDetailsQueryBuilder extends CaseDetailsQueryBuilder { diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/query/SelectCaseDetailsReferenceQueryBuilder.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/query/SelectCaseDetailsReferenceQueryBuilder.java index 0d893361ec..d4b80abc1d 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/query/SelectCaseDetailsReferenceQueryBuilder.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/query/SelectCaseDetailsReferenceQueryBuilder.java @@ -1,9 +1,9 @@ package uk.gov.hmcts.ccd.data.casedetails.query; -import javax.persistence.EntityManager; -import javax.persistence.TypedQuery; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Predicate; +import jakarta.persistence.EntityManager; +import jakarta.persistence.TypedQuery; +import jakarta.persistence.criteria.CriteriaQuery; +import jakarta.persistence.criteria.Predicate; public class SelectCaseDetailsReferenceQueryBuilder extends CaseDetailsQueryBuilder { diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/search/CriterionFactory.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/search/CriterionFactory.java index b20b4953f5..f6d613306e 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/search/CriterionFactory.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/search/CriterionFactory.java @@ -10,8 +10,8 @@ import java.util.function.Consumer; import java.util.stream.Collectors; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import uk.gov.hmcts.ccd.data.casedetails.CaseDetailsEntity; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/search/FieldMapSanitizeOperation.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/search/FieldMapSanitizeOperation.java index abf37668cb..13001200d5 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/search/FieldMapSanitizeOperation.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/search/FieldMapSanitizeOperation.java @@ -4,8 +4,8 @@ import uk.gov.hmcts.ccd.endpoint.exceptions.BadRequestException; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.util.AbstractMap; import java.util.Map; import java.util.Map.Entry; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/search/SearchQueryFactoryOperation.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/search/SearchQueryFactoryOperation.java index 8954f67464..fb7058b348 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/search/SearchQueryFactoryOperation.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/search/SearchQueryFactoryOperation.java @@ -5,11 +5,11 @@ import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; -import javax.inject.Named; -import javax.inject.Singleton; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; -import javax.persistence.Query; +import jakarta.inject.Named; +import jakarta.inject.Singleton; +import jakarta.persistence.EntityManager; +import jakarta.persistence.PersistenceContext; +import jakarta.persistence.Query; import lombok.extern.slf4j.Slf4j; import uk.gov.hmcts.ccd.ApplicationParams; import uk.gov.hmcts.ccd.data.casedetails.CaseDetailsEntity; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/DefaultSupplementaryDataRepository.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/DefaultSupplementaryDataRepository.java index c4577681ea..e16274ee2f 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/DefaultSupplementaryDataRepository.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/DefaultSupplementaryDataRepository.java @@ -3,10 +3,10 @@ import com.fasterxml.jackson.databind.JsonNode; import java.util.List; import java.util.Set; -import javax.inject.Singleton; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; -import javax.persistence.Query; +import jakarta.inject.Singleton; +import jakarta.persistence.EntityManager; +import jakarta.persistence.PersistenceContext; +import jakarta.persistence.Query; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/FindSupplementaryDataQueryBuilder.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/FindSupplementaryDataQueryBuilder.java index 84be890a3a..3fb120e0f7 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/FindSupplementaryDataQueryBuilder.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/FindSupplementaryDataQueryBuilder.java @@ -1,8 +1,8 @@ package uk.gov.hmcts.ccd.data.casedetails.supplementarydata; -import com.vladmihalcea.hibernate.type.json.JsonNodeBinaryType; -import javax.persistence.EntityManager; -import javax.persistence.Query; +import jakarta.persistence.EntityManager; +import jakarta.persistence.Query; + import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; @@ -21,7 +21,7 @@ public Query build(EntityManager entityManager, Query selectQuery = entityManager.createNativeQuery(SUPPLEMENTARY_DATA_QUERY); selectQuery.setParameter("reference", caseReference); selectQuery.unwrap(org.hibernate.query.NativeQuery.class) - .addScalar("supplementary_data", JsonNodeBinaryType.INSTANCE); + .addScalar("supplementary_data", new SupplementaryDataUserType().getBasicTypeReference()); return selectQuery; } diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/IncrementSupplementaryDataQueryBuilder.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/IncrementSupplementaryDataQueryBuilder.java index 113f0438d8..1e12490f55 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/IncrementSupplementaryDataQueryBuilder.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/IncrementSupplementaryDataQueryBuilder.java @@ -2,8 +2,8 @@ import java.util.Arrays; import java.util.regex.Pattern; -import javax.persistence.EntityManager; -import javax.persistence.Query; +import jakarta.persistence.EntityManager; +import jakarta.persistence.Query; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SetSupplementaryDataQueryBuilder.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SetSupplementaryDataQueryBuilder.java index 05eaa09c2e..7882e2e2fd 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SetSupplementaryDataQueryBuilder.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SetSupplementaryDataQueryBuilder.java @@ -2,8 +2,8 @@ import java.util.Arrays; import java.util.regex.Pattern; -import javax.persistence.EntityManager; -import javax.persistence.Query; +import jakarta.persistence.EntityManager; +import jakarta.persistence.Query; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataQueryBuilder.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataQueryBuilder.java index e1326c84c9..effcfb8c8f 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataQueryBuilder.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataQueryBuilder.java @@ -5,11 +5,11 @@ import com.jayway.jsonpath.DocumentContext; import com.jayway.jsonpath.JsonPath; import com.jayway.jsonpath.PathNotFoundException; -import com.vladmihalcea.hibernate.type.json.JsonNodeBinaryType; + import java.util.Properties; import java.util.regex.Pattern; -import javax.persistence.EntityManager; -import javax.persistence.Query; +import jakarta.persistence.EntityManager; +import jakarta.persistence.Query; import org.hibernate.query.NativeQuery; import pl.jalokim.propertiestojson.util.PropertiesToJsonConverter; import uk.gov.hmcts.ccd.endpoint.exceptions.ServiceException; @@ -32,7 +32,7 @@ default void setCommonProperties(Query query, query.setParameter("value", fieldValue); query.setParameter("reference", caseReference); query.unwrap(NativeQuery.class) - .addScalar("supplementary_data", JsonNodeBinaryType.INSTANCE); + .addScalar("supplementary_data", new SupplementaryDataUserType().getBasicTypeReference()); } default String requestedDataToJson(String fieldPath, Object fieldValue) { diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserType.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserType.java new file mode 100644 index 0000000000..04d63a3bcf --- /dev/null +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserType.java @@ -0,0 +1,26 @@ +package uk.gov.hmcts.ccd.data.casedetails.supplementarydata; + +import com.vladmihalcea.hibernate.type.json.JsonNodeBinaryType; +import org.hibernate.type.BasicTypeReference; +import org.hibernate.type.SqlTypes; +import com.fasterxml.jackson.databind.JsonNode; + +public class SupplementaryDataUserType { + + private static JsonNodeBinaryType type = new JsonNodeBinaryType(); + private BasicTypeReference ref; + + public SupplementaryDataUserType() { + ref = new BasicTypeReference( + type.getName(), + JsonNode.class, + SqlTypes.OTHER, + type.getValueConverter() + ); + } + + public BasicTypeReference getBasicTypeReference() { + return ref; + } + +} \ No newline at end of file diff --git a/src/main/java/uk/gov/hmcts/ccd/data/caselinking/CaseLinkEntity.java b/src/main/java/uk/gov/hmcts/ccd/data/caselinking/CaseLinkEntity.java index 1ed245064f..87cc2391ba 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/caselinking/CaseLinkEntity.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/caselinking/CaseLinkEntity.java @@ -2,10 +2,10 @@ import lombok.EqualsAndHashCode; -import javax.persistence.Column; -import javax.persistence.EmbeddedId; -import javax.persistence.Entity; -import javax.persistence.Table; +import jakarta.persistence.Column; +import jakarta.persistence.EmbeddedId; +import jakarta.persistence.Entity; +import jakarta.persistence.Table; import java.io.Serializable; @Entity diff --git a/src/main/java/uk/gov/hmcts/ccd/data/definition/CachedUIDefinitionGateway.java b/src/main/java/uk/gov/hmcts/ccd/data/definition/CachedUIDefinitionGateway.java index 2dc3a43889..795f252caa 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/definition/CachedUIDefinitionGateway.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/definition/CachedUIDefinitionGateway.java @@ -13,9 +13,9 @@ import uk.gov.hmcts.ccd.domain.model.definition.WizardPage; import uk.gov.hmcts.ccd.domain.model.definition.WorkbasketInputFieldsDefinition; -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Inject; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.util.List; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGateway.java b/src/main/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGateway.java index ca3a2ef70f..bce290d136 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGateway.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGateway.java @@ -13,9 +13,9 @@ import uk.gov.hmcts.ccd.domain.model.definition.WorkbasketInputFieldsDefinition; import uk.gov.hmcts.ccd.endpoint.exceptions.ServiceException; -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Inject; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.net.URI; import java.util.List; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/definition/UIDefinitionRepository.java b/src/main/java/uk/gov/hmcts/ccd/data/definition/UIDefinitionRepository.java index ce6fe50c50..3f8e5a5c96 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/definition/UIDefinitionRepository.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/definition/UIDefinitionRepository.java @@ -9,9 +9,9 @@ import uk.gov.hmcts.ccd.domain.model.definition.WizardPage; import uk.gov.hmcts.ccd.domain.model.definition.WorkbasketInputFieldsDefinition; -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Inject; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.util.List; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/documentdata/DocumentDataRequest.java b/src/main/java/uk/gov/hmcts/ccd/data/documentdata/DocumentDataRequest.java index 9fb9e6fe04..356be951be 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/documentdata/DocumentDataRequest.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/documentdata/DocumentDataRequest.java @@ -1,6 +1,6 @@ package uk.gov.hmcts.ccd.data.documentdata; -import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; import lombok.AllArgsConstructor; import lombok.Data; @@ -9,7 +9,7 @@ @NoArgsConstructor @AllArgsConstructor @Data -@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) +@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) public class DocumentDataRequest { String attributePath; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/draft/DefaultDraftGateway.java b/src/main/java/uk/gov/hmcts/ccd/data/draft/DefaultDraftGateway.java index ebb1e95697..29f973026d 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/draft/DefaultDraftGateway.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/draft/DefaultDraftGateway.java @@ -13,7 +13,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.io.IOException; import java.net.URI; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/message/MessageCandidateMapper.java b/src/main/java/uk/gov/hmcts/ccd/data/message/MessageCandidateMapper.java index d2029dbb81..a2d3ef3724 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/message/MessageCandidateMapper.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/message/MessageCandidateMapper.java @@ -2,8 +2,8 @@ import uk.gov.hmcts.ccd.domain.model.std.MessageQueueCandidate; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; @Named @Singleton diff --git a/src/main/java/uk/gov/hmcts/ccd/data/message/MessageCandidateRepository.java b/src/main/java/uk/gov/hmcts/ccd/data/message/MessageCandidateRepository.java index 8d83229f1f..64552b4b5b 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/message/MessageCandidateRepository.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/message/MessageCandidateRepository.java @@ -2,11 +2,11 @@ import uk.gov.hmcts.ccd.domain.model.std.MessageQueueCandidate; -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; +import jakarta.inject.Inject; +import jakarta.inject.Named; +import jakarta.inject.Singleton; +import jakarta.persistence.EntityManager; +import jakarta.persistence.PersistenceContext; @Named @Singleton diff --git a/src/main/java/uk/gov/hmcts/ccd/data/message/MessageQueueCandidateEntity.java b/src/main/java/uk/gov/hmcts/ccd/data/message/MessageQueueCandidateEntity.java index 594bb774a3..a32acd1ae1 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/message/MessageQueueCandidateEntity.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/message/MessageQueueCandidateEntity.java @@ -5,12 +5,12 @@ import org.hibernate.annotations.CreationTimestamp; import uk.gov.hmcts.ccd.data.JsonDataConverter; -import javax.persistence.Convert; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; +import jakarta.persistence.Convert; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.Table; import java.time.LocalDateTime; @Table(name = "message_queue_candidates") diff --git a/src/main/java/uk/gov/hmcts/ccd/data/user/IdamJurisdictionsResolver.java b/src/main/java/uk/gov/hmcts/ccd/data/user/IdamJurisdictionsResolver.java index ec99a8188c..eb4d152a94 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/user/IdamJurisdictionsResolver.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/user/IdamJurisdictionsResolver.java @@ -4,7 +4,7 @@ import org.springframework.stereotype.Service; import org.springframework.web.context.annotation.RequestScope; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.util.List; @Service diff --git a/src/main/java/uk/gov/hmcts/ccd/data/user/UserService.java b/src/main/java/uk/gov/hmcts/ccd/data/user/UserService.java index a15502face..5195c4d092 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/user/UserService.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/user/UserService.java @@ -14,7 +14,7 @@ import uk.gov.hmcts.ccd.domain.model.aggregated.WorkbasketDefault; import uk.gov.hmcts.ccd.domain.model.definition.JurisdictionDefinition; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/enablingcondition/jexl/JexlEnablingConditionParser.java b/src/main/java/uk/gov/hmcts/ccd/domain/enablingcondition/jexl/JexlEnablingConditionParser.java index 0ba45a8e5d..c8370610ca 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/enablingcondition/jexl/JexlEnablingConditionParser.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/enablingcondition/jexl/JexlEnablingConditionParser.java @@ -11,7 +11,7 @@ import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; -import javax.inject.Inject; +import jakarta.inject.Inject; import org.apache.commons.jexl3.JexlBuilder; import org.apache.commons.jexl3.JexlEngine; import org.apache.commons.jexl3.JexlScript; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/aggregated/CaseUpdateViewEventBuilder.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/aggregated/CaseUpdateViewEventBuilder.java index 6032cd6695..bcd4eb8920 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/aggregated/CaseUpdateViewEventBuilder.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/aggregated/CaseUpdateViewEventBuilder.java @@ -1,8 +1,8 @@ package uk.gov.hmcts.ccd.domain.model.aggregated; import java.util.List; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import org.springframework.beans.factory.annotation.Qualifier; import uk.gov.hmcts.ccd.data.definition.CachedCaseDefinitionRepository; import uk.gov.hmcts.ccd.data.definition.CaseDefinitionRepository; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/aggregated/CaseViewFieldBuilder.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/aggregated/CaseViewFieldBuilder.java index 04f9238c68..834c07e9f9 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/aggregated/CaseViewFieldBuilder.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/aggregated/CaseViewFieldBuilder.java @@ -3,8 +3,8 @@ import uk.gov.hmcts.ccd.domain.model.definition.CaseEventFieldDefinition; import uk.gov.hmcts.ccd.domain.model.definition.CaseFieldDefinition; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.util.List; import java.util.Map; import java.util.function.Function; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/aggregated/CompoundFieldOrderService.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/aggregated/CompoundFieldOrderService.java index 5a67576e3d..1ddc0c7367 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/aggregated/CompoundFieldOrderService.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/aggregated/CompoundFieldOrderService.java @@ -7,8 +7,8 @@ import java.util.Objects; import java.util.function.Function; import java.util.stream.Collectors; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import org.apache.commons.collections.CollectionUtils; import uk.gov.hmcts.ccd.domain.model.definition.CaseEventFieldComplexDefinition; import uk.gov.hmcts.ccd.domain.model.definition.CaseFieldDefinition; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/aggregated/UserDefault.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/aggregated/UserDefault.java index 607f711c74..783001e728 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/aggregated/UserDefault.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/aggregated/UserDefault.java @@ -6,22 +6,23 @@ import static java.util.stream.Collectors.toList; import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModelProperty; + +import io.swagger.v3.oas.annotations.media.Schema; import uk.gov.hmcts.ccd.domain.model.definition.JurisdictionDefinition; public class UserDefault { private String id; private List jurisdictionDefinitions; - @ApiModelProperty(value = "") + @Schema @JsonProperty("work_basket_default_jurisdiction") private String workBasketDefaultJurisdiction; - @ApiModelProperty(value = "") + @Schema @JsonProperty("work_basket_default_case_type") private String workBasketDefaultCaseType; - @ApiModelProperty(value = "") + @Schema @JsonProperty("work_basket_default_state") private String workBasketDefaultState; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/aggregated/UserDefaultCollection.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/aggregated/UserDefaultCollection.java index fbf69deb07..050e435ce1 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/aggregated/UserDefaultCollection.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/aggregated/UserDefaultCollection.java @@ -1,12 +1,12 @@ package uk.gov.hmcts.ccd.domain.model.aggregated; import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; + +import io.swagger.v3.oas.annotations.media.Schema; import java.util.List; -@ApiModel +@Schema public class UserDefaultCollection { private List userDefaults; @@ -18,7 +18,7 @@ public UserDefaultCollection(List userDefaults) { this.userDefaults = userDefaults; } - @ApiModelProperty + @Schema @JsonProperty("user_profiles") public List getUserDefaults() { return userDefaults; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/callbacks/CallbackResponse.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/callbacks/CallbackResponse.java index 74f234348c..2cbdb75eaf 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/callbacks/CallbackResponse.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/callbacks/CallbackResponse.java @@ -4,7 +4,9 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.JsonNode; import com.google.common.base.Strings; -import io.swagger.annotations.ApiModelProperty; + +import io.swagger.v3.oas.annotations.media.Schema; + import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import uk.gov.hmcts.ccd.data.casedetails.SecurityClassification; @@ -18,10 +20,10 @@ public class CallbackResponse { private static final String CALLBACK_RESPONSE_KEY_STATE = "state"; - @ApiModelProperty("Case data as defined in case type definition. See `docs/api/case-data.md` for data structure.") + @Schema(description = "Case data as defined in case type definition. See `docs/api/case-data.md` for data structure.") private Map data; @JsonProperty("data_classification") - @ApiModelProperty("Same structure as `data` with classification (`PUBLIC`, `PRIVATE`, `RESTRICTED`) " + @Schema(description = "Same structure as `data` with classification (`PUBLIC`, `PRIVATE`, `RESTRICTED`) " + "as field's value.") private Map dataClassification; @JsonProperty("security_classification") diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/casedeletion/TTL.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/casedeletion/TTL.java index db3b8ddd0b..0477543b1f 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/casedeletion/TTL.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/casedeletion/TTL.java @@ -1,6 +1,6 @@ package uk.gov.hmcts.ccd.domain.model.casedeletion; -import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; import lombok.AllArgsConstructor; import lombok.Builder; @@ -10,7 +10,7 @@ import java.time.LocalDate; import java.util.Objects; -@JsonNaming(PropertyNamingStrategy.UpperCamelCaseStrategy.class) +@JsonNaming(PropertyNamingStrategies.UpperCamelCaseStrategy.class) @Builder @AllArgsConstructor @NoArgsConstructor diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/casefileview/CategoriesAndDocuments.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/casefileview/CategoriesAndDocuments.java index 5b19a09748..933d6e8307 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/casefileview/CategoriesAndDocuments.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/casefileview/CategoriesAndDocuments.java @@ -1,13 +1,13 @@ package uk.gov.hmcts.ccd.domain.model.casefileview; -import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; import lombok.Value; import java.util.List; @Value -@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) +@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) public class CategoriesAndDocuments { Integer caseVersion; List categories; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/casefileview/Category.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/casefileview/Category.java index a71879e7c0..c9ae741f60 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/casefileview/Category.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/casefileview/Category.java @@ -1,13 +1,13 @@ package uk.gov.hmcts.ccd.domain.model.casefileview; -import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; import lombok.Value; import java.util.List; @Value -@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) +@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) public class Category { String categoryId; String categoryName; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/casefileview/Document.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/casefileview/Document.java index 85c470403f..36ae45f01c 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/casefileview/Document.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/casefileview/Document.java @@ -1,15 +1,16 @@ package uk.gov.hmcts.ccd.domain.model.casefileview; -import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; -import io.swagger.annotations.ApiModel; + +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Value; import java.time.LocalDateTime; @Value -@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) -@ApiModel(value = "Document definition") +@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) +@Schema(description = "Document definition") public class Document { String documentURL; String documentFilename; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/common/HttpError.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/common/HttpError.java index ec47556230..dd9b63f0a3 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/common/HttpError.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/common/HttpError.java @@ -6,7 +6,7 @@ import org.springframework.web.context.request.WebRequest; import org.springframework.web.util.UriUtils; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.io.Serializable; import java.nio.charset.StandardCharsets; import java.time.LocalDateTime; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/AccessTypeDefinition.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/AccessTypeDefinition.java index 4d562a2ec2..be826b8a3e 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/AccessTypeDefinition.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/AccessTypeDefinition.java @@ -10,7 +10,7 @@ import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.Column; +import jakarta.persistence.Column; import java.io.Serial; import java.io.Serializable; import java.time.LocalDate; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/BannersResult.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/BannersResult.java index e40144e617..336836e953 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/BannersResult.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/BannersResult.java @@ -1,12 +1,13 @@ package uk.gov.hmcts.ccd.domain.model.definition; import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; + +import io.swagger.v3.oas.annotations.media.Schema; + import java.io.Serializable; import java.util.List; -@ApiModel(description = "") +@Schema public class BannersResult implements Serializable { private List banners; @@ -19,7 +20,7 @@ public BannersResult(List banners) { this.banners = banners; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("banners") public List getBanners() { return banners; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseDetails.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseDetails.java index 108c3e0e06..a50c80830a 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseDetails.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseDetails.java @@ -5,7 +5,9 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonSetter; import com.fasterxml.jackson.databind.JsonNode; -import io.swagger.annotations.ApiModelProperty; + +import io.swagger.v3.oas.annotations.media.Schema; + import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -70,11 +72,11 @@ public class CaseDetails implements Cloneable { private SecurityClassification securityClassification; @JsonProperty("case_data") - @ApiModelProperty("Case data as defined in case type definition. See `docs/api/case-data.md` for data structure.") + @Schema(description = "Case data as defined in case type definition. See `docs/api/case-data.md` for data structure.") private Map data; @JsonProperty("data_classification") - @ApiModelProperty("Same structure as `case_data` with classification (`PUBLIC`, `PRIVATE`, `RESTRICTED`) " + @Schema(description = "Same structure as `case_data` with classification (`PUBLIC`, `PRIVATE`, `RESTRICTED`) " + "as field's value.") private Map dataClassification; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseEventFieldDefinition.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseEventFieldDefinition.java index ecfc66f0f8..2f4e9752d5 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseEventFieldDefinition.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseEventFieldDefinition.java @@ -2,8 +2,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; + +import io.swagger.v3.oas.annotations.media.Schema; import lombok.ToString; import uk.gov.hmcts.ccd.domain.model.common.CommonDCPModel; @@ -12,7 +12,7 @@ import java.util.List; @ToString -@ApiModel(description = "") +@Schema public class CaseEventFieldDefinition implements Serializable, CommonDCPModel, Copyable { private String caseFieldId = null; @@ -29,7 +29,7 @@ public class CaseEventFieldDefinition implements Serializable, CommonDCPModel, C private List caseEventFieldComplexDefinitions = new ArrayList<>(); private String defaultValue; - @ApiModelProperty(required = true, value = "Foreign key to CaseField.id") + @Schema(required = true, description = "Foreign key to CaseField.id") @JsonProperty("case_field_id") public String getCaseFieldId() { return caseFieldId; @@ -39,7 +39,7 @@ public void setCaseFieldId(String caseFieldId) { this.caseFieldId = caseFieldId; } - @ApiModelProperty(value = "whether this field is optional, mandatory or read only for this event") + @Schema(description = "whether this field is optional, mandatory or read only for this event") @JsonProperty("display_context") public String getDisplayContext() { return displayContext; @@ -54,7 +54,7 @@ public void setDisplayContext(String displayContext) { this.displayContext = displayContext; } - @ApiModelProperty(value = "contain names of fields for list or table") + @Schema(description = "contain names of fields for list or table") @JsonProperty("display_context_parameter") public String getDisplayContextParameter() { return displayContextParameter; @@ -64,7 +64,7 @@ public void setDisplayContextParameter(String displayContextParameter) { this.displayContextParameter = displayContextParameter; } - @ApiModelProperty(value = "Show Condition expression for this field") + @Schema(description = "Show Condition expression for this field") @JsonProperty("show_condition") public String getShowCondition() { return showCondition; @@ -74,7 +74,7 @@ public void setShowCondition(String showCondition) { this.showCondition = showCondition; } - @ApiModelProperty(value = "Show Summary Change Option") + @Schema(description = "Show Summary Change Option") @JsonProperty("show_summary_change_option") public Boolean getShowSummaryChangeOption() { return showSummaryChangeOption; @@ -84,7 +84,7 @@ public void setShowSummaryChangeOption(final Boolean showSummaryChangeOption) { this.showSummaryChangeOption = showSummaryChangeOption; } - @ApiModelProperty(value = "Show Summary Content Option") + @Schema(description = "Show Summary Content Option") @JsonProperty("show_summary_content_option") public Integer getShowSummaryContentOption() { return showSummaryContentOption; @@ -97,7 +97,7 @@ public void setShowSummaryContentOption(Integer showSummaryContentOption) { /** * event case field label. **/ - @ApiModelProperty(value = "") + @Schema @JsonProperty("label") public String getLabel() { return label; @@ -110,7 +110,7 @@ public void setLabel(String label) { /** * event case field hint text. **/ - @ApiModelProperty(value = "") + @Schema @JsonProperty("hint_text") public String getHintText() { return hintText; @@ -120,7 +120,7 @@ public void setHintText(String hintText) { this.hintText = hintText; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("case_fields_complex") public List getCaseEventFieldComplexDefinitions() { return caseEventFieldComplexDefinitions; @@ -130,7 +130,7 @@ public void setCaseEventFieldComplexDefinitions(List { private static final long serialVersionUID = -4257574164546267919L; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseRoleDefinition.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseRoleDefinition.java index 8f0dcbd803..170ed38783 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseRoleDefinition.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseRoleDefinition.java @@ -3,11 +3,11 @@ import java.io.Serializable; import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; + +import io.swagger.v3.oas.annotations.media.Schema; import lombok.ToString; -@ApiModel(description = "") +@Schema @ToString public class CaseRoleDefinition implements Serializable { @@ -15,7 +15,7 @@ public class CaseRoleDefinition implements Serializable { private String name = null; private String description = null; - @ApiModelProperty(required = true, value = "") + @Schema(required = true) @JsonProperty("id") public String getId() { return id; @@ -25,7 +25,7 @@ public void setId(String id) { this.id = id; } - @ApiModelProperty(required = true, value = "") + @Schema(required = true) @JsonProperty("name") public String getName() { return name; @@ -35,7 +35,7 @@ public void setName(String name) { this.name = name; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("description") public String getDescription() { return description; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseStateDefinition.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseStateDefinition.java index ec47b10c36..124bdf8761 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseStateDefinition.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseStateDefinition.java @@ -2,13 +2,13 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; + +import io.swagger.v3.oas.annotations.media.Schema; import java.io.Serializable; import java.util.List; -@ApiModel(description = "") +@Schema public class CaseStateDefinition implements Serializable, Copyable { @JsonIgnore @@ -21,7 +21,7 @@ public class CaseStateDefinition implements Serializable, Copyable accessControlLists; - @ApiModelProperty(required = true, value = "") + @Schema(required = true) @JsonProperty("id") public String getId() { return id; @@ -34,7 +34,7 @@ public void setId(String id) { /** * Short name to display. **/ - @ApiModelProperty(value = "Short name to display.") + @Schema(description = "Short name to display.") @JsonProperty("name") public String getName() { return name; @@ -44,7 +44,7 @@ public void setName(String name) { this.name = name; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("description") public String getDescription() { return description; @@ -63,7 +63,7 @@ public void setDisplayOrder(Integer displayOrder) { this.displayOrder = displayOrder; } - @ApiModelProperty(value = "Title label to be displayed for state") + @Schema(description = "Title label to be displayed for state") @JsonProperty("title_display") public String getTitleDisplay() { return titleDisplay; @@ -73,7 +73,7 @@ public void setTitleDisplay(String titleDisplay) { this.titleDisplay = titleDisplay; } - @ApiModelProperty(value = "State Access Control Lists") + @Schema(description = "State Access Control Lists") @JsonProperty("acls") public List getAccessControlLists() { return accessControlLists; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseTypeTabDefinition.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseTypeTabDefinition.java index 10e33b03b3..46a19c6d01 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseTypeTabDefinition.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseTypeTabDefinition.java @@ -1,14 +1,15 @@ package uk.gov.hmcts.ccd.domain.model.definition; import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; + +import io.swagger.v3.oas.annotations.media.Schema; import uk.gov.hmcts.ccd.domain.model.common.CommonDCPModel; import java.io.Serializable; import java.util.ArrayList; import java.util.List; -@ApiModel(description = "") +@Schema public class CaseTypeTabDefinition implements Serializable, CommonDCPModel { private String id = null; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseTypeTabField.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseTypeTabField.java index 1c9baf4eca..c593ec4858 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseTypeTabField.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseTypeTabField.java @@ -3,18 +3,18 @@ import java.io.Serializable; import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; + +import io.swagger.v3.oas.annotations.media.Schema; import uk.gov.hmcts.ccd.domain.model.common.CommonDCPModel; -@ApiModel(description = "") +@Schema public class CaseTypeTabField implements Serializable, CommonDCPModel { private CaseFieldDefinition caseFieldDefinition = null; private Integer displayOrder = null; private String showCondition = null; private String displayContextParameter; - @ApiModelProperty(value = "") + @Schema @JsonProperty("case_field") public CaseFieldDefinition getCaseFieldDefinition() { return caseFieldDefinition; @@ -24,7 +24,7 @@ public void setCaseFieldDefinition(final CaseFieldDefinition caseFieldDefinition this.caseFieldDefinition = caseFieldDefinition; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("order") public Integer getDisplayOrder() { return displayOrder; @@ -34,7 +34,7 @@ public void setDisplayOrder(final Integer displayOrder) { this.displayOrder = displayOrder; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("show_condition") public String getShowCondition() { return showCondition; @@ -44,7 +44,7 @@ public void setShowCondition(String showCondition) { this.showCondition = showCondition; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("display_context_parameter") public String getDisplayContextParameter() { return displayContextParameter; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CriteriaField.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CriteriaField.java index 9e0f748f72..3f92f00b4c 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CriteriaField.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CriteriaField.java @@ -3,7 +3,8 @@ import java.io.Serializable; import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModelProperty; + +import io.swagger.v3.oas.annotations.media.Schema; import uk.gov.hmcts.ccd.domain.model.common.CommonDCPModel; public class CriteriaField implements Serializable, CommonDCPModel { @@ -15,7 +16,7 @@ public class CriteriaField implements Serializable, CommonDCPModel { private String displayContextParameter = null; private String showCondition; - @ApiModelProperty(value = "") + @Schema @JsonProperty("case_field_id") public String getCaseFieldId() { return caseFieldId; @@ -25,7 +26,7 @@ public void setCaseFieldId(String caseFieldId) { this.caseFieldId = caseFieldId; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("case_field_element_path") public String getCaseFieldPath() { return caseFieldPath; @@ -35,7 +36,7 @@ public void setCaseFieldPath(String caseFieldPath) { this.caseFieldPath = caseFieldPath; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("label") public String getLabel() { return label; @@ -45,7 +46,7 @@ public void setLabel(String label) { this.label = label; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("order") public Integer getDisplayOrder() { return displayOrder; @@ -55,7 +56,7 @@ public void setDisplayOrder(Integer displayOrder) { this.displayOrder = displayOrder; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("role") public String getRole() { return role; @@ -65,7 +66,7 @@ public void setRole(final String role) { this.role = role; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("display_context_parameter") public String getDisplayContextParameter() { return displayContextParameter; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/DraftResponseToCaseDetailsBuilder.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/DraftResponseToCaseDetailsBuilder.java index 469aae8fb4..4bec0a58cd 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/DraftResponseToCaseDetailsBuilder.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/DraftResponseToCaseDetailsBuilder.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.domain.model.definition; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import uk.gov.hmcts.ccd.domain.model.draft.CaseDraft; import uk.gov.hmcts.ccd.domain.model.draft.DraftResponse; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/EventPostStateDefinition.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/EventPostStateDefinition.java index 30b3d1921f..4a859e5667 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/EventPostStateDefinition.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/EventPostStateDefinition.java @@ -2,13 +2,15 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; + +import io.swagger.v3.oas.annotations.media.Schema; + import java.io.Serializable; import lombok.NoArgsConstructor; import lombok.ToString; @ToString -@ApiModel(description = "") +@Schema @NoArgsConstructor public class EventPostStateDefinition implements Serializable, Copyable { diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/FixedListItemDefinition.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/FixedListItemDefinition.java index 0ed4a2d915..bf78fded13 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/FixedListItemDefinition.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/FixedListItemDefinition.java @@ -4,10 +4,10 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -@ApiModel(description = "") +import io.swagger.v3.oas.annotations.media.Schema; + +@Schema public class FixedListItemDefinition implements Serializable, Copyable { private static final long serialVersionUID = 6196146295016140921L; @@ -15,7 +15,7 @@ public class FixedListItemDefinition implements Serializable, Copyable { @@ -24,7 +25,7 @@ public class JurisdictionDefinition implements Serializable, Copyable caseTypeDefinitions = new ArrayList<>(); - @ApiModelProperty(required = true, value = "") + @Schema(required = true) @JsonProperty("id") public String getId() { return id; @@ -34,7 +35,7 @@ public void setId(String id) { this.id = id; } - @ApiModelProperty(required = true, value = "") + @Schema(required = true) @JsonProperty("name") public String getName() { return name; @@ -44,7 +45,7 @@ public void setName(String name) { this.name = name; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("description") public String getDescription() { return description; @@ -54,7 +55,7 @@ public void setDescription(String description) { this.description = description; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("live_from") public Date getLiveFrom() { return liveFrom; @@ -64,7 +65,7 @@ public void setLiveFrom(Date liveFrom) { this.liveFrom = liveFrom; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("live_until") public Date getLiveUntil() { return liveUntil; @@ -74,7 +75,7 @@ public void setLiveUntil(Date liveUntil) { this.liveUntil = liveUntil; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("case_types") public List getCaseTypeDefinitions() { return caseTypeDefinitions; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/JurisdictionUiConfigResult.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/JurisdictionUiConfigResult.java index 36f7797b2d..727405624b 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/JurisdictionUiConfigResult.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/JurisdictionUiConfigResult.java @@ -5,11 +5,11 @@ import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; + @SuppressWarnings("checkstyle:SummaryJavadoc") -@ApiModel(description = "") +@Schema public class JurisdictionUiConfigResult implements Serializable { private List configs; @@ -24,7 +24,7 @@ public JurisdictionUiConfigResult(List configs) /** * **/ - @ApiModelProperty(value = "") + @Schema @JsonProperty("configs") public List getConfigs() { return configs; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/SearchInputField.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/SearchInputField.java index 5cf3e0fcd8..be526a44df 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/SearchInputField.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/SearchInputField.java @@ -2,10 +2,10 @@ import java.io.Serializable; -import io.swagger.annotations.ApiModel; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.ToString; @ToString -@ApiModel(description = "") +@Schema public class SearchInputField extends CriteriaField implements Serializable { } diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/SearchInputFieldsDefinition.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/SearchInputFieldsDefinition.java index 529553a644..885ed3f2de 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/SearchInputFieldsDefinition.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/SearchInputFieldsDefinition.java @@ -1,8 +1,8 @@ package uk.gov.hmcts.ccd.domain.model.definition; import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; + +import io.swagger.v3.oas.annotations.media.Schema; import lombok.ToString; import uk.gov.hmcts.ccd.domain.model.common.CommonDCPModel; @@ -11,14 +11,14 @@ import java.util.List; @ToString -@ApiModel(description = "") +@Schema public class SearchInputFieldsDefinition implements Serializable, CommonDCPModel { private String caseTypeId = null; private List fields = new ArrayList<>(); private String displayContextParameter = null; - @ApiModelProperty(value = "") + @Schema @JsonProperty("case_type_id") public String getCaseTypeId() { return caseTypeId; @@ -28,7 +28,7 @@ public void setCaseTypeId(String caseTypeId) { this.caseTypeId = caseTypeId; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("fields") public List getFields() { return fields; @@ -38,7 +38,7 @@ public void setFields(List fields) { this.fields = fields; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("display_context_parameter") public String getDisplayContextParameter() { return displayContextParameter; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/UserRole.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/UserRole.java index e8d1b730d6..4c8dbd140c 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/UserRole.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/UserRole.java @@ -1,14 +1,14 @@ package uk.gov.hmcts.ccd.domain.model.definition; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; import java.io.Serializable; import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -@ApiModel(description = "") +import io.swagger.v3.oas.annotations.media.Schema; + +@Schema public class UserRole implements Serializable { private static final long serialVersionUID = -6867026961393510122L; @@ -32,7 +32,7 @@ public class UserRole implements Serializable { @NotNull private String securityClassification; - @ApiModelProperty(value = "") + @Schema @JsonProperty("id") public Integer getId() { return id; @@ -42,7 +42,7 @@ public void setId(final Integer id) { this.id = id; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("created_at") public String getCreatedAt() { return createdAt; @@ -60,7 +60,7 @@ public void setLiveTo(final String liveTo) { this.liveTo = liveTo; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("role") public String getRole() { return role; @@ -70,7 +70,7 @@ public void setRole(final String role) { this.role = role; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("security_classification") public String getSecurityClassification() { return securityClassification; @@ -80,13 +80,13 @@ public void setSecurityClassification(final String securityClassification) { this.securityClassification = securityClassification; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("live_from") public String getLiveFrom() { return liveFrom; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("live_to") public String getLiveTo() { return liveTo; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/Version.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/Version.java index 100d9d8e47..3aab8b99b8 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/Version.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/Version.java @@ -1,20 +1,20 @@ package uk.gov.hmcts.ccd.domain.model.definition; import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; + +import io.swagger.v3.oas.annotations.media.Schema; import java.io.Serializable; import java.util.Date; -@ApiModel(description = "") +@Schema public class Version implements Serializable, Copyable { private Integer number = null; private Date liveFrom = null; private Date liveUntil = null; - @ApiModelProperty(required = true, value = "Sequantial version number") + @Schema(required = true, description = "Sequantial version number") @JsonProperty("number") public Integer getNumber() { return number; @@ -27,7 +27,7 @@ public void setNumber(Integer number) { /** * Date and time from when this version is valid from. **/ - @ApiModelProperty(required = true, value = "Date and time from when this version is valid from") + @Schema(required = true, description = "Date and time from when this version is valid from") @JsonProperty("live_from") public Date getLiveFrom() { return liveFrom; @@ -40,7 +40,7 @@ public void setLiveFrom(Date liveFrom) { /** * Date and time this version is to be retired. **/ - @ApiModelProperty(value = "Date and time this version is to be retired") + @Schema(description = "Date and time this version is to be retired") @JsonProperty("live_until") public Date getLiveUntil() { return liveUntil; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/WizardPage.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/WizardPage.java index 389ec32060..c855f79f37 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/WizardPage.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/WizardPage.java @@ -2,8 +2,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; + +import io.swagger.v3.oas.annotations.media.Schema; import java.io.Serializable; import java.util.ArrayList; @@ -12,7 +12,7 @@ import java.util.Set; import java.util.stream.Collectors; -@ApiModel(description = "") +@Schema public class WizardPage implements Serializable, Copyable { private String id = null; @@ -23,7 +23,7 @@ public class WizardPage implements Serializable, Copyable { private String callBackURLMidEvent; private List retriesTimeoutMidEvent; - @ApiModelProperty(value = "") + @Schema @JsonProperty("id") public String getId() { return id; @@ -42,7 +42,7 @@ public void setOrder(Integer order) { this.order = order; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("label") public String getLabel() { return label; @@ -52,7 +52,7 @@ public void setLabel(String label) { this.label = label; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("wizard_page_fields") public List getWizardPageFields() { return wizardPageFields; @@ -62,7 +62,7 @@ public void setWizardPageFields(List wizardPageFields) { this.wizardPageFields = wizardPageFields; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("callback_url_mid_event") public String getCallBackURLMidEvent() { return callBackURLMidEvent; @@ -72,7 +72,7 @@ public void setCallBackURLMidEvent(String callBackURLMidEvent) { this.callBackURLMidEvent = callBackURLMidEvent; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("retries_timeout_mid_event") public List getRetriesTimeoutMidEvent() { return retriesTimeoutMidEvent == null ? Collections.emptyList() : retriesTimeoutMidEvent; @@ -82,7 +82,7 @@ public void setRetriesTimeoutMidEvent(List retriesTimeoutMidEvent) { this.retriesTimeoutMidEvent = retriesTimeoutMidEvent; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("show_condition") public String getShowCondition() { return showCondition; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/WizardPageCollection.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/WizardPageCollection.java index 70b9154d2f..4a0797a488 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/WizardPageCollection.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/WizardPageCollection.java @@ -1,13 +1,13 @@ package uk.gov.hmcts.ccd.domain.model.definition; import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; + +import io.swagger.v3.oas.annotations.media.Schema; import java.util.ArrayList; import java.util.List; -@ApiModel(description = "") +@Schema public class WizardPageCollection { private String caseTypeId = null; @@ -25,7 +25,7 @@ public WizardPageCollection(String caseTypeId, String eventId) { /** * Unique identifier for a Case Type. **/ - @ApiModelProperty(required = true, value = "Unique identifier for a Case Type.") + @Schema(required = true, description = "Unique identifier for a Case Type.") @JsonProperty("case_type_id") public String getCaseTypeId() { return caseTypeId; @@ -38,7 +38,7 @@ public void setCaseTypeId(String caseTypeId) { /** * Identifier for the Event that is related to CaseTypeId. **/ - @ApiModelProperty(required = true, value = "Event Trigger Id") + @Schema(required = true, description = "Event Trigger Id") @JsonProperty("event_id") public String getEventId() { return eventId; @@ -48,7 +48,7 @@ public void setEventId(String eventId) { this.eventId = eventId; } - @ApiModelProperty(required = true, value = "") + @Schema(required = true) @JsonProperty("wizard_pages") public List getWizardPages() { return wizardPages; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/WizardPageComplexFieldOverride.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/WizardPageComplexFieldOverride.java index a08de80965..716661a70f 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/WizardPageComplexFieldOverride.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/WizardPageComplexFieldOverride.java @@ -2,12 +2,13 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; + +import io.swagger.v3.oas.annotations.media.Schema; import java.io.Serializable; import java.util.Optional; -@ApiModel(description = "") +@Schema public class WizardPageComplexFieldOverride implements Serializable, Copyable { private String complexFieldElementId; private String displayContext; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/WizardPageField.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/WizardPageField.java index ac042495e8..2b36c0b288 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/WizardPageField.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/WizardPageField.java @@ -1,14 +1,15 @@ package uk.gov.hmcts.ccd.domain.model.definition; import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; + +import io.swagger.v3.oas.annotations.media.Schema; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import java.util.Optional; -@ApiModel(description = "") +@Schema public class WizardPageField implements Serializable, Copyable { private String caseFieldId = null; private Integer order = null; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/WorkbasketInputField.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/WorkbasketInputField.java index 6eebe53d20..f6b136212f 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/WorkbasketInputField.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/WorkbasketInputField.java @@ -2,8 +2,9 @@ import java.io.Serializable; -import io.swagger.annotations.ApiModel; +import io.swagger.v3.oas.annotations.media.Schema; -@ApiModel(description = "") + +@Schema public class WorkbasketInputField extends CriteriaField implements Serializable { } diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/WorkbasketInputFieldsDefinition.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/WorkbasketInputFieldsDefinition.java index dde1789699..41471d5170 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/WorkbasketInputFieldsDefinition.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/WorkbasketInputFieldsDefinition.java @@ -1,22 +1,22 @@ package uk.gov.hmcts.ccd.domain.model.definition; import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; + +import io.swagger.v3.oas.annotations.media.Schema; import uk.gov.hmcts.ccd.domain.model.common.CommonDCPModel; import java.io.Serializable; import java.util.ArrayList; import java.util.List; -@ApiModel(description = "") +@Schema public class WorkbasketInputFieldsDefinition implements Serializable, CommonDCPModel { private String caseTypeId = null; private List fields = new ArrayList<>(); private String displayContextParameter = null; - @ApiModelProperty(value = "") + @Schema @JsonProperty("case_type_id") public String getCaseTypeId() { return caseTypeId; @@ -26,7 +26,7 @@ public void setCaseTypeId(String caseTypeId) { this.caseTypeId = caseTypeId; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("fields") public List getFields() { return fields; @@ -36,7 +36,7 @@ public void setFields(List fields) { this.fields = fields; } - @ApiModelProperty(value = "") + @Schema @JsonProperty("display_context_parameter") public String getDisplayContextParameter() { return displayContextParameter; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/draft/CreateCaseDraftRequest.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/draft/CreateCaseDraftRequest.java index 8f3127cb2a..9cebbf3553 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/draft/CreateCaseDraftRequest.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/draft/CreateCaseDraftRequest.java @@ -1,11 +1,12 @@ package uk.gov.hmcts.ccd.domain.model.draft; import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModelProperty; + +import io.swagger.v3.oas.annotations.media.Schema; import lombok.ToString; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotNull; @ToString public class CreateCaseDraftRequest { @@ -15,9 +16,9 @@ public class CreateCaseDraftRequest { @NotNull private String type; - @ApiModelProperty( + @Schema( name = "max_stale_days", - notes = "Number of days before removing a draft that hasn't been updated" + description = "Number of days before removing a draft that hasn't been updated" ) @Min(value = 1L) @JsonProperty("max_age") diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/draft/UpdateCaseDraftRequest.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/draft/UpdateCaseDraftRequest.java index dcdf387420..d91c571176 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/draft/UpdateCaseDraftRequest.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/draft/UpdateCaseDraftRequest.java @@ -1,6 +1,6 @@ package uk.gov.hmcts.ccd.domain.model.draft; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; public class UpdateCaseDraftRequest { diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/globalsearch/SearchCriteria.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/globalsearch/SearchCriteria.java index b86df697bc..500f0012e2 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/globalsearch/SearchCriteria.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/globalsearch/SearchCriteria.java @@ -2,7 +2,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; import lombok.AllArgsConstructor; import lombok.Builder; @@ -11,7 +11,7 @@ import java.util.List; -@JsonNaming(PropertyNamingStrategy.UpperCamelCaseStrategy.class) +@JsonNaming(PropertyNamingStrategies.UpperCamelCaseStrategy.class) @Builder @AllArgsConstructor @NoArgsConstructor diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/globalsearch/SearchPartyValue.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/globalsearch/SearchPartyValue.java index 69bdd5ef26..7e41147df0 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/globalsearch/SearchPartyValue.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/globalsearch/SearchPartyValue.java @@ -2,7 +2,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; import lombok.AllArgsConstructor; import lombok.Builder; @@ -10,7 +10,7 @@ import lombok.NoArgsConstructor; import org.apache.commons.lang.StringUtils; -@JsonNaming(PropertyNamingStrategy.UpperCamelCaseStrategy.class) +@JsonNaming(PropertyNamingStrategies.UpperCamelCaseStrategy.class) @JsonInclude(JsonInclude.Include.NON_NULL) @NoArgsConstructor @AllArgsConstructor diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/refdata/BuildingLocation.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/refdata/BuildingLocation.java index c2e39cb1d5..f2bf94882e 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/refdata/BuildingLocation.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/refdata/BuildingLocation.java @@ -1,6 +1,6 @@ package uk.gov.hmcts.ccd.domain.model.refdata; -import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; import lombok.Builder; import lombok.Value; @@ -12,7 +12,7 @@ @Value @Builder @Jacksonized -@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) +@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) public class BuildingLocation implements Serializable { String buildingLocationId; String buildingLocationName; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/refdata/CourtVenue.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/refdata/CourtVenue.java index 94ae0c41f4..2c568412b7 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/refdata/CourtVenue.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/refdata/CourtVenue.java @@ -1,6 +1,6 @@ package uk.gov.hmcts.ccd.domain.model.refdata; -import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; import lombok.Builder; import lombok.Value; @@ -12,7 +12,7 @@ @Value @Builder @Jacksonized -@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) +@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) public class CourtVenue implements Serializable { String courtVenueId; String epimmsId; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/refdata/ServiceReferenceData.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/refdata/ServiceReferenceData.java index 78ced0946f..6a001b5fc0 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/refdata/ServiceReferenceData.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/refdata/ServiceReferenceData.java @@ -1,6 +1,6 @@ package uk.gov.hmcts.ccd.domain.model.refdata; -import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; import lombok.Builder; import lombok.Value; @@ -13,7 +13,7 @@ @Value @Builder @Jacksonized -@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) +@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) public class ServiceReferenceData implements Serializable { long serviceId; String orgUnit; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/search/elasticsearch/SearchResultViewHeaderGroup.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/search/elasticsearch/SearchResultViewHeaderGroup.java index a3e4e99b97..87e85e509b 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/search/elasticsearch/SearchResultViewHeaderGroup.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/search/elasticsearch/SearchResultViewHeaderGroup.java @@ -1,7 +1,5 @@ package uk.gov.hmcts.ccd.domain.model.search.elasticsearch; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; import lombok.AccessLevel; import lombok.AllArgsConstructor; import lombok.Data; @@ -10,19 +8,21 @@ import java.util.List; +import io.swagger.v3.oas.annotations.media.Schema; + @Data @NoArgsConstructor(force = true, access = AccessLevel.PRIVATE) @AllArgsConstructor -@ApiModel(description = "Definition of a case type in the context of the search") +@Schema(description = "Definition of a case type in the context of the search") public class SearchResultViewHeaderGroup { @NonNull - @ApiModelProperty(value = "Metadata for the case type") + @Schema(description = "Metadata for the case type") private HeaderGroupMetadata metadata; @NonNull - @ApiModelProperty(value = "Definition of the fields for the case type") + @Schema(description = "Definition of the fields for the case type") private List fields; @NonNull - @ApiModelProperty(value = "Case references for the case type that are returned in the search") + @Schema(description = "Case references for the case type that are returned in the search") private List cases; } diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/search/global/GlobalSearchRequestPayload.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/search/global/GlobalSearchRequestPayload.java index 52c2f0dfd2..fcfd6830b1 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/search/global/GlobalSearchRequestPayload.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/search/global/GlobalSearchRequestPayload.java @@ -7,8 +7,8 @@ import uk.gov.hmcts.ccd.domain.model.std.validator.ValidationError; import uk.gov.hmcts.ccd.domain.model.std.validator.globalsearch.ValidSearchCriteria; -import javax.validation.Valid; -import javax.validation.constraints.Min; +import jakarta.validation.Valid; +import jakarta.validation.constraints.Min; import java.util.List; @Getter diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/search/global/Party.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/search/global/Party.java index 92fa964cb2..7384f22ca6 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/search/global/Party.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/search/global/Party.java @@ -4,7 +4,7 @@ import lombok.Setter; import uk.gov.hmcts.ccd.domain.model.std.validator.ValidationError; -import javax.validation.constraints.Pattern; +import jakarta.validation.constraints.Pattern; @Getter @Setter diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/search/global/SearchCriteria.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/search/global/SearchCriteria.java index f52d9abba8..35eb2b3ca4 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/search/global/SearchCriteria.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/search/global/SearchCriteria.java @@ -5,9 +5,9 @@ import lombok.Setter; import uk.gov.hmcts.ccd.domain.model.std.validator.ValidationError; -import javax.validation.Valid; -import javax.validation.constraints.Pattern; -import javax.validation.constraints.Size; +import jakarta.validation.Valid; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; import java.util.List; @Getter diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/AuditEvent.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/AuditEvent.java index f5456a3f41..9c1073bf85 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/AuditEvent.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/AuditEvent.java @@ -3,7 +3,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.JsonNode; -import io.swagger.annotations.ApiModelProperty; + +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -41,10 +42,10 @@ public class AuditEvent extends Event { @JsonProperty("state_name") private String stateName; @JsonProperty("data") - @ApiModelProperty("Case data as defined in case type definition. See `docs/api/case-data.md` for data structure.") + @Schema(description = "Case data as defined in case type definition. See `docs/api/case-data.md` for data structure.") private Map data; @JsonProperty("data_classification") - @ApiModelProperty("Same structure as `data` with classification (`PUBLIC`, `PRIVATE`, `RESTRICTED`) " + @Schema(description = "Same structure as `data` with classification (`PUBLIC`, `PRIVATE`, `RESTRICTED`) " + "as field's value.") private Map dataClassification; @JsonProperty("security_classification") diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/MessageInformation.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/MessageInformation.java index b40509c49e..84e95a3bef 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/MessageInformation.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/MessageInformation.java @@ -2,7 +2,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModelProperty; + +import io.swagger.v3.oas.annotations.media.Schema; import java.time.LocalDateTime; @@ -29,7 +30,7 @@ public class MessageInformation { @JsonProperty("NewStateId") private String newStateId; @JsonProperty("AdditionalData") - @ApiModelProperty("A JSON object (for future use) that contains additional case fields that have been configured " + @Schema(description = "A JSON object (for future use) that contains additional case fields that have been configured " + "to be included in the event information that is published.") private AdditionalMessageInformation data; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/MessageQueueCandidate.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/MessageQueueCandidate.java index d12903bb2e..0e30db6d94 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/MessageQueueCandidate.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/MessageQueueCandidate.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.databind.JsonNode; import lombok.Data; -import javax.persistence.Id; +import jakarta.persistence.Id; import java.time.LocalDateTime; @Data diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/EventValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/EventValidator.java index 27f03ec517..28475eaac1 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/EventValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/EventValidator.java @@ -3,8 +3,8 @@ import uk.gov.hmcts.ccd.domain.model.std.Event; import uk.gov.hmcts.ccd.endpoint.exceptions.ValidationException; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; @Named @Singleton diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/SupplementaryDataUpdateRequestValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/SupplementaryDataUpdateRequestValidator.java index d3158708b7..af1731daa2 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/SupplementaryDataUpdateRequestValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/SupplementaryDataUpdateRequestValidator.java @@ -2,8 +2,8 @@ import java.util.Optional; import java.util.regex.Pattern; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import uk.gov.hmcts.ccd.data.casedetails.supplementarydata.SupplementaryDataOperation; import uk.gov.hmcts.ccd.domain.model.std.SupplementaryDataUpdateRequest; import uk.gov.hmcts.ccd.endpoint.exceptions.BadRequestException; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/SearchCriteriaValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/SearchCriteriaValidator.java index 8c2ad76462..e6559c3867 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/SearchCriteriaValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/SearchCriteriaValidator.java @@ -3,8 +3,8 @@ import org.springframework.util.CollectionUtils; import uk.gov.hmcts.ccd.domain.model.search.global.SearchCriteria; -import javax.validation.ConstraintValidator; -import javax.validation.ConstraintValidatorContext; +import jakarta.validation.ConstraintValidator; +import jakarta.validation.ConstraintValidatorContext; public class SearchCriteriaValidator implements ConstraintValidator { diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/SortByValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/SortByValidator.java index 9b25f066ac..80f14114ed 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/SortByValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/SortByValidator.java @@ -2,8 +2,8 @@ import uk.gov.hmcts.ccd.domain.model.search.global.GlobalSearchSortByCategory; -import javax.validation.ConstraintValidator; -import javax.validation.ConstraintValidatorContext; +import jakarta.validation.ConstraintValidator; +import jakarta.validation.ConstraintValidatorContext; public class SortByValidator implements ConstraintValidator { diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/SortDirectionValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/SortDirectionValidator.java index a8de9a8c3f..ff786d32af 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/SortDirectionValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/SortDirectionValidator.java @@ -2,8 +2,8 @@ import uk.gov.hmcts.ccd.domain.model.search.global.GlobalSearchSortDirection; -import javax.validation.ConstraintValidator; -import javax.validation.ConstraintValidatorContext; +import jakarta.validation.ConstraintValidator; +import jakarta.validation.ConstraintValidatorContext; public class SortDirectionValidator implements ConstraintValidator { diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/ValidSearchCriteria.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/ValidSearchCriteria.java index 2538066061..7fd9029e4f 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/ValidSearchCriteria.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/ValidSearchCriteria.java @@ -2,8 +2,8 @@ import uk.gov.hmcts.ccd.domain.model.std.validator.ValidationError; -import javax.validation.Constraint; -import javax.validation.Payload; +import jakarta.validation.Constraint; +import jakarta.validation.Payload; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/ValidSortBy.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/ValidSortBy.java index 8fc3532dd9..53b7d50f71 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/ValidSortBy.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/ValidSortBy.java @@ -2,8 +2,8 @@ import uk.gov.hmcts.ccd.domain.model.std.validator.ValidationError; -import javax.validation.Constraint; -import javax.validation.Payload; +import jakarta.validation.Constraint; +import jakarta.validation.Payload; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/ValidSortDirection.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/ValidSortDirection.java index 89b24319d1..321e2dc8ac 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/ValidSortDirection.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/ValidSortDirection.java @@ -2,8 +2,8 @@ import uk.gov.hmcts.ccd.domain.model.std.validator.ValidationError; -import javax.validation.Constraint; -import javax.validation.Payload; +import jakarta.validation.Constraint; +import jakarta.validation.Payload; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/aggregated/MergeDataToSearchResultOperation.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/aggregated/MergeDataToSearchResultOperation.java index 5b4f65ddb8..a781218b45 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/aggregated/MergeDataToSearchResultOperation.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/aggregated/MergeDataToSearchResultOperation.java @@ -8,8 +8,8 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import org.apache.commons.lang3.StringUtils; import uk.gov.hmcts.ccd.domain.model.aggregated.CommonField; import uk.gov.hmcts.ccd.domain.model.definition.CaseDetails; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/casefileview/CategoriesAndDocumentsService.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/casefileview/CategoriesAndDocumentsService.java index d2e1fface9..cb38737e14 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/casefileview/CategoriesAndDocumentsService.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/casefileview/CategoriesAndDocumentsService.java @@ -21,8 +21,8 @@ import java.util.Optional; import java.util.function.Function; import java.util.stream.Collectors; -import javax.inject.Inject; -import javax.inject.Named; +import jakarta.inject.Inject; +import jakarta.inject.Named; import static java.util.Collections.emptyList; import static java.util.stream.Collectors.collectingAndThen; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/casefileview/FileViewDocumentService.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/casefileview/FileViewDocumentService.java index 4da51bcfc0..8f17e8f89d 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/casefileview/FileViewDocumentService.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/casefileview/FileViewDocumentService.java @@ -16,7 +16,7 @@ import java.util.stream.Collectors; import java.util.stream.IntStream; -import javax.inject.Named; +import jakarta.inject.Named; import static org.apache.commons.lang3.StringUtils.isBlank; import static org.apache.commons.lang3.StringUtils.isNumeric; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/caselinking/CaseLinkService.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/caselinking/CaseLinkService.java index 683157c1e6..b8cd2ec48e 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/caselinking/CaseLinkService.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/caselinking/CaseLinkService.java @@ -12,7 +12,7 @@ import uk.gov.hmcts.ccd.domain.model.definition.CaseDetails; import uk.gov.hmcts.ccd.domain.model.definition.CaseFieldDefinition; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.util.List; import java.util.stream.Collectors; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/common/CaseDataExtractor.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/common/CaseDataExtractor.java index acd78b9bd9..415a571e67 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/common/CaseDataExtractor.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/common/CaseDataExtractor.java @@ -17,8 +17,8 @@ import java.util.Map; import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.inject.Inject; -import javax.inject.Named; +import jakarta.inject.Inject; +import jakarta.inject.Named; import static uk.gov.hmcts.ccd.domain.model.definition.FieldTypeDefinition.COLLECTION; import static uk.gov.hmcts.ccd.domain.service.common.CaseFieldMetadataExtractor.FIELD_SEPARATOR; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/common/CaseEventEnablingService.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/common/CaseEventEnablingService.java index cdd056d203..684f5a18e6 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/common/CaseEventEnablingService.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/common/CaseEventEnablingService.java @@ -6,7 +6,7 @@ import uk.gov.hmcts.ccd.domain.model.aggregated.CaseViewField; import uk.gov.hmcts.ccd.domain.model.definition.CaseDetails; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/common/CasePostStateEvaluationService.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/common/CasePostStateEvaluationService.java index fe7e3fc7b4..35d8027293 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/common/CasePostStateEvaluationService.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/common/CasePostStateEvaluationService.java @@ -2,7 +2,7 @@ import java.util.List; import java.util.Map; -import javax.inject.Inject; +import jakarta.inject.Inject; import org.springframework.stereotype.Service; import uk.gov.hmcts.ccd.domain.enablingcondition.EnablingConditionParser; import uk.gov.hmcts.ccd.domain.model.definition.EventPostStateDefinition; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/common/CasePostStateService.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/common/CasePostStateService.java index b523227d57..cfa33a8d73 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/common/CasePostStateService.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/common/CasePostStateService.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.domain.service.common; import java.util.List; -import javax.inject.Inject; +import jakarta.inject.Inject; import org.springframework.stereotype.Service; import uk.gov.hmcts.ccd.domain.enablingcondition.PrioritiseEnablingCondition; import uk.gov.hmcts.ccd.domain.model.definition.CaseDetails; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/common/CaseTypeService.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/common/CaseTypeService.java index b39c151c91..0603994030 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/common/CaseTypeService.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/common/CaseTypeService.java @@ -13,9 +13,9 @@ import uk.gov.hmcts.ccd.endpoint.exceptions.CaseValidationException; import uk.gov.hmcts.ccd.endpoint.exceptions.ResourceNotFoundException; -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Inject; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.util.List; import java.util.Map; import java.util.Optional; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/common/ComplexCaseTypeMetadataExtractor.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/common/ComplexCaseTypeMetadataExtractor.java index d28f37ab44..58d18d868c 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/common/ComplexCaseTypeMetadataExtractor.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/common/ComplexCaseTypeMetadataExtractor.java @@ -11,7 +11,7 @@ import java.util.List; import java.util.Map; -import javax.inject.Named; +import jakarta.inject.Named; import static uk.gov.hmcts.ccd.domain.model.definition.FieldTypeDefinition.COMPLEX; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/common/EventTriggerService.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/common/EventTriggerService.java index 0126554bfb..fc6f6ab4b7 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/common/EventTriggerService.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/common/EventTriggerService.java @@ -5,8 +5,8 @@ import uk.gov.hmcts.ccd.domain.model.definition.CaseTypeDefinition; import uk.gov.hmcts.ccd.endpoint.exceptions.InvalidDefinitionException; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import static uk.gov.hmcts.ccd.domain.model.definition.CaseStateDefinition.ANY; @Named diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/common/SimpleCaseTypeMetadataExtractor.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/common/SimpleCaseTypeMetadataExtractor.java index 8bb7c78295..380d86a9dc 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/common/SimpleCaseTypeMetadataExtractor.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/common/SimpleCaseTypeMetadataExtractor.java @@ -13,7 +13,7 @@ import java.util.Optional; import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.inject.Named; +import jakarta.inject.Named; import static java.util.Collections.singletonList; import static uk.gov.hmcts.ccd.domain.model.definition.FieldTypeDefinition.COLLECTION; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/common/UIDService.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/common/UIDService.java index 6ba77bc525..36dfa39799 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/common/UIDService.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/common/UIDService.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.domain.service.common; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.security.SecureRandom; import static java.lang.Character.getNumericValue; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/createcase/DefaultCreateCaseOperation.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/createcase/DefaultCreateCaseOperation.java index 208d6c195c..b4f1e844de 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/createcase/DefaultCreateCaseOperation.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/createcase/DefaultCreateCaseOperation.java @@ -40,7 +40,7 @@ import uk.gov.hmcts.ccd.endpoint.exceptions.CallbackException; import uk.gov.hmcts.ccd.endpoint.exceptions.ValidationException; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.util.HashMap; import java.util.Map; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/createcase/SubmitCaseTransaction.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/createcase/SubmitCaseTransaction.java index 79fb34677b..bac2588652 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/createcase/SubmitCaseTransaction.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/createcase/SubmitCaseTransaction.java @@ -32,7 +32,7 @@ import uk.gov.hmcts.ccd.v2.external.domain.DocumentHashToken; import uk.gov.hmcts.ccd.ApplicationParams; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.time.LocalDateTime; import java.time.ZoneOffset; import java.util.List; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/createevent/CreateCaseEventService.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/createevent/CreateCaseEventService.java index b50299525a..e500e37256 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/createevent/CreateCaseEventService.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/createevent/CreateCaseEventService.java @@ -53,7 +53,7 @@ import uk.gov.hmcts.ccd.infrastructure.user.UserAuthorisation; import uk.gov.hmcts.ccd.v2.external.domain.DocumentHashToken; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.time.Clock; import java.time.LocalDateTime; import java.util.HashMap; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/createevent/DefaultCreateEventOperation.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/createevent/DefaultCreateEventOperation.java index 28109e7e13..2f9523ee06 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/createevent/DefaultCreateEventOperation.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/createevent/DefaultCreateEventOperation.java @@ -15,8 +15,8 @@ import uk.gov.hmcts.ccd.domain.service.stdapi.CallbackInvoker; import uk.gov.hmcts.ccd.endpoint.exceptions.CallbackException; -import javax.inject.Inject; -import javax.transaction.Transactional; +import jakarta.inject.Inject; +import jakarta.transaction.Transactional; import static org.apache.commons.lang3.StringUtils.isBlank; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/CaseDocumentAmApiClient.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/CaseDocumentAmApiClient.java index b9e63572e6..83c675ca67 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/CaseDocumentAmApiClient.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/CaseDocumentAmApiClient.java @@ -10,8 +10,8 @@ import uk.gov.hmcts.ccd.endpoint.exceptions.ServiceException; import uk.gov.hmcts.reform.ccd.document.am.feign.CaseDocumentClientApi; -import javax.inject.Inject; -import javax.inject.Named; +import jakarta.inject.Inject; +import jakarta.inject.Named; @Named public class CaseDocumentAmApiClient { diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/CaseDocumentService.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/CaseDocumentService.java index 967853d78f..4ebdac6b7e 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/CaseDocumentService.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/CaseDocumentService.java @@ -11,8 +11,8 @@ import uk.gov.hmcts.ccd.endpoint.exceptions.ValidationException; import uk.gov.hmcts.ccd.v2.external.domain.DocumentHashToken; -import javax.inject.Inject; -import javax.inject.Named; +import jakarta.inject.Inject; +import jakarta.inject.Named; import java.util.List; import java.util.Map; import java.util.Set; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/CaseDocumentTimestampService.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/CaseDocumentTimestampService.java index e0fe757241..f6a3b28310 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/CaseDocumentTimestampService.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/CaseDocumentTimestampService.java @@ -6,8 +6,8 @@ import uk.gov.hmcts.ccd.ApplicationParams; import uk.gov.hmcts.ccd.domain.model.definition.CaseDetails; -import javax.inject.Inject; -import javax.inject.Named; +import jakarta.inject.Inject; +import jakarta.inject.Named; import java.time.Clock; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/CaseDocumentUtils.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/CaseDocumentUtils.java index 68d8f4ea6c..294d3fdc75 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/CaseDocumentUtils.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/CaseDocumentUtils.java @@ -6,7 +6,7 @@ import uk.gov.hmcts.ccd.endpoint.exceptions.BadRequestException; import uk.gov.hmcts.ccd.v2.external.domain.DocumentHashToken; -import javax.inject.Named; +import jakarta.inject.Named; import java.util.List; import java.util.Map; import java.util.Objects; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/DocumentIdValidationService.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/DocumentIdValidationService.java index b6f87629c3..0bdffea075 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/DocumentIdValidationService.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/DocumentIdValidationService.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.domain.service.getcasedocument; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.util.UUID; @Named diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/getdraft/DefaultGetDraftsOperation.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/getdraft/DefaultGetDraftsOperation.java index 4968afa0ee..207cb3f5e5 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/getdraft/DefaultGetDraftsOperation.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/getdraft/DefaultGetDraftsOperation.java @@ -1,6 +1,6 @@ package uk.gov.hmcts.ccd.domain.service.getdraft; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.util.List; import java.util.stream.Collectors; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/message/CaseEventMessageService.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/message/CaseEventMessageService.java index 0a9246cb0b..34ded349de 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/message/CaseEventMessageService.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/message/CaseEventMessageService.java @@ -13,7 +13,7 @@ import uk.gov.hmcts.ccd.domain.service.message.additionaldata.DefinitionBlockGenerator; import uk.gov.hmcts.ccd.domain.service.message.additionaldata.DataBlockGenerator; -import javax.inject.Inject; +import jakarta.inject.Inject; @Service @Qualifier("caseEventMessageService") diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeEntryProcessor.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeEntryProcessor.java index 3303e3ce15..1cd423ca5a 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeEntryProcessor.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeEntryProcessor.java @@ -13,7 +13,6 @@ import uk.gov.hmcts.ccd.domain.model.aggregated.CommonField; import uk.gov.hmcts.ccd.domain.model.definition.WizardPageComplexFieldOverride; import uk.gov.hmcts.ccd.domain.service.processor.CaseDataFieldProcessor; -import uk.gov.hmcts.ccd.domain.service.processor.date.DateTimeFormatParser; import uk.gov.hmcts.ccd.domain.types.BaseType; import uk.gov.hmcts.ccd.endpoint.exceptions.DataProcessingException; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeSearchInputProcessor.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeSearchInputProcessor.java index 2785c3e81d..5a2a3393a5 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeSearchInputProcessor.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeSearchInputProcessor.java @@ -13,7 +13,6 @@ import uk.gov.hmcts.ccd.domain.model.search.CriteriaType; import uk.gov.hmcts.ccd.domain.service.aggregated.DefaultGetCriteriaOperation; import uk.gov.hmcts.ccd.domain.service.aggregated.GetCriteriaOperation; -import uk.gov.hmcts.ccd.domain.service.processor.date.DateTimeFormatParser; import uk.gov.hmcts.ccd.endpoint.exceptions.DataProcessingException; import java.util.HashMap; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/ElasticsearchMappings.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/ElasticsearchMappings.java index cc078d4022..a35a777cf1 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/ElasticsearchMappings.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/ElasticsearchMappings.java @@ -3,14 +3,13 @@ import lombok.AllArgsConstructor; import lombok.Getter; import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.boot.context.properties.ConstructorBinding; +import org.springframework.boot.context.properties.bind.ConstructorBinding; import uk.gov.hmcts.ccd.domain.model.definition.FieldTypeDefinition; import java.util.List; -@ConstructorBinding @ConfigurationProperties("elasticsearch") -@AllArgsConstructor +@AllArgsConstructor(onConstructor = @__({@ConstructorBinding})) @Getter public class ElasticsearchMappings { diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/dto/ElasticSearchCaseDetailsDTO.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/dto/ElasticSearchCaseDetailsDTO.java index 60590579fd..2726deb76f 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/dto/ElasticSearchCaseDetailsDTO.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/dto/ElasticSearchCaseDetailsDTO.java @@ -2,7 +2,7 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; import uk.gov.hmcts.ccd.data.casedetails.SecurityClassification; @@ -10,7 +10,7 @@ import java.util.Map; @JsonIgnoreProperties(ignoreUnknown = true) -@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) +@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) public class ElasticSearchCaseDetailsDTO { private String id; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/search/global/GlobalSearchQueryBuilder.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/search/global/GlobalSearchQueryBuilder.java index eb0ea7d122..c60fcb4604 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/search/global/GlobalSearchQueryBuilder.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/search/global/GlobalSearchQueryBuilder.java @@ -19,7 +19,7 @@ import uk.gov.hmcts.ccd.domain.model.search.global.SearchCriteria; import uk.gov.hmcts.ccd.domain.model.search.global.SortCriteria; -import javax.inject.Named; +import jakarta.inject.Named; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/search/global/GlobalSearchResponseTransformer.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/search/global/GlobalSearchResponseTransformer.java index 736a3a4847..7b64558068 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/search/global/GlobalSearchResponseTransformer.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/search/global/GlobalSearchResponseTransformer.java @@ -20,8 +20,8 @@ import uk.gov.hmcts.ccd.domain.types.CollectionValidator; import uk.gov.hmcts.ccd.domain.types.DynamicListValidator; -import javax.inject.Inject; -import javax.inject.Named; +import jakarta.inject.Inject; +import jakarta.inject.Named; import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/stdapi/DocumentsOperation.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/stdapi/DocumentsOperation.java index af599fc645..55de83b1a8 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/stdapi/DocumentsOperation.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/stdapi/DocumentsOperation.java @@ -20,9 +20,9 @@ import uk.gov.hmcts.ccd.endpoint.exceptions.ResourceNotFoundException; import uk.gov.hmcts.ccd.endpoint.exceptions.ServiceException; -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Inject; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.util.Arrays; import java.util.List; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/upsertdraft/DefaultUpsertDraftOperation.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/upsertdraft/DefaultUpsertDraftOperation.java index 238e16bd29..bb888cf28b 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/upsertdraft/DefaultUpsertDraftOperation.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/upsertdraft/DefaultUpsertDraftOperation.java @@ -1,6 +1,6 @@ package uk.gov.hmcts.ccd.domain.service.upsertdraft; -import javax.inject.Inject; +import jakarta.inject.Inject; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/validate/DefaultValidateCaseFieldsOperation.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/validate/DefaultValidateCaseFieldsOperation.java index 6ef8b6d1e0..dd575c8a21 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/validate/DefaultValidateCaseFieldsOperation.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/validate/DefaultValidateCaseFieldsOperation.java @@ -12,7 +12,7 @@ import uk.gov.hmcts.ccd.domain.types.ValidationContext; import uk.gov.hmcts.ccd.endpoint.exceptions.ValidationException; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.util.Map; @Service diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/BaseLocationValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/BaseLocationValidator.java index 9b0a8975f9..1a60243c1c 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/BaseLocationValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/BaseLocationValidator.java @@ -4,9 +4,9 @@ import org.springframework.beans.factory.annotation.Qualifier; import uk.gov.hmcts.ccd.domain.model.definition.CaseFieldDefinition; -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Inject; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.util.List; @Named("BaseLocationValidator") diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/BaseTypeConfiguration.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/BaseTypeConfiguration.java index fc77f214e9..2b3b0323fc 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/BaseTypeConfiguration.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/BaseTypeConfiguration.java @@ -6,7 +6,7 @@ import uk.gov.hmcts.ccd.data.definition.CaseDefinitionRepository; import uk.gov.hmcts.ccd.data.definition.DefaultCaseDefinitionRepository; -import javax.inject.Inject; +import jakarta.inject.Inject; @Configuration class BaseTypeConfiguration { diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/CaseDataValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/CaseDataValidator.java index c9780933a9..5c9c650ad2 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/CaseDataValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/CaseDataValidator.java @@ -6,9 +6,9 @@ import uk.gov.hmcts.ccd.domain.model.definition.CaseFieldDefinition; import uk.gov.hmcts.ccd.domain.model.definition.FieldTypeDefinition; -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Inject; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/CollectionValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/CollectionValidator.java index cb663e48d2..9f7e6a2e41 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/CollectionValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/CollectionValidator.java @@ -5,8 +5,8 @@ import uk.gov.hmcts.ccd.domain.model.definition.CaseFieldDefinition; import uk.gov.hmcts.ccd.domain.model.definition.FieldTypeDefinition; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/CustomNumberValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/CustomNumberValidator.java index 60ee457a7e..01a0bfae1b 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/CustomNumberValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/CustomNumberValidator.java @@ -4,8 +4,8 @@ import java.math.BigDecimal; import java.util.Collections; import java.util.List; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import uk.gov.hmcts.ccd.domain.model.definition.CaseFieldDefinition; @Named diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/DateTimeValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/DateTimeValidator.java index a0f8716214..a5f232eb9e 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/DateTimeValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/DateTimeValidator.java @@ -9,8 +9,8 @@ import java.time.format.DateTimeParseException; import java.util.Collections; import java.util.List; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import uk.gov.hmcts.ccd.domain.model.definition.CaseFieldDefinition; import static java.time.format.DateTimeFormatter.ISO_DATE_TIME; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/DateValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/DateValidator.java index 38afbc4555..e8459cee04 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/DateValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/DateValidator.java @@ -3,8 +3,8 @@ import com.fasterxml.jackson.databind.JsonNode; import uk.gov.hmcts.ccd.domain.model.definition.CaseFieldDefinition; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.math.BigDecimal; import java.time.Instant; import java.time.LocalDate; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/DocumentValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/DocumentValidator.java index 2174505ff7..4af5243a48 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/DocumentValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/DocumentValidator.java @@ -10,8 +10,8 @@ import uk.gov.hmcts.ccd.domain.model.definition.CaseFieldDefinition; import uk.gov.hmcts.ccd.domain.model.definition.FieldTypeDefinition; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.util.Collections; import java.util.List; import java.util.regex.Matcher; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/DynamicListValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/DynamicListValidator.java index 264241e6ba..3d6ac23bd1 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/DynamicListValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/DynamicListValidator.java @@ -4,8 +4,8 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import org.apache.commons.lang3.StringUtils; import uk.gov.hmcts.ccd.domain.model.definition.CaseFieldDefinition; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/DynamicMultiSelectListValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/DynamicMultiSelectListValidator.java index 7a7a1c1c34..a9d698f6e2 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/DynamicMultiSelectListValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/DynamicMultiSelectListValidator.java @@ -2,8 +2,8 @@ import com.fasterxml.jackson.databind.JsonNode; import java.util.List; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; @Named @Singleton diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/DynamicRadioListValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/DynamicRadioListValidator.java index b1711f0d87..deef5d8a99 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/DynamicRadioListValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/DynamicRadioListValidator.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.domain.types; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; @Named @Singleton diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/EmailValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/EmailValidator.java index c3c5d361c8..e2a17af87e 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/EmailValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/EmailValidator.java @@ -3,8 +3,8 @@ import com.fasterxml.jackson.databind.JsonNode; import uk.gov.hmcts.ccd.domain.model.definition.CaseFieldDefinition; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import java.util.Collections; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/FixedListValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/FixedListValidator.java index 5ec13f97c1..bb31cde9fb 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/FixedListValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/FixedListValidator.java @@ -4,8 +4,8 @@ import uk.gov.hmcts.ccd.domain.model.definition.CaseFieldDefinition; import uk.gov.hmcts.ccd.domain.model.definition.FixedListItemDefinition; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.util.Collections; import java.util.List; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/FixedRadioListValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/FixedRadioListValidator.java index c64b10ed3c..a5cb43a92f 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/FixedRadioListValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/FixedRadioListValidator.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.domain.types; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; @Named @Singleton diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/MoneyGBPValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/MoneyGBPValidator.java index 8728c35451..1a8715c5eb 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/MoneyGBPValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/MoneyGBPValidator.java @@ -3,8 +3,8 @@ import com.fasterxml.jackson.databind.JsonNode; import uk.gov.hmcts.ccd.domain.model.definition.CaseFieldDefinition; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.Collections; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/MultiSelectListValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/MultiSelectListValidator.java index 6377f2465f..4c374f3983 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/MultiSelectListValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/MultiSelectListValidator.java @@ -4,8 +4,8 @@ import uk.gov.hmcts.ccd.domain.model.definition.CaseFieldDefinition; import uk.gov.hmcts.ccd.domain.model.definition.FixedListItemDefinition; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collections; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/OrgPolicyCaseAssignedRoleValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/OrgPolicyCaseAssignedRoleValidator.java index 39c7e8277c..455dcd6609 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/OrgPolicyCaseAssignedRoleValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/OrgPolicyCaseAssignedRoleValidator.java @@ -5,9 +5,9 @@ import uk.gov.hmcts.ccd.data.caseaccess.CachedCaseRoleRepository; import uk.gov.hmcts.ccd.data.caseaccess.CaseRoleRepository; -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Inject; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/PhoneUKValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/PhoneUKValidator.java index c0acc4286a..499349c47b 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/PhoneUKValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/PhoneUKValidator.java @@ -3,8 +3,8 @@ import com.fasterxml.jackson.databind.JsonNode; import uk.gov.hmcts.ccd.domain.model.definition.CaseFieldDefinition; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.util.Collections; import java.util.List; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/PostCodeValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/PostCodeValidator.java index 86f3f75f21..2a64601ff7 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/PostCodeValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/PostCodeValidator.java @@ -3,8 +3,8 @@ import com.fasterxml.jackson.databind.JsonNode; import uk.gov.hmcts.ccd.domain.model.definition.CaseFieldDefinition; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.util.Collections; import java.util.List; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/RegionValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/RegionValidator.java index 82423d3d5a..c5fbd5b262 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/RegionValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/RegionValidator.java @@ -4,9 +4,9 @@ import org.springframework.beans.factory.annotation.Qualifier; import uk.gov.hmcts.ccd.domain.model.definition.CaseFieldDefinition; -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Inject; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.util.List; @Named("RegionValidator") diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/TextAreaValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/TextAreaValidator.java index b7f657153f..8c93a4cebb 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/TextAreaValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/TextAreaValidator.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.domain.types; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; @Named @Singleton diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/TextCaseReferenceCaseLinkValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/TextCaseReferenceCaseLinkValidator.java index fa087cf491..ea00eeb050 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/TextCaseReferenceCaseLinkValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/TextCaseReferenceCaseLinkValidator.java @@ -9,9 +9,9 @@ import uk.gov.hmcts.ccd.endpoint.exceptions.ResourceNotFoundException; import uk.gov.hmcts.ccd.endpoint.exceptions.ServiceException; -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Inject; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.util.Collections; import java.util.List; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/TextValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/TextValidator.java index 8c80cc1866..2ec2123fd9 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/TextValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/TextValidator.java @@ -3,8 +3,8 @@ import com.fasterxml.jackson.databind.JsonNode; import uk.gov.hmcts.ccd.domain.model.definition.CaseFieldDefinition; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.math.BigDecimal; import java.util.Collections; import java.util.List; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/YesNoValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/YesNoValidator.java index 6f6da2ef39..09754c22e1 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/YesNoValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/YesNoValidator.java @@ -3,8 +3,8 @@ import com.fasterxml.jackson.databind.JsonNode; import uk.gov.hmcts.ccd.domain.model.definition.CaseFieldDefinition; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/sanitiser/CaseSanitiser.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/sanitiser/CaseSanitiser.java index bbd620bd92..0d31eb7181 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/sanitiser/CaseSanitiser.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/sanitiser/CaseSanitiser.java @@ -5,9 +5,9 @@ import uk.gov.hmcts.ccd.domain.model.definition.CaseTypeDefinition; import uk.gov.hmcts.ccd.domain.model.definition.FieldTypeDefinition; -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Inject; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/sanitiser/CollectionSanitiser.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/sanitiser/CollectionSanitiser.java index 698119ba2a..a20bc0cf6b 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/sanitiser/CollectionSanitiser.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/sanitiser/CollectionSanitiser.java @@ -1,8 +1,8 @@ package uk.gov.hmcts.ccd.domain.types.sanitiser; -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Inject; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/sanitiser/ComplexSanitiser.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/sanitiser/ComplexSanitiser.java index df32464584..bcfbeb8766 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/sanitiser/ComplexSanitiser.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/sanitiser/ComplexSanitiser.java @@ -1,8 +1,8 @@ package uk.gov.hmcts.ccd.domain.types.sanitiser; -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Inject; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.util.HashMap; import java.util.Iterator; import java.util.List; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/sanitiser/DocumentSanitiser.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/sanitiser/DocumentSanitiser.java index abe3d48909..17f714d1c9 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/sanitiser/DocumentSanitiser.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/sanitiser/DocumentSanitiser.java @@ -12,9 +12,9 @@ import uk.gov.hmcts.ccd.domain.types.sanitiser.document.Document; import uk.gov.hmcts.ccd.endpoint.exceptions.ValidationException; -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Inject; +import jakarta.inject.Named; +import jakarta.inject.Singleton; @Named @Singleton diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/sanitiser/client/DocumentManagementRestClient.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/sanitiser/client/DocumentManagementRestClient.java index 63d9bdeb0c..4498b0269a 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/sanitiser/client/DocumentManagementRestClient.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/sanitiser/client/DocumentManagementRestClient.java @@ -14,8 +14,8 @@ import uk.gov.hmcts.ccd.domain.types.sanitiser.document.Document; import uk.gov.hmcts.ccd.endpoint.exceptions.ApiException; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; @Named @Singleton diff --git a/src/main/java/uk/gov/hmcts/ccd/endpoint/exceptions/RestExceptionHandler.java b/src/main/java/uk/gov/hmcts/ccd/endpoint/exceptions/RestExceptionHandler.java index aeb85d001e..e41758c339 100644 --- a/src/main/java/uk/gov/hmcts/ccd/endpoint/exceptions/RestExceptionHandler.java +++ b/src/main/java/uk/gov/hmcts/ccd/endpoint/exceptions/RestExceptionHandler.java @@ -9,6 +9,7 @@ import org.springframework.context.support.DefaultMessageSourceResolvable; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; +import org.springframework.http.HttpStatusCode; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ControllerAdvice; @@ -21,8 +22,8 @@ import uk.gov.hmcts.ccd.domain.model.common.HttpError; import uk.gov.hmcts.ccd.domain.model.std.validator.ValidationError; -import javax.servlet.http.HttpServletRequest; -import javax.validation.ConstraintViolationException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.ConstraintViolationException; import java.io.Serializable; import java.sql.SQLException; import java.util.Collections; @@ -137,7 +138,7 @@ public ResponseEntity handleException(final HttpServletRequest reques @Override protected ResponseEntity handleMethodArgumentNotValid(MethodArgumentNotValidException exception, HttpHeaders headers, - HttpStatus status, + HttpStatusCode status, WebRequest request) { String[] errors = exception.getBindingResult().getFieldErrors().stream() .map(DefaultMessageSourceResolvable::getDefaultMessage) diff --git a/src/main/java/uk/gov/hmcts/ccd/endpoint/std/CallbackEndpoint.java b/src/main/java/uk/gov/hmcts/ccd/endpoint/std/CallbackEndpoint.java index 50b3f4bfc7..7d26d27e8b 100644 --- a/src/main/java/uk/gov/hmcts/ccd/endpoint/std/CallbackEndpoint.java +++ b/src/main/java/uk/gov/hmcts/ccd/endpoint/std/CallbackEndpoint.java @@ -1,10 +1,5 @@ package uk.gov.hmcts.ccd.endpoint.std; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.PathVariable; @@ -12,6 +7,11 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.tags.Tag; import uk.gov.hmcts.ccd.domain.model.definition.CaseDetails; import uk.gov.hmcts.ccd.domain.model.definition.Document; import uk.gov.hmcts.ccd.domain.service.stdapi.PrintableDocumentListOperation; @@ -22,7 +22,7 @@ @RequestMapping(path = "/callback/", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) -@Api(description = "Default callbacks") +@Tag(name = "Default callbacks") public class CallbackEndpoint { private final PrintableDocumentListOperation printableDocumentListOperation; @@ -32,14 +32,12 @@ public CallbackEndpoint(final PrintableDocumentListOperation printableDocumentLi } @RequestMapping(value = "/jurisdictions/{jid}/case-types/{ctid}/documents", method = RequestMethod.POST) - @ApiOperation(value = "Get printable documents", notes = "Retrieve a list of printable documents for a case") - @ApiResponses(value = { - @ApiResponse(code = 200, message = "Printable documents list retrieved") - }) + @Operation(summary = "Get printable documents", description = "Retrieve a list of printable documents for a case") + @ApiResponse(responseCode = "200", description = "Printable documents list retrieved") public List getPrintableDocuments( - @ApiParam(value = "Jurisdiction ID", required = true) + @Parameter(name = "Jurisdiction ID", required = true) @PathVariable("jid") final String jurisdictionId, - @ApiParam(value = "Case type ID", required = true) + @Parameter(name = "Case type ID", required = true) @PathVariable("ctid") final String caseTypeId, @RequestBody final CaseDetails caseDetails) { return printableDocumentListOperation.getPrintableDocumentList(jurisdictionId, caseTypeId, caseDetails); diff --git a/src/main/java/uk/gov/hmcts/ccd/endpoint/std/CaseAccessEndpoint.java b/src/main/java/uk/gov/hmcts/ccd/endpoint/std/CaseAccessEndpoint.java index fd9329e43b..d10002f3d2 100644 --- a/src/main/java/uk/gov/hmcts/ccd/endpoint/std/CaseAccessEndpoint.java +++ b/src/main/java/uk/gov/hmcts/ccd/endpoint/std/CaseAccessEndpoint.java @@ -1,10 +1,5 @@ package uk.gov.hmcts.ccd.endpoint.std; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpStatus; @@ -16,6 +11,11 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestController; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.tags.Tag; import uk.gov.hmcts.ccd.auditlog.AuditOperationType; import uk.gov.hmcts.ccd.auditlog.LogAudit; import uk.gov.hmcts.ccd.domain.model.std.UserId; @@ -25,7 +25,7 @@ @RestController @RequestMapping(path = "/", produces = MediaType.APPLICATION_JSON_VALUE) -@Api(value = "/", description = "Case access API") +@Tag(name = "/", description = "Case access API") public class CaseAccessEndpoint { private static final Logger LOG = LoggerFactory.getLogger(CaseAccessEndpoint.class); @@ -40,19 +40,17 @@ public CaseAccessEndpoint(CaseAccessOperation caseAccessOperation) { method = RequestMethod.GET, consumes = MediaType.ALL_VALUE ) - @ApiOperation(value = "Get case ids", notes = "Retrieve case ids for given users ids") - @ApiResponses(value = { - @ApiResponse(code = 200, message = "List of cases ids found"), - @ApiResponse(code = 400, message = "Invalid case ID") - }) + @Operation(summary = "Get case ids", description = "Retrieve case ids for given users ids") + @ApiResponse(responseCode = "200", description = "List of cases ids found") + @ApiResponse(responseCode = "400", description = "Invalid case ID") public List findCaseIdsGivenUserIdHasAccessTo( - @ApiParam(value = "Idam user ID", required = true) + @Parameter(name = "Idam user ID", required = true) @PathVariable("uid") final String uid, - @ApiParam(value = "Jurisdiction ID", required = true) + @Parameter(name = "Jurisdiction ID", required = true) @PathVariable("jid") final String jurisdictionId, - @ApiParam(value = "Case type ID", required = true) + @Parameter(name = "Case type ID", required = true) @PathVariable("ctid") final String caseTypeId, - @ApiParam(value = "User id searching for", required = true) + @Parameter(name = "User id searching for", required = true) @RequestParam(value = "userId") final String idSearchingFor ) { LOG.debug("Finding cases user: {} has access to", idSearchingFor); @@ -64,22 +62,20 @@ public List findCaseIdsGivenUserIdHasAccessTo( method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE ) - @ApiOperation(value = "Grant access to case") - @ApiResponses(value = { - @ApiResponse(code = 201, message = "Grant successful"), - @ApiResponse(code = 400, message = "Invalid case ID") - }) + @Operation(summary = "Grant access to case") + @ApiResponse(responseCode = "201", description = "Grant successful") + @ApiResponse(responseCode = "400", description = "Invalid case ID") @ResponseStatus(value = HttpStatus.CREATED) @LogAudit(operationType = AuditOperationType.GRANT_CASE_ACCESS, jurisdiction = "#jurisdictionId", caseId = "#caseId", targetIdamId = "#userId.id") public void grantAccessToCase( - @ApiParam(value = "Idam user ID", required = true) + @Parameter(name = "Idam user ID", required = true) @PathVariable("uid") final String uid, - @ApiParam(value = "Jurisdiction ID", required = true) + @Parameter(name = "Jurisdiction ID", required = true) @PathVariable("jid") final String jurisdictionId, - @ApiParam(value = "Case type ID", required = true) + @Parameter(name = "Case type ID", required = true) @PathVariable("ctid") final String caseTypeId, - @ApiParam(value = "Case ID", required = true) + @Parameter(name = "Case ID", required = true) @PathVariable("cid") final String caseId, @RequestBody final UserId userId ) { @@ -92,24 +88,22 @@ public void grantAccessToCase( method = RequestMethod.DELETE, consumes = MediaType.ALL_VALUE ) - @ApiOperation(value = "Revoke access to case") - @ApiResponses(value = { - @ApiResponse(code = 204, message = "Access revoked"), - @ApiResponse(code = 400, message = "Invalid case ID") - }) + @Operation(summary = "Revoke access to case") + @ApiResponse(responseCode = "204", description = "Access revoked") + @ApiResponse(responseCode = "400", description = "Invalid case ID") @ResponseStatus(value = HttpStatus.NO_CONTENT) @LogAudit(operationType = AuditOperationType.REVOKE_CASE_ACCESS, jurisdiction = "#jurisdictionId", caseId = "#caseId", targetIdamId = "#idToDelete") public void revokeAccessToCase( - @ApiParam(value = "Idam user ID", required = true) + @Parameter(name = "Idam user ID", required = true) @PathVariable("uid") final String uid, - @ApiParam(value = "Jurisdiction ID", required = true) + @Parameter(name = "Jurisdiction ID", required = true) @PathVariable("jid") final String jurisdictionId, - @ApiParam(value = "Case type ID", required = true) + @Parameter(name = "Case type ID", required = true) @PathVariable("ctid") final String caseTypeId, - @ApiParam(value = "Case ID", required = true) + @Parameter(name = "Case ID", required = true) @PathVariable("cid") final String caseId, - @ApiParam(value = "Id to delete", required = true) + @Parameter(name = "Id to delete", required = true) @PathVariable("idToDelete") final String idToDelete ) { LOG.debug("Revoking access to case: {}, for user: {}", caseId, idToDelete); diff --git a/src/main/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpoint.java b/src/main/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpoint.java index 2d4669ea5f..2c447cdaea 100644 --- a/src/main/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpoint.java +++ b/src/main/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpoint.java @@ -1,11 +1,13 @@ package uk.gov.hmcts.ccd.endpoint.std; import com.fasterxml.jackson.databind.JsonNode; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; +import io.swagger.v3.oas.annotations.tags.Tag; + import org.apache.commons.lang3.EnumUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -69,7 +71,7 @@ @RequestMapping(path = "/", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) -@Api(value = "/", description = "Standard case API") +@Tag(name = "Standard case API") public class CaseDetailsEndpoint { private final GetCaseOperation getCaseOperation; @@ -110,22 +112,20 @@ public CaseDetailsEndpoint(@Qualifier(CreatorGetCaseOperation.QUALIFIER) final G } @GetMapping(value = "/caseworkers/{uid}/jurisdictions/{jid}/case-types/{ctid}/cases/{cid}") - @ApiOperation(value = "Get case", notes = "Retrieve an existing case with its state and data") - @ApiResponses(value = { - @ApiResponse(code = 200, message = "Case found for the given ID"), - @ApiResponse(code = 400, message = "Invalid case ID"), - @ApiResponse(code = 404, message = "No case found for the given ID") - }) + @Operation(summary = "Get case", description = "Retrieve an existing case with its state and data") + @ApiResponse(responseCode = "200", description = "Case found for the given ID") + @ApiResponse(responseCode = "400", description = "Invalid case ID") + @ApiResponse(responseCode = "404", description = "No case found for the given ID") @LogAudit(operationType = AuditOperationType.CASE_ACCESSED, caseId = "#caseId", jurisdiction = "#jurisdictionId", caseType = "#caseTypeId") public CaseDetails findCaseDetailsForCaseworker( - @ApiParam(value = "Idam user ID", required = true) + @Parameter(name = "Idam user ID", required = true) @PathVariable("uid") final String uid, - @ApiParam(value = "Jurisdiction ID", required = true) + @Parameter(name = "Jurisdiction ID", required = true) @PathVariable("jid") final String jurisdictionId, - @ApiParam(value = "Case type ID", required = true) + @Parameter(name = "Case type ID", required = true) @PathVariable("ctid") final String caseTypeId, - @ApiParam(value = "Case ID", required = true) + @Parameter(name = "Case ID", required = true) @PathVariable("cid") final String caseId) { final Instant start = Instant.now(); @@ -137,22 +137,22 @@ public CaseDetails findCaseDetailsForCaseworker( } @GetMapping(value = "/citizens/{uid}/jurisdictions/{jid}/case-types/{ctid}/cases/{cid}") - @ApiOperation(value = "Get case", notes = "Retrieve an existing case with its state and data") + @Operation(summary = "Get case", description = "Retrieve an existing case with its state and data") @ApiResponses(value = { - @ApiResponse(code = 200, message = "Case found for the given ID"), - @ApiResponse(code = 400, message = "Invalid case ID"), - @ApiResponse(code = 404, message = "No case found for the given ID") + @ApiResponse(responseCode = "200", description = "Case found for the given ID"), + @ApiResponse(responseCode = "400", description = "Invalid case ID"), + @ApiResponse(responseCode = "404", description = "No case found for the given ID") }) @LogAudit(operationType = AuditOperationType.CASE_ACCESSED, caseId = "#caseId", jurisdiction = "#jurisdictionId", caseType = "#caseTypeId") public CaseDetails findCaseDetailsForCitizen( - @ApiParam(value = "Idam user ID", required = true) + @Parameter(name = "Idam user ID", required = true) @PathVariable("uid") final String uid, - @ApiParam(value = "Jurisdiction ID", required = true) + @Parameter(name = "Jurisdiction ID", required = true) @PathVariable("jid") final String jurisdictionId, - @ApiParam(value = "Case type ID", required = true) + @Parameter(name = "Case type ID", required = true) @PathVariable("ctid") final String caseTypeId, - @ApiParam(value = "Case ID", required = true) + @Parameter(name = "Case ID", required = true) @PathVariable("cid") final String caseId) { return getCaseOperation.execute(jurisdictionId, caseTypeId, caseId) @@ -161,94 +161,94 @@ public CaseDetails findCaseDetailsForCitizen( @GetMapping( value = "/caseworkers/{uid}/jurisdictions/{jid}/case-types/{ctid}/cases/{cid}/event-triggers/{etid}/token") - @ApiOperation(value = "Start event creation as Case worker", - notes = "Start the event creation process for an existing case. Triggers `AboutToStart` callback.") + @Operation(summary = "Start event creation as Case worker", + description = "Start the event creation process for an existing case. Triggers `AboutToStart` callback.") @ApiResponses(value = { - @ApiResponse(code = 200, message = "Event creation process started"), - @ApiResponse(code = 404, message = "No case found for the given ID"), - @ApiResponse(code = 422, message = "Process could not be started") + @ApiResponse(responseCode = "200", description = "Event creation process started"), + @ApiResponse(responseCode = "404", description = "No case found for the given ID"), + @ApiResponse(responseCode = "422", description = "Process could not be started") }) public StartEventResult startEventForCaseworker( - @ApiParam(value = "Idam user ID", required = true) + @Parameter(name = "Idam user ID", required = true) @PathVariable("uid") final String uid, - @ApiParam(value = "Jurisdiction ID", required = true) + @Parameter(name = "Jurisdiction ID", required = true) @PathVariable("jid") final String jurisdictionId, - @ApiParam(value = "Case type ID", required = true) + @Parameter(name = "Case type ID", required = true) @PathVariable("ctid") final String caseTypeId, - @ApiParam(value = "Case ID", required = true) + @Parameter(name = "Case ID", required = true) @PathVariable("cid") final String caseId, - @ApiParam(value = "Event ID", required = true) + @Parameter(name = "Event ID", required = true) @PathVariable("etid") final String eventId, - @ApiParam(value = "Should `AboutToStart` callback warnings be ignored") + @Parameter(name = "Should `AboutToStart` callback warnings be ignored") @RequestParam(value = "ignore-warning", required = false) final Boolean ignoreWarning) { return startEventOperation.triggerStartForCase(caseId, eventId, ignoreWarning); } @GetMapping(value = "/citizens/{uid}/jurisdictions/{jid}/case-types/{ctid}/cases/{cid}/event-triggers/{etid}/token") - @ApiOperation(value = "Start event creation as Citizen", notes = "Start the event creation process for an existing " + @Operation(summary = "Start event creation as Citizen", description = "Start the event creation process for an existing " + "case. Triggers `AboutToStart` callback.") @ApiResponses(value = { - @ApiResponse(code = 200, message = "Event creation process started"), - @ApiResponse(code = 404, message = "No case found for the given ID"), - @ApiResponse(code = 422, message = "Process could not be started") + @ApiResponse(responseCode = "200", description = "Event creation process started"), + @ApiResponse(responseCode = "404", description = "No case found for the given ID"), + @ApiResponse(responseCode = "422", description = "Process could not be started") }) public StartEventResult startEventForCitizen( - @ApiParam(value = "Idam user ID", required = true) + @Parameter(name = "Idam user ID", required = true) @PathVariable("uid") final String uid, - @ApiParam(value = "Jurisdiction ID", required = true) + @Parameter(name = "Jurisdiction ID", required = true) @PathVariable("jid") final String jurisdictionId, - @ApiParam(value = "Case type ID", required = true) + @Parameter(name = "Case type ID", required = true) @PathVariable("ctid") final String caseTypeId, - @ApiParam(value = "Case ID", required = true) + @Parameter(name = "Case ID", required = true) @PathVariable("cid") final String caseId, - @ApiParam(value = "Event ID", required = true) + @Parameter(name = "Event ID", required = true) @PathVariable("etid") final String eventId, - @ApiParam(value = "Should `AboutToStart` callback warnings be ignored") + @Parameter(name = "Should `AboutToStart` callback warnings be ignored") @RequestParam(value = "ignore-warning", required = false) final Boolean ignoreWarning) { return startEventOperation.triggerStartForCase(caseId, eventId, ignoreWarning); } @GetMapping(value = "/caseworkers/{uid}/jurisdictions/{jid}/case-types/{ctid}/event-triggers/{etid}/token") - @ApiOperation(value = "Start case creation as Case worker", notes = "Start the case creation process for a new " + @Operation(summary = "Start case creation as Case worker", description = "Start the case creation process for a new " + "case. Triggers `AboutToStart` callback.") @ApiResponses(value = { - @ApiResponse(code = 200, message = "Case creation process started"), - @ApiResponse(code = 422, message = "Process could not be started") + @ApiResponse(responseCode = "200", description = "Case creation process started"), + @ApiResponse(responseCode = "422", description = "Process could not be started") }) public StartEventResult startCaseForCaseworker( - @ApiParam(value = "Idam user ID", required = true) + @Parameter(name = "Idam user ID", required = true) @PathVariable("uid") final String uid, - @ApiParam(value = "Jurisdiction ID", required = true) + @Parameter(name = "Jurisdiction ID", required = true) @PathVariable("jid") final String jurisdictionId, - @ApiParam(value = "Case type ID", required = true) + @Parameter(name = "Case type ID", required = true) @PathVariable("ctid") final String caseTypeId, - @ApiParam(value = "Event ID", required = true) + @Parameter(name = "Event ID", required = true) @PathVariable("etid") final String eventId, - @ApiParam(value = "Should `AboutToStart` callback warnings be ignored") + @Parameter(name = "Should `AboutToStart` callback warnings be ignored") @RequestParam(value = "ignore-warning", required = false) final Boolean ignoreWarning) { return startEventOperation.triggerStartForCaseType(caseTypeId, eventId, ignoreWarning); } @GetMapping(value = "/citizens/{uid}/jurisdictions/{jid}/case-types/{ctid}/event-triggers/{etid}/token") - @ApiOperation(value = "Start case creation as Citizen", notes = "Start the case creation process for a new case. " + @Operation(summary = "Start case creation as Citizen", description = "Start the case creation process for a new case. " + "Triggers `AboutToStart` callback.") @ApiResponses(value = { - @ApiResponse(code = 200, message = "Case creation process started"), - @ApiResponse(code = 422, message = "Process could not be started") + @ApiResponse(responseCode = "200", description = "Case creation process started"), + @ApiResponse(responseCode = "422", description = "Process could not be started") }) public StartEventResult startCaseForCitizen( - @ApiParam(value = "Idam user ID", required = true) + @Parameter(name = "Idam user ID", required = true) @PathVariable("uid") final String uid, - @ApiParam(value = "Jurisdiction ID", required = true) + @Parameter(name = "Jurisdiction ID", required = true) @PathVariable("jid") final String jurisdictionId, - @ApiParam(value = "Case type ID", required = true) + @Parameter(name = "Case type ID", required = true) @PathVariable("ctid") final String caseTypeId, - @ApiParam(value = "Event ID", required = true) + @Parameter(name = "Event ID", required = true) @PathVariable("etid") final String eventId, - @ApiParam(value = "Should `AboutToStart` callback warnings be ignored") + @Parameter(name = "Should `AboutToStart` callback warnings be ignored") @RequestParam(value = "ignore-warning", required = false) final Boolean ignoreWarning) { return startEventOperation.triggerStartForCaseType(caseTypeId, eventId, ignoreWarning); @@ -256,26 +256,26 @@ public StartEventResult startCaseForCitizen( @PostMapping(value = "/caseworkers/{uid}/jurisdictions/{jid}/case-types/{ctid}/cases") @ResponseStatus(HttpStatus.CREATED) - @ApiOperation( - value = "Submit case creation as Case worker", - notes = "Complete the case creation process. This requires a valid event token to be provided, as generated by" + @Operation( + summary = "Submit case creation as Case worker", + description = "Complete the case creation process. This requires a valid event token to be provided, as generated by" + " `startCaseForCaseworker`." ) @ApiResponses(value = { - @ApiResponse(code = 201, message = "Case created"), - @ApiResponse(code = 422, message = "Case submission failed"), - @ApiResponse(code = 409, message = "Case reference not unique") + @ApiResponse(responseCode = "201", description = "Case created"), + @ApiResponse(responseCode = "422", description = "Case submission failed"), + @ApiResponse(responseCode = "409", description = "Case reference not unique") }) @LogAudit(operationType = AuditOperationType.CREATE_CASE, caseId = "#result.reference", jurisdiction = "#result.jurisdiction", caseType = "#caseTypeId", eventName = "#content.event.eventId") public CaseDetails saveCaseDetailsForCaseWorker( - @ApiParam(value = "Idam user ID", required = true) + @Parameter(name = "Idam user ID", required = true) @PathVariable("uid") final String uid, - @ApiParam(value = "Jurisdiction ID", required = true) + @Parameter(name = "Jurisdiction ID", required = true) @PathVariable("jid") final String jurisdictionId, - @ApiParam(value = "Case type ID", required = true) + @Parameter(name = "Case type ID", required = true) @PathVariable("ctid") final String caseTypeId, - @ApiParam(value = "Should `AboutToSubmit` callback warnings be ignored") + @Parameter(name = "Should `AboutToSubmit` callback warnings be ignored") @RequestParam(value = "ignore-warning", required = false) final Boolean ignoreWarning, @RequestBody final CaseDataContent content) { @@ -284,26 +284,26 @@ public CaseDetails saveCaseDetailsForCaseWorker( @PostMapping(value = "/citizens/{uid}/jurisdictions/{jid}/case-types/{ctid}/cases") @ResponseStatus(HttpStatus.CREATED) - @ApiOperation( - value = "Submit case creation as Citizen", - notes = "Complete the case creation process. This requires a valid event token to be provided, as generated by" + @Operation( + summary = "Submit case creation as Citizen", + description = "Complete the case creation process. This requires a valid event token to be provided, as generated by" + " `startCaseForCitizen`." ) @ApiResponses(value = { - @ApiResponse(code = 201, message = "Case created"), - @ApiResponse(code = 422, message = "Case submission failed"), - @ApiResponse(code = 409, message = "Case reference not unique") + @ApiResponse(responseCode = "201", description = "Case created"), + @ApiResponse(responseCode = "422", description = "Case submission failed"), + @ApiResponse(responseCode = "409", description = "Case reference not unique") }) @LogAudit(operationType = AuditOperationType.CREATE_CASE, caseId = "#result.reference", jurisdiction = "#result.jurisdiction", caseType = "#caseTypeId", eventName = "#content.event.eventId") public CaseDetails saveCaseDetailsForCitizen( - @ApiParam(value = "Idam user ID", required = true) + @Parameter(name = "Idam user ID", required = true) @PathVariable("uid") final String uid, - @ApiParam(value = "Jurisdiction ID", required = true) + @Parameter(name = "Jurisdiction ID", required = true) @PathVariable("jid") final String jurisdictionId, - @ApiParam(value = "Case type ID", required = true) + @Parameter(name = "Case type ID", required = true) @PathVariable("ctid") final String caseTypeId, - @ApiParam(value = "Should `AboutToSubmit` callback warnings be ignored") + @Parameter(name = "Should `AboutToSubmit` callback warnings be ignored") @RequestParam(value = "ignore-warning", required = false) final Boolean ignoreWarning, @RequestBody final CaseDataContent content) { @@ -313,23 +313,23 @@ public CaseDetails saveCaseDetailsForCitizen( @PostMapping(value = {"/caseworkers/{uid}/jurisdictions/{jid}/case-types/{ctid}/validate", "/citizens/{uid}/jurisdictions/{jid}/case-types/{ctid}/validate"}) @ResponseStatus(HttpStatus.OK) - @ApiOperation( - value = "Validate a set of fields as Case worker", - notes = "Validate the case data entered during the case/event creation process." + @Operation( + summary = "Validate a set of fields as Case worker", + description = "Validate the case data entered during the case/event creation process." ) @ApiResponses(value = { - @ApiResponse(code = 200, message = "Validation OK"), - @ApiResponse(code = 422, message = "Field validation failed"), - @ApiResponse(code = 409, message = "Case reference not unique") + @ApiResponse(responseCode = "200", description = "Validation OK"), + @ApiResponse(responseCode = "422", description = "Field validation failed"), + @ApiResponse(responseCode = "409", description = "Case reference not unique") }) public JsonNode validateCaseDetails( - @ApiParam(value = "Idam user ID", required = true) + @Parameter(name = "Idam user ID", required = true) @PathVariable("uid") final String uid, - @ApiParam(value = "Jurisdiction ID", required = true) + @Parameter(name = "Jurisdiction ID", required = true) @PathVariable("jid") final String jurisdictionId, - @ApiParam(value = "Case type ID", required = true) + @Parameter(name = "Case type ID", required = true) @PathVariable("ctid") final String caseTypeId, - @ApiParam(value = "Page ID") + @Parameter(name = "Page ID") @RequestParam(required = false) final String pageId, @RequestBody final CaseDataContent content) { @@ -343,26 +343,26 @@ public JsonNode validateCaseDetails( @PostMapping(value = "/caseworkers/{uid}/jurisdictions/{jid}/case-types/{ctid}/cases/{cid}/events") @ResponseStatus(HttpStatus.CREATED) - @ApiOperation( - value = "Submit event creation as Case worker", - notes = "Complete the event creation process. This requires a valid event token to be provided, as generated by" + @Operation( + summary = "Submit event creation as Case worker", + description = "Complete the event creation process. This requires a valid event token to be provided, as generated by" + " `startEventForCaseworker`." ) @ApiResponses(value = { - @ApiResponse(code = 201, message = "Case event created"), - @ApiResponse(code = 409, message = "Case altered outside of transaction"), - @ApiResponse(code = 422, message = "Event submission failed") + @ApiResponse(responseCode = "201", description = "Case event created"), + @ApiResponse(responseCode = "409", description = "Case altered outside of transaction"), + @ApiResponse(responseCode = "422", description = "Event submission failed") }) @LogAudit(operationType = AuditOperationType.UPDATE_CASE, caseId = "#caseId", jurisdiction = "#jurisdictionId", caseType = "#caseTypeId", eventName = "#content.event.eventId") public CaseDetails createCaseEventForCaseWorker( - @ApiParam(value = "Idam user ID", required = true) + @Parameter(name = "Idam user ID", required = true) @PathVariable("uid") final String uid, - @ApiParam(value = "Jurisdiction ID", required = true) + @Parameter(name = "Jurisdiction ID", required = true) @PathVariable("jid") final String jurisdictionId, - @ApiParam(value = "Case type ID", required = true) + @Parameter(name = "Case type ID", required = true) @PathVariable("ctid") final String caseTypeId, - @ApiParam(value = "Case ID", required = true) + @Parameter(name = "Case ID", required = true) @PathVariable("cid") final String caseId, @RequestBody final CaseDataContent content) { return createEventOperation.createCaseEvent(caseId, @@ -371,26 +371,26 @@ public CaseDetails createCaseEventForCaseWorker( @PostMapping(value = "/citizens/{uid}/jurisdictions/{jid}/case-types/{ctid}/cases/{cid}/events") @ResponseStatus(HttpStatus.CREATED) - @ApiOperation( - value = "Submit event creation as Citizen", - notes = "Complete the event creation process. This requires a valid event token to be provided, as generated by" + @Operation( + summary = "Submit event creation as Citizen", + description = "Complete the event creation process. This requires a valid event token to be provided, as generated by" + " `startEventForCitizen`." ) @ApiResponses(value = { - @ApiResponse(code = 201, message = "Case event created"), - @ApiResponse(code = 409, message = "Case altered outside of transaction"), - @ApiResponse(code = 422, message = "Event submission failed") + @ApiResponse(responseCode = "201", description = "Case event created"), + @ApiResponse(responseCode = "409", description = "Case altered outside of transaction"), + @ApiResponse(responseCode = "422", description = "Event submission failed") }) @LogAudit(operationType = AuditOperationType.UPDATE_CASE, caseId = "#caseId", jurisdiction = "#jurisdictionId", caseType = "#caseTypeId", eventName = "#content.event.eventId") public CaseDetails createCaseEventForCitizen( - @ApiParam(value = "Idam user ID", required = true) + @Parameter(name = "Idam user ID", required = true) @PathVariable("uid") final String uid, - @ApiParam(value = "Jurisdiction ID", required = true) + @Parameter(name = "Jurisdiction ID", required = true) @PathVariable("jid") final String jurisdictionId, - @ApiParam(value = "Case type ID", required = true) + @Parameter(name = "Case type ID", required = true) @PathVariable("ctid") final String caseTypeId, - @ApiParam(value = "Case ID", required = true) + @Parameter(name = "Case ID", required = true) @PathVariable("cid") final String caseId, @RequestBody final CaseDataContent content) { return createEventOperation.createCaseEvent(caseId, @@ -398,9 +398,9 @@ public CaseDetails createCaseEventForCitizen( } @GetMapping(value = "/caseworkers/{uid}/jurisdictions/{jid}/case-types/{ctid}/cases/{cid}/documents") - @ApiOperation(value = "Get a list of printable documents for the given case id ") + @Operation(summary = "Get a list of printable documents for the given case id ") @ApiResponses(value = { - @ApiResponse(code = 200, message = "Documents list for the given case id") + @ApiResponse(responseCode = "200", description = "Documents list for the given case id") }) public List getDocumentsForCase( @PathVariable("uid") final String uid, @@ -416,9 +416,9 @@ public List getDocumentsForCase( } @GetMapping(value = "/caseworkers/{uid}/jurisdictions/{jid}/case-types/{ctid}/cases") - @ApiOperation(value = "Get case data for a given case type") + @Operation(summary = "Get case data for a given case type") @ApiResponses(value = { - @ApiResponse(code = 200, message = "List of case data for the given search criteria")}) + @ApiResponse(responseCode = "200", description = "List of case data for the given search criteria")}) @LogAudit(operationType = AuditOperationType.SEARCH_CASE, jurisdiction = "#jurisdictionId", caseType = "#caseTypeId", caseId = "T(uk.gov.hmcts.ccd.endpoint.std.CaseDetailsEndpoint).buildCaseIds(#result)") public List searchCasesForCaseWorkers(@PathVariable("uid") final String uid, @@ -429,9 +429,9 @@ public List searchCasesForCaseWorkers(@PathVariable("uid") final St } @GetMapping(value = "/citizens/{uid}/jurisdictions/{jid}/case-types/{ctid}/cases") - @ApiOperation(value = "Get case data for a given case type") + @Operation(summary = "Get case data for a given case type") @ApiResponses(value = { - @ApiResponse(code = 200, message = "List of case data for the given search criteria")}) + @ApiResponse(responseCode = "200", description = "List of case data for the given search criteria")}) @LogAudit(operationType = AuditOperationType.SEARCH_CASE, jurisdiction = "#jurisdictionId", caseType = "#caseTypeId", caseId = "T(uk.gov.hmcts.ccd.endpoint.std.CaseDetailsEndpoint).buildCaseIds(#result)") public List searchCasesForCitizens(@PathVariable("uid") final String uid, @@ -453,9 +453,9 @@ private List searchCases(final String jurisdictionId, } @GetMapping(value = "/caseworkers/{uid}/jurisdictions/{jid}/case-types/{ctid}/cases/pagination_metadata") - @ApiOperation(value = "Get the pagination metadata for a case data search") + @Operation(summary = "Get the pagination metadata for a case data search") @ApiResponses(value = { - @ApiResponse(code = 200, message = "Pagination metadata for the given search criteria")}) + @ApiResponse(responseCode = "200", description = "Pagination metadata for the given search criteria")}) public PaginatedSearchMetadata searchCasesMetadataForCaseworkers(@PathVariable("uid") final String uid, @PathVariable("jid") final String jurisdictionId, @PathVariable("ctid") final String caseTypeId, @@ -465,9 +465,9 @@ public PaginatedSearchMetadata searchCasesMetadataForCaseworkers(@PathVariable(" } @GetMapping(value = "/citizens/{uid}/jurisdictions/{jid}/case-types/{ctid}/cases/pagination_metadata") - @ApiOperation(value = "Get the pagination metadata for a case data search") + @Operation(summary = "Get the pagination metadata for a case data search") @ApiResponses(value = { - @ApiResponse(code = 200, message = "Pagination metadata for the given search criteria")}) + @ApiResponse(responseCode = "200", description = "Pagination metadata for the given search criteria")}) public PaginatedSearchMetadata searchCasesMetadataForCitizens(@PathVariable("uid") final String uid, @PathVariable("jid") final String jurisdictionId, @PathVariable("ctid") final String caseTypeId, diff --git a/src/main/java/uk/gov/hmcts/ccd/endpoint/std/CaseSearchEndpoint.java b/src/main/java/uk/gov/hmcts/ccd/endpoint/std/CaseSearchEndpoint.java index ac9b1668ac..86e5a4b416 100644 --- a/src/main/java/uk/gov/hmcts/ccd/endpoint/std/CaseSearchEndpoint.java +++ b/src/main/java/uk/gov/hmcts/ccd/endpoint/std/CaseSearchEndpoint.java @@ -1,12 +1,5 @@ package uk.gov.hmcts.ccd.endpoint.std; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import io.swagger.annotations.SwaggerDefinition; -import io.swagger.annotations.Tag; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -16,6 +9,11 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.tags.Tag; import uk.gov.hmcts.ccd.ApplicationParams; import uk.gov.hmcts.ccd.auditlog.AuditOperationType; import uk.gov.hmcts.ccd.auditlog.LogAudit; @@ -41,10 +39,7 @@ @RequestMapping(path = "/", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) -@Api(tags = {"Elastic Based Search API"}) -@SwaggerDefinition(tags = { - @Tag(name = "Elastic Based Search API", description = "ElasticSearch based search API") -}) +@Tag(name = "Elastic Based Search API", description = "ElasticSearch based search API") @Slf4j public class CaseSearchEndpoint { @@ -62,19 +57,17 @@ public CaseSearchEndpoint(@Qualifier(AuthorisedCaseSearchOperation.QUALIFIER) } @PostMapping(value = "/searchCases") - @ApiOperation("Search cases according to the provided ElasticSearch query. Supports searching across multiple case" - + " types.") - @ApiResponses(value = { - @ApiResponse(code = 200, message = "List of case data for the given search request") - }) + @Operation(description = "Search cases according to the provided ElasticSearch query. " + + "Supports searching across multiple case types.") + @ApiResponse(responseCode = "200", description = "List of case data for the given search request") @LogAudit(operationType = AuditOperationType.SEARCH_CASE, caseTypeIds = "#caseTypeIds", caseId = "T(uk.gov.hmcts.ccd.endpoint.std.CaseSearchEndpoint).buildCaseIds(#result)") public CaseSearchResult searchCases( - @ApiParam(value = "Comma separated list of case type ID(s) or '*' if the search should be applied on any " + @Parameter(description = "Comma separated list of case type ID(s) or '*' if the search should be applied on any " + "existing case type. Note that using '*' is an expensive operation and might have low response times so " + "always prefer explicitly listing the case types when known in advance", required = true) @RequestParam("ctid") List caseTypeIds, - @ApiParam(value = "Native ElasticSearch Search API request. Please refer to the ElasticSearch official " + @Parameter(description = "Native ElasticSearch Search API request. Please refer to the ElasticSearch official " + "documentation. For cross case type search, " + "the search results will contain only metadata by default (no case field data). To get case data in the " + "search results, please state the alias fields to be returned in the _source property for e.g." diff --git a/src/main/java/uk/gov/hmcts/ccd/endpoint/std/DraftsEndpoint.java b/src/main/java/uk/gov/hmcts/ccd/endpoint/std/DraftsEndpoint.java index 639b017c8e..b5371fc5c0 100644 --- a/src/main/java/uk/gov/hmcts/ccd/endpoint/std/DraftsEndpoint.java +++ b/src/main/java/uk/gov/hmcts/ccd/endpoint/std/DraftsEndpoint.java @@ -1,12 +1,5 @@ package uk.gov.hmcts.ccd.endpoint.std; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import io.swagger.annotations.SwaggerDefinition; -import io.swagger.annotations.Tag; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -22,6 +15,11 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestController; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.tags.Tag; import uk.gov.hmcts.ccd.data.draft.CachedDraftGateway; import uk.gov.hmcts.ccd.data.draft.DraftGateway; import uk.gov.hmcts.ccd.domain.model.aggregated.CaseView; @@ -38,10 +36,7 @@ @RequestMapping(path = "/", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) -@Api(tags = {"Drafts API"}) -@SwaggerDefinition(tags = { - @Tag(name = "Drafts API", description = "The API for saving, updating, finding or deleting draft case data") -}) +@Tag(name = "Drafts API", description = "The API for saving, updating, finding or deleting draft case data") public class DraftsEndpoint { private static final Logger LOG = LoggerFactory.getLogger(DraftsEndpoint.class); @@ -61,21 +56,17 @@ public DraftsEndpoint(@Qualifier("default") final UpsertDraftOperation upsertDra @PostMapping(value = "/caseworkers/{uid}/jurisdictions/{jid}/case-types/{ctid}/event-trigger/{etid}/drafts") @ResponseStatus(HttpStatus.CREATED) - @ApiOperation( - value = "Save draft as a caseworker." - ) - @ApiResponses(value = { - @ApiResponse(code = 201, message = "Draft created"), - @ApiResponse(code = 400, message = "Bad request") - }) + @Operation(summary = "Save draft as a caseworker.") + @ApiResponse(responseCode = "201", description = "Draft created") + @ApiResponse(responseCode = "400", description = "Bad request") public DraftResponse saveDraftForCaseWorker( - @ApiParam(value = "Idam user ID", required = true) + @Parameter(name = "Idam user ID", required = true) @PathVariable("uid") final String uid, - @ApiParam(value = "Jurisdiction ID", required = true) + @Parameter(name = "Jurisdiction ID", required = true) @PathVariable("jid") final String jurisdictionId, - @ApiParam(value = "Case type ID", required = true) + @Parameter(name = "Case type ID", required = true) @PathVariable("ctid") final String caseTypeId, - @ApiParam(value = "Event Trigger ID", required = true) + @Parameter(name = "Event Trigger ID", required = true) @PathVariable("etid") final String eventId, @RequestBody final CaseDataContent caseDataContent) { @@ -84,23 +75,19 @@ public DraftResponse saveDraftForCaseWorker( @PutMapping(value = "/caseworkers/{uid}/jurisdictions/{jid}/case-types/{ctid}/event-trigger/{etid}/drafts/{did}") @ResponseStatus(HttpStatus.OK) - @ApiOperation( - value = "Update draft as a caseworker." - ) - @ApiResponses(value = { - @ApiResponse(code = 200, message = "Draft updated"), - @ApiResponse(code = 400, message = "Bad request") - }) + @Operation(summary = "Update draft as a caseworker.") + @ApiResponse(responseCode = "200", description = "Draft updated") + @ApiResponse(responseCode = "400", description = "Bad request") public DraftResponse updateDraftForCaseWorker( - @ApiParam(value = "Idam user ID", required = true) + @Parameter(name = "Idam user ID", required = true) @PathVariable("uid") final String uid, - @ApiParam(value = "Jurisdiction ID", required = true) + @Parameter(name = "Jurisdiction ID", required = true) @PathVariable("jid") final String jurisdictionId, - @ApiParam(value = "Case type ID", required = true) + @Parameter(name = "Case type ID", required = true) @PathVariable("ctid") final String caseTypeId, - @ApiParam(value = "Event Trigger ID", required = true) + @Parameter(name = "Event Trigger ID", required = true) @PathVariable("etid") final String eventId, - @ApiParam(value = "Draft ID", required = true) + @Parameter(name = "Draft ID", required = true) @PathVariable("did") final String draftId, @RequestBody final CaseDataContent caseDataContent) { @@ -108,10 +95,8 @@ public DraftResponse updateDraftForCaseWorker( } @GetMapping(value = "/caseworkers/{uid}/jurisdictions/{jid}/case-types/{ctid}/drafts/{did}") - @ApiOperation(value = "Fetch a draft for display") - @ApiResponses(value = { - @ApiResponse(code = 200, message = "A displayable draft") - }) + @Operation(summary = "Fetch a draft for display") + @ApiResponse(responseCode = "200", description = "A displayable draft") public CaseView findDraft(@PathVariable("uid") final String uid, @PathVariable("jid") final String jurisdictionId, @PathVariable("ctid") final String caseTypeId, @@ -124,10 +109,8 @@ public CaseView findDraft(@PathVariable("uid") final String uid, } @DeleteMapping(value = "/caseworkers/{uid}/jurisdictions/{jid}/case-types/{ctid}/drafts/{did}") - @ApiOperation(value = "Delete a given draft") - @ApiResponses(value = { - @ApiResponse(code = 200, message = "A draft deleted successfully") - }) + @Operation(summary = "Delete a given draft") + @ApiResponse(responseCode = "200", description = "A draft deleted successfully") public void deleteDraft(@PathVariable("uid") final String uid, @PathVariable("jid") final String jurisdictionId, @PathVariable("ctid") final String caseTypeId, diff --git a/src/main/java/uk/gov/hmcts/ccd/endpoint/std/EventsEndpoint.java b/src/main/java/uk/gov/hmcts/ccd/endpoint/std/EventsEndpoint.java index f8c9542046..6d2e525a46 100644 --- a/src/main/java/uk/gov/hmcts/ccd/endpoint/std/EventsEndpoint.java +++ b/src/main/java/uk/gov/hmcts/ccd/endpoint/std/EventsEndpoint.java @@ -1,10 +1,5 @@ package uk.gov.hmcts.ccd.endpoint.std; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.http.MediaType; @@ -12,6 +7,11 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.tags.Tag; import uk.gov.hmcts.ccd.domain.model.std.AuditEvent; import uk.gov.hmcts.ccd.domain.service.getevents.GetEventsOperation; @@ -21,7 +21,7 @@ @RequestMapping(path = "/", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) -@Api(value = "/", description = "Events API") +@Tag(name = "Events API") public class EventsEndpoint { private final GetEventsOperation getEventsOperation; @@ -32,20 +32,18 @@ public EventsEndpoint(@Qualifier("authorised") final GetEventsOperation getEvent @RequestMapping(value = "/caseworkers/{uid}/jurisdictions/{jid}/case-types/{ctid}/cases/{cid}/events", method = RequestMethod.GET) - @ApiOperation(value = "Get events for case", notes = "Retrieve all events for a case") - @ApiResponses(value = { - @ApiResponse(code = 200, message = "Events found for the given ID"), - @ApiResponse(code = 400, message = "Invalid case ID"), - @ApiResponse(code = 404, message = "No case found for the given ID") - }) + @Operation(summary = "Get events for case", description = "Retrieve all events for a case") + @ApiResponse(responseCode = "200", description = "Events found for the given ID") + @ApiResponse(responseCode = "400", description = "Invalid case ID") + @ApiResponse(responseCode = "404", description = "No case found for the given ID") public List findEventDetailsForCase( - @ApiParam(value = "Idam user ID", required = true) + @Parameter(name = "Idam user ID", required = true) @PathVariable("uid") final String uid, - @ApiParam(value = "Jurisdiction ID", required = true) + @Parameter(name = "Jurisdiction ID", required = true) @PathVariable("jid") final String jurisdictionId, - @ApiParam(value = "Case type ID", required = true) + @Parameter(name = "Case type ID", required = true) @PathVariable("ctid") final String caseTypeId, - @ApiParam(value = "Case ID", required = true) + @Parameter(name = "Case ID", required = true) @PathVariable("cid") final String caseId) { return getEventsOperation.getEvents(jurisdictionId, caseTypeId, caseId); diff --git a/src/main/java/uk/gov/hmcts/ccd/endpoint/std/GlobalSearchEndpoint.java b/src/main/java/uk/gov/hmcts/ccd/endpoint/std/GlobalSearchEndpoint.java index 658944e69e..b9032e93bf 100644 --- a/src/main/java/uk/gov/hmcts/ccd/endpoint/std/GlobalSearchEndpoint.java +++ b/src/main/java/uk/gov/hmcts/ccd/endpoint/std/GlobalSearchEndpoint.java @@ -1,10 +1,5 @@ package uk.gov.hmcts.ccd.endpoint.std; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import io.swagger.annotations.Example; -import io.swagger.annotations.ExampleProperty; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -12,6 +7,11 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.ExampleObject; +import io.swagger.v3.oas.annotations.responses.ApiResponse; import uk.gov.hmcts.ccd.auditlog.AuditOperationType; import uk.gov.hmcts.ccd.auditlog.LogAudit; import uk.gov.hmcts.ccd.domain.model.definition.CaseDetails; @@ -25,7 +25,7 @@ import uk.gov.hmcts.ccd.domain.service.search.elasticsearch.security.AuthorisedCaseSearchOperation; import uk.gov.hmcts.ccd.domain.service.search.global.GlobalSearchService; -import javax.validation.Valid; +import jakarta.validation.Valid; import java.time.Duration; import java.time.Instant; import java.util.Collection; @@ -60,40 +60,35 @@ public GlobalSearchEndpoint(@Qualifier(AuthorisedCaseSearchOperation.QUALIFIER) } @PostMapping(path = GLOBAL_SEARCH_PATH, consumes = APPLICATION_JSON_VALUE, produces = APPLICATION_JSON_VALUE) - @ApiOperation(value = "Global Search Request", notes = "Global Search Request") - @ApiResponses(value = { - @ApiResponse( - code = 200, - message = "Search Request Valid" - ), - @ApiResponse( - code = 400, - message = "One or more of the following reasons:" - + "\n1) " + ValidationError.DATE_OF_DEATH_INVALID - + "\n2) " + ValidationError.SORT_BY_INVALID - + "\n3) " + ValidationError.SORT_DIRECTION_INVALID - + "\n4) " + ValidationError.MAX_RECORD_COUNT_INVALID - + "\n5) " + ValidationError.GLOBAL_SEARCH_CRITERIA_INVALID - + "\n6) " + ValidationError.JURISDICTION_ID_LENGTH_INVALID - + "\n7) " + ValidationError.STATE_ID_LENGTH_INVALID - + "\n8) " + ValidationError.CASE_TYPE_ID_LENGTH_INVALID - + "\n9) " + ValidationError.CASE_REFERENCE_INVALID - + "\n10) " + ValidationError.START_RECORD_NUMBER_INVALID - + "\n11) " + ValidationError.DATE_OF_BIRTH_INVALID, - - examples = @Example({ - @ExampleProperty( - value = "{\n" - + " \"status\": \"400\",\n" - + " \"error\": \"Bad Request\",\n" - + " \"message\": \"" + ValidationError.ARGUMENT_INVALID + "\",\n" - + " \"path\": \"" + GLOBAL_SEARCH_PATH + "\",\n" - + " \"details\": [ \"" + ValidationError.STATE_ID_LENGTH_INVALID + "\" ]\n" - + "}", - mediaType = APPLICATION_JSON_VALUE) - }) + @Operation(summary = "Global Search Request", description = "Global Search Request") + @ApiResponse(responseCode = "200", description = "Search Request Valid") + @ApiResponse( + responseCode = "400", + description = "One or more of the following reasons:" + + "\n1) " + ValidationError.DATE_OF_DEATH_INVALID + + "\n2) " + ValidationError.SORT_BY_INVALID + + "\n3) " + ValidationError.SORT_DIRECTION_INVALID + + "\n4) " + ValidationError.MAX_RECORD_COUNT_INVALID + + "\n5) " + ValidationError.GLOBAL_SEARCH_CRITERIA_INVALID + + "\n6) " + ValidationError.JURISDICTION_ID_LENGTH_INVALID + + "\n7) " + ValidationError.STATE_ID_LENGTH_INVALID + + "\n8) " + ValidationError.CASE_TYPE_ID_LENGTH_INVALID + + "\n9) " + ValidationError.CASE_REFERENCE_INVALID + + "\n10) " + ValidationError.START_RECORD_NUMBER_INVALID + + "\n11) " + ValidationError.DATE_OF_BIRTH_INVALID, + content = @Content( + mediaType = APPLICATION_JSON_VALUE, + examples = @ExampleObject( + value = "{\n" + + " \"status\": \"400\",\n" + + " \"error\": \"Bad Request\",\n" + + " \"message\": \"" + ValidationError.ARGUMENT_INVALID + "\",\n" + + " \"path\": \"" + GLOBAL_SEARCH_PATH + "\",\n" + + " \"details\": [ \"" + ValidationError.STATE_ID_LENGTH_INVALID + "\" ]\n" + + "}" ) - }) + ) + ) @LogAudit( operationType = AuditOperationType.GLOBAL_SEARCH, caseTypeIds = "T(uk.gov.hmcts.ccd.endpoint.std.GlobalSearchEndpoint).buildCaseTypeIds(#requestPayload)", diff --git a/src/main/java/uk/gov/hmcts/ccd/endpoint/std/MigrationEndpoint.java b/src/main/java/uk/gov/hmcts/ccd/endpoint/std/MigrationEndpoint.java index 9d9fc3aa0d..ff4f8fba2e 100644 --- a/src/main/java/uk/gov/hmcts/ccd/endpoint/std/MigrationEndpoint.java +++ b/src/main/java/uk/gov/hmcts/ccd/endpoint/std/MigrationEndpoint.java @@ -1,9 +1,9 @@ package uk.gov.hmcts.ccd.endpoint.std; import com.google.common.collect.Iterables; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.responses.ApiResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -51,13 +51,12 @@ public MigrationEndpoint(final CaseLinkMigrationService caseLinkMigrationService @PostMapping(path = "/populateCaseLinks", consumes = APPLICATION_JSON_VALUE, produces = APPLICATION_JSON_VALUE) - @ApiOperation( - value = "Migrate case links", - notes = "Updates the case link records for the cases found using the migration properties") - @ApiResponses(value = { - @ApiResponse(code = 200, message = "Migration completed for range of records specified"), - @ApiResponse(code = 403, message = "User does not have access to CaseType"), - }) + @Operation( + summary = "Migrate case links", + description = "Updates the case link records for the cases found using the migration properties" + ) + @ApiResponse(responseCode = "200", description = "Migration completed for range of records specified") + @ApiResponse(responseCode = "403", description = "User does not have access to CaseType") @LogAudit( operationType = AuditOperationType.MIGRATION, caseId = "#migrationParameters.caseDataId", diff --git a/src/main/java/uk/gov/hmcts/ccd/endpoint/ui/QueryEndpoint.java b/src/main/java/uk/gov/hmcts/ccd/endpoint/ui/QueryEndpoint.java index bedf290b8a..ecebb77966 100644 --- a/src/main/java/uk/gov/hmcts/ccd/endpoint/ui/QueryEndpoint.java +++ b/src/main/java/uk/gov/hmcts/ccd/endpoint/ui/QueryEndpoint.java @@ -1,9 +1,9 @@ package uk.gov.hmcts.ccd.endpoint.ui; import com.google.common.collect.Maps; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.responses.ApiResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Qualifier; @@ -44,7 +44,7 @@ import uk.gov.hmcts.ccd.endpoint.exceptions.ResourceNotFoundException; import uk.gov.hmcts.ccd.v2.V2; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.time.Duration; import java.time.Instant; import java.time.LocalDate; @@ -126,10 +126,9 @@ public QueryEndpoint( */ @Deprecated @RequestMapping(value = "/caseworkers/{uid}/jurisdictions/{jid}/case-types", method = RequestMethod.GET) - @ApiOperation(value = "Get case types") - @ApiResponses(value = { - @ApiResponse(code = 200, message = "List of case types for the given access criteria"), - @ApiResponse(code = 404, message = "No case types found for given access criteria")}) + @Operation(summary = "Get case types") + @ApiResponse(responseCode = "200", description = "List of case types for the given access criteria") + @ApiResponse(responseCode = "404", description = "No case types found for given access criteria") @SuppressWarnings("squid:CallToDeprecatedMethod") public List getCaseTypes(@PathVariable("jid") final String jurisdictionId, @RequestParam(value = "access", required = true) String access) { @@ -138,10 +137,9 @@ public List getCaseTypes(@PathVariable("jid") final String j } @GetMapping(value = "/caseworkers/{uid}/jurisdictions") - @ApiOperation(value = "Get jurisdictions available to the user") - @ApiResponses(value = { - @ApiResponse(code = 200, message = "List of jurisdictions for the given access criteria"), - @ApiResponse(code = 404, message = "No jurisdictions found for given access criteria")}) + @Operation(summary = "Get jurisdictions available to the user") + @ApiResponse(responseCode = "200", description = "List of jurisdictions for the given access criteria") + @ApiResponse(responseCode = "404", description = "No jurisdictions found for given access criteria") public List getJurisdictions(@RequestParam(value = "access") String access) { if (accessMap.get(access) == null) { throw new BadRequestException("Access can only be 'create', 'read' or 'update'"); @@ -157,10 +155,9 @@ public List getJurisdictions(@RequestParam(value @RequestMapping(value = "/caseworkers/{uid}/jurisdictions/{jid}/case-types/{ctid}/cases", method = RequestMethod.GET) - @ApiOperation(value = "Get case data with UI layout") - @ApiResponses(value = { - @ApiResponse(code = 200, message = "List of case data for the given search criteria"), - @ApiResponse(code = 412, message = "Mismatch between case type and workbasket definitions")}) + @Operation(summary = "Get case data with UI layout") + @ApiResponse(responseCode = "200", description = "List of case data for the given search criteria") + @ApiResponse(responseCode = "412", description = "Mismatch between case type and workbasket definitions") @LogAudit(operationType = AuditOperationType.SEARCH_CASE, jurisdiction = "#jurisdictionId", caseType = "#caseTypeId", caseId = "T(uk.gov.hmcts.ccd.endpoint.ui.QueryEndpoint).buildCaseIds(#result)") public SearchResultView searchNew(@PathVariable("jid") final String jurisdictionId, @@ -193,11 +190,9 @@ private Optional param(Map queryParameters, String param @RequestMapping(value = "/caseworkers/{uid}/jurisdictions/{jid}/case-types/{ctid}/inputs", method = RequestMethod.GET) - @ApiOperation(value = "Get Search Input details") - @ApiResponses(value = { - @ApiResponse(code = 200, message = "Search Input data found for the given case type and jurisdiction"), - @ApiResponse(code = 404, message = "No SearchInput found for the given case type and jurisdiction") - }) + @Operation(summary = "Get Search Input details") + @ApiResponse(responseCode = "200", description = "Search Input data found for the given case type and jurisdiction") + @ApiResponse(responseCode = "404", description = "No SearchInput found for the given case type and jurisdiction") public SearchInput[] findSearchInputDetails(@PathVariable("uid") final String uid, @PathVariable("jid") final String jurisdictionId, @PathVariable("ctid") final String caseTypeId) { @@ -210,11 +205,9 @@ public SearchInput[] findSearchInputDetails(@PathVariable("uid") final String ui @RequestMapping(value = "/caseworkers/{uid}/jurisdictions/{jid}/case-types/{ctid}/" + "work-basket-inputs", method = RequestMethod.GET) - @ApiOperation(value = "Get Workbasket Input details") - @ApiResponses(value = { - @ApiResponse(code = 200, message = "Workbasket Input data found for the given case type and jurisdiction"), - @ApiResponse(code = 404, message = "No Workbasket Input found for the given case type and jurisdiction") - }) + @Operation(summary = "Get Workbasket Input details") + @ApiResponse(responseCode = "200", description = "Workbasket Input data found for the given case type and jurisdiction") + @ApiResponse(responseCode = "404", description = "No Workbasket Input found for the given case type and jurisdiction") public WorkbasketInput[] findWorkbasketInputDetails(@PathVariable("uid") final String uid, @PathVariable("jid") final String jurisdictionId, @PathVariable("ctid") final String caseTypeId) { @@ -230,10 +223,8 @@ public WorkbasketInput[] findWorkbasketInputDetails(@PathVariable("uid") final S @RequestMapping(value = "/caseworkers/{uid}/jurisdictions/{jid}/case-types/{ctid}/cases/{cid}", method = RequestMethod.GET) - @ApiOperation(value = "Fetch a case for display") - @ApiResponses(value = { - @ApiResponse(code = 200, message = "A displayable case") - }) + @Operation(summary = "Fetch a case for display") + @ApiResponse(responseCode = "200", description = "A displayable case") @LogAudit(operationType = AuditOperationType.SEARCH_CASE, jurisdiction = "#jurisdictionId", caseType = "#caseTypeId", caseId = "#cid") public CaseView findCase(@PathVariable("jid") final String jurisdictionId, @@ -249,11 +240,9 @@ public CaseView findCase(@PathVariable("jid") final String jurisdictionId, @RequestMapping(value = "/caseworkers/{uid}/jurisdictions/{jid}/case-types/{ctid}/" + "event-triggers/{etid}", method = RequestMethod.GET) - @ApiOperation(value = "Fetch an event trigger in the context of a case type") - @ApiResponses(value = { - @ApiResponse(code = 200, message = "Empty pre-state conditions"), - @ApiResponse(code = 422, message = "The case status did not qualify for the event") - }) + @Operation(summary = "Fetch an event trigger in the context of a case type") + @ApiResponse(responseCode = "200", description = "Empty pre-state conditions") + @ApiResponse(responseCode = "422", description = "The case status did not qualify for the event") public CaseUpdateViewEvent getEventTriggerForCaseType(@PathVariable("uid") String userId, @PathVariable("jid") String jurisdictionId, @PathVariable("ctid") String caseTypeId, @@ -268,10 +257,8 @@ public CaseUpdateViewEvent getEventTriggerForCaseType(@PathVariable("uid") Strin value = "/caseworkers/{uid}/jurisdictions/{jid}/case-types/{ctid}/cases/{cid}/" + "event-triggers/{etid}", method = RequestMethod.GET) - @ApiOperation(value = "Fetch an event trigger in the context of a case") - @ApiResponses(value = { - @ApiResponse(code = 200, message = "Valid pre-state conditions") - }) + @Operation(summary = "Fetch an event trigger in the context of a case") + @ApiResponse(responseCode = "200", description = "Valid pre-state conditions") public CaseUpdateViewEvent getEventTriggerForCase(@PathVariable("uid") String userId, @PathVariable("jid") String jurisdictionId, @PathVariable("ctid") String caseTypeId, @@ -287,10 +274,8 @@ public CaseUpdateViewEvent getEventTriggerForCase(@PathVariable("uid") String us value = "/caseworkers/{uid}/jurisdictions/{jid}/case-types/{ctid}/drafts/{did}/" + "event-triggers/{etid}", method = RequestMethod.GET) - @ApiOperation(value = "Fetch an event trigger in the context of a case") - @ApiResponses(value = { - @ApiResponse(code = 200, message = "Valid pre-state conditions") - }) + @Operation(summary = "Fetch an event trigger in the context of a case") + @ApiResponse(responseCode = "200", description = "Valid pre-state conditions") public CaseUpdateViewEvent getEventTriggerForDraft(@PathVariable("uid") String userId, @PathVariable("jid") String jurisdictionId, @PathVariable("ctid") String caseTypeId, @@ -305,11 +290,9 @@ public CaseUpdateViewEvent getEventTriggerForDraft(@PathVariable("uid") String u value = "/caseworkers/{uid}/jurisdictions/{jid}/case-types/{ctid}/cases/{cid}/events/" + "{eventId}/case-history", method = RequestMethod.GET) - @ApiOperation(value = "Fetch case history for the event") - @ApiResponses(value = { - @ApiResponse(code = 200, message = "Displayable case data"), - @ApiResponse(code = 404, message = "Invalid jurisdiction/case type/case reference or event id") - }) + @Operation(summary = "Fetch case history for the event") + @ApiResponse(responseCode = "200", description = "Displayable case data") + @ApiResponse(responseCode = "404", description = "Invalid jurisdiction/case type/case reference or event id") public CaseHistoryView getCaseHistoryForEvent(@PathVariable("jid") final String jurisdictionId, @PathVariable("ctid") final String caseTypeId, @PathVariable("cid") final String caseReference, diff --git a/src/main/java/uk/gov/hmcts/ccd/endpoint/ui/UserProfileEndpoint.java b/src/main/java/uk/gov/hmcts/ccd/endpoint/ui/UserProfileEndpoint.java index b5fdfe1b3d..6a47da58ba 100644 --- a/src/main/java/uk/gov/hmcts/ccd/endpoint/ui/UserProfileEndpoint.java +++ b/src/main/java/uk/gov/hmcts/ccd/endpoint/ui/UserProfileEndpoint.java @@ -1,17 +1,18 @@ package uk.gov.hmcts.ccd.endpoint.ui; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.responses.ApiResponse; import uk.gov.hmcts.ccd.domain.model.aggregated.UserProfile; import uk.gov.hmcts.ccd.domain.service.aggregated.AuthorisedGetUserProfileOperation; import uk.gov.hmcts.ccd.domain.service.aggregated.GetUserProfileOperation; import uk.gov.hmcts.ccd.domain.service.common.AccessControlService; -import javax.inject.Inject; +import jakarta.inject.Inject; @RestController public class UserProfileEndpoint { @@ -24,8 +25,8 @@ public UserProfileEndpoint(@Qualifier(AuthorisedGetUserProfileOperation.QUALIFIE } @RequestMapping(value = "/caseworkers/{uid}/profile", method = RequestMethod.GET) - @ApiOperation(value = "Get default setting for user") - @ApiResponse(code = 200, message = "User default settings") + @Operation(summary = "Get default setting for user") + @ApiResponse(responseCode = "200", description = "User default settings") public UserProfile getUserProfile() { return getUserProfileOperation.execute(AccessControlService.CAN_READ); } diff --git a/src/main/java/uk/gov/hmcts/ccd/infrastructure/RandomKeyGenerator.java b/src/main/java/uk/gov/hmcts/ccd/infrastructure/RandomKeyGenerator.java index e0aea7678c..8b5c7fe9e9 100644 --- a/src/main/java/uk/gov/hmcts/ccd/infrastructure/RandomKeyGenerator.java +++ b/src/main/java/uk/gov/hmcts/ccd/infrastructure/RandomKeyGenerator.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.infrastructure; -import javax.inject.Named; -import javax.inject.Singleton; +import jakarta.inject.Named; +import jakarta.inject.Singleton; import java.math.BigInteger; import java.security.SecureRandom; diff --git a/src/main/java/uk/gov/hmcts/ccd/security/DataStoreHttpStatusRequestRejectedHandler.java b/src/main/java/uk/gov/hmcts/ccd/security/DataStoreHttpStatusRequestRejectedHandler.java index a20daa6b65..98b7907431 100644 --- a/src/main/java/uk/gov/hmcts/ccd/security/DataStoreHttpStatusRequestRejectedHandler.java +++ b/src/main/java/uk/gov/hmcts/ccd/security/DataStoreHttpStatusRequestRejectedHandler.java @@ -6,8 +6,8 @@ import org.springframework.security.web.firewall.RequestRejectedHandler; import uk.gov.hmcts.ccd.appinsights.AppInsights; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; /** diff --git a/src/main/java/uk/gov/hmcts/ccd/security/JwtGrantedAuthoritiesConverter.java b/src/main/java/uk/gov/hmcts/ccd/security/JwtGrantedAuthoritiesConverter.java index 9380286efe..f7322a6f08 100644 --- a/src/main/java/uk/gov/hmcts/ccd/security/JwtGrantedAuthoritiesConverter.java +++ b/src/main/java/uk/gov/hmcts/ccd/security/JwtGrantedAuthoritiesConverter.java @@ -34,7 +34,7 @@ public JwtGrantedAuthoritiesConverter(IdamRepository idamRepository) { @Override public Collection convert(Jwt jwt) { List authorities = new ArrayList<>(); - if (jwt.containsClaim(TOKEN_NAME) && jwt.getClaim(TOKEN_NAME).equals(ACCESS_TOKEN)) { + if (jwt.hasClaim(TOKEN_NAME) && jwt.getClaim(TOKEN_NAME).equals(ACCESS_TOKEN)) { UserInfo userInfo = idamRepository.getUserInfo(jwt.getTokenValue()); log.info("JwtGrantedAuthoritiesConverter retrieved user info from idamRepository. User Id={}. Roles={}.", userInfo.getUid(), userInfo.getRoles()); diff --git a/src/main/java/uk/gov/hmcts/ccd/security/filters/ExceptionHandlingFilter.java b/src/main/java/uk/gov/hmcts/ccd/security/filters/ExceptionHandlingFilter.java index 63135892b8..872c94a67a 100644 --- a/src/main/java/uk/gov/hmcts/ccd/security/filters/ExceptionHandlingFilter.java +++ b/src/main/java/uk/gov/hmcts/ccd/security/filters/ExceptionHandlingFilter.java @@ -5,9 +5,9 @@ import org.springframework.http.HttpStatus; import org.springframework.web.filter.OncePerRequestFilter; -import javax.servlet.FilterChain; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.FilterChain; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; /** * Used to catch the exceptions thrown in the Spring Security filter chain, except the following ServiceAuthFilter diff --git a/src/main/java/uk/gov/hmcts/ccd/security/filters/SecurityLoggingFilter.java b/src/main/java/uk/gov/hmcts/ccd/security/filters/SecurityLoggingFilter.java index 2828d68565..7284512e2d 100644 --- a/src/main/java/uk/gov/hmcts/ccd/security/filters/SecurityLoggingFilter.java +++ b/src/main/java/uk/gov/hmcts/ccd/security/filters/SecurityLoggingFilter.java @@ -5,10 +5,10 @@ import uk.gov.hmcts.ccd.data.SecurityUtils; import uk.gov.hmcts.reform.idam.client.models.UserInfo; -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.regex.Pattern; diff --git a/src/main/java/uk/gov/hmcts/ccd/security/filters/V1EndpointsPathParamSecurityFilter.java b/src/main/java/uk/gov/hmcts/ccd/security/filters/V1EndpointsPathParamSecurityFilter.java index b10d987b0b..36b886df64 100644 --- a/src/main/java/uk/gov/hmcts/ccd/security/filters/V1EndpointsPathParamSecurityFilter.java +++ b/src/main/java/uk/gov/hmcts/ccd/security/filters/V1EndpointsPathParamSecurityFilter.java @@ -8,10 +8,10 @@ import uk.gov.hmcts.ccd.security.exception.UnauthorizedException; import uk.gov.hmcts.reform.idam.client.models.UserInfo; -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Collection; import java.util.Collections; diff --git a/src/main/java/uk/gov/hmcts/ccd/security/idam/IdamRepository.java b/src/main/java/uk/gov/hmcts/ccd/security/idam/IdamRepository.java index 0b82f0a961..5f9db0f679 100644 --- a/src/main/java/uk/gov/hmcts/ccd/security/idam/IdamRepository.java +++ b/src/main/java/uk/gov/hmcts/ccd/security/idam/IdamRepository.java @@ -12,7 +12,7 @@ import uk.gov.hmcts.reform.idam.client.models.UserDetails; import uk.gov.hmcts.reform.idam.client.models.UserInfo; -import javax.annotation.Resource; +import jakarta.annotation.Resource; import java.util.List; @Component diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseAssignedUserRolesController.java b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseAssignedUserRolesController.java index 5092b340a5..6d2fb282e4 100644 --- a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseAssignedUserRolesController.java +++ b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseAssignedUserRolesController.java @@ -1,10 +1,13 @@ package uk.gov.hmcts.ccd.v2.external.controller; import com.google.common.collect.Lists; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; + import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -81,39 +84,35 @@ public CaseAssignedUserRolesController(ApplicationParams applicationParams, path = "/case-users" ) @ResponseStatus(HttpStatus.CREATED) - @ApiOperation( - value = "Add Case-Assigned Users and Roles" - ) - @ApiResponses({ - @ApiResponse( - code = 201, - message = ADD_SUCCESS_MESSAGE, - response = CaseAssignedUserRolesResponse.class - ), - @ApiResponse( - code = 400, - message = "One or more of the following reasons:\n" - + "1. " + V2.Error.EMPTY_CASE_USER_ROLE_LIST + ", \n" - + "2. " + V2.Error.CASE_ID_INVALID + ": has to be a valid 16-digit Luhn number, \n" - + "3. " + V2.Error.USER_ID_INVALID + ": has to be a string of length > 0, \n" - + "4. " + V2.Error.CASE_ROLE_FORMAT_INVALID + ": has to be a none-empty string in square brackets, \n" - + "5. " + V2.Error.ORGANISATION_ID_INVALID + ": has to be a non-empty string, when present." - ), - @ApiResponse( - code = 401, - message = V2.Error.AUTHENTICATION_TOKEN_INVALID - ), - @ApiResponse( - code = 403, - message = "One of the following reasons:\n" - + "1. " + V2.Error.UNAUTHORISED_S2S_SERVICE + "\n" - + "2. " + V2.Error.CLIENT_SERVICE_NOT_AUTHORISED_FOR_OPERATION + "." - ), - @ApiResponse( - code = 404, - message = V2.Error.CASE_NOT_FOUND - ) - }) + @Operation(summary = "Add Case-Assigned Users and Roles") + @ApiResponse( + responseCode = "201", + description = ADD_SUCCESS_MESSAGE, + content = @Content(schema = @Schema(implementation = CaseAssignedUserRolesResponse.class)) + ) + @ApiResponse( + responseCode = "400", + description = "One or more of the following reasons:\n" + + "1. " + V2.Error.EMPTY_CASE_USER_ROLE_LIST + ", \n" + + "2. " + V2.Error.CASE_ID_INVALID + ": has to be a valid 16-digit Luhn number, \n" + + "3. " + V2.Error.USER_ID_INVALID + ": has to be a string of length > 0, \n" + + "4. " + V2.Error.CASE_ROLE_FORMAT_INVALID + ": has to be a none-empty string in square brackets, \n" + + "5. " + V2.Error.ORGANISATION_ID_INVALID + ": has to be a non-empty string, when present." + ) + @ApiResponse( + responseCode = "401", + description = V2.Error.AUTHENTICATION_TOKEN_INVALID + ) + @ApiResponse( + responseCode = "403", + description = "One of the following reasons:\n" + + "1. " + V2.Error.UNAUTHORISED_S2S_SERVICE + "\n" + + "2. " + V2.Error.CLIENT_SERVICE_NOT_AUTHORISED_FOR_OPERATION + "." + ) + @ApiResponse( + responseCode = "404", + description = V2.Error.CASE_NOT_FOUND + ) @LogAudit( operationType = ADD_CASE_ASSIGNED_USER_ROLES, caseId = "T(uk.gov.hmcts.ccd.v2.external.controller.CaseAssignedUserRolesController)" @@ -124,9 +123,9 @@ public CaseAssignedUserRolesController(ApplicationParams applicationParams, + ".buildCaseRoles(#caseAssignedUserRolesRequest)" ) public ResponseEntity addCaseUserRoles( - @ApiParam(value = "Valid Service-to-Service JWT token for an approved micro-service", required = true) + @Parameter(name = "Valid Service-to-Service JWT token for an approved micro-service", required = true) @RequestHeader(SERVICE_AUTHORIZATION) String clientS2SToken, - @ApiParam(value = "List of Case-User-Role assignments to add", required = true) + @Parameter(name = "List of Case-User-Role assignments to add", required = true) @RequestBody CaseAssignedUserRolesRequest caseAssignedUserRolesRequest ) { validateRequest(clientS2SToken, caseAssignedUserRolesRequest); @@ -138,40 +137,36 @@ public ResponseEntity addCaseUserRoles( path = "/case-users" ) @ResponseStatus(HttpStatus.OK) - @ApiOperation( - value = "Remove Case-Assigned Users and Roles" - ) - @ApiResponses({ - @ApiResponse( - code = 200, - message = REMOVE_SUCCESS_MESSAGE, - response = CaseAssignedUserRolesResponse.class - ), - @ApiResponse( - code = 400, - message = "One or more of the following reasons:\n" - + "1. " + V2.Error.EMPTY_CASE_USER_ROLE_LIST + ", \n" - + "2. " + V2.Error.CASE_ID_INVALID + ": has to be a valid 16-digit Luhn number, \n" - + "3. " + V2.Error.USER_ID_INVALID + ": has to be a string of length > 0, \n" - + "4. " + V2.Error.CASE_ROLE_FORMAT_INVALID + ": has to be a none-empty string in square " - + "brackets, \n" - + "5. " + V2.Error.ORGANISATION_ID_INVALID + ": has to be a non-empty string, when present." - ), - @ApiResponse( - code = 401, - message = "Authentication failure due to invalid / expired tokens (IDAM / S2S)." - ), - @ApiResponse( - code = 403, - message = "One of the following reasons:\n" - + "1. Unauthorised S2S service \n" - + "2. " + V2.Error.CLIENT_SERVICE_NOT_AUTHORISED_FOR_OPERATION + "." - ), - @ApiResponse( - code = 404, - message = V2.Error.CASE_NOT_FOUND - ) - }) + @Operation(summary = "Remove Case-Assigned Users and Roles") + @ApiResponse( + responseCode = "200", + description = REMOVE_SUCCESS_MESSAGE, + content = @Content(schema = @Schema(implementation = CaseAssignedUserRolesResponse.class)) + ) + @ApiResponse( + responseCode = "400", + description = "One or more of the following reasons:\n" + + "1. " + V2.Error.EMPTY_CASE_USER_ROLE_LIST + ", \n" + + "2. " + V2.Error.CASE_ID_INVALID + ": has to be a valid 16-digit Luhn number, \n" + + "3. " + V2.Error.USER_ID_INVALID + ": has to be a string of length > 0, \n" + + "4. " + V2.Error.CASE_ROLE_FORMAT_INVALID + ": has to be a none-empty string in square " + + "brackets, \n" + + "5. " + V2.Error.ORGANISATION_ID_INVALID + ": has to be a non-empty string, when present." + ) + @ApiResponse( + responseCode = "401", + description = "Authentication failure due to invalid / expired tokens (IDAM / S2S)." + ) + @ApiResponse( + responseCode = "403", + description = "One of the following reasons:\n" + + "1. Unauthorised S2S service \n" + + "2. " + V2.Error.CLIENT_SERVICE_NOT_AUTHORISED_FOR_OPERATION + "." + ) + @ApiResponse( + responseCode = "404", + description = V2.Error.CASE_NOT_FOUND + ) @LogAudit( operationType = REMOVE_CASE_ASSIGNED_USER_ROLES, caseId = "T(uk.gov.hmcts.ccd.v2.external.controller.CaseAssignedUserRolesController)" @@ -182,9 +177,9 @@ public ResponseEntity addCaseUserRoles( + ".buildCaseRoles(#caseAssignedUserRolesRequest)" ) public ResponseEntity removeCaseUserRoles( - @ApiParam(value = "Valid Service-to-Service JWT token for an approved micro-service", required = true) + @Parameter(name = "Valid Service-to-Service JWT token for an approved micro-service", required = true) @RequestHeader(SERVICE_AUTHORIZATION) String clientS2SToken, - @ApiParam(value = "List of Case-User-Role assignments to add", required = true) + @Parameter(name = "List of Case-User-Role assignments to add", required = true) @RequestBody CaseAssignedUserRolesRequest caseAssignedUserRolesRequest ) { validateRequest(clientS2SToken, caseAssignedUserRolesRequest); @@ -204,30 +199,28 @@ public ResponseEntity removeCaseUserRoles( @GetMapping( path = "/case-users" ) - @ApiOperation( - value = "Get Case-Assigned Users and Roles", - notes = "**Deprecated**: Use POST " + @Operation( + summary = "Get Case-Assigned Users and Roles", + description = "**Deprecated**: Use POST " + "/case-users/search instead: were query params have been moved into the request payload, to avoid " + "hitting *414 URI Too Long* issues." ) - @ApiResponses({ - @ApiResponse( - code = 200, - message = "Case-User-Role assignments returned successfully", - response = CaseAssignedUserRolesResource.class - ), - @ApiResponse( - code = 400, - message = "One or more of the following reasons:\n" - + "1. " + V2.Error.CASE_ID_INVALID + ", \n" - + "2. " + V2.Error.EMPTY_CASE_ID_LIST + ", \n" - + "3. " + V2.Error.USER_ID_INVALID + "." - ), - @ApiResponse( - code = 403, - message = V2.Error.OTHER_USER_CASE_ROLE_ACCESS_NOT_GRANTED - ) - }) + @ApiResponse( + responseCode = "200", + description = "Case-User-Role assignments returned successfully", + content = @Content(schema = @Schema(implementation = CaseAssignedUserRolesResponse.class)) + ) + @ApiResponse( + responseCode = "400", + description = "One or more of the following reasons:\n" + + "1. " + V2.Error.CASE_ID_INVALID + ", \n" + + "2. " + V2.Error.EMPTY_CASE_ID_LIST + ", \n" + + "3. " + V2.Error.USER_ID_INVALID + "." + ) + @ApiResponse( + responseCode = "403", + description = V2.Error.OTHER_USER_CASE_ROLE_ACCESS_NOT_GRANTED + ) @LogAudit( operationType = GET_CASE_ASSIGNED_USER_ROLES, caseId = "T(uk.gov.hmcts.ccd.v2.external.controller.CaseAssignedUserRolesController)" @@ -252,27 +245,25 @@ public ResponseEntity getCaseUserRoles(@RequestPa @PostMapping( path = "/case-users/search" ) - @ApiOperation( - value = "Get Case-Assigned Users and Roles" + @Operation( + summary = "Get Case-Assigned Users and Roles" ) - @ApiResponses({ - @ApiResponse( - code = 200, - message = "Case-User-Role assignments returned successfully", - response = CaseAssignedUserRolesResource.class - ), - @ApiResponse( - code = 400, - message = "One or more of the following reasons:\n" - + "1. " + V2.Error.CASE_ID_INVALID + ", \n" - + "2. " + V2.Error.EMPTY_CASE_ID_LIST + ", \n" - + "3. " + V2.Error.USER_ID_INVALID + "." - ), - @ApiResponse( - code = 403, - message = V2.Error.OTHER_USER_CASE_ROLE_ACCESS_NOT_GRANTED - ) - }) + @ApiResponse( + responseCode = "200", + description = "Case-User-Role assignments returned successfully", + content = @Content(schema = @Schema(implementation = CaseAssignedUserRolesResponse.class)) + ) + @ApiResponse( + responseCode = "400", + description = "One or more of the following reasons:\n" + + "1. " + V2.Error.CASE_ID_INVALID + ", \n" + + "2. " + V2.Error.EMPTY_CASE_ID_LIST + ", \n" + + "3. " + V2.Error.USER_ID_INVALID + "." + ) + @ApiResponse( + responseCode = "403", + description = V2.Error.OTHER_USER_CASE_ROLE_ACCESS_NOT_GRANTED + ) @LogAudit( operationType = GET_CASE_ASSIGNED_USER_ROLES, caseId = "T(uk.gov.hmcts.ccd.v2.external.controller.CaseAssignedUserRolesController)" diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseController.java b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseController.java index 4ec0f32055..7dbe5e7fbf 100644 --- a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseController.java +++ b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseController.java @@ -1,12 +1,5 @@ package uk.gov.hmcts.ccd.v2.external.controller; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import io.swagger.annotations.ExampleProperty; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -22,6 +15,16 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestController; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.ExampleObject; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; + import uk.gov.hmcts.ccd.auditlog.LogAudit; import uk.gov.hmcts.ccd.domain.model.caselinking.GetLinkedCasesResponse; import uk.gov.hmcts.ccd.domain.model.definition.CaseDetails; @@ -106,25 +109,20 @@ public CaseController( V2.MediaType.CASE } ) - @ApiOperation( - value = "Retrieve a case by ID", - notes = V2.EXPERIMENTAL_WARNING + @Operation(summary = "Retrieve a case by ID",description = V2.EXPERIMENTAL_WARNING) + @ApiResponse( + responseCode = "200", + description = "Success", + content = @Content(schema = @Schema(implementation = CaseResource.class)) + ) + @ApiResponse( + responseCode = "400", + description = V2.Error.CASE_ID_INVALID + ) + @ApiResponse( + responseCode = "404", + description = V2.Error.CASE_NOT_FOUND ) - @ApiResponses({ - @ApiResponse( - code = 200, - message = "Success", - response = CaseResource.class - ), - @ApiResponse( - code = 400, - message = V2.Error.CASE_ID_INVALID - ), - @ApiResponse( - code = 404, - message = V2.Error.CASE_NOT_FOUND - ) - }) @LogAudit(operationType = CASE_ACCESSED, caseId = "#caseId", jurisdiction = "#result.body.jurisdiction", caseType = "#result.body.caseType") public ResponseEntity getCase(@PathVariable("caseId") String caseId) { @@ -148,49 +146,45 @@ public ResponseEntity getCase(@PathVariable("caseId") String caseI V2.MediaType.CREATE_EVENT } ) - @ApiOperation( - value = "Submit an event for a case" - ) - @ApiImplicitParams({ - @ApiImplicitParam(name = V2.EXPERIMENTAL_HEADER, value = "'true' to use this endpoint", paramType = "header") - }) - @ApiResponses({ - @ApiResponse( - code = 201, - message = "Event has been created successfully", - response = CaseResource.class - ), - @ApiResponse( - code = 400, - message = V2.Error.CASE_ID_INVALID - ), - @ApiResponse( - code = 400, - message = V2.Error.EVENT_TRIGGER_NOT_FOUND - ), - @ApiResponse( - code = 404, - message = V2.Error.CASE_NOT_FOUND - ), - @ApiResponse( - code = 422, - message = "The event could not be processed, for example due to one of the following:\n" - + "- Data validation failed\n" - + "- Invalid event (e.g. event ID not provided/known)\n" - + "- Case does not comply with pre-state condition for event\n" - ), - @ApiResponse( - code = 504, - message = V2.Error.CALLBACK_EXCEPTION - ) + @Operation(summary = "Submit an event for a case") + @Parameters({ + @Parameter(name = V2.EXPERIMENTAL_HEADER, description = "'true' to use this endpoint", in = ParameterIn.HEADER) }) + @ApiResponse( + responseCode = "201", + description = "Event has been created successfully", + content = @Content(schema = @Schema(implementation = CaseResource.class)) + ) + @ApiResponse( + responseCode = "400", + description = V2.Error.CASE_ID_INVALID + ) + @ApiResponse( + responseCode = "400", + description = V2.Error.EVENT_TRIGGER_NOT_FOUND + ) + @ApiResponse( + responseCode = "404", + description = V2.Error.CASE_NOT_FOUND + ) + @ApiResponse( + responseCode = "422", + description = "The event could not be processed, for example due to one of the following:\n" + + "- Data validation failed\n" + + "- Invalid event (e.g. event ID not provided/known)\n" + + "- Case does not comply with pre-state condition for event\n" + ) + @ApiResponse( + responseCode = "504", + description = V2.Error.CALLBACK_EXCEPTION + ) @LogAudit(operationType = UPDATE_CASE, caseId = "#caseId", jurisdiction = "#result.body.jurisdiction", caseType = "#result.body.caseType", eventName = "#content.event.eventId") - public ResponseEntity createEvent(@ApiParam(value = "Case ID for which the event is being submitted", + public ResponseEntity createEvent(@Parameter(name = "Case ID for which the event is being submitted", required = true) @PathVariable("caseId") String caseId, - @ApiParam(value = "Case data content for the event. Note that the " + @Parameter(name = "Case data content for the event. Note that the " + "`data` property " + "is used for event submission data; NOT the `event_data`. " + "For example:\n" @@ -261,69 +255,64 @@ public ResponseEntity createEvent(@ApiParam(value = "Case ID for w V2.MediaType.CREATE_CASE } ) - @ApiOperation( - value = "Submit case creation", - notes = V2.EXPERIMENTAL_WARNING + @Operation(summary = "Submit case creation", description = V2.EXPERIMENTAL_WARNING) + @ApiResponse( + responseCode = "201", + description = "Created", + content = @Content(schema = @Schema(implementation = CaseResource.class)) + ) + @ApiResponse( + responseCode = "400", + description = V2.Error.MISSING_EVENT_TOKEN + ) + @ApiResponse( + responseCode = "403", + description = V2.Error.GRANT_FORBIDDEN + ) + @ApiResponse( + responseCode = "404", + description = V2.Error.EVENT_TRIGGER_NOT_FOUND + ) + @ApiResponse( + responseCode = "404", + description = V2.Error.NO_MATCHING_EVENT_TRIGGER + ) + @ApiResponse( + responseCode = "409", + description = V2.Error.CASE_ALTERED + ) + @ApiResponse( + responseCode = "422", + description = V2.Error.CASE_DATA_NOT_FOUND + ) + @ApiResponse( + responseCode = "422", + description = V2.Error.CASE_TYPE_NOT_FOUND + ) + @ApiResponse( + responseCode = "422", + description = V2.Error.USER_ROLE_NOT_FOUND + ) + @ApiResponse( + responseCode = "422", + description = V2.Error.EVENT_TRIGGER_NOT_SPECIFIED + ) + @ApiResponse( + responseCode = "422", + description = V2.Error.EVENT_TRIGGER_NOT_KNOWN_FOR_CASE_TYPE + ) + @ApiResponse( + responseCode = "422", + description = V2.Error.EVENT_TRIGGER_HAS_PRE_STATE + ) + @ApiResponse( + responseCode = "422", + description = V2.Error.CASE_FIELD_INVALID + ) + @ApiResponse( + responseCode = "504", + description = V2.Error.CALLBACK_EXCEPTION ) - @ApiResponses({ - @ApiResponse( - code = 201, - message = "Created", - response = CaseResource.class - ), - @ApiResponse( - code = 400, - message = V2.Error.MISSING_EVENT_TOKEN - ), - @ApiResponse( - code = 403, - message = V2.Error.GRANT_FORBIDDEN - ), - @ApiResponse( - code = 404, - message = V2.Error.EVENT_TRIGGER_NOT_FOUND - ), - @ApiResponse( - code = 404, - message = V2.Error.NO_MATCHING_EVENT_TRIGGER - ), - @ApiResponse( - code = 409, - message = V2.Error.CASE_ALTERED - ), - @ApiResponse( - code = 422, - message = V2.Error.CASE_DATA_NOT_FOUND - ), - @ApiResponse( - code = 422, - message = V2.Error.CASE_TYPE_NOT_FOUND - ), - @ApiResponse( - code = 422, - message = V2.Error.USER_ROLE_NOT_FOUND - ), - @ApiResponse( - code = 422, - message = V2.Error.EVENT_TRIGGER_NOT_SPECIFIED - ), - @ApiResponse( - code = 422, - message = V2.Error.EVENT_TRIGGER_NOT_KNOWN_FOR_CASE_TYPE - ), - @ApiResponse( - code = 422, - message = V2.Error.EVENT_TRIGGER_HAS_PRE_STATE - ), - @ApiResponse( - code = 422, - message = V2.Error.CASE_FIELD_INVALID - ), - @ApiResponse( - code = 504, - message = V2.Error.CALLBACK_EXCEPTION - ) - }) @LogAudit(operationType = CREATE_CASE, caseId = "#result.body.reference", jurisdiction = "#result.body.jurisdiction", caseType = "#caseTypeId", eventName = "#content.event.eventId") public ResponseEntity createCase(@PathVariable("caseTypeId") @ValidCaseTypeId String caseTypeId, @@ -342,33 +331,28 @@ public ResponseEntity createCase(@PathVariable("caseTypeId") @Vali V2.MediaType.CASE_EVENTS } ) - @ApiOperation( - value = "Retrieve audit events by case ID", - notes = V2.EXPERIMENTAL_WARNING + @Operation(summary = "Retrieve audit events by case ID", description = V2.EXPERIMENTAL_WARNING) + @ApiResponse( + responseCode = "200", + description = "Success", + content = @Content(schema = @Schema(implementation = CaseEventsResource.class)) + ) + @ApiResponse( + responseCode = "400", + description = V2.Error.ERROR_CASE_ID_INVALID + ) + @ApiResponse( + responseCode = "422", + description = V2.Error.CASE_TYPE_DEF_NOT_FOUND_FOR_CASE_ID + ) + @ApiResponse( + responseCode = "422", + description = V2.Error.ROLES_FOR_CASE_ID_NOT_FOUND + ) + @ApiResponse( + responseCode = "404", + description = V2.Error.CASE_AUDIT_EVENTS_NOT_FOUND ) - @ApiResponses({ - @ApiResponse( - code = 200, - message = "Success", - response = CaseEventsResource.class - ), - @ApiResponse( - code = 400, - message = V2.Error.ERROR_CASE_ID_INVALID - ), - @ApiResponse( - code = 422, - message = V2.Error.CASE_TYPE_DEF_NOT_FOUND_FOR_CASE_ID - ), - @ApiResponse( - code = 422, - message = V2.Error.ROLES_FOR_CASE_ID_NOT_FOUND - ), - @ApiResponse( - code = 404, - message = V2.Error.CASE_AUDIT_EVENTS_NOT_FOUND - ) - }) public ResponseEntity getCaseEvents(@PathVariable("caseId") String caseId) { if (!caseReferenceService.validateUID(caseId)) { throw new BadRequestException(V2.Error.ERROR_CASE_ID_INVALID); @@ -383,43 +367,41 @@ public ResponseEntity getCaseEvents(@PathVariable("caseId") @PostMapping( path = "/cases/{caseId}/supplementary-data" ) - @ApiOperation( - value = "Update Case Supplementary Data" + @Operation(summary = "Update Case Supplementary Data") + @ApiResponse( + responseCode = "200", + description = "Updated", + content = @Content(schema = @Schema(implementation = SupplementaryDataResource.class)) ) - @ApiResponses({ - @ApiResponse( - code = 200, - message = "Updated", - response = SupplementaryDataResource.class - ), - @ApiResponse( - code = 400, - message = V2.Error.CASE_ID_INVALID - ), - @ApiResponse( - code = 400, - message = V2.Error.SUPPLEMENTARY_DATA_UPDATE_INVALID - ), - @ApiResponse( - code = 400, - message = V2.Error.MORE_THAN_ONE_NESTED_LEVEL - ), - @ApiResponse( - code = 404, - message = V2.Error.CASE_NOT_FOUND - ), - @ApiResponse( - code = 403, - message = V2.Error.NOT_AUTHORISED_UPDATE_SUPPLEMENTARY_DATA - ) - }) - @ApiImplicitParams({ - @ApiImplicitParam( + @ApiResponse( + responseCode = "400", + description = V2.Error.CASE_ID_INVALID + ) + @ApiResponse( + responseCode = "400", + description = V2.Error.SUPPLEMENTARY_DATA_UPDATE_INVALID + ) + @ApiResponse( + responseCode = "400", + description = V2.Error.MORE_THAN_ONE_NESTED_LEVEL + ) + @ApiResponse( + responseCode = "404", + description = V2.Error.CASE_NOT_FOUND + ) + @ApiResponse( + responseCode = "403", + description = V2.Error.NOT_AUTHORISED_UPDATE_SUPPLEMENTARY_DATA + ) + @Parameters({ + @Parameter( name = "supplementaryDataUpdateRequest", - dataTypeClass = SupplementaryDataUpdateRequest.class, - examples = @io.swagger.annotations.Example( - value = { - @ExampleProperty(value = "{\n" + schema = @Schema( + implementation = SupplementaryDataUpdateRequest.class, + contentMediaType = "application/json" + ), + examples = @ExampleObject( + value = "{\n" + "\t\"$inc\": {\n" + "\t\t\"orgs_assigned_users.OrgA\": 1,\n" + "\t\t\"orgs_assigned_users.OrgB\": -1\n" @@ -428,8 +410,9 @@ public ResponseEntity getCaseEvents(@PathVariable("caseId") + "\t\t\"orgs_assigned_users.OrgZ\": 34,\n" + "\t\t\"processed\": true\n" + "\t}\n" - + "}", mediaType = "application/json") - })) + + "}" + ) + ) }) public ResponseEntity updateCaseSupplementaryData(@PathVariable("caseId") String caseId, @RequestBody @@ -466,23 +449,19 @@ private ResponseEntity getCaseResourceResponseEntity(String caseTy path = "getLinkedCases/{caseReference}", produces = MediaType.APPLICATION_JSON_VALUE ) - @ApiOperation( - value = "Retrieve Linked Cases" - ) - @ApiResponses({ - @ApiResponse( - code = 200, - message = "Success", - response = GetLinkedCasesResponse.class), - @ApiResponse( - code = 400, - message = "One or more of the following reasons:" - + "\n1) " + V2.Error.CASE_ID_INVALID - + "\n2) " + V2.Error.PARAM_NOT_NUM), - @ApiResponse( - code = 404, - message = V2.Error.CASE_NOT_FOUND) - }) + @Operation(summary = "Retrieve Linked Cases") + @ApiResponse( + responseCode = "200", + description = "Success", + content = @Content(schema = @Schema(implementation = GetLinkedCasesResponse.class))) + @ApiResponse( + responseCode = "400", + description = "One or more of the following reasons:" + + "\n1) " + V2.Error.CASE_ID_INVALID + + "\n2) " + V2.Error.PARAM_NOT_NUM) + @ApiResponse( + responseCode = "404", + description = V2.Error.CASE_NOT_FOUND) @LogAudit(operationType = LINKED_CASES_ACCESSED, caseId = "T(uk.gov.hmcts.ccd.v2.external.controller.CaseController).buildCaseIds(#caseReference, #result.body)") public ResponseEntity getLinkedCase( diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDataValidatorController.java b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDataValidatorController.java index 3e1da513f4..09a0ef80d5 100644 --- a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDataValidatorController.java +++ b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDataValidatorController.java @@ -2,11 +2,15 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PathVariable; @@ -46,28 +50,23 @@ public CaseDataValidatorController( V2.MediaType.CASE_DATA_VALIDATE } ) - @ApiOperation( - value = "Validate case data", - notes = V2.EXPERIMENTAL_WARNING - ) - @ApiImplicitParams({ - @ApiImplicitParam(name = V2.EXPERIMENTAL_HEADER, value = "'true' to use this endpoint", paramType = "header") - }) - @ApiResponses({ - @ApiResponse( - code = 200, - message = "Success", - response = CaseDataResource.class - ), - @ApiResponse( - code = 404, - message = "Case type not found" - ), - @ApiResponse( - code = 422, - message = "One of: Event trigger not provided, case type does not exist or case data validation failed" - ) + @Operation(summary = "Validate case data", description = V2.EXPERIMENTAL_WARNING) + @Parameters({ + @Parameter(name = V2.EXPERIMENTAL_HEADER, description = "'true' to use this endpoint", in = ParameterIn.HEADER), }) + @ApiResponse( + responseCode = "200", + description = "Success", + content = @Content(schema = @Schema(implementation = CaseDataResource.class)) + ) + @ApiResponse( + responseCode = "404", + description = "Case type not found" + ) + @ApiResponse( + responseCode = "422", + description = "One of: Event trigger not provided, case type does not exist or case data validation failed" + ) public ResponseEntity validate(@PathVariable("caseTypeId") String caseTypeId, @RequestParam(required = false) final String pageId, @RequestBody final CaseDataContent content) { diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDocumentController.java b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDocumentController.java index 1f1ffaa4c7..4a06c56443 100644 --- a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDocumentController.java +++ b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDocumentController.java @@ -1,14 +1,16 @@ package uk.gov.hmcts.ccd.v2.external.controller; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; import uk.gov.hmcts.ccd.domain.service.getcasedocument.GetCaseDocumentOperation; import uk.gov.hmcts.ccd.v2.V2; import uk.gov.hmcts.ccd.v2.external.domain.CaseDocumentMetadata; @@ -32,32 +34,28 @@ public CaseDocumentController(GetCaseDocumentOperation getCaseDocumentOperation) V2.MediaType.CASE_DOCUMENT } ) - @ApiOperation( - value = "Retrieve a case document metadata by case and document Id" + @Operation(summary = "Retrieve a case document metadata by case and document Id") + @ApiResponse( + responseCode = "200", + description = "OK", + content = @Content(schema = @Schema(implementation = CaseDocumentResource.class)) + ) + @ApiResponse( + responseCode = "400", + description = V2.Error.CASE_ID_INVALID + ) + @ApiResponse( + responseCode = "400", + description = V2.Error.CASE_DOCUMENT_ID_INVALID + ) + @ApiResponse( + responseCode = "404", + description = V2.Error.CASE_NOT_FOUND + ) + @ApiResponse( + responseCode = "404", + description = V2.Error.CASE_DOCUMENT_NOT_FOUND ) - @ApiResponses({ - @ApiResponse( - code = 200, - message = "OK", - response = CaseDocumentResource.class - ), - @ApiResponse( - code = 400, - message = V2.Error.CASE_ID_INVALID - ), - @ApiResponse( - code = 400, - message = V2.Error.CASE_DOCUMENT_ID_INVALID - ), - @ApiResponse( - code = 404, - message = V2.Error.CASE_NOT_FOUND - ), - @ApiResponse( - code = 404, - message = V2.Error.CASE_DOCUMENT_NOT_FOUND - ) - }) public ResponseEntity getCaseDocumentMetadata(@PathVariable("caseId") String caseId, @PathVariable("documentId") String documentId) { diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseFileViewController.java b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseFileViewController.java index 1d5242532c..5377ecfa96 100644 --- a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseFileViewController.java +++ b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseFileViewController.java @@ -1,9 +1,5 @@ package uk.gov.hmcts.ccd.v2.external.controller; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; @@ -14,6 +10,10 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; import uk.gov.hmcts.ccd.auditlog.LogAudit; import uk.gov.hmcts.ccd.data.documentdata.DocumentDataRequest; import uk.gov.hmcts.ccd.domain.model.casefileview.CategoriesAndDocuments; @@ -48,20 +48,18 @@ public CaseFileViewController(@Qualifier(CreatorGetCaseOperation.QUALIFIER) fina path = "/categoriesAndDocuments/{caseRef}", produces = MediaType.APPLICATION_JSON_VALUE ) - @ApiResponses({ - @ApiResponse( - code = 204, - message = "Success" - ), - @ApiResponse( - code = 400, - message = V2.Error.CASE_ID_INVALID - ), - @ApiResponse( - code = 404, - message = V2.Error.CASE_NOT_FOUND - ) - }) + @ApiResponse( + responseCode = "204", + description = "Success" + ) + @ApiResponse( + responseCode = "400", + description = V2.Error.CASE_ID_INVALID + ) + @ApiResponse( + responseCode = "404", + description = V2.Error.CASE_NOT_FOUND + ) @LogAudit(operationType = CATEGORIES_AND_DOCUMENTS_ACCESSED, caseId = "#caseRef") public ResponseEntity getCategoriesAndDocuments( @PathVariable("caseRef") final String caseRef @@ -82,9 +80,9 @@ public ResponseEntity getCategoriesAndDocuments( value = "/documentData/caseref/{caseRef}", consumes = MediaType.APPLICATION_JSON_VALUE ) - @ApiOperation(value = "Document Data Endpoint", notes = "Document Data Endpoint") + @Operation(summary = "Document Data Endpoint", description = "Document Data Endpoint") public ResponseEntity updateDocumentField( - @ApiParam(value = "Case Reference", required = true) + @Parameter(name = "Case Reference", required = true) @PathVariable("caseRef") final String caseRef, @RequestBody final DocumentDataRequest request ) { diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserController.java b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserController.java index d81c4cda9e..51932a6af7 100644 --- a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserController.java +++ b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserController.java @@ -1,8 +1,5 @@ package uk.gov.hmcts.ccd.v2.external.controller; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; @@ -11,6 +8,9 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.responses.ApiResponse; import uk.gov.hmcts.ccd.auditlog.AuditOperationType; import uk.gov.hmcts.ccd.auditlog.LogAudit; import uk.gov.hmcts.ccd.data.casedetails.CachedCaseDetailsRepository; @@ -48,36 +48,34 @@ public CaseUserController(UIDService caseReferenceService, path = "/{userId}", consumes = MediaType.APPLICATION_JSON_VALUE ) - @ApiOperation( - value = "Update a user's roles for a specific case. Grant access for added case roles and revoke access for " + @Operation( + description = "Update a user's roles for a specific case. Grant access for added case roles and revoke access for " + "removed case roles." ) - @ApiResponses({ - @ApiResponse( - code = 204, - message = "Access granted" - ), - @ApiResponse( - code = 400, - message = V2.Error.CASE_ID_INVALID - ), - @ApiResponse( - code = 400, - message = V2.Error.CASE_ROLE_REQUIRED - ), - @ApiResponse( - code = 400, - message = V2.Error.CASE_ROLE_INVALID - ), - @ApiResponse( - code = 403, - message = V2.Error.GRANT_FORBIDDEN - ), - @ApiResponse( - code = 404, - message = V2.Error.CASE_NOT_FOUND - ) - }) + @ApiResponse( + responseCode = "204", + description = "Access granted" + ) + @ApiResponse( + responseCode = "400", + description = V2.Error.CASE_ID_INVALID + ) + @ApiResponse( + responseCode = "400", + description = V2.Error.CASE_ROLE_REQUIRED + ) + @ApiResponse( + responseCode = "400", + description = V2.Error.CASE_ROLE_INVALID + ) + @ApiResponse( + responseCode = "403", + description = V2.Error.GRANT_FORBIDDEN + ) + @ApiResponse( + responseCode = "404", + description = V2.Error.CASE_NOT_FOUND + ) @LogAudit(operationType = AuditOperationType.UPDATE_CASE_ACCESS, caseId = "#caseReference", targetIdamId = "#userId", targetCaseRoles = "#caseUser.caseRoles") diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentController.java b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentController.java index d8109a3677..a65a379daa 100644 --- a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentController.java +++ b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentController.java @@ -1,14 +1,16 @@ package uk.gov.hmcts.ccd.v2.external.controller; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; import uk.gov.hmcts.ccd.domain.model.definition.Document; import uk.gov.hmcts.ccd.domain.service.common.UIDService; import uk.gov.hmcts.ccd.domain.service.stdapi.DocumentsOperation; @@ -43,29 +45,27 @@ public DocumentController( V2.MediaType.CASE_DOCUMENTS } ) - @ApiOperation( - value = "Retrieve case documents by case ID", - notes = V2.EXPERIMENTAL_WARNING + @Operation( + summary = "Retrieve case documents by case ID", + description = V2.EXPERIMENTAL_WARNING + ) + @ApiResponse( + responseCode = "200", + description = "Success", + content = @Content(schema = @Schema(implementation = DocumentsResource.class)) + ) + @ApiResponse( + responseCode = "400", + description = V2.Error.CASE_ID_INVALID + ) + @ApiResponse( + responseCode = "404", + description = V2.Error.CASE_NOT_FOUND + ) + @ApiResponse( + responseCode = "500", + description = V2.Error.PRINTABLE_DOCUMENTS_ENDPOINT_DOWN ) - @ApiResponses({ - @ApiResponse( - code = 200, - message = "Success", - response = DocumentsResource.class - ), - @ApiResponse( - code = 400, - message = V2.Error.CASE_ID_INVALID - ), - @ApiResponse( - code = 404, - message = V2.Error.CASE_NOT_FOUND - ), - @ApiResponse( - code = 500, - message = V2.Error.PRINTABLE_DOCUMENTS_ENDPOINT_DOWN - ) - }) public ResponseEntity getDocuments(@PathVariable("caseId") String caseId) { if (!caseReferenceService.validateUID(caseId)) { throw new BadRequestException(V2.Error.CASE_ID_INVALID); diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/StartEventController.java b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/StartEventController.java index 94542bef4d..b91498c709 100644 --- a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/StartEventController.java +++ b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/StartEventController.java @@ -1,8 +1,5 @@ package uk.gov.hmcts.ccd.v2.external.controller; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.http.ResponseEntity; @@ -11,6 +8,11 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; import uk.gov.hmcts.ccd.domain.model.callbacks.StartEventResult; import uk.gov.hmcts.ccd.domain.service.common.UIDService; import uk.gov.hmcts.ccd.domain.service.startevent.StartEventOperation; @@ -47,26 +49,21 @@ public StartEventController( V2.MediaType.START_CASE_EVENT } ) - @ApiOperation( - value = "Retrieve a trigger by ID", - notes = V2.EXPERIMENTAL_WARNING + @Operation(summary = "Retrieve a trigger by ID", description = V2.EXPERIMENTAL_WARNING) + @ApiResponse( + responseCode = "200", + description = "Success", + content = @Content(schema = @Schema(implementation = StartEventResource.class)) + ) + @ApiResponse( + responseCode = "422", + description = "One of: Case event has no pre states, callback validation errors, unable to sanitize document" + + " for case field or missing user roles" + ) + @ApiResponse( + responseCode = "404", + description = EVENT_TRIGGER_NOT_FOUND ) - @ApiResponses({ - @ApiResponse( - code = 200, - message = "Success", - response = StartEventResource.class - ), - @ApiResponse( - code = 422, - message = "One of: Case event has no pre states, callback validation errors, unable to sanitize document" - + " for case field or missing user roles" - ), - @ApiResponse( - code = 404, - message = EVENT_TRIGGER_NOT_FOUND - ) - }) public ResponseEntity getStartCaseEvent(@PathVariable("caseTypeId") String caseTypeId, @PathVariable("triggerId") String triggerId, @RequestParam(value = "ignore-warning", @@ -85,42 +82,40 @@ public ResponseEntity getStartCaseEvent(@PathVariable("caseT V2.MediaType.START_EVENT } ) - @ApiOperation( - value = "Retrieve an Event Trigger for a Case by Event ID", - notes = "This operation creates an event token for a specific event to be started for a case and returns the " - + "token, along with the visible case details to the invoking user as per their configured access levels." + @Operation( + summary = "Retrieve an Event Trigger for a Case by Event ID", + description = "This operation creates an event token for a specific event to be started for a case and returns" + + " the token, along with the visible case details to the invoking user as per their configured access levels." + ) + @ApiResponse( + responseCode = "200", + description = "Success", + content = @Content(schema = @Schema(implementation = StartEventResource.class)) + ) + @ApiResponse( + responseCode = "400", + description = ERROR_CASE_ID_INVALID + ) + @ApiResponse( + responseCode = "401", + description = AUTHENTICATION_TOKEN_INVALID + ) + @ApiResponse( + responseCode = "403", + description = V2.Error.UNAUTHORISED_S2S_SERVICE + ) + @ApiResponse( + responseCode = "404", + description = EVENT_TRIGGER_NOT_FOUND + ) + @ApiResponse( + responseCode = "422", + description = "One of the following reasons:\n" + + "1. Case event has no pre states\n" + + "2. Callback validation errors\n" + + "3. Unable to sanitize document for case field\n" + + "4. Missing user roles" ) - @ApiResponses({ - @ApiResponse( - code = 200, - message = "Success", - response = StartEventResource.class - ), - @ApiResponse( - code = 400, - message = ERROR_CASE_ID_INVALID - ), - @ApiResponse( - code = 401, - message = AUTHENTICATION_TOKEN_INVALID - ), - @ApiResponse( - code = 403, - message = V2.Error.UNAUTHORISED_S2S_SERVICE - ), - @ApiResponse( - code = 404, - message = EVENT_TRIGGER_NOT_FOUND - ), - @ApiResponse( - code = 422, - message = "One of the following reasons:\n" - + "1. Case event has no pre states\n" - + "2. Callback validation errors\n" - + "3. Unable to sanitize document for case field\n" - + "4. Missing user roles" - ), - }) public ResponseEntity getStartEventTrigger(@PathVariable("caseId") String caseId, @PathVariable("eventId") String eventId, @RequestParam(value = "ignore-warning", diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/TestingSupportController.java b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/TestingSupportController.java index cb9b64a58a..a15283a9a1 100644 --- a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/TestingSupportController.java +++ b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/TestingSupportController.java @@ -1,12 +1,8 @@ package uk.gov.hmcts.ccd.v2.external.controller; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; import org.hibernate.Session; import org.hibernate.SessionFactory; -import org.hibernate.type.StringType; +import org.hibernate.type.StandardBasicTypes; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.DeleteMapping; @@ -15,11 +11,15 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; import uk.gov.hmcts.ccd.domain.model.caselinking.CaseLinksResource; import uk.gov.hmcts.ccd.domain.service.caselinking.CaseLinkService; import uk.gov.hmcts.ccd.v2.V2; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.math.BigInteger; import java.util.Arrays; import java.util.List; @@ -53,15 +53,13 @@ public ResponseEntity getCaseLink(@PathVariable("caseReferenc } @DeleteMapping(value = "/cleanup-case-type/{changeId}") - @ApiOperation(value = "Delete a list of Case Type Schemas", notes = "Blank body response.\n") - @ApiResponses(value = { - @ApiResponse(code = 204, message = "Success"), - @ApiResponse(code = 404, message = "Unable to find case type"), - @ApiResponse(code = 500, message = "Unexpected error") - }) + @Operation(summary = "Delete a list of Case Type Schemas", description = "Blank body response.\n") + @ApiResponse(responseCode = "204", description = "Success") + @ApiResponse(responseCode = "404", description = "Unable to find case type") + @ApiResponse(responseCode = "500", description = "Unexpected error") public void dataCaseTypeIdDelete( - @ApiParam(value = "Change ID", required = true) @PathVariable("changeId") BigInteger changeId, - @ApiParam(value = "Case Type ID", required = true) @RequestParam("caseTypeIds") String caseTypeIds) { + @Parameter(name = "Change ID", required = true) @PathVariable("changeId") BigInteger changeId, + @Parameter(name = "Case Type ID", required = true) @RequestParam("caseTypeIds") String caseTypeIds) { var caseIdList = Arrays.stream(caseTypeIds.split(",")).toList(); var caseTypesWithChangeIds = caseIdList.stream().map(caseTypeId -> caseTypeId + "-" + changeId).toList(); @@ -83,7 +81,7 @@ public void dataCaseTypeIdDelete( private void executeSql(Session session, String sql, List ids) { session.beginTransaction(); session.createNativeQuery(sql) - .setParameterList("caseTypeReferences", ids, StringType.INSTANCE) + .setParameterList("caseTypeReferences", ids, StandardBasicTypes.STRING) .executeUpdate(); session.getTransaction().commit(); } diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/external/domain/CaseAssignedUserRolesResponse.java b/src/main/java/uk/gov/hmcts/ccd/v2/external/domain/CaseAssignedUserRolesResponse.java index 84abcbff31..f89fedfa58 100644 --- a/src/main/java/uk/gov/hmcts/ccd/v2/external/domain/CaseAssignedUserRolesResponse.java +++ b/src/main/java/uk/gov/hmcts/ccd/v2/external/domain/CaseAssignedUserRolesResponse.java @@ -1,15 +1,15 @@ package uk.gov.hmcts.ccd.v2.external.domain; import com.fasterxml.jackson.annotation.JsonProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; + +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.NoArgsConstructor; import uk.gov.hmcts.ccd.v2.external.controller.CaseAssignedUserRolesController; @Data @NoArgsConstructor -@ApiModel("Add Case-Assigned User Roles Response") +@Schema(description = "Add Case-Assigned User Roles Response") public class CaseAssignedUserRolesResponse { public CaseAssignedUserRolesResponse(String status) { @@ -17,7 +17,7 @@ public CaseAssignedUserRolesResponse(String status) { } @JsonProperty("status_message") - @ApiModelProperty(value = "Domain Status Message", required = true, + @Schema(description = "Domain Status Message", required = true, example = CaseAssignedUserRolesController.ADD_SUCCESS_MESSAGE) private String status; diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/external/resource/CaseResource.java b/src/main/java/uk/gov/hmcts/ccd/v2/external/resource/CaseResource.java index dbecd8b774..f834e1c14f 100644 --- a/src/main/java/uk/gov/hmcts/ccd/v2/external/resource/CaseResource.java +++ b/src/main/java/uk/gov/hmcts/ccd/v2/external/resource/CaseResource.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.JsonNode; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.time.LocalDateTime; import java.util.Map; diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseController.java b/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseController.java index abd477b68f..62cab1b65b 100644 --- a/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseController.java +++ b/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseController.java @@ -1,8 +1,5 @@ package uk.gov.hmcts.ccd.v2.internal.controller; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.http.ResponseEntity; @@ -10,6 +7,12 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; import uk.gov.hmcts.ccd.auditlog.LogAudit; import uk.gov.hmcts.ccd.domain.model.aggregated.CaseHistoryView; import uk.gov.hmcts.ccd.domain.model.aggregated.CaseView; @@ -55,25 +58,23 @@ public UICaseController( V2.MediaType.UI_CASE_VIEW } ) - @ApiOperation( - value = "Retrieve a case by ID for dynamic display", - notes = V2.EXPERIMENTAL_WARNING + @Operation( + summary = "Retrieve a case by ID for dynamic display", + description = V2.EXPERIMENTAL_WARNING ) - @ApiResponses({ - @ApiResponse( - code = 200, - message = "Success", - response = CaseViewResource.class - ), - @ApiResponse( - code = 400, - message = ERROR_CASE_ID_INVALID - ), - @ApiResponse( - code = 404, - message = "Case not found" - ) - }) + @ApiResponse( + responseCode = "200", + description = "Success", + content = @Content(schema = @Schema(implementation = CaseViewResource.class)) + ) + @ApiResponse( + responseCode = "400", + description = ERROR_CASE_ID_INVALID + ) + @ApiResponse( + responseCode = "404", + description = "Case not found" + ) @LogAudit(operationType = CASE_ACCESSED, caseId = "#caseId", jurisdiction = "#result.body.caseType.jurisdiction.id", caseType = "#result.body.caseType.id") public ResponseEntity getCaseView(@PathVariable("caseId") String caseId) { @@ -95,23 +96,23 @@ public ResponseEntity getCaseView(@PathVariable("caseId") Stri V2.MediaType.UI_EVENT_VIEW } ) - @ApiOperation( - value = "Retrieve an event by case and event IDs for dynamic display", - notes = V2.EXPERIMENTAL_WARNING + @Operation( + summary = "Retrieve an event by case and event IDs for dynamic display", + description = V2.EXPERIMENTAL_WARNING ) @ApiResponses({ @ApiResponse( - code = 200, - message = "Success", - response = CaseHistoryViewResource.class + responseCode = "200", + description = "Success", + content = @Content(schema = @Schema(implementation = CaseHistoryViewResource.class)) ), @ApiResponse( - code = 400, - message = ERROR_CASE_ID_INVALID + responseCode = "400", + description = ERROR_CASE_ID_INVALID ), @ApiResponse( - code = 404, - message = "Case event not found" + responseCode = "404", + description = "Case event not found" ) }) @LogAudit(operationType = VIEW_CASE_HISTORY, caseId = "#caseId", eventName = "#result.body.event.eventId", diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseSearchController.java b/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseSearchController.java index 852d990168..d25c9b623d 100644 --- a/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseSearchController.java +++ b/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseSearchController.java @@ -1,15 +1,14 @@ package uk.gov.hmcts.ccd.v2.internal.controller; import com.google.common.base.Strings; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiImplicitParams; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; -import io.swagger.annotations.SwaggerDefinition; -import io.swagger.annotations.Tag; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -47,11 +46,8 @@ @RestController @RequestMapping(path = "/internal/searchCases", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) -@Api(tags = {"Elastic Based Search API"}) -@SwaggerDefinition(tags = { - @Tag(name = "Elastic Based Search API", description = "Internal ElasticSearch based case search API, " +@Tag(name = "Elastic Based Search API", description = "Internal ElasticSearch based case search API, " + "returning extra information required by the UI for display purposes on a UI.") -}) @Slf4j public class UICaseSearchController { @@ -75,55 +71,53 @@ public UICaseSearchController( } @PostMapping(path = "") - @ApiOperation( - value = "Search cases according to the provided ElasticSearch query. Supports searching a single case type and" - + " a use case." + @Operation( + description = "Search cases according to the provided ElasticSearch query. Supports searching a single" + + " case type and a use case." + ) + @ApiResponse( + responseCode = "200", + description = "Success.", + content = @Content(schema = @Schema(implementation = CaseSearchResultViewResource.class)) + ) + @ApiResponse( + responseCode = "400", + description = "Request is invalid. For some other types HTTP code 500 is returned instead.\n" + + "Examples include:\n" + + "- Unsupported use case specified in `usecase` query parameter.\n" + + "- No case type query parameter `ctid` provided.\n" + + "- Query is missing required `query` field.\n" + + "- Query includes blacklisted type.\n" + + "- Query has failed in ElasticSearch - for example, a sort is attempted on an unknown/unmapped field.\n" + + "- Query includes supplementary_data which is NOT an array of text values.\n" + ) + @ApiResponse( + responseCode = "401", + description = "Request doesn't include a valid `Authorization` header. " + + "This applies to all missing, malformed & expired tokens." + ) + @ApiResponse( + responseCode = "403", + description = "Request doesn't include a valid `ServiceAuthorization` header. " + + "This applies to all missing, malformed & expired tokens.\n" + + "A valid S2S token issued to the name of a non-permitted API Client will also return the same." + ) + @ApiResponse( + responseCode = "404", + description = "Case type specified in `ctid` query parameter could not be found." + ) + @ApiResponse( + responseCode = "500", + description = "An unexpected situation that is not attributable to the user or API Client; " + + "or request is invalid. For some other types HTTP code 400 is returned instead.\n" + + "Invalid request examples include:\n" + + "- Malformed JSON request." ) - @ApiResponses({ - @ApiResponse( - code = 200, - message = "Success.", - response = CaseSearchResultViewResource.class - ), - @ApiResponse( - code = 400, - message = "Request is invalid. For some other types HTTP code 500 is returned instead.\n" - + "Examples include:\n" - + "- Unsupported use case specified in `usecase` query parameter.\n" - + "- No case type query parameter `ctid` provided.\n" - + "- Query is missing required `query` field.\n" - + "- Query includes blacklisted type.\n" - + "- Query has failed in ElasticSearch - for example, a sort is attempted on an unknown/unmapped field.\n" - + "- Query includes supplementary_data which is NOT an array of text values.\n" - ), - @ApiResponse( - code = 401, - message = "Request doesn't include a valid `Authorization` header. " - + "This applies to all missing, malformed & expired tokens." - ), - @ApiResponse( - code = 403, - message = "Request doesn't include a valid `ServiceAuthorization` header. " - + "This applies to all missing, malformed & expired tokens.\n" - + "A valid S2S token issued to the name of a non-permitted API Client will also return the same." - ), - @ApiResponse( - code = 404, - message = "Case type specified in `ctid` query parameter could not be found." - ), - @ApiResponse( - code = 500, - message = "An unexpected situation that is not attributable to the user or API Client; " - + "or request is invalid. For some other types HTTP code 400 is returned instead.\n" - + "Invalid request examples include:\n" - + "- Malformed JSON request." - ) - }) @SuppressWarnings("checkstyle:LineLength") // don't want to break message - @ApiImplicitParams( - @ApiImplicitParam( + @Parameters( + @Parameter( name = "jsonSearchRequest", - value = "A wrapped native ElasticSearch Search API request as a JSON string. " + description = "A wrapped native ElasticSearch Search API request as a JSON string. " + "Please refer to the following for further information:\n" + "- [Official ElasticSearch Documentation - Search APIs]" + "(https://www.elastic.co/guide/en/elasticsearch/reference/current/search.html)\n" @@ -142,9 +136,9 @@ public UICaseSearchController( @LogAudit(operationType = AuditOperationType.SEARCH_CASE, caseTypeIds = "#caseTypeIds", caseId = "T(uk.gov.hmcts.ccd.v2.internal.controller.UICaseSearchController).buildCaseIds(#result)") public ResponseEntity searchCases( - @ApiParam(value = "Case type ID for search.", required = true) + @Parameter(name = "Case type ID for search.", required = true) @RequestParam(value = "ctid") String caseTypeId, - @ApiParam(value = "Use case for search. Examples include `WORKBASKET`, `SEARCH` " + @Parameter(name = "Use case for search. Examples include `WORKBASKET`, `SEARCH` " + "or `orgCases`. Used when the list of fields to return is configured in the " + "CCD definition.\nIf omitted, all case fields are returned.") @RequestParam(value = "use_case", required = false) final String useCase, diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDefinitionController.java b/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDefinitionController.java index 36bde000bb..060eca243b 100644 --- a/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDefinitionController.java +++ b/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDefinitionController.java @@ -1,9 +1,12 @@ package uk.gov.hmcts.ccd.v2.internal.controller; import com.google.common.collect.Lists; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.http.ResponseEntity; @@ -86,21 +89,19 @@ public UIDefinitionController(@Qualifier(AuthorisedGetCriteriaOperation.QUALIFIE V2.MediaType.UI_WORKBASKET_INPUT_DETAILS } ) - @ApiOperation( - value = "Retrieve workbasket input details for dynamic display", - notes = V2.EXPERIMENTAL_WARNING - ) - @ApiResponses({ - @ApiResponse( - code = 200, - message = "Success", - response = WorkbasketInputsViewResource.class - ), - @ApiResponse( - code = 404, - message = "Case type not found" - ) - }) + @Operation( + summary = "Retrieve workbasket input details for dynamic display", + description = V2.EXPERIMENTAL_WARNING + ) + @ApiResponse( + responseCode = "200", + description = "Success", + content = @Content(schema = @Schema(implementation = WorkbasketInputsViewResource.class)) + ) + @ApiResponse( + responseCode = "404", + description = "Case type not found" + ) public ResponseEntity getWorkbasketInputsDetails(@PathVariable("caseTypeId") String caseTypeId) { @@ -119,21 +120,19 @@ public ResponseEntity getWorkbasketInputsDetails(@ V2.MediaType.UI_SEARCH_INPUT_DETAILS } ) - @ApiOperation( - value = "Retrieve search input details for dynamic display", - notes = V2.EXPERIMENTAL_WARNING - ) - @ApiResponses({ - @ApiResponse( - code = 200, - message = "Success", - response = SearchInputsViewResource.class - ), - @ApiResponse( - code = 404, - message = "Case type not found" - ) - }) + @Operation( + summary = "Retrieve search input details for dynamic display", + description = V2.EXPERIMENTAL_WARNING + ) + @ApiResponse( + responseCode = "200", + description = "Success", + content = @Content(schema = @Schema(implementation = SearchInputsViewResource.class)) + ) + @ApiResponse( + responseCode = "404", + description = "Case type not found" + ) public ResponseEntity getSearchInputsDetails(@PathVariable("caseTypeId") String caseTypeId) { @@ -152,17 +151,15 @@ public ResponseEntity getSearchInputsDetails(@PathVari V2.MediaType.UI_BANNERS } ) - @ApiOperation( - value = "Get Banner information for the jurisdictions", - notes = V2.EXPERIMENTAL_WARNING - ) - @ApiResponses({ - @ApiResponse( - code = 200, - message = "Success", - response = BannerViewResource.class - ) - }) + @Operation( + summary = "Get Banner information for the jurisdictions", + description = V2.EXPERIMENTAL_WARNING + ) + @ApiResponse( + responseCode = "200", + description = "Success", + content = @Content(schema = @Schema(implementation = BannerViewResource.class)) + ) public ResponseEntity getBanners(@RequestParam("ids") Optional> idsOptional) { List listOfBanners = idsOptional.isPresent() ? getBannerOperation.execute(idsOptional.get()) @@ -179,17 +176,15 @@ public ResponseEntity getBanners(@RequestParam("ids") Option V2.MediaType.UI_JURISDICTION_CONFIGS } ) - @ApiOperation( - value = "Get Jurisdiction UI config information for the jurisdictions", - notes = V2.EXPERIMENTAL_WARNING - ) - @ApiResponses({ - @ApiResponse( - code = 200, - message = "Success", - response = JurisdictionConfigViewResource.class - ) - }) + @Operation( + summary = "Get Jurisdiction UI config information for the jurisdictions", + description = V2.EXPERIMENTAL_WARNING + ) + @ApiResponse( + responseCode = "200", + description = "Success", + content = @Content(schema = @Schema(implementation = JurisdictionConfigViewResource.class)) + ) public ResponseEntity getJurisdictionUiConfigs(@RequestParam("ids") Optional> idsOptional) { List listOfConfigs = idsOptional.isPresent() @@ -207,25 +202,23 @@ public ResponseEntity getJurisdictionUiConfigs(@ V2.MediaType.UI_JURISDICTIONS } ) - @ApiOperation( - value = "Get Jurisdictions information for the access type passed", - notes = V2.EXPERIMENTAL_WARNING - ) - @ApiResponses({ - @ApiResponse( - code = 200, - message = "Success", - response = JurisdictionViewResource.class - ), - @ApiResponse( - code = 404, - message = "No jurisdictions found" - ), - @ApiResponse( - code = 400, - message = "Access can only be 'create', 'read' or 'update'" - ) - }) + @Operation( + summary = "Get Jurisdictions information for the access type passed", + description = V2.EXPERIMENTAL_WARNING + ) + @ApiResponse( + responseCode = "200", + description = "Success", + content = @Content(schema = @Schema(implementation = JurisdictionViewResource.class)) + ) + @ApiResponse( + responseCode = "404", + description = "No jurisdictions found" + ) + @ApiResponse( + responseCode = "400", + description = "Access can only be 'create', 'read' or 'update'" + ) public ResponseEntity getJurisdictions(@RequestParam(value = "access") String access) { if (accessMap.get(access) == null) { throw new BadRequestException("Access can only be 'create', 'read' or 'update'"); diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDraftsController.java b/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDraftsController.java index c5c4729cde..af5aaa45bb 100644 --- a/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDraftsController.java +++ b/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDraftsController.java @@ -1,9 +1,5 @@ package uk.gov.hmcts.ccd.v2.internal.controller; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -19,6 +15,11 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestController; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; import uk.gov.hmcts.ccd.data.draft.CachedDraftGateway; import uk.gov.hmcts.ccd.data.draft.DraftGateway; import uk.gov.hmcts.ccd.domain.model.aggregated.CaseView; @@ -65,17 +66,13 @@ public UIDraftsController( } ) @ResponseStatus(HttpStatus.CREATED) - @ApiOperation( - value = "Save draft as a caseworker." - ) - @ApiResponses(value = { - @ApiResponse(code = 201, message = "Draft created"), - @ApiResponse(code = 422, message = "One of: cannot find event in requested case type or unable to sanitize " - + "document for case field"), - @ApiResponse(code = 500, message = "Draft store is down.") - }) + @Operation(summary = "Save draft as a caseworker.") + @ApiResponse(responseCode = "201", description = "Draft created") + @ApiResponse(responseCode = "422", description = "One of: cannot find event in requested case type or " + + "unable to sanitize document for case field") + @ApiResponse(responseCode = "500", description = "Draft store is down.") public ResponseEntity saveDraft( - @ApiParam(value = "Case type ID", required = true) + @Parameter(name = "Case type ID", required = true) @PathVariable("ctid") final String caseTypeId, @RequestBody final CaseDataContent caseDataContent) { @@ -94,15 +91,11 @@ public ResponseEntity saveDraft( } ) @ResponseStatus(HttpStatus.OK) - @ApiOperation( - value = "Update draft as a caseworker." - ) - @ApiResponses(value = { - @ApiResponse(code = 200, message = "Draft updated"), - @ApiResponse(code = 422, message = "One of: cannot find event in requested case type or unable to sanitize " - + "document for case field"), - @ApiResponse(code = 500, message = "Draft store is down.") - }) + @Operation(summary = "Update draft as a caseworker.") + @ApiResponse(responseCode = "200", description = "Draft updated") + @ApiResponse(responseCode = "422", description = "One of: cannot find event in requested case type or " + + "unable to sanitize document for case field") + @ApiResponse(responseCode = "500", description = "Draft store is down.") public ResponseEntity updateDraft( @PathVariable("ctid") final String caseTypeId, @PathVariable("did") final String draftId, @@ -121,11 +114,9 @@ public ResponseEntity updateDraft( V2.MediaType.UI_DRAFT_READ }) @ResponseStatus(HttpStatus.OK) - @ApiOperation(value = "Fetch a draft for display") - @ApiResponses(value = { - @ApiResponse(code = 200, message = "A displayable draft"), - @ApiResponse(code = 500, message = "Draft store is down.") - }) + @Operation(summary = "Fetch a draft for display") + @ApiResponse(responseCode = "200", description = "A displayable draft") + @ApiResponse(responseCode = "500", description = "Draft store is down.") public ResponseEntity findDraft(@PathVariable("did") final String did) { Instant start = Instant.now(); CaseView caseView = getDraftViewOperation.execute(did); @@ -142,11 +133,9 @@ public ResponseEntity findDraft(@PathVariable("did") final Str V2.MediaType.UI_DRAFT_DELETE }) @ResponseStatus(HttpStatus.OK) - @ApiOperation(value = "Delete a given draft") - @ApiResponses(value = { - @ApiResponse(code = 200, message = "A draft deleted successfully"), - @ApiResponse(code = 500, message = "Draft store is down.") - }) + @Operation(summary = "Delete a given draft") + @ApiResponse(responseCode = "200", description = "A draft deleted successfully") + @ApiResponse(responseCode = "500", description = "Draft store is down.") public ResponseEntity deleteDraft(@PathVariable("did") final String did) { Instant start = Instant.now(); draftGateway.delete(did); diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartTriggerController.java b/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartTriggerController.java index d130a96dbd..c23c9f0e39 100644 --- a/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartTriggerController.java +++ b/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartTriggerController.java @@ -1,8 +1,5 @@ package uk.gov.hmcts.ccd.v2.internal.controller; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.http.ResponseEntity; @@ -11,12 +8,19 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; import uk.gov.hmcts.ccd.domain.model.aggregated.CaseUpdateViewEvent; import uk.gov.hmcts.ccd.domain.service.aggregated.AuthorisedGetEventTriggerOperation; import uk.gov.hmcts.ccd.domain.service.aggregated.GetEventTriggerOperation; import uk.gov.hmcts.ccd.domain.service.common.UIDService; import uk.gov.hmcts.ccd.endpoint.exceptions.BadRequestException; import uk.gov.hmcts.ccd.v2.V2; +import uk.gov.hmcts.ccd.v2.external.domain.CaseAssignedUserRolesResponse; import uk.gov.hmcts.ccd.v2.internal.resource.CaseUpdateViewEventResource; import static uk.gov.hmcts.ccd.v2.internal.resource.CaseUpdateViewEventResource.forCase; @@ -49,26 +53,24 @@ public UIStartTriggerController( V2.MediaType.CASE_TYPE_UPDATE_VIEW_EVENT } ) - @ApiOperation( - value = "Retrieve a start case trigger by ID for dynamic display", - notes = V2.EXPERIMENTAL_WARNING + @Operation( + summary = "Retrieve a start case trigger by ID for dynamic display", + description = V2.EXPERIMENTAL_WARNING + ) + @ApiResponse( + responseCode = "200", + description = "Success", + content = @Content(schema = @Schema(implementation = CaseUpdateViewEventResource.class)) + ) + @ApiResponse( + responseCode = "422", + description = "One of: Case event has no pre states, callback validation errors, unable to sanitize document " + + "for case field or missing user roles" + ) + @ApiResponse( + responseCode = "404", + description = "Trigger not found" ) - @ApiResponses({ - @ApiResponse( - code = 200, - message = "Success", - response = CaseUpdateViewEventResource.class - ), - @ApiResponse( - code = 422, - message = "One of: Case event has no pre states, callback validation errors, unable to sanitize document " - + "for case field or missing user roles" - ), - @ApiResponse( - code = 404, - message = "Trigger not found" - ) - }) public ResponseEntity getCaseUpdateViewEventByCaseType(@PathVariable("caseTypeId") String caseTypeId, @PathVariable("triggerId") @@ -92,30 +94,28 @@ public ResponseEntity getCaseUpdateViewEventByCaseT V2.MediaType.CASE_UPDATE_VIEW_EVENT } ) - @ApiOperation( - value = "Retrieve a start event trigger by ID for dynamic display", - notes = V2.EXPERIMENTAL_WARNING + @Operation( + summary = "Retrieve a start event trigger by ID for dynamic display", + description = V2.EXPERIMENTAL_WARNING + ) + @ApiResponse( + responseCode = "200", + description = "Success", + content = @Content(schema = @Schema(implementation = CaseUpdateViewEventResource.class)) + ) + @ApiResponse( + responseCode = "422", + description = "One of: Case event has no pre states, callback validation errors, unable to sanitize document " + + "for case field or missing user roles" + ) + @ApiResponse( + responseCode = "400", + description = ERROR_CASE_ID_INVALID + ) + @ApiResponse( + responseCode = "404", + description = "Trigger not found" ) - @ApiResponses({ - @ApiResponse( - code = 200, - message = "Success", - response = CaseUpdateViewEventResource.class - ), - @ApiResponse( - code = 422, - message = "One of: Case event has no pre states, callback validation errors, unable to sanitize document " - + "for case field or missing user roles" - ), - @ApiResponse( - code = 400, - message = ERROR_CASE_ID_INVALID - ), - @ApiResponse( - code = 404, - message = "Trigger not found" - ) - }) public ResponseEntity getCaseUpdateViewEvent(@PathVariable("caseId") String caseId, @PathVariable("triggerId") String triggerId, @RequestParam(value = "ignore-warning", @@ -141,24 +141,24 @@ public ResponseEntity getCaseUpdateViewEvent(@PathV V2.MediaType.UI_START_DRAFT_TRIGGER } ) - @ApiOperation( - value = "Retrieve a start draft trigger by ID for dynamic display", - notes = V2.EXPERIMENTAL_WARNING + @Operation( + summary = "Retrieve a start draft trigger by ID for dynamic display", + description = V2.EXPERIMENTAL_WARNING ) @ApiResponses({ @ApiResponse( - code = 200, - message = "Success", - response = CaseUpdateViewEventResource.class + responseCode = "200", + description = "Success", + content = @Content(schema = @Schema(implementation = CaseUpdateViewEventResource.class)) ), @ApiResponse( - code = 422, - message = "One of: Case event has no pre states, callback validation errors, unable to sanitize document " + responseCode = "422", + description = "One of: Case event has no pre states, callback validation errors, unable to sanitize document " + "for case field or missing user roles" ), @ApiResponse( - code = 404, - message = "Trigger not found" + responseCode = "404", + description = "Trigger not found" ) }) public ResponseEntity getStartDraftTrigger(@PathVariable("draftId") String draftId, diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UIUserProfileController.java b/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UIUserProfileController.java index 779afcec5d..11557d50e5 100644 --- a/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UIUserProfileController.java +++ b/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UIUserProfileController.java @@ -1,14 +1,16 @@ package uk.gov.hmcts.ccd.v2.internal.controller; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiResponse; -import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; import uk.gov.hmcts.ccd.domain.model.aggregated.UserProfile; import uk.gov.hmcts.ccd.domain.service.aggregated.AuthorisedGetUserProfileOperation; import uk.gov.hmcts.ccd.domain.service.aggregated.GetUserProfileOperation; @@ -38,17 +40,15 @@ public UIUserProfileController( V2.MediaType.UI_USER_PROFILE } ) - @ApiOperation( - value = "Validate case data", - notes = V2.EXPERIMENTAL_WARNING + @Operation( + summary = "Validate case data", + description = V2.EXPERIMENTAL_WARNING + ) + @ApiResponse( + responseCode = "200", + description = "Success", + content = @Content(schema = @Schema(implementation = CaseViewResource.class)) ) - @ApiResponses({ - @ApiResponse( - code = 200, - message = "Success", - response = CaseViewResource.class - ) - }) public ResponseEntity getUserProfile() { UserProfile userProfile = getUserProfileOperation.execute(AccessControlService.CAN_READ); diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/internal/resource/CaseSearchResultViewResource.java b/src/main/java/uk/gov/hmcts/ccd/v2/internal/resource/CaseSearchResultViewResource.java index d592b84eff..ab90ff41a8 100644 --- a/src/main/java/uk/gov/hmcts/ccd/v2/internal/resource/CaseSearchResultViewResource.java +++ b/src/main/java/uk/gov/hmcts/ccd/v2/internal/resource/CaseSearchResultViewResource.java @@ -1,7 +1,6 @@ package uk.gov.hmcts.ccd.v2.internal.resource; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -16,14 +15,14 @@ @Data @EqualsAndHashCode(callSuper = true) @NoArgsConstructor -@ApiModel(description = "") +@Schema public class CaseSearchResultViewResource extends RepresentationModel { - @ApiModelProperty(value = "Headers for each case type") + @Schema(description = "Headers for each case type") private List headers; - @ApiModelProperty(value = "All cases across case types") + @Schema(description = "All cases across case types") private List cases; - @ApiModelProperty(value = "Total number of search results (including results not returned due to pagination)") + @Schema(description = "Total number of search results (including results not returned due to pagination)") private Long total; public CaseSearchResultViewResource(@NonNull CaseSearchResultView caseSearchResultView) { diff --git a/src/main/java/uk/gov/hmcts/ccd/validator/CaseTypeIdValidator.java b/src/main/java/uk/gov/hmcts/ccd/validator/CaseTypeIdValidator.java index 7872fd1a96..318d5daffe 100644 --- a/src/main/java/uk/gov/hmcts/ccd/validator/CaseTypeIdValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/validator/CaseTypeIdValidator.java @@ -2,8 +2,8 @@ import uk.gov.hmcts.ccd.validator.annotation.ValidCaseTypeId; -import javax.validation.ConstraintValidator; -import javax.validation.ConstraintValidatorContext; +import jakarta.validation.ConstraintValidator; +import jakarta.validation.ConstraintValidatorContext; import java.util.regex.PatternSyntaxException; import org.slf4j.Logger; diff --git a/src/main/java/uk/gov/hmcts/ccd/validator/annotation/ValidCaseTypeId.java b/src/main/java/uk/gov/hmcts/ccd/validator/annotation/ValidCaseTypeId.java index ac302d6716..a0aa82c86d 100644 --- a/src/main/java/uk/gov/hmcts/ccd/validator/annotation/ValidCaseTypeId.java +++ b/src/main/java/uk/gov/hmcts/ccd/validator/annotation/ValidCaseTypeId.java @@ -2,8 +2,8 @@ import uk.gov.hmcts.ccd.validator.CaseTypeIdValidator; -import javax.validation.Constraint; -import javax.validation.Payload; +import jakarta.validation.Constraint; +import jakarta.validation.Payload; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/src/test/java/uk/gov/hmcts/ccd/AbstractBaseIntegrationTest.java b/src/test/java/uk/gov/hmcts/ccd/AbstractBaseIntegrationTest.java index 0abb9cfa68..524c9dc5e0 100644 --- a/src/test/java/uk/gov/hmcts/ccd/AbstractBaseIntegrationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/AbstractBaseIntegrationTest.java @@ -56,7 +56,7 @@ import uk.gov.hmcts.ccd.domain.types.BaseType; import uk.gov.hmcts.ccd.domain.types.sanitiser.client.DocumentManagementRestClient; -import javax.inject.Inject; +import jakarta.inject.Inject; import javax.sql.DataSource; import java.io.IOException; import java.nio.charset.Charset; diff --git a/src/test/java/uk/gov/hmcts/ccd/AuthCheckingConfigurationTest.java b/src/test/java/uk/gov/hmcts/ccd/AuthCheckingConfigurationTest.java index f1ce4b7e10..2a2966e6aa 100644 --- a/src/test/java/uk/gov/hmcts/ccd/AuthCheckingConfigurationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/AuthCheckingConfigurationTest.java @@ -7,7 +7,7 @@ import org.mockito.Mockito; import org.mockito.MockitoAnnotations; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.util.Arrays; import java.util.Collection; import java.util.Optional; diff --git a/src/test/java/uk/gov/hmcts/ccd/ElasticsearchIT.java b/src/test/java/uk/gov/hmcts/ccd/ElasticsearchIT.java index 283b6e7799..aaff2ef706 100644 --- a/src/test/java/uk/gov/hmcts/ccd/ElasticsearchIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/ElasticsearchIT.java @@ -56,7 +56,7 @@ import uk.gov.hmcts.ccd.test.ElasticsearchTestHelper; import uk.gov.hmcts.ccd.v2.internal.resource.CaseSearchResultViewResource; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -1846,7 +1846,7 @@ void shouldNotReturnCaseFieldsFilteredByPostFilteringAuthRules() throws Exceptio } @ParameterizedTest(name = "Pagination: should apply Pagination: {0}") - @MethodSource("uk.gov.hmcts.ccd.ElasticsearchIT#providePaginationTestArguments") + @MethodSource("providePaginationTestArguments") @SuppressWarnings("unused") void shouldApplyPagination(String name, int startRecordNumber, @@ -1898,7 +1898,7 @@ void shouldApplyPagination(String name, } @ParameterizedTest(name = "Sort: should apply sort: {0}") - @MethodSource("uk.gov.hmcts.ccd.ElasticsearchIT#provideSortCriteriaTestArguments") + @MethodSource("provideSortCriteriaTestArguments") @SuppressWarnings("unused") void shouldApplySort(String name, List sortCriteria, diff --git a/src/test/java/uk/gov/hmcts/ccd/RestTemplateConfigurationTest.java b/src/test/java/uk/gov/hmcts/ccd/RestTemplateConfigurationTest.java index 8ef6d5faad..ff4ddb6fa8 100644 --- a/src/test/java/uk/gov/hmcts/ccd/RestTemplateConfigurationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/RestTemplateConfigurationTest.java @@ -11,6 +11,7 @@ import java.net.URI; import java.util.List; +import java.util.ArrayList; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; @@ -18,7 +19,6 @@ import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; import static com.github.tomakehurst.wiremock.client.WireMock.get; import static com.github.tomakehurst.wiremock.client.WireMock.put; -import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; import static org.apache.http.HttpStatus.SC_OK; import static org.apache.http.protocol.HTTP.CONTENT_TYPE; @@ -29,7 +29,6 @@ import static org.junit.Assert.assertThat; import static org.springframework.http.HttpMethod.GET; import static org.springframework.http.HttpMethod.PUT; -import static wiremock.com.google.common.collect.Lists.newArrayList; import static org.apache.http.entity.ContentType.APPLICATION_JSON; import com.fasterxml.jackson.core.JsonProcessingException; @@ -81,7 +80,7 @@ public void shouldTimeOut() { @Test public void shouldBeAbleToUseMultipleTimes() throws Exception { stubResponse(); - final List> futures = newArrayList(); + final List> futures = new ArrayList<>(); final ExecutorService executorService = Executors.newFixedThreadPool(25); final int totalNumberOfCalls = 200; diff --git a/src/test/java/uk/gov/hmcts/ccd/TestConfiguration.java b/src/test/java/uk/gov/hmcts/ccd/TestConfiguration.java index 0264f31e64..608c4c0d71 100644 --- a/src/test/java/uk/gov/hmcts/ccd/TestConfiguration.java +++ b/src/test/java/uk/gov/hmcts/ccd/TestConfiguration.java @@ -134,4 +134,5 @@ CaseDefinitionRepository caseDefinitionRepository() throws IOException { UIDService uidService() { return Mockito.mock(UIDService.class); } + } diff --git a/src/test/java/uk/gov/hmcts/ccd/TestIdamConfiguration.java b/src/test/java/uk/gov/hmcts/ccd/TestIdamConfiguration.java index c44ae40bad..ea8511e00f 100644 --- a/src/test/java/uk/gov/hmcts/ccd/TestIdamConfiguration.java +++ b/src/test/java/uk/gov/hmcts/ccd/TestIdamConfiguration.java @@ -24,7 +24,7 @@ public ClientRegistrationRepository clientRegistrationRepository() { private ClientRegistration clientRegistration() { return ClientRegistration.withRegistrationId("oidc") - .redirectUriTemplate("{baseUrl}/{action}/oauth2/code/{registrationId}") + .redirectUri("{baseUrl}/{action}/oauth2/code/{registrationId}") .authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE) .scope("read:user") .authorizationUri("http://idam/o/authorize") diff --git a/src/test/java/uk/gov/hmcts/ccd/WireMockBaseTest.java b/src/test/java/uk/gov/hmcts/ccd/WireMockBaseTest.java index f8f530da95..2f550e674f 100644 --- a/src/test/java/uk/gov/hmcts/ccd/WireMockBaseTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/WireMockBaseTest.java @@ -29,9 +29,7 @@ import java.util.UUID; import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.inject.Inject; -import java.util.stream.Collectors; -import java.util.stream.Stream; +import jakarta.inject.Inject; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; @@ -44,7 +42,7 @@ @AutoConfigureWireMock(port = 0) public abstract class WireMockBaseTest extends AbstractBaseIntegrationTest { - private static final Logger LOG = LoggerFactory.getLogger(WireMockBaseTest.class); + private static final Logger LOG = LoggerFactory.getLogger(WireMockBaseContractTest.class); // data values as per: classpath:sql/insert_cases.sql public static final String CASE_01_REFERENCE = "1504259907353529"; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/AbstractReferenceDataIT.java b/src/test/java/uk/gov/hmcts/ccd/data/AbstractReferenceDataIT.java index 256a0a7346..34a90c4d31 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/AbstractReferenceDataIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/AbstractReferenceDataIT.java @@ -6,7 +6,7 @@ import java.util.List; import java.util.Optional; -import javax.inject.Inject; +import jakarta.inject.Inject; import static uk.gov.hmcts.ccd.data.ReferenceDataRepository.BUILDING_LOCATIONS_CACHE; import static uk.gov.hmcts.ccd.data.ReferenceDataRepository.SERVICES_CACHE; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/caseaccess/DefaultCaseUserRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/caseaccess/DefaultCaseUserRepositoryTest.java index 014e9a169f..8584c6c4a7 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/caseaccess/DefaultCaseUserRepositoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/caseaccess/DefaultCaseUserRepositoryTest.java @@ -12,8 +12,8 @@ import uk.gov.hmcts.ccd.domain.model.casedataaccesscontrol.enums.RoleCategory; import uk.gov.hmcts.ccd.domain.service.casedataaccesscontrol.RoleAssignmentCategoryService; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; +import jakarta.persistence.EntityManager; +import jakarta.persistence.PersistenceContext; import java.util.List; import java.util.Set; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventRepositoryTest.java index fb942f4013..d7a11e36b8 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventRepositoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventRepositoryTest.java @@ -6,12 +6,12 @@ import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.simple.SimpleJdbcInsert; import org.springframework.transaction.annotation.Transactional; -import uk.gov.hmcts.ccd.WireMockBaseTest; +import uk.gov.hmcts.ccd.WireMockBaseContractTest; import uk.gov.hmcts.ccd.domain.model.definition.CaseDetails; import uk.gov.hmcts.ccd.domain.model.std.AuditEvent; import uk.gov.hmcts.ccd.endpoint.exceptions.ResourceNotFoundException; -import javax.inject.Inject; +import jakarta.inject.Inject; import javax.sql.DataSource; import java.util.HashMap; import java.util.List; @@ -26,7 +26,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; @Transactional -public class CaseAuditEventRepositoryTest extends WireMockBaseTest { +public class CaseAuditEventRepositoryTest extends WireMockBaseContractTest { @Autowired CaseAuditEventRepository classUnderTest; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/DefaultCaseDetailsRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/DefaultCaseDetailsRepositoryTest.java index 6aa5d1389e..1a89cbb6b6 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/DefaultCaseDetailsRepositoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/DefaultCaseDetailsRepositoryTest.java @@ -31,11 +31,11 @@ import uk.gov.hmcts.ccd.infrastructure.user.UserAuthorisation; import uk.gov.hmcts.ccd.infrastructure.user.UserAuthorisation.AccessLevel; -import javax.inject.Inject; -import javax.persistence.EntityManager; -import javax.persistence.OptimisticLockException; -import javax.servlet.ServletContext; -import javax.servlet.ServletRequestEvent; +import jakarta.inject.Inject; +import jakarta.persistence.EntityManager; +import jakarta.persistence.OptimisticLockException; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletRequestEvent; import java.io.IOException; import java.lang.reflect.Field; import java.time.LocalDate; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseDetailsQueryBuilderFactoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseDetailsQueryBuilderFactoryTest.java index b3dbe1893b..ba594fcc97 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseDetailsQueryBuilderFactoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseDetailsQueryBuilderFactoryTest.java @@ -1,9 +1,9 @@ package uk.gov.hmcts.ccd.data.casedetails.query; -import javax.persistence.EntityManager; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Root; +import jakarta.persistence.EntityManager; +import jakarta.persistence.criteria.CriteriaBuilder; +import jakarta.persistence.criteria.CriteriaQuery; +import jakarta.persistence.criteria.Root; import java.util.Optional; import static java.util.Arrays.asList; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseDetailsQueryBuilderTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseDetailsQueryBuilderTest.java index 212499bd2e..0918f2a2b5 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseDetailsQueryBuilderTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseDetailsQueryBuilderTest.java @@ -7,10 +7,10 @@ import org.mockito.MockitoAnnotations; import uk.gov.hmcts.ccd.data.casedetails.CaseDetailsEntity; -import javax.persistence.EntityManager; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Root; +import jakarta.persistence.EntityManager; +import jakarta.persistence.criteria.CriteriaBuilder; +import jakarta.persistence.criteria.CriteriaQuery; +import jakarta.persistence.criteria.Root; import java.util.Arrays; import java.util.List; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/SearchQueryFactoryOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/SearchQueryFactoryOperationTest.java index dc8250b856..cab0caa4ae 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/SearchQueryFactoryOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/SearchQueryFactoryOperationTest.java @@ -3,8 +3,8 @@ import com.google.common.collect.Maps; import java.io.IOException; import java.util.List; -import javax.persistence.EntityManager; -import javax.persistence.TypedQuery; +import jakarta.persistence.EntityManager; +import jakarta.persistence.TypedQuery; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.Mock; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/FindSupplementaryDataQueryBuilderTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/FindSupplementaryDataQueryBuilderTest.java index 0ee5572fd9..94afe63890 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/FindSupplementaryDataQueryBuilderTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/FindSupplementaryDataQueryBuilderTest.java @@ -1,16 +1,16 @@ package uk.gov.hmcts.ccd.data.casedetails.supplementarydata; -import javax.inject.Inject; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; -import javax.persistence.Query; +import jakarta.inject.Inject; +import jakarta.persistence.EntityManager; +import jakarta.persistence.PersistenceContext; +import jakarta.persistence.Query; import org.junit.jupiter.api.Test; -import uk.gov.hmcts.ccd.WireMockBaseTest; +import uk.gov.hmcts.ccd.WireMockBaseContractTest; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -class FindSupplementaryDataQueryBuilderTest extends WireMockBaseTest { +class FindSupplementaryDataQueryBuilderTest extends WireMockBaseContractTest { private static final String CASE_REFERENCE = "1234567"; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/IncrementSupplementaryDataQueryBuilderTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/IncrementSupplementaryDataQueryBuilderTest.java index 417748bc53..3b6899ed85 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/IncrementSupplementaryDataQueryBuilderTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/IncrementSupplementaryDataQueryBuilderTest.java @@ -1,16 +1,16 @@ package uk.gov.hmcts.ccd.data.casedetails.supplementarydata; -import javax.inject.Inject; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; -import javax.persistence.Query; +import jakarta.inject.Inject; +import jakarta.persistence.EntityManager; +import jakarta.persistence.PersistenceContext; +import jakarta.persistence.Query; import org.junit.jupiter.api.Test; -import uk.gov.hmcts.ccd.WireMockBaseTest; +import uk.gov.hmcts.ccd.WireMockBaseContractTest; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -class IncrementSupplementaryDataQueryBuilderTest extends WireMockBaseTest { +class IncrementSupplementaryDataQueryBuilderTest extends WireMockBaseContractTest { private static final String CASE_REFERENCE = "1234568"; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SetSupplementaryDataQueryBuilderTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SetSupplementaryDataQueryBuilderTest.java index 1a36792c5a..a6cabb42e0 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SetSupplementaryDataQueryBuilderTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SetSupplementaryDataQueryBuilderTest.java @@ -1,15 +1,15 @@ package uk.gov.hmcts.ccd.data.casedetails.supplementarydata; -import javax.inject.Inject; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; +import jakarta.inject.Inject; +import jakarta.persistence.EntityManager; +import jakarta.persistence.PersistenceContext; import org.junit.Ignore; -import javax.persistence.Query; +import jakarta.persistence.Query; import org.junit.jupiter.api.Test; import org.mockito.Mock; -import uk.gov.hmcts.ccd.WireMockBaseTest; +import uk.gov.hmcts.ccd.WireMockBaseContractTest; import uk.gov.hmcts.ccd.endpoint.exceptions.ServiceException; import static org.mockito.Mockito.when; @@ -18,7 +18,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; -class SetSupplementaryDataQueryBuilderTest extends WireMockBaseTest { +class SetSupplementaryDataQueryBuilderTest extends WireMockBaseContractTest { private static final String CASE_REFERENCE = "1234569"; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/caselinking/CaseLinkRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/caselinking/CaseLinkRepositoryTest.java index 014cb8a6ee..71a207e21d 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/caselinking/CaseLinkRepositoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/caselinking/CaseLinkRepositoryTest.java @@ -6,7 +6,7 @@ import org.springframework.test.context.jdbc.Sql; import uk.gov.hmcts.ccd.WireMockBaseTest; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepositoryIT.java b/src/test/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepositoryIT.java index a27df73d85..6b5106f95a 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepositoryIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepositoryIT.java @@ -11,7 +11,7 @@ import uk.gov.hmcts.ccd.domain.model.definition.UserRole; import uk.gov.hmcts.ccd.endpoint.exceptions.ServiceException; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGatewayServiceExceptionTest.java b/src/test/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGatewayServiceExceptionTest.java index 6dd3859427..3fcbcbceec 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGatewayServiceExceptionTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGatewayServiceExceptionTest.java @@ -4,13 +4,13 @@ import org.junit.Before; import org.junit.Test; import org.springframework.test.util.ReflectionTestUtils; -import uk.gov.hmcts.ccd.WireMockBaseTest; +import uk.gov.hmcts.ccd.WireMockBaseContractTest; import uk.gov.hmcts.ccd.endpoint.exceptions.ServiceException; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.util.List; -public class HttpUIDefinitionGatewayServiceExceptionTest extends WireMockBaseTest { +public class HttpUIDefinitionGatewayServiceExceptionTest extends WireMockBaseContractTest { private static final int VERSION = 33; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGatewayTest.java b/src/test/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGatewayTest.java index 30b028ee12..50ba38bb49 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGatewayTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGatewayTest.java @@ -3,20 +3,20 @@ import com.google.common.collect.Lists; import org.junit.Test; import org.junit.jupiter.api.DisplayName; -import uk.gov.hmcts.ccd.WireMockBaseTest; +import uk.gov.hmcts.ccd.WireMockBaseContractTest; import uk.gov.hmcts.ccd.domain.model.definition.BannersResult; import uk.gov.hmcts.ccd.domain.model.definition.JurisdictionUiConfigResult; import uk.gov.hmcts.ccd.domain.model.definition.SearchResultDefinition; import uk.gov.hmcts.ccd.domain.model.definition.WorkbasketInputFieldsDefinition; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.util.List; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; import static org.junit.jupiter.api.Assertions.assertAll; -public class HttpUIDefinitionGatewayTest extends WireMockBaseTest { +public class HttpUIDefinitionGatewayTest extends WireMockBaseContractTest { private static final int VERSION = 33; private static final String ORG_CASES = "ORGCASES"; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/model/common/HttpErrorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/model/common/HttpErrorTest.java index c27d5d51ff..515881ddd1 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/model/common/HttpErrorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/model/common/HttpErrorTest.java @@ -6,7 +6,7 @@ import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.util.UriUtils; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.nio.charset.StandardCharsets; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/SearchCriteriaValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/SearchCriteriaValidatorTest.java index 65175b2ac7..d1c065ab7f 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/SearchCriteriaValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/SearchCriteriaValidatorTest.java @@ -9,7 +9,7 @@ import org.mockito.MockitoAnnotations; import uk.gov.hmcts.ccd.domain.model.search.global.SearchCriteria; -import javax.validation.ConstraintValidatorContext; +import jakarta.validation.ConstraintValidatorContext; import java.util.ArrayList; import java.util.List; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/SortByValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/SortByValidatorTest.java index ca766cd50c..9b38d439a3 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/SortByValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/SortByValidatorTest.java @@ -6,7 +6,7 @@ import org.mockito.MockitoAnnotations; import uk.gov.hmcts.ccd.domain.model.search.global.GlobalSearchSortByCategory; -import javax.validation.ConstraintValidatorContext; +import jakarta.validation.ConstraintValidatorContext; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/SortDirectionValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/SortDirectionValidatorTest.java index 1da8f2d127..f9f774c181 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/SortDirectionValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/model/std/validator/globalsearch/SortDirectionValidatorTest.java @@ -6,7 +6,7 @@ import org.mockito.MockitoAnnotations; import uk.gov.hmcts.ccd.domain.model.search.global.GlobalSearchSortDirection; -import javax.validation.ConstraintValidatorContext; +import jakarta.validation.ConstraintValidatorContext; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackInvokerWireMockTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackInvokerWireMockTest.java index d3e0a9d0f0..7920a2464f 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackInvokerWireMockTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackInvokerWireMockTest.java @@ -18,7 +18,7 @@ import uk.gov.hmcts.ccd.domain.service.stdapi.CallbackInvoker; import uk.gov.hmcts.ccd.endpoint.exceptions.CallbackException; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.util.List; import static com.github.tomakehurst.wiremock.client.WireMock.exactly; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackServiceWireMockTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackServiceWireMockTest.java index 883d6262c6..8009790276 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackServiceWireMockTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackServiceWireMockTest.java @@ -37,7 +37,7 @@ import java.util.List; import java.util.Optional; -import javax.inject.Inject; +import jakarta.inject.Inject; import com.fasterxml.jackson.databind.ObjectMapper; import org.hamcrest.Matchers; @@ -48,13 +48,13 @@ import org.springframework.http.ResponseEntity; import org.springframework.test.context.TestPropertySource; import org.springframework.web.client.RestTemplate; -import uk.gov.hmcts.ccd.WireMockBaseTest; +import uk.gov.hmcts.ccd.WireMockBaseContractTest; @TestPropertySource(properties = { "ccd.callback.timeouts=1,2,3" }) -public class CallbackServiceWireMockTest extends WireMockBaseTest { +public class CallbackServiceWireMockTest extends WireMockBaseContractTest { private static final ObjectMapper mapper = new ObjectMapper(); public static final CallbackType TEST_CALLBACK = CallbackType.ABOUT_TO_START; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/CreateCaseEventServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/CreateCaseEventServiceTest.java index 685483c756..93f63648cf 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/CreateCaseEventServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/CreateCaseEventServiceTest.java @@ -55,7 +55,7 @@ import uk.gov.hmcts.ccd.endpoint.exceptions.ResourceNotFoundException; import uk.gov.hmcts.ccd.infrastructure.user.UserAuthorisation; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.time.Clock; import java.time.Instant; import java.time.LocalDate; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/CaseDocumentMetadataMapperTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/CaseDocumentMetadataMapperTest.java index 7897ca1ce8..a7981aebe2 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/CaseDocumentMetadataMapperTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/CaseDocumentMetadataMapperTest.java @@ -3,7 +3,7 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; -import uk.gov.hmcts.ccd.WireMockBaseTest; +import uk.gov.hmcts.ccd.WireMockBaseContractTest; import uk.gov.hmcts.ccd.domain.model.search.CaseDocumentsMetadata; import uk.gov.hmcts.ccd.v2.external.domain.DocumentHashToken; @@ -17,7 +17,7 @@ @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) -class CaseDocumentMetadataMapperTest extends WireMockBaseTest { +class CaseDocumentMetadataMapperTest extends WireMockBaseContractTest { @Autowired private CaseDocumentMetadataMapper mapper; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperationIT.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperationIT.java index 93b4335788..4d30528f97 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperationIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperationIT.java @@ -30,7 +30,7 @@ import uk.gov.hmcts.ccd.domain.model.lau.CaseSearchPostRequest; import uk.gov.hmcts.ccd.domain.model.lau.SearchLog; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.io.IOException; import java.time.Clock; import java.time.Instant; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/stdapi/DocumentsOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/stdapi/DocumentsOperationTest.java index 01bb50133d..3f81229069 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/stdapi/DocumentsOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/stdapi/DocumentsOperationTest.java @@ -14,7 +14,7 @@ import uk.gov.hmcts.ccd.domain.service.common.UIDService; import uk.gov.hmcts.ccd.endpoint.exceptions.BadRequestException; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.util.ArrayList; import java.util.List; import java.util.Optional; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/CaseDataValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/CaseDataValidatorTest.java index 5b64557333..46db8fca5e 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/CaseDataValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/CaseDataValidatorTest.java @@ -18,7 +18,7 @@ import uk.gov.hmcts.ccd.domain.model.definition.CaseTypeDefinition; import uk.gov.hmcts.ccd.domain.service.common.TestBuildersUtil; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/exceptions/RestExceptionHandlerTest.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/exceptions/RestExceptionHandlerTest.java index 14ef5627de..fec7ed7cd3 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/exceptions/RestExceptionHandlerTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/exceptions/RestExceptionHandlerTest.java @@ -34,8 +34,8 @@ import uk.gov.hmcts.ccd.domain.service.common.AccessControlService; import uk.gov.hmcts.ccd.endpoint.ui.UserProfileEndpoint; -import javax.servlet.http.HttpServletRequest; -import javax.validation.ConstraintViolationException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.ConstraintViolationException; import java.io.Serializable; import java.net.SocketTimeoutException; import java.net.UnknownHostException; diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackEndpointIT.java index d0b7f69fa1..fd0760d453 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackEndpointIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackEndpointIT.java @@ -15,7 +15,7 @@ import uk.gov.hmcts.ccd.domain.model.definition.Document; import uk.gov.hmcts.ccd.domain.service.common.TestBuildersUtil.CaseDetailsBuilder; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.util.Arrays; import java.util.List; diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackTest.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackTest.java index a289fea297..08dca5d87b 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackTest.java @@ -33,7 +33,7 @@ import uk.gov.hmcts.ccd.domain.model.std.Event; import uk.gov.hmcts.ccd.endpoint.CallbackTestData; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.io.IOException; import java.util.Collections; import java.util.List; diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseAccessEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseAccessEndpointIT.java index 6dd5a759b9..0733d3c7b9 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseAccessEndpointIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseAccessEndpointIT.java @@ -23,7 +23,7 @@ import uk.gov.hmcts.ccd.domain.model.std.UserId; import uk.gov.hmcts.reform.idam.client.models.UserInfo; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.io.IOException; import java.util.List; diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointIT.java index 8f39f546f3..3d366a8364 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointIT.java @@ -47,7 +47,7 @@ import uk.gov.hmcts.ccd.domain.model.std.Event; import uk.gov.hmcts.ccd.domain.model.std.MessageQueueCandidate; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.nio.charset.StandardCharsets; import java.time.LocalDate; import java.util.Arrays; @@ -64,7 +64,6 @@ import static com.google.common.collect.Lists.newArrayList; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.empty; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.hasProperty; @@ -75,6 +74,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.assertAll; import static org.mockito.Mockito.doReturn; @@ -436,8 +436,8 @@ public void shouldReturn201WhenPostCreateCaseWithEmptyDataClassificationForCasew Map expectedSanitizedData = mapper.readValue(sanitizedData.toString(), Map.class); Map actualData = mapper.readValue(mapper.readTree(mvcResult.getResponse().getContentAsString()) .get("case_data").toString(), Map.class); - assertThat("Incorrect Response Content", actualData.entrySet(), everyItem(isIn(expectedSanitizedData - .entrySet()))); + + assertTrue("Incorrect Response Content", expectedSanitizedData.entrySet().containsAll(actualData.entrySet())); final List caseDetailsList = template.query("SELECT * FROM case_data", this::mapCaseData); assertEquals("Incorrect number of cases", 1, caseDetailsList.size()); @@ -939,8 +939,7 @@ public void shouldReturn201WhenPostCreateCaseWithEmptyDataClassificationForCitiz Map expectedSanitizedData = mapper.readValue(sanitizedData.toString(), Map.class); Map actualData = mapper.readValue(mapper.readTree(mvcResult.getResponse().getContentAsString()) .get("case_data").toString(), Map.class); - assertThat("Incorrect Response Content", actualData.entrySet(), everyItem(isIn(expectedSanitizedData - .entrySet()))); + assertTrue("Incorrect Response Content", expectedSanitizedData.entrySet().containsAll(actualData.entrySet())); final List caseDetailsList = template.query("SELECT * FROM case_data", this::mapCaseData); assertEquals("Incorrect number of cases", 1, caseDetailsList.size()); @@ -3612,16 +3611,16 @@ private void shouldReturn201WithFieldRemovedWhenPostCreateCaseWithNoFieldReadAcc " }\n" + "}\n" ); - Map expectedSanitizedData = mapper.readValue(sanitizedData.toString(), Map.class); + Map expectedSanitizedData = mapper.readValue(sanitizedData.toString(), Map.class); JsonNode caseData = mapper.readTree(mvcResult.getResponse().getContentAsString()).get("case_data"); JsonNode dataClassification = mapper.readTree(mvcResult.getResponse().getContentAsString()) .get("data_classification"); - Map actualData = mapper.readValue(caseData.toString(), Map.class); - assertAll(() -> assertThat("Incorrect Response Content", - actualData.entrySet(), - everyItem(isIn(expectedSanitizedData.entrySet()))), - () -> assertThat("Response contains filtered out data", caseData.has("PersonFirstName"), - is(false)), + Map actualData = mapper.readValue(caseData.toString(), Map.class); + assertAll(() -> + assertTrue("Incorrect Response Content", expectedSanitizedData.entrySet() + .containsAll(actualData.entrySet())), + () -> assertThat("Response contains filtered out data", + caseData.has("PersonFirstName"), is(false)), () -> assertThat(dataClassification.has("PersonFirstName"), CoreMatchers.is(false)), () -> assertThat(dataClassification.has("PersonLastName"), CoreMatchers.is(true)), () -> assertThat(dataClassification.has("PersonAddress"), CoreMatchers.is(true)) diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointPostStateIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointPostStateIT.java index 2a9c3a0c17..2d4dad75e1 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointPostStateIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointPostStateIT.java @@ -2,7 +2,7 @@ import com.fasterxml.jackson.databind.JsonNode; import java.util.List; -import javax.inject.Inject; +import jakarta.inject.Inject; import org.junit.Before; import org.junit.Test; import org.springframework.jdbc.core.JdbcTemplate; diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointUserRolesIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointUserRolesIT.java index 3cc37de862..572ebd2c28 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointUserRolesIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointUserRolesIT.java @@ -14,7 +14,7 @@ import uk.gov.hmcts.ccd.domain.model.std.CaseDataContent; import uk.gov.hmcts.ccd.domain.model.std.Event; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.util.List; import static org.hamcrest.MatcherAssert.assertThat; diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseSearchEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseSearchEndpointIT.java index 757bf2cdff..fa0a07ab79 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseSearchEndpointIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseSearchEndpointIT.java @@ -24,7 +24,7 @@ import uk.gov.hmcts.ccd.domain.model.definition.CaseDetails; import uk.gov.hmcts.ccd.domain.model.search.CaseSearchResult; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.time.LocalDateTime; import java.util.Collections; import java.util.List; diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/DraftsEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/DraftsEndpointIT.java index a0a33fe88d..568e40c65b 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/DraftsEndpointIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/DraftsEndpointIT.java @@ -21,7 +21,7 @@ import uk.gov.hmcts.ccd.domain.model.draft.Draft; import uk.gov.hmcts.ccd.domain.model.std.CaseDataContent; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.io.IOException; import java.util.Map; diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/EventsEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/EventsEndpointIT.java index 34e53d4512..f82b3bb35f 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/EventsEndpointIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/EventsEndpointIT.java @@ -12,7 +12,7 @@ import uk.gov.hmcts.ccd.WireMockBaseTest; import uk.gov.hmcts.ccd.domain.model.std.AuditEvent; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.time.LocalDateTime; import java.util.Arrays; import java.util.List; diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/GlobalSearchEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/GlobalSearchEndpointIT.java index e10c82684d..58b3450d94 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/GlobalSearchEndpointIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/GlobalSearchEndpointIT.java @@ -36,7 +36,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import javax.inject.Inject; +import jakarta.inject.Inject; import static org.hamcrest.CoreMatchers.hasItem; import static org.hamcrest.CoreMatchers.is; diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/MigrationEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/MigrationEndpointIT.java index 3b89a13de4..d2e99be859 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/MigrationEndpointIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/MigrationEndpointIT.java @@ -32,7 +32,7 @@ import uk.gov.hmcts.ccd.domain.model.migration.MigrationParameters; import uk.gov.hmcts.ccd.domain.model.migration.MigrationResult; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.util.ArrayList; import java.util.Collections; import java.util.List; diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/CallbackTest.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/CallbackTest.java index f509d91689..89cbac06e0 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/CallbackTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/CallbackTest.java @@ -22,7 +22,7 @@ import uk.gov.hmcts.ccd.domain.model.callbacks.CallbackResponse; import uk.gov.hmcts.ccd.endpoint.CallbackTestData; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.io.IOException; import java.util.Arrays; import java.util.stream.Collectors; diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/CaseRolesIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/CaseRolesIT.java index 172410c0c8..d119486864 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/CaseRolesIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/CaseRolesIT.java @@ -11,7 +11,7 @@ import uk.gov.hmcts.ccd.domain.model.aggregated.CaseUpdateViewEvent; import uk.gov.hmcts.ccd.domain.model.aggregated.CaseViewField; -import javax.inject.Inject; +import jakarta.inject.Inject; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/QueryEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/QueryEndpointIT.java index 73cecc54ba..c903245dcc 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/QueryEndpointIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/QueryEndpointIT.java @@ -38,7 +38,7 @@ import uk.gov.hmcts.ccd.domain.model.search.SearchResultViewItem; import uk.gov.hmcts.ccd.domain.model.std.AuditEvent; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.time.format.DateTimeFormatter; import java.util.Arrays; import java.util.List; diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/SearchInputEndpointTest.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/SearchInputEndpointTest.java index 69cae37d1c..513772d40d 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/SearchInputEndpointTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/SearchInputEndpointTest.java @@ -12,7 +12,7 @@ import uk.gov.hmcts.ccd.WireMockBaseTest; import uk.gov.hmcts.ccd.domain.model.search.SearchInput; -import javax.inject.Inject; +import jakarta.inject.Inject; import static org.junit.Assert.assertEquals; import static org.springframework.http.HttpHeaders.AUTHORIZATION; diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/SearchWithSortIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/SearchWithSortIT.java index 0333ea15dc..014e5c7135 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/SearchWithSortIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/SearchWithSortIT.java @@ -16,7 +16,7 @@ import uk.gov.hmcts.ccd.domain.model.search.SearchResultView; import uk.gov.hmcts.ccd.domain.model.search.SearchResultViewItem; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.util.List; import java.util.Map; diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/UserProfileEndpointTest.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/UserProfileEndpointTest.java index 2e1e6250ae..176168411c 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/UserProfileEndpointTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/UserProfileEndpointTest.java @@ -14,7 +14,7 @@ import uk.gov.hmcts.ccd.domain.model.aggregated.UserProfile; import uk.gov.hmcts.ccd.domain.model.aggregated.WorkbasketDefault; -import javax.inject.Inject; +import jakarta.inject.Inject; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; diff --git a/src/test/java/uk/gov/hmcts/ccd/security/DataStoreHttpStatusRequestRejectedHandlerTest.java b/src/test/java/uk/gov/hmcts/ccd/security/DataStoreHttpStatusRequestRejectedHandlerTest.java index 89772b20b7..11dd1638bf 100644 --- a/src/test/java/uk/gov/hmcts/ccd/security/DataStoreHttpStatusRequestRejectedHandlerTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/security/DataStoreHttpStatusRequestRejectedHandlerTest.java @@ -15,7 +15,7 @@ import org.springframework.security.web.firewall.RequestRejectedException; import uk.gov.hmcts.ccd.appinsights.AppInsights; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; diff --git a/src/test/java/uk/gov/hmcts/ccd/security/JwtGrantedAuthoritiesConverterTest.java b/src/test/java/uk/gov/hmcts/ccd/security/JwtGrantedAuthoritiesConverterTest.java index 4597775b92..03fae2576d 100644 --- a/src/test/java/uk/gov/hmcts/ccd/security/JwtGrantedAuthoritiesConverterTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/security/JwtGrantedAuthoritiesConverterTest.java @@ -47,7 +47,7 @@ void shouldReturnEmptyAuthorities() { @DisplayName("No Claims should return empty authorities") void shouldReturnEmptyAuthoritiesWhenClaimNotAvailable() { Jwt jwt = Mockito.mock(Jwt.class); - when(jwt.containsClaim(anyString())).thenReturn(false); + when(jwt.hasClaim(anyString())).thenReturn(false); Collection authorities = converter.convert(jwt); assertNotNull(authorities); assertEquals(0, authorities.size()); @@ -57,7 +57,7 @@ void shouldReturnEmptyAuthoritiesWhenClaimNotAvailable() { @DisplayName("Should return empty authorities when token value is not matching with expected") void shouldReturnEmptyAuthoritiesWhenClaimValueNotEquals() { Jwt jwt = Mockito.mock(Jwt.class); - when(jwt.containsClaim(anyString())).thenReturn(true); + when(jwt.hasClaim(anyString())).thenReturn(true); when(jwt.getClaim(anyString())).thenReturn("Test"); Collection authorities = converter.convert(jwt); assertNotNull(authorities); @@ -68,7 +68,7 @@ void shouldReturnEmptyAuthoritiesWhenClaimValueNotEquals() { @DisplayName("Should return empty authorities when token value is not matching with expected") void shouldReturnEmptyAuthoritiesWhenIdamReturnsNoUsers() { Jwt jwt = Mockito.mock(Jwt.class); - when(jwt.containsClaim(anyString())).thenReturn(true); + when(jwt.hasClaim(anyString())).thenReturn(true); when(jwt.getClaim(anyString())).thenReturn("access_token"); when(jwt.getTokenValue()).thenReturn("access_token"); UserInfo userInfo = mock(UserInfo.class); @@ -84,7 +84,7 @@ void shouldReturnEmptyAuthoritiesWhenIdamReturnsNoUsers() { @DisplayName("Should return empty authorities when token value is not matching with expected") void shouldReturnAuthoritiesWhenIdamReturnsUserRoles() { Jwt jwt = Mockito.mock(Jwt.class); - when(jwt.containsClaim(anyString())).thenReturn(true); + when(jwt.hasClaim(anyString())).thenReturn(true); when(jwt.getClaim(anyString())).thenReturn("access_token"); when(jwt.getTokenValue()).thenReturn("access_token"); UserInfo userInfo = mock(UserInfo.class); diff --git a/src/test/java/uk/gov/hmcts/ccd/security/filters/ExceptionHandlingFilterTest.java b/src/test/java/uk/gov/hmcts/ccd/security/filters/ExceptionHandlingFilterTest.java index 52f5a9a3e5..5877324ec6 100644 --- a/src/test/java/uk/gov/hmcts/ccd/security/filters/ExceptionHandlingFilterTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/security/filters/ExceptionHandlingFilterTest.java @@ -16,9 +16,9 @@ import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; diff --git a/src/test/java/uk/gov/hmcts/ccd/security/filters/SecurityLoggingFilterTest.java b/src/test/java/uk/gov/hmcts/ccd/security/filters/SecurityLoggingFilterTest.java index 67015ea30d..35adac9d1b 100644 --- a/src/test/java/uk/gov/hmcts/ccd/security/filters/SecurityLoggingFilterTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/security/filters/SecurityLoggingFilterTest.java @@ -16,8 +16,8 @@ import uk.gov.hmcts.ccd.data.SecurityUtils; import uk.gov.hmcts.reform.idam.client.models.UserInfo; -import javax.servlet.FilterChain; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.FilterChain; +import jakarta.servlet.http.HttpServletResponse; import java.util.Arrays; import java.util.List; diff --git a/src/test/java/uk/gov/hmcts/ccd/security/filters/V1EndpointsPathParamSecurityFilterTest.java b/src/test/java/uk/gov/hmcts/ccd/security/filters/V1EndpointsPathParamSecurityFilterTest.java index 6ad064cb49..92feaec447 100644 --- a/src/test/java/uk/gov/hmcts/ccd/security/filters/V1EndpointsPathParamSecurityFilterTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/security/filters/V1EndpointsPathParamSecurityFilterTest.java @@ -14,8 +14,8 @@ import uk.gov.hmcts.ccd.data.SecurityUtils; import uk.gov.hmcts.reform.idam.client.models.UserInfo; -import javax.servlet.FilterChain; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.FilterChain; +import jakarta.servlet.http.HttpServletResponse; import java.util.Arrays; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; diff --git a/src/test/java/uk/gov/hmcts/ccd/swagger/SwaggerGeneratorTest.java b/src/test/java/uk/gov/hmcts/ccd/swagger/SwaggerGeneratorTest.java index 1b51944221..07a0245e1b 100644 --- a/src/test/java/uk/gov/hmcts/ccd/swagger/SwaggerGeneratorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/swagger/SwaggerGeneratorTest.java @@ -7,7 +7,7 @@ import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.ResultActions; import org.springframework.web.context.WebApplicationContext; -import uk.gov.hmcts.ccd.WireMockBaseTest; +import uk.gov.hmcts.ccd.WireMockBaseContractTest; import java.io.OutputStream; import java.nio.file.Files; @@ -17,7 +17,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import static org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppContextSetup; -public class SwaggerGeneratorTest extends WireMockBaseTest { +public class SwaggerGeneratorTest extends WireMockBaseContractTest { private MockMvc mvc; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/AddCaseAssignedUserRolesControllerIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/AddCaseAssignedUserRolesControllerIT.java index 98f278c3fb..aeeaf9c4a2 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/AddCaseAssignedUserRolesControllerIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/AddCaseAssignedUserRolesControllerIT.java @@ -32,7 +32,6 @@ import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.hasItems; -import static org.hamcrest.core.IsNot.not; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/BaseCaseAssignedUserRolesControllerIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/BaseCaseAssignedUserRolesControllerIT.java index 5bfa87350c..5f38cf592d 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/BaseCaseAssignedUserRolesControllerIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/BaseCaseAssignedUserRolesControllerIT.java @@ -33,7 +33,7 @@ import uk.gov.hmcts.ccd.domain.service.casedataaccesscontrol.RoleAssignmentCategoryService; import uk.gov.hmcts.reform.idam.client.models.UserInfo; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.io.IOException; import java.util.Arrays; import java.util.Collections; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerDCPIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerDCPIT.java index b356710425..e6715ead9f 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerDCPIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerDCPIT.java @@ -21,7 +21,7 @@ import uk.gov.hmcts.ccd.domain.types.CollectionValidator; import uk.gov.hmcts.ccd.v2.V2; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.util.Map; import static org.hamcrest.CoreMatchers.is; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerEventsIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerEventsIT.java index 16f4109dc3..fe29b6e4e8 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerEventsIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerEventsIT.java @@ -3,7 +3,7 @@ import com.fasterxml.jackson.databind.DeserializationFeature; import com.github.tomakehurst.wiremock.client.WireMock; import java.util.Arrays; -import javax.inject.Inject; +import jakarta.inject.Inject; import org.apache.commons.lang.RandomStringUtils; import org.junit.Before; import org.junit.Test; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerTestIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerTestIT.java index cfeeb1cd8a..57ea528d3d 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerTestIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerTestIT.java @@ -39,7 +39,7 @@ import uk.gov.hmcts.ccd.v2.external.resource.SupplementaryDataResource; import uk.gov.hmcts.reform.idam.client.models.UserInfo; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.util.Arrays; import java.util.HashMap; import java.util.List; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDataValidatorControllerDCPIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDataValidatorControllerDCPIT.java index aacfaf0316..26fd2ea3f1 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDataValidatorControllerDCPIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDataValidatorControllerDCPIT.java @@ -23,7 +23,7 @@ import uk.gov.hmcts.ccd.v2.V2; import uk.gov.hmcts.ccd.v2.external.resource.CaseDataResource; -import javax.inject.Inject; +import jakarta.inject.Inject; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertEquals; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDocumentControllerIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDocumentControllerIT.java index c77b0c1d01..0633bbe97c 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDocumentControllerIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDocumentControllerIT.java @@ -10,7 +10,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import java.util.Optional; -import javax.inject.Inject; +import jakarta.inject.Inject; import javax.sql.DataSource; import com.fasterxml.jackson.databind.ObjectMapper; @@ -30,13 +30,13 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; import uk.gov.hmcts.ccd.MockUtils; -import uk.gov.hmcts.ccd.WireMockBaseTest; +import uk.gov.hmcts.ccd.WireMockBaseContractTest; import uk.gov.hmcts.ccd.v2.V2; import uk.gov.hmcts.ccd.v2.external.domain.CaseDocumentMetadata; import uk.gov.hmcts.ccd.v2.external.domain.Permission; import uk.gov.hmcts.ccd.v2.external.resource.CaseDocumentResource; -public class CaseDocumentControllerIT extends WireMockBaseTest { +public class CaseDocumentControllerIT extends WireMockBaseContractTest { @Inject private WebApplicationContext wac; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseFileViewControllerTestIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseFileViewControllerTestIT.java index a7c4ebd8a1..c2ce7318f6 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseFileViewControllerTestIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseFileViewControllerTestIT.java @@ -18,7 +18,7 @@ import uk.gov.hmcts.ccd.domain.model.definition.CaseTypeDefinition; import java.util.UUID; -import javax.inject.Inject; +import jakarta.inject.Inject; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.verify; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserControllerIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserControllerIT.java index 5571890e2f..f09689e741 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserControllerIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserControllerIT.java @@ -21,7 +21,7 @@ import uk.gov.hmcts.ccd.v2.external.domain.CaseUser; import uk.gov.hmcts.reform.idam.client.models.UserInfo; -import javax.inject.Inject; +import jakarta.inject.Inject; import static com.github.tomakehurst.wiremock.client.WireMock.okJson; import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerITest.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerITest.java index 6898689eb7..b8d1538745 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerITest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerITest.java @@ -19,7 +19,7 @@ import uk.gov.hmcts.ccd.v2.V2; import uk.gov.hmcts.ccd.v2.external.resource.DocumentsResource; -import javax.inject.Inject; +import jakarta.inject.Inject; import javax.sql.DataSource; import java.util.List; import java.util.Optional; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/StartEventControllerCaseRolesIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/StartEventControllerCaseRolesIT.java index e738c1bde8..6203142037 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/StartEventControllerCaseRolesIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/StartEventControllerCaseRolesIT.java @@ -21,7 +21,7 @@ import uk.gov.hmcts.ccd.v2.V2; import uk.gov.hmcts.ccd.v2.external.resource.StartEventResource; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.io.IOException; import java.util.Arrays; import java.util.stream.Collectors; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/StartEventControllerIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/StartEventControllerIT.java index f36887c932..7903d9f0c0 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/StartEventControllerIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/StartEventControllerIT.java @@ -14,7 +14,7 @@ import uk.gov.hmcts.ccd.v2.V2; import uk.gov.hmcts.ccd.v2.external.resource.StartEventResource; -import javax.inject.Inject; +import jakarta.inject.Inject; import static org.junit.Assert.assertNotNull; import static org.springframework.http.HttpHeaders.AUTHORIZATION; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/TestingSupportControllerTestIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/TestingSupportControllerTestIT.java index 9acc09b88a..95803071ec 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/TestingSupportControllerTestIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/TestingSupportControllerTestIT.java @@ -17,7 +17,7 @@ import java.util.List; import java.util.stream.Collectors; -import javax.inject.Inject; +import jakarta.inject.Inject; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerCaseRolesIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerCaseRolesIT.java index ffe2db8efa..54910da36c 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerCaseRolesIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerCaseRolesIT.java @@ -25,7 +25,7 @@ import uk.gov.hmcts.ccd.v2.internal.resource.CaseViewResource; import uk.gov.hmcts.reform.idam.client.models.UserInfo; -import javax.inject.Inject; +import jakarta.inject.Inject; import static com.github.tomakehurst.wiremock.client.WireMock.okJson; import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerDCPIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerDCPIT.java index 9dd3c0b792..6d550c319e 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerDCPIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerDCPIT.java @@ -23,7 +23,7 @@ import uk.gov.hmcts.ccd.v2.V2; import uk.gov.hmcts.ccd.v2.internal.resource.CaseViewResource; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.util.ArrayList; import java.util.LinkedHashMap; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerGetCaseCallbackIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerGetCaseCallbackIT.java index 9541849921..ebe5b384f0 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerGetCaseCallbackIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerGetCaseCallbackIT.java @@ -19,7 +19,7 @@ import uk.gov.hmcts.ccd.v2.V2; import uk.gov.hmcts.ccd.v2.internal.resource.CaseViewResource; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.util.List; import java.util.stream.Collectors; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDefinitionControllerIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDefinitionControllerIT.java index 41ee76aa30..85f3abb99f 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDefinitionControllerIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDefinitionControllerIT.java @@ -15,7 +15,7 @@ import uk.gov.hmcts.ccd.v2.internal.resource.SearchInputsViewResource; import uk.gov.hmcts.ccd.v2.internal.resource.WorkbasketInputsViewResource; -import javax.inject.Inject; +import jakarta.inject.Inject; import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.core.Is.is; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartEventControllerCaseRolesIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartEventControllerCaseRolesIT.java index 154dce5c60..74e3310142 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartEventControllerCaseRolesIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartEventControllerCaseRolesIT.java @@ -15,7 +15,7 @@ import uk.gov.hmcts.ccd.v2.V2; import uk.gov.hmcts.ccd.v2.internal.resource.CaseUpdateViewEventResource; -import javax.inject.Inject; +import jakarta.inject.Inject; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartTriggerControllerDCPIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartTriggerControllerDCPIT.java index d9d574fc9a..3753c5a93d 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartTriggerControllerDCPIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartTriggerControllerDCPIT.java @@ -22,7 +22,7 @@ import uk.gov.hmcts.ccd.v2.V2; import uk.gov.hmcts.ccd.v2.internal.resource.CaseUpdateViewEventResource; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIUserProfileControllerIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIUserProfileControllerIT.java index dbde1a6d8d..54fd346beb 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIUserProfileControllerIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIUserProfileControllerIT.java @@ -16,7 +16,7 @@ import uk.gov.hmcts.ccd.v2.V2; import uk.gov.hmcts.ccd.v2.internal.resource.UserProfileViewResource; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.util.Arrays; import java.util.Optional; diff --git a/src/test/java/uk/gov/hmcts/ccd/validator/CaseTypeIdValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/validator/CaseTypeIdValidatorTest.java index 73ae0cf443..0956fc342b 100644 --- a/src/test/java/uk/gov/hmcts/ccd/validator/CaseTypeIdValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/validator/CaseTypeIdValidatorTest.java @@ -6,7 +6,7 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import javax.validation.ConstraintValidatorContext; +import jakarta.validation.ConstraintValidatorContext; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; From a7be58ad03ebce8c35a1c15f5a16eea6b93ecafb Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Mon, 7 Oct 2024 09:22:27 +0100 Subject: [PATCH 02/42] Spring boot upgrade part 2 --- build.gradle | 24 ++-- .../hmcts/ccd/WireMockBaseContractTest.java | 2 +- .../gov/hmcts/ccd/SecurityConfiguration.java | 1 + .../ccd/config/SwaggerConfiguration.java | 4 +- .../caseaccess/DefaultCaseRoleRepository.java | 5 - .../DefaultRoleAssignmentRepository.java | 6 +- .../FindSupplementaryDataQueryBuilder.java | 2 +- ...ncrementSupplementaryDataQueryBuilder.java | 12 +- .../SetSupplementaryDataQueryBuilder.java | 3 +- .../SupplementaryDataQueryBuilder.java | 2 +- .../SupplementaryDataUserType.java | 105 +++++++++++++++--- .../DefaultCaseDefinitionRepository.java | 12 +- .../ccd/data/draft/DefaultDraftGateway.java | 6 +- .../model/callbacks/CallbackResponse.java | 4 +- .../domain/model/definition/CaseDetails.java | 12 +- .../ccd/domain/model/std/AuditEvent.java | 5 +- .../domain/model/std/MessageInformation.java | 6 +- .../service/callbacks/CallbackService.java | 4 +- .../common/SecurityClassificationUtils.java | 3 +- .../exceptions/RestExceptionHandler.java | 2 +- .../ccd/endpoint/std/CaseDetailsEndpoint.java | 40 ++++--- .../ccd/endpoint/std/CaseSearchEndpoint.java | 6 +- .../hmcts/ccd/endpoint/ui/QueryEndpoint.java | 10 +- .../controller/CaseUserController.java | 4 +- .../external/resource/DocumentsResource.java | 1 - .../controller/UIDraftsController.java | 1 - .../controller/UIStartTriggerController.java | 5 +- .../ccd/AbstractBaseIntegrationTest.java | 2 +- .../ccd/AuthCheckingConfigurationTest.java | 2 +- .../uk/gov/hmcts/ccd/ElasticsearchIT.java | 32 ++++-- .../ccd/RestTemplateConfigurationTest.java | 2 +- .../uk/gov/hmcts/ccd/WireMockBaseTest.java | 2 +- .../ccd/appinsights/AppInsightsTest.java | 4 +- .../ccd/auditlog/AuditRepositoryTest.java | 2 +- .../hmcts/ccd/auditlog/AuditServiceTest.java | 2 +- .../gov/hmcts/ccd/config/HalConfigTest.java | 14 +-- .../gov/hmcts/ccd/data/SecurityUtilsTest.java | 2 +- .../ccd/data/caseaccess/AMSwitchTest.java | 2 +- .../CachedCaseUserRepositoryTest.java | 2 +- .../CachedCaseDetailsRepositoryTest.java | 2 +- .../CaseAuditEventRepositoryTest.java | 4 +- .../JurisdictionDefinitionMapperTest.java | 2 +- .../CaseDetailsQueryBuilderFactoryTest.java | 2 +- .../query/CaseDetailsQueryBuilderTest.java | 2 +- .../CaseStateAuthorisationSecurityTest.java | 2 +- .../query/UserAuthorisationSecurityTest.java | 2 +- .../SearchQueryFactoryOperationTest.java | 2 +- ...ccessControlGrantTypeQueryBuilderTest.java | 2 +- .../BasicGrantTypeQueryBuilderTest.java | 2 +- .../ChallengedGrantTypeQueryBuilderTest.java | 2 +- ...FindSupplementaryDataQueryBuilderTest.java | 4 +- ...mentSupplementaryDataQueryBuilderTest.java | 4 +- .../SetSupplementaryDataQueryBuilderTest.java | 4 +- .../CachedCaseDefinitionRepositoryTest.java | 2 +- .../DefaultCaseDefinitionRepositoryIT.java | 3 +- .../DefaultCaseDefinitionRepositoryTest.java | 4 +- ...DefinitionGatewayServiceExceptionTest.java | 4 +- .../HttpUIDefinitionGatewayTest.java | 4 +- ...itionRepositoryWireMockNotRunningTest.java | 2 +- .../data/draft/CachedDraftGatewayTest.java | 2 +- .../data/draft/DefaultDraftGatewayTest.java | 2 +- .../DefinitionBlockGeneratorTest.java | 2 +- ...tributeBasedJurisdictionsResolverTest.java | 2 +- .../data/user/CachedUserRepositoryTest.java | 2 +- .../DefaultJurisdictionsResolverTest.java | 6 +- .../data/user/DefaultUserRepositoryTest.java | 7 +- .../user/IdamJurisdictionsResolverTest.java | 2 +- .../ccd/data/user/UserRepositoryTest.java | 2 +- .../hmcts/ccd/data/user/UserServiceTest.java | 4 +- .../aggregated/CaseViewFieldBuilderTest.java | 2 +- .../CompoundFieldOrderServiceTest.java | 2 +- .../domain/model/common/HttpErrorTest.java | 2 +- .../model/definition/AccessTypeTest.java | 2 +- .../model/definition/CaseAccessGroupTest.java | 2 +- .../definition/CaseFieldDefinitionTest.java | 2 +- .../definition/FieldTypeDefinitionTest.java | 2 +- ...leAssignmentsFilteringServiceImplTest.java | 2 +- ...orisedGetCaseHistoryViewOperationTest.java | 2 +- ...sedGetCaseTypeDefinitionOperationTest.java | 6 +- ...edGetCaseTypeDefinitionsOperationTest.java | 6 +- .../AuthorisedGetCaseViewOperationTest.java | 2 +- .../AuthorisedGetCriteriaOperationTest.java | 2 +- ...AuthorisedGetUserProfileOperationTest.java | 4 +- .../CaseSearchResultViewGeneratorTest.java | 2 +- .../CaseSearchesViewAccessControlTest.java | 2 +- .../CaseUpdateViewEventBuilderTest.java | 4 +- .../ClassifiedGetCriteriaOperationTest.java | 2 +- .../DefaultGetBannerOperationTest.java | 5 +- ...efaultGetCaseHistoryViewOperationTest.java | 2 +- ...ultGetCaseTypeDefinitionOperationTest.java | 4 +- ...ltGetCaseTypesOperationTestDefinition.java | 8 +- ...aultGetCaseViewFromDraftOperationTest.java | 5 +- .../DefaultGetCaseViewOperationTest.java | 5 +- .../DefaultGetCriteriaOperationTest.java | 4 +- .../DefaultGetEventTriggerOperationTest.java | 4 +- ...ictionUiConfigDefinitionOperationTest.java | 5 +- .../DefaultGetUserProfileOperationTest.java | 6 +- .../MergeDataToSearchResultOperationTest.java | 5 +- .../aggregated/SearchQueryOperationTest.java | 15 ++- .../callbacks/CallbackServiceTest.java | 2 +- .../CallbackServiceWireMockTest.java | 8 +- .../PseudoRoleAssignmentsGeneratorTest.java | 2 +- .../RoleAssignmentsMapperTest.java | 2 +- .../RoleBasedCaseDataAccessControlTest.java | 6 +- .../CaseLinkMigrationServiceTest.java | 3 - ...sedCaseAssignedUserRolesOperationTest.java | 2 +- ...ultCaseAssignedUserRolesOperationTest.java | 2 +- ...aultCaseAssignedUserRoleValidatorTest.java | 2 +- .../service/common/CaseAccessServiceTest.java | 2 +- .../common/CaseEventEnablingServiceTest.java | 2 +- .../CasePostStateEvaluationServiceTest.java | 2 +- .../common/CasePostStateServiceTest.java | 2 +- .../service/common/CaseServiceTest.java | 2 +- .../service/common/CaseTypeServiceTest.java | 4 +- ...thorisedCaseDefinitionDataServiceTest.java | 2 +- .../DefaultObjectMapperServiceTest.java | 4 +- .../SecurityClassificationServiceTest.java | 2 +- .../common/SecurityValidationServiceTest.java | 32 +++--- .../AuthorisedCreateCaseOperationTest.java | 2 +- .../ClassifiedCreateCaseOperationTest.java | 2 +- .../DefaultCreateCaseOperationTest.java | 22 ++-- ...mitCaseTransactionCaseAccessGroupTest.java | 2 +- .../createcase/SubmitCaseTransactionTest.java | 7 +- .../AuthorisedCreateEventOperationTest.java | 2 +- .../ClassifiedCreateEventOperationTest.java | 2 +- .../CreateCaseEventServiceTest.java | 10 +- .../DefaultCreateEventOperationTest.java | 2 +- .../createevent/MidEventCallbackTest.java | 4 +- .../AuthorisedGetCaseOperationTest.java | 2 +- .../ClassifiedGetCaseOperationTest.java | 2 +- .../getcase/CreatorGetCaseOperationTest.java | 2 +- .../getcase/DefaultGetCaseOperationTest.java | 2 +- .../RestrictedGetCaseOperationTest.java | 2 +- .../CaseDocumentMetadataMapperTest.java | 4 +- .../GetCaseDocumentsOperationTest.java | 2 +- .../DefaultGetDraftsOperationTest.java | 4 +- .../AuthorisedGetEventsOperationTest.java | 8 +- .../ClassifiedGetEventsOperationTest.java | 8 +- .../DefaultGetEventsOperationTest.java | 2 +- .../lau/AuditCaseRemoteOperationIT.java | 2 +- .../lau/AuditCaseRemoteOperationTest.java | 2 +- .../message/CaseEventMessageServiceTest.java | 2 +- .../AdditionalDataContextTest.java | 2 +- .../DataBlockGeneratorTest.java | 2 +- .../processor/DateTimeEntryProcessorTest.java | 24 ++-- .../processor/FieldProcessorServiceTest.java | 2 +- .../date/DateTimeFormatParserTest.java | 4 +- .../DateTimeSearchInputProcessorTest.java | 4 +- .../DateTimeSearchResultProcessorTest.java | 6 +- .../date/DateTimeValueFormatterTest.java | 4 +- .../search/AuthorisedSearchOperationTest.java | 2 +- .../search/ClassifiedSearchOperationTest.java | 2 +- .../search/DefaultSearchOperationTest.java | 2 +- .../PaginatedSearchMetaDataOperationTest.java | 4 +- .../SearchResultDefinitionServiceTest.java | 4 +- .../elasticsearch/CaseSearchRequestTest.java | 2 +- .../ElasticsearchSortServiceTest.java | 4 +- .../BasicGrantTypeESQueryBuilderTest.java | 2 +- ...ChallengedGrantTypeESQueryBuilderTest.java | 2 +- .../ExcludedGrantTypeESQueryBuilderTest.java | 2 +- .../SpecificGrantTypeESQueryBuilderTest.java | 2 +- .../StandardGrantTypeESQueryBuilderTest.java | 2 +- .../AuthorisedCaseSearchOperationTest.java | 18 +-- .../ClassifiedCaseSearchOperationTest.java | 2 +- ...searchCaseSearchRequestSecurityRATest.java | 2 +- ...icsearchCaseSearchRequestSecurityTest.java | 2 +- .../ElasticsearchCaseStateFilterTest.java | 4 +- ...earchSecurityClassificationFilterTest.java | 4 +- ...ElasticsearchUserCaseAccessFilterTest.java | 6 +- .../AuthorisedStartEventOperationTest.java | 2 +- .../ClassifiedStartEventOperationTest.java | 2 +- .../DefaultStartEventOperationTest.java | 2 +- .../service/stdapi/CallbackInvokerTest.java | 4 +- ...dSupplementaryDataUpdateOperationTest.java | 2 +- ...tSupplementaryDataUpdateOperationTest.java | 2 +- .../DefaultUpsertDraftOperationTest.java | 4 +- .../validate/CaseDataIssueLoggerTest.java | 2 +- ...efaultValidateCaseFieldsOperationTest.java | 4 +- .../types/BaseLocationValidatorTest.java | 2 +- .../hmcts/ccd/domain/types/BaseTypeTest.java | 2 +- .../domain/types/CaseDataValidatorTest.java | 2 +- .../domain/types/CollectionValidatorTest.java | 2 +- .../types/CustomNumberValidatorTest.java | 2 +- .../domain/types/DateTimeValidatorTest.java | 2 +- .../ccd/domain/types/DateValidatorTest.java | 2 +- .../types/DynamicListValidatorTest.java | 2 +- .../DynamicMultiSelectListValidatorTest.java | 2 +- .../types/DynamicRadioListValidatorTest.java | 2 +- .../ccd/domain/types/EmailValidatorTest.java | 2 +- .../domain/types/FixedListValidatorTest.java | 2 +- .../types/FixedRadioListValidatorTest.java | 2 +- .../domain/types/MoneyGBPValidatorTest.java | 2 +- .../types/MultiSelectListValidatorTest.java | 2 +- .../ccd/domain/types/NumberValidatorTest.java | 2 +- ...rgPolicyCaseAssignedRoleValidatorTest.java | 2 +- .../domain/types/PhoneUKValidatorTest.java | 2 +- .../domain/types/PostCodeValidatorTest.java | 2 +- .../ccd/domain/types/RegionValidatorTest.java | 2 +- .../domain/types/TextAreaValidatorTest.java | 2 +- ...extCaseReferenceCaseLinkValidatorTest.java | 2 +- .../ccd/domain/types/TextValidatorTest.java | 2 +- .../ccd/domain/types/YesNoValidatorTest.java | 2 +- .../types/sanitiser/CaseSanitiserTest.java | 2 +- .../sanitiser/CollectionSanitiserTest.java | 2 +- .../types/sanitiser/ComplexSanitiserTest.java | 2 +- .../sanitiser/DocumentSanitiserTest.java | 2 +- .../DocumentManagementRestClientTest.java | 2 +- .../exceptions/RestExceptionHandlerTest.java | 2 +- .../ccd/endpoint/std/CallbackEndpointIT.java | 2 +- .../hmcts/ccd/endpoint/std/CallbackTest.java | 4 +- .../endpoint/std/CaseDetailsEndpointIT.java | 24 ++-- .../endpoint/std/CaseDetailsEndpointTest.java | 2 +- .../ccd/endpoint/std/DraftsEndpointTest.java | 2 +- .../ccd/endpoint/std/EventsEndpointTest.java | 2 +- .../hmcts/ccd/endpoint/ui/CallbackTest.java | 3 +- .../ccd/endpoint/ui/QueryEndpointTest.java | 2 +- .../UserAuthorisationConfigurationTest.java | 2 +- .../uk/gov/hmcts/ccd/integrations/IdamIT.java | 18 +-- .../ccd/integrations/ServiceToServiceIT.java | 6 +- .../JwtGrantedAuthoritiesConverterTest.java | 2 +- .../ccd/security/idam/IdamRepositoryTest.java | 2 +- .../ccd/swagger/SwaggerGeneratorTest.java | 6 +- ...BaseCaseAssignedUserRolesControllerIT.java | 2 +- .../CaseAssignedUserRolesControllerTest.java | 2 +- .../controller/CaseControllerDCPIT.java | 4 +- .../controller/CaseControllerTest.java | 5 +- .../CaseDataValidatorControllerDCPIT.java | 4 +- .../CaseDataValidatorControllerTest.java | 2 +- .../controller/CaseDocumentControllerIT.java | 6 +- .../CaseDocumentControllerTest.java | 2 +- .../controller/CaseUserControllerIT.java | 2 +- .../controller/CaseUserControllerTest.java | 2 +- .../controller/DocumentControllerTest.java | 2 +- .../controller/StartEventControllerTest.java | 2 +- .../CaseAssignedUserRolesResourceTest.java | 2 +- .../external/resource/CaseResourceTest.java | 12 +- .../SupplementaryDataResourceTest.java | 2 +- .../controller/UICaseControllerDCPIT.java | 4 +- .../controller/UICaseControllerTest.java | 2 +- .../UICaseSearchControllerTest.java | 2 +- .../controller/UIDefinitionControllerIT.java | 2 +- .../UIDefinitionControllerTest.java | 2 +- .../controller/UIDraftsControllerTest.java | 2 +- .../UIStartEventControllerTest.java | 2 +- .../UIStartTriggerControllerDCPIT.java | 4 +- .../UIUserProfileControllerTest.java | 2 +- .../resource/BannerViewResourceTest.java | 5 +- .../resource/CaseHistoryViewResourceTest.java | 2 +- .../resource/CaseViewResourceTest.java | 2 +- .../resource/DraftViewResourceTest.java | 2 +- .../JurisdictionConfigViewResourceTest.java | 5 +- .../resource/UserProfileViewResourceTest.java | 2 +- 252 files changed, 599 insertions(+), 508 deletions(-) diff --git a/build.gradle b/build.gradle index 7bf4f9850e..ed5a523506 100644 --- a/build.gradle +++ b/build.gradle @@ -216,6 +216,7 @@ dependencies { exclude group: 'org.apache.logging.log4j', module: 'log4j-api' } implementation group: 'org.flywaydb', name: 'flyway-core', version: '8.5.13' + implementation group: 'org.hibernate.orm', name: 'hibernate-core', version: '6.0.2.Final' implementation group: 'org.jooq', name: 'jool-java-8', version: '0.9.14' implementation group: 'org.mapstruct', name: 'mapstruct-jdk8', version: '1.3.1.Final' implementation group: 'org.yaml', name: 'snakeyaml', version: '2.2' @@ -235,27 +236,26 @@ dependencies { } testImplementation group: 'org.json', name: 'json', version: '20211205' - testImplementation "org.flywaydb:flyway-core:8.5.13" - testImplementation('org.springframework.boot:spring-boot-starter-test') - testImplementation('org.springframework.cloud:spring-cloud-starter-contract-stub-runner:4.1.4') - testImplementation ('com.opentable.components:otj-pg-embedded:0.12.0') + testImplementation group: 'org.flywaydb', name: 'flyway-core', version: '8.5.13' + testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: '3.0.13' + testImplementation group: 'org.springframework.cloud', name: 'spring-cloud-contract-wiremock', version: '4.1.4' + testImplementation group: 'org.springframework.cloud', name: 'spring-cloud-starter-contract-stub-runner', version: '4.1.4' + testImplementation group: 'com.opentable.components', name: 'otj-pg-embedded', version: '0.12.0' testImplementation group: 'org.assertj', name: 'assertj-core', version: '3.22.0' testImplementation group: 'org.assertj', name: 'assertj-vavr', version: '0.4.2' - testImplementation("org.testcontainers:postgresql:1.17.6") - testImplementation ('org.springframework.cloud:spring-cloud-contract-wiremock:4.1.4') + testImplementation group: 'org.testcontainers', name: 'postgresql', version: '1.17.6' // To avoid compiler warnings about @API annotations in JUnit5 code. testImplementation 'org.apiguardian:apiguardian-api:1.0.0' - testImplementation "org.junit.jupiter:junit-jupiter-api:${junitJupiterVersion}" - testImplementation "org.junit.jupiter:junit-jupiter-engine:${junitJupiterVersion}" - testRuntimeOnly "org.junit.vintage:junit-vintage-engine:${junitVintageVersion}" - testRuntimeOnly "org.junit.platform:junit-platform-commons:1.8.1" + testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: junitJupiterVersion + testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: junitJupiterVersion + testRuntimeOnly group: 'org.junit.vintage', name: 'junit-vintage-engine', version: junitVintageVersion testImplementation group: 'org.mockito', name: 'mockito-core', version: '3.6.0' - testImplementation group:'org.mockito', name: 'mockito-junit-jupiter', version:'3.6.0' + testImplementation group: 'org.mockito', name: 'mockito-junit-jupiter', version:'3.6.0' testImplementation group: 'org.powermock', name: 'powermock-api-mockito2', version: powermockVersion testImplementation group: 'org.powermock', name: 'powermock-module-junit4', version: powermockVersion testImplementation group: 'io.rest-assured', name: 'rest-assured', version: '5.5.0' testImplementation group: 'com.xebialabs.restito', name: 'restito', version: '0.9.3' - testImplementation 'io.github.openfeign:feign-jackson:9.7.0' + testImplementation group: 'io.github.openfeign', name: 'feign-jackson', version: '9.7.0' testImplementation group: 'org.testcontainers', name: 'elasticsearch', version: '1.19.3' testImplementation group: 'org.testcontainers', name: 'junit-jupiter', version: '1.19.3' testImplementation group: 'commons-lang', name: 'commons-lang', version: '2.6' diff --git a/src/contractTest/java/uk/gov/hmcts/ccd/WireMockBaseContractTest.java b/src/contractTest/java/uk/gov/hmcts/ccd/WireMockBaseContractTest.java index ce83264012..5b890af954 100644 --- a/src/contractTest/java/uk/gov/hmcts/ccd/WireMockBaseContractTest.java +++ b/src/contractTest/java/uk/gov/hmcts/ccd/WireMockBaseContractTest.java @@ -24,7 +24,7 @@ @AutoConfigureWireMock(port = 0) public abstract class WireMockBaseContractTest { - private static final Logger LOG = LoggerFactory.getLogger(WireMockBaseTest.class); + private static final Logger LOG = LoggerFactory.getLogger(WireMockBaseContractTest.class); @Value("${wiremock.server.port}") protected Integer wiremockPort; diff --git a/src/main/java/uk/gov/hmcts/ccd/SecurityConfiguration.java b/src/main/java/uk/gov/hmcts/ccd/SecurityConfiguration.java index 6214075ead..3c32546a82 100644 --- a/src/main/java/uk/gov/hmcts/ccd/SecurityConfiguration.java +++ b/src/main/java/uk/gov/hmcts/ccd/SecurityConfiguration.java @@ -50,6 +50,7 @@ public class SecurityConfiguration { private JwtAuthenticationConverter jwtAuthenticationConverter; private static final String[] AUTH_WHITELIST = { + "/v3/api-docs", "/v2/**", "/health/liveness", "/health/readiness", diff --git a/src/main/java/uk/gov/hmcts/ccd/config/SwaggerConfiguration.java b/src/main/java/uk/gov/hmcts/ccd/config/SwaggerConfiguration.java index d1a87d07e9..e3b1042a61 100644 --- a/src/main/java/uk/gov/hmcts/ccd/config/SwaggerConfiguration.java +++ b/src/main/java/uk/gov/hmcts/ccd/config/SwaggerConfiguration.java @@ -1,5 +1,6 @@ package uk.gov.hmcts.ccd.config; +import org.apache.commons.lang3.StringUtils; import org.springdoc.core.models.GroupedOpenApi; import org.springframework.boot.actuate.autoconfigure.endpoint.web.CorsEndpointProperties; import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties; @@ -16,7 +17,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.env.Environment; -import org.springframework.util.StringUtils; import uk.gov.hmcts.ccd.endpoint.std.CaseDetailsEndpoint; import uk.gov.hmcts.ccd.endpoint.ui.QueryEndpoint; @@ -84,7 +84,7 @@ public WebMvcEndpointHandlerMapping webEndpointServletHandlerMapping(WebEndpoint private boolean shouldRegisterLinksMapping(WebEndpointProperties webEndpointProperties, Environment environment, String basePath) { - return webEndpointProperties.getDiscovery().isEnabled() && (StringUtils.hasText(basePath) + return webEndpointProperties.getDiscovery().isEnabled() && (StringUtils.isNotBlank(basePath) || ManagementPortType.get(environment).equals(ManagementPortType.DIFFERENT)); } } diff --git a/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/DefaultCaseRoleRepository.java b/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/DefaultCaseRoleRepository.java index 1c8e1821d0..c7cfbca268 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/DefaultCaseRoleRepository.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/DefaultCaseRoleRepository.java @@ -17,13 +17,8 @@ import uk.gov.hmcts.ccd.data.SecurityUtils; import uk.gov.hmcts.ccd.domain.model.definition.CaseRoleDefinition; -import java.util.Arrays; -import java.util.Set; -import java.util.stream.Collectors; import jakarta.inject.Inject; -import static org.springframework.http.HttpMethod.GET; - @Service @Qualifier(DefaultCaseRoleRepository.QUALIFIER) public class DefaultCaseRoleRepository implements CaseRoleRepository { diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedataaccesscontrol/DefaultRoleAssignmentRepository.java b/src/main/java/uk/gov/hmcts/ccd/data/casedataaccesscontrol/DefaultRoleAssignmentRepository.java index 22e8271072..a278443bc6 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedataaccesscontrol/DefaultRoleAssignmentRepository.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedataaccesscontrol/DefaultRoleAssignmentRepository.java @@ -123,7 +123,7 @@ public RoleAssignmentResponse getRoleAssignments(String userId) { } catch (Exception e) { log.warn("Error while retrieving Role Assignments", e); if (e instanceof HttpClientErrorException - && ((HttpClientErrorException) e).getRawStatusCode() == HttpStatus.NOT_FOUND.value()) { + && ((HttpClientErrorException) e).getStatusCode().value() == HttpStatus.NOT_FOUND.value()) { throw new ResourceNotFoundException(String.format(ROLE_ASSIGNMENTS_NOT_FOUND, userId, e.getMessage())); } else { @@ -255,7 +255,7 @@ private RoleAssignmentResponse findRoleAssignmentsByCasesAndUsers(RoleAssignment private RuntimeException mapException(Exception exception, ResourceNotFoundException resourceNotFoundException) { if (exception instanceof HttpClientErrorException - && ((HttpClientErrorException) exception).getRawStatusCode() == HttpStatus.NOT_FOUND.value()) { + && ((HttpClientErrorException) exception).getStatusCode().value() == HttpStatus.NOT_FOUND.value()) { return resourceNotFoundException; } else { return mapException(exception, "getting"); @@ -265,7 +265,7 @@ private RuntimeException mapException(Exception exception, ResourceNotFoundExcep private RuntimeException mapException(Exception exception, String processDescription) { if (exception instanceof HttpClientErrorException - && HttpStatus.valueOf(((HttpClientErrorException) exception).getRawStatusCode()).is4xxClientError()) { + && HttpStatus.valueOf(((HttpClientErrorException) exception).getStatusCode().value()).is4xxClientError()) { return new BadRequestException( String.format(ROLE_ASSIGNMENTS_CLIENT_ERROR, processDescription, exception.getMessage())); } else { diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/FindSupplementaryDataQueryBuilder.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/FindSupplementaryDataQueryBuilder.java index 3fb120e0f7..466e80985a 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/FindSupplementaryDataQueryBuilder.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/FindSupplementaryDataQueryBuilder.java @@ -21,7 +21,7 @@ public Query build(EntityManager entityManager, Query selectQuery = entityManager.createNativeQuery(SUPPLEMENTARY_DATA_QUERY); selectQuery.setParameter("reference", caseReference); selectQuery.unwrap(org.hibernate.query.NativeQuery.class) - .addScalar("supplementary_data", new SupplementaryDataUserType().getBasicTypeReference()); + .addScalar("supplementary_data", SupplementaryDataUserType.CUSTOM_TYPE); return selectQuery; } diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/IncrementSupplementaryDataQueryBuilder.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/IncrementSupplementaryDataQueryBuilder.java index 1e12490f55..b94cbd0621 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/IncrementSupplementaryDataQueryBuilder.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/IncrementSupplementaryDataQueryBuilder.java @@ -1,6 +1,5 @@ package uk.gov.hmcts.ccd.data.casedetails.supplementarydata; -import java.util.Arrays; import java.util.regex.Pattern; import jakarta.persistence.EntityManager; import jakarta.persistence.Query; @@ -17,11 +16,11 @@ public class IncrementSupplementaryDataQueryBuilder implements SupplementaryData + " THEN COALESCE(supplementary_data, '{}') || :json_value\\:\\:jsonb" + " WHEN jsonb_extract_path_text(COALESCE(supplementary_data, '{}'), :parent_path) IS NULL AND :value > 0" + " THEN jsonb_insert(COALESCE(supplementary_data, '{}'), :parent_key, :json_value_insert\\:\\:jsonb)" - + " WHEN jsonb_extract_path_text(COALESCE(supplementary_data, '{}'), :node_path) IS NULL " + + " WHEN jsonb_extract_path_text(COALESCE(supplementary_data, '{}'), VARIADIC :node_path) IS NULL " + " THEN jsonb_set(COALESCE(supplementary_data, '{}'), :leaf_node_key, :value\\:\\:TEXT\\:\\:jsonb)" - + " WHEN jsonb_extract_path_text(COALESCE(supplementary_data, '{}'), :node_path) IS NOT NULL " + + " WHEN jsonb_extract_path_text(COALESCE(supplementary_data, '{}'), VARIADIC :node_path) IS NOT NULL " + " THEN jsonb_set(COALESCE(supplementary_data, '{}'), :leaf_node_key," - + " (jsonb_extract_path_text(supplementary_data, :node_path)\\:\\:INT + :value) \\:\\:TEXT\\:\\:jsonb, false)" + + " (jsonb_extract_path_text(supplementary_data, VARIADIC :node_path)\\:\\:INT + :value) \\:\\:TEXT\\:\\:jsonb, false)" + " END) " + "WHERE reference = :reference"; @@ -37,10 +36,9 @@ public Query build(EntityManager entityManager, query.setParameter("json_value", jsonValue); String parentKeyJsonValue = requestedDataJsonForPath(fieldPath, fieldValue, parentKey); query.setParameter("json_value_insert", parentKeyJsonValue); - query.setParameter("node_path", Arrays.asList(fieldPath.split(Pattern.quote(".")))); + query.setParameter("node_path", fieldPath.split(Pattern.quote("."))); query.setParameter("parent_key", "{" + parentKey + "}"); - query.setParameter("parent_path", Arrays.asList(parentKey)); - + query.setParameter("parent_path", parentKey); return query; } diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SetSupplementaryDataQueryBuilder.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SetSupplementaryDataQueryBuilder.java index 7882e2e2fd..4c50825b1e 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SetSupplementaryDataQueryBuilder.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SetSupplementaryDataQueryBuilder.java @@ -1,6 +1,5 @@ package uk.gov.hmcts.ccd.data.casedetails.supplementarydata; -import java.util.Arrays; import java.util.regex.Pattern; import jakarta.persistence.EntityManager; import jakarta.persistence.Query; @@ -45,7 +44,7 @@ public Query build(EntityManager entityManager, query.setParameter("json_value", jsonValue); String parentKeyJsonValue = requestedDataJsonForPath(fieldPath, fieldValue, parentKey); query.setParameter("json_value_insert", parentKeyJsonValue); - query.setParameter("parent_path", Arrays.asList(parentKey)); + query.setParameter("parent_path", parentKey); query.setParameter("parent_key", "{" + parentKey + "}"); return query; } diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataQueryBuilder.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataQueryBuilder.java index effcfb8c8f..a33acb6061 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataQueryBuilder.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataQueryBuilder.java @@ -32,7 +32,7 @@ default void setCommonProperties(Query query, query.setParameter("value", fieldValue); query.setParameter("reference", caseReference); query.unwrap(NativeQuery.class) - .addScalar("supplementary_data", new SupplementaryDataUserType().getBasicTypeReference()); + .addScalar("supplementary_data", SupplementaryDataUserType.CUSTOM_TYPE); } default String requestedDataToJson(String fieldPath, Object fieldValue) { diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserType.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserType.java index 04d63a3bcf..d03dd28f8b 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserType.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserType.java @@ -1,26 +1,103 @@ package uk.gov.hmcts.ccd.data.casedetails.supplementarydata; -import com.vladmihalcea.hibernate.type.json.JsonNodeBinaryType; -import org.hibernate.type.BasicTypeReference; +import java.io.Serializable; +import java.io.StringWriter; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import org.hibernate.HibernateException; +import org.hibernate.engine.spi.SharedSessionContractImplementor; +import org.hibernate.type.CustomType; import org.hibernate.type.SqlTypes; +import org.hibernate.type.spi.TypeConfiguration; +import org.hibernate.usertype.UserType; + import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class SupplementaryDataUserType implements UserType { + + private final ObjectMapper mapper = new ObjectMapper(); + + public static CustomType CUSTOM_TYPE = new CustomType( + new SupplementaryDataUserType(), new TypeConfiguration() + ); + + @Override + public int getSqlType() { + return SqlTypes.JSON; + } + + @Override + public Class returnedClass() { + return JsonNode.class; + } + + @Override + public boolean equals(JsonNode x, JsonNode y) throws HibernateException { + return x.equals(y); + } -public class SupplementaryDataUserType { + @Override + public int hashCode(JsonNode x) throws HibernateException { + assert (x != null); + return x.hashCode(); + } + + @Override + public JsonNode nullSafeGet(ResultSet rs, int position, SharedSessionContractImplementor session, Object owner) + throws SQLException { + final String cellContent = rs.getString(position); + if (cellContent == null) { + return null; + } + try { + return mapper.readValue(cellContent.getBytes("UTF-8"), returnedClass()); + } catch (final Exception ex) { + throw new RuntimeException("Failed to convert String to MyJson: " + ex.getMessage(), ex); + } + } + + @Override + public void nullSafeSet(PreparedStatement st, JsonNode value, int index, SharedSessionContractImplementor session) + throws SQLException { + if (value == null) { + st.setNull(index, SqlTypes.JSON); + return; + } + try { + final StringWriter w = new StringWriter(); + mapper.writeValue(w, value); + w.flush(); + st.setObject(index, w.toString(), SqlTypes.JSON); + } catch (final Exception ex) { + throw new RuntimeException("Failed to convert MyJson to String: " + ex.getMessage(), ex); + } + } - private static JsonNodeBinaryType type = new JsonNodeBinaryType(); - private BasicTypeReference ref; + @Override + public JsonNode deepCopy(JsonNode value) { + return value.deepCopy(); + } + + @Override + public boolean isMutable() { + return true; + } + + @Override + public Serializable disassemble(JsonNode value) { + return (Serializable) value; + } - public SupplementaryDataUserType() { - ref = new BasicTypeReference( - type.getName(), - JsonNode.class, - SqlTypes.OTHER, - type.getValueConverter() - ); + @Override + public JsonNode assemble(Serializable cached, Object owner) { + return (JsonNode) cached; } - public BasicTypeReference getBasicTypeReference() { - return ref; + @Override + public JsonNode replace(JsonNode detached, JsonNode managed, Object owner) { + return detached; } } \ No newline at end of file diff --git a/src/main/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepository.java b/src/main/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepository.java index 63d667c333..bbae2b5f93 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepository.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepository.java @@ -63,7 +63,7 @@ public List getCaseTypesForJurisdiction(final String jurisdi } catch (Exception e) { LOG.warn("Error while retrieving base type", e); if (e instanceof HttpClientErrorException - && ((HttpClientErrorException) e).getRawStatusCode() == RESOURCE_NOT_FOUND) { + && ((HttpClientErrorException) e).getStatusCode().value() == RESOURCE_NOT_FOUND) { throw new ResourceNotFoundException("Resource not found when getting case types for Jurisdiction:" + jurisdictionId + " because of " + e.getMessage()); } else { @@ -95,7 +95,7 @@ public CaseTypeDefinition getCaseType(final String caseTypeId) { } catch (Exception e) { LOG.warn("Error while retrieving case type", e); if (e instanceof HttpClientErrorException - && ((HttpClientErrorException) e).getRawStatusCode() == RESOURCE_NOT_FOUND) { + && ((HttpClientErrorException) e).getStatusCode().value() == RESOURCE_NOT_FOUND) { throw new ResourceNotFoundException("Resource not found when getting case type definition for " + caseTypeId + " because of " + e.getMessage()); } else { @@ -114,7 +114,7 @@ public List getBaseTypes() { } catch (Exception e) { LOG.warn("Error while retrieving base types", e); if (e instanceof HttpClientErrorException - && ((HttpClientErrorException) e).getRawStatusCode() == RESOURCE_NOT_FOUND) { + && ((HttpClientErrorException) e).getStatusCode().value() == RESOURCE_NOT_FOUND) { throw new ResourceNotFoundException( "Problem getting base types definition from definition store because of " + e.getMessage()); } else { @@ -134,7 +134,7 @@ public UserRole getUserRoleClassifications(String userRole) { UserRole.class, queryParams).getBody(); } catch (Exception e) { if (e instanceof HttpClientErrorException - && ((HttpClientErrorException) e).getRawStatusCode() == RESOURCE_NOT_FOUND) { + && ((HttpClientErrorException) e).getStatusCode().value() == RESOURCE_NOT_FOUND) { LOG.debug("No classification found for user role {} because of ", userRole, e); return null; } else { @@ -181,7 +181,7 @@ public CaseTypeDefinitionVersion getLatestVersionFromDefinitionStore(String case } catch (Exception e) { LOG.warn("Error while retrieving case type version", e); if (e instanceof HttpClientErrorException - && ((HttpClientErrorException) e).getRawStatusCode() == RESOURCE_NOT_FOUND) { + && ((HttpClientErrorException) e).getStatusCode().value() == RESOURCE_NOT_FOUND) { throw new ResourceNotFoundException( "Error when getting case type version. Unknown case type '" + caseTypeId + "'.", e); } else { @@ -252,7 +252,7 @@ private List getJurisdictionsFromDefinitionStore(Optiona } catch (Exception e) { LOG.warn("Error while retrieving jurisdictions definition", e); if (e instanceof HttpClientErrorException - && ((HttpClientErrorException) e).getRawStatusCode() == RESOURCE_NOT_FOUND) { + && ((HttpClientErrorException) e).getStatusCode().value() == RESOURCE_NOT_FOUND) { LOG.warn("Jurisdiction object(s) configured for user couldn't be found on definition store: {}.", jurisdictionIds.orElse(Collections.emptyList())); return new ArrayList<>(); diff --git a/src/main/java/uk/gov/hmcts/ccd/data/draft/DefaultDraftGateway.java b/src/main/java/uk/gov/hmcts/ccd/data/draft/DefaultDraftGateway.java index 29f973026d..1fbc0e8490 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/draft/DefaultDraftGateway.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/draft/DefaultDraftGateway.java @@ -97,7 +97,7 @@ public DraftResponse update(final UpdateCaseDraftRequest draft, final String dra HttpMethod.PUT, requestEntity, HttpEntity.class); } catch (HttpClientErrorException e) { LOG.warn("Error while updating draftId={}", draftId, e); - if (e.getRawStatusCode() == RESOURCE_NOT_FOUND) { + if (e.getStatusCode().value() == RESOURCE_NOT_FOUND) { throw new ResourceNotFoundException(String.format(RESOURCE_NOT_FOUND_MSG, draftId)); } throw new ApiException(DRAFT_STORE_DOWN_ERR_MESSAGE, e); @@ -122,7 +122,7 @@ public DraftResponse get(final String draftId) { applicationParams.draftURL(draftId), HttpMethod.GET, requestEntity, Draft.class).getBody(); } catch (HttpClientErrorException e) { LOG.warn("Error while getting draftId={}", draftId, e); - if (e.getRawStatusCode() == RESOURCE_NOT_FOUND) { + if (e.getStatusCode().value() == RESOURCE_NOT_FOUND) { throw new ResourceNotFoundException(String.format(RESOURCE_NOT_FOUND_MSG, draftId)); } throw new ApiException(DRAFT_STORE_DOWN_ERR_MESSAGE, e); @@ -150,7 +150,7 @@ public void delete(final String draftId) { requestEntity, Draft.class); } catch (HttpClientErrorException e) { LOG.warn("Error while deleting draftId=" + draftId, e); - if (e.getRawStatusCode() == RESOURCE_NOT_FOUND) { + if (e.getStatusCode().value() == RESOURCE_NOT_FOUND) { throw new ResourceNotFoundException(String.format(RESOURCE_NOT_FOUND_MSG, draftId)); } throw new ApiException(DRAFT_STORE_DOWN_ERR_MESSAGE, e); diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/callbacks/CallbackResponse.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/callbacks/CallbackResponse.java index 2cbdb75eaf..ffe0889e4c 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/callbacks/CallbackResponse.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/callbacks/CallbackResponse.java @@ -20,7 +20,9 @@ public class CallbackResponse { private static final String CALLBACK_RESPONSE_KEY_STATE = "state"; - @Schema(description = "Case data as defined in case type definition. See `docs/api/case-data.md` for data structure.") + @Schema( + description = "Case data as defined in case type definition. See `docs/api/case-data.md` for data structure." + ) private Map data; @JsonProperty("data_classification") @Schema(description = "Same structure as `data` with classification (`PUBLIC`, `PRIVATE`, `RESTRICTED`) " diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseDetails.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseDetails.java index a50c80830a..a93745cdd3 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseDetails.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/definition/CaseDetails.java @@ -72,7 +72,9 @@ public class CaseDetails implements Cloneable { private SecurityClassification securityClassification; @JsonProperty("case_data") - @Schema(description = "Case data as defined in case type definition. See `docs/api/case-data.md` for data structure.") + @Schema( + description = "Case data as defined in case type definition. See `docs/api/case-data.md` for data structure." + ) private Map data; @JsonProperty("data_classification") @@ -283,12 +285,12 @@ public CaseDetails shallowClone() throws CloneNotSupportedException { @JsonIgnore public void setDeleteDraftResponseEntity(final String draftId, final ResponseEntity draftResponse) { - if (SC_OK == draftResponse.getStatusCodeValue()) { + if (SC_OK == draftResponse.getStatusCode().value()) { setDeleteDraftResponseEntity(); } else { LOG.warn("Incomplete delete draft response for draft={}, statusCode={}", draftId, - draftResponse.getStatusCodeValue()); + draftResponse.getStatusCode().value()); setIncompleteDeleteDraftResponse(); } } @@ -302,13 +304,13 @@ private void setDeleteDraftResponseEntity() { @SuppressWarnings("java:S2259") public void setAfterSubmitCallbackResponseEntity(final ResponseEntity callBackResponse) { - if (SC_OK == callBackResponse.getStatusCodeValue()) { + if (SC_OK == callBackResponse.getStatusCode().value()) { setAfterSubmitCallbackResponseEntity(callBackResponse.getBody()); } else { LOG.warn("Incomplete call back response for case {} (db id={}); status code {}, body {}", reference, id, - callBackResponse.getStatusCodeValue(), + callBackResponse.getStatusCode().value(), callBackResponse.getBody().toJson()); setIncompleteCallbackResponse(); } diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/AuditEvent.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/AuditEvent.java index 9c1073bf85..444e1287e4 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/AuditEvent.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/AuditEvent.java @@ -42,7 +42,10 @@ public class AuditEvent extends Event { @JsonProperty("state_name") private String stateName; @JsonProperty("data") - @Schema(description = "Case data as defined in case type definition. See `docs/api/case-data.md` for data structure.") + @Schema( + description = "Case data as defined in case type definition. " + + "See `docs/api/case-data.md` for data structure." + ) private Map data; @JsonProperty("data_classification") @Schema(description = "Same structure as `data` with classification (`PUBLIC`, `PRIVATE`, `RESTRICTED`) " diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/MessageInformation.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/MessageInformation.java index 84e95a3bef..d5ad23ba64 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/std/MessageInformation.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/std/MessageInformation.java @@ -30,8 +30,10 @@ public class MessageInformation { @JsonProperty("NewStateId") private String newStateId; @JsonProperty("AdditionalData") - @Schema(description = "A JSON object (for future use) that contains additional case fields that have been configured " - + "to be included in the event information that is published.") + @Schema( + description = "A JSON object (for future use) that contains additional case fields that have been configured " + + "to be included in the event information that is published." + ) private AdditionalMessageInformation data; public Long getId() { diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackService.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackService.java index 43cdc7e64b..b63b443e9a 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackService.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackService.java @@ -145,14 +145,14 @@ private Optional> sendRequest(final String url, if (logCallbackDetails(url)) { LOG.info("Callback {} response received: {}", url, responseEntity); } - httpStatus = responseEntity.getStatusCodeValue(); + httpStatus = responseEntity.getStatusCode().value(); return Optional.of(responseEntity); } catch (RestClientException e) { LOG.warn("Unable to connect to callback service {} because of {} {}", url, e.getClass().getSimpleName(), e.getMessage()); LOG.debug("", e); // debug stack trace if (e instanceof HttpStatusCodeException) { - httpStatus = ((HttpStatusCodeException) e).getRawStatusCode(); + httpStatus = ((HttpStatusCodeException) e).getStatusCode().value(); } return Optional.empty(); } finally { diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/common/SecurityClassificationUtils.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/common/SecurityClassificationUtils.java index e179f12d96..5a6d98569d 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/common/SecurityClassificationUtils.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/common/SecurityClassificationUtils.java @@ -2,9 +2,10 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.JsonNodeFactory; + +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.util.StringUtils; import uk.gov.hmcts.ccd.data.casedetails.SecurityClassification; import uk.gov.hmcts.ccd.domain.model.definition.CaseDetails; diff --git a/src/main/java/uk/gov/hmcts/ccd/endpoint/exceptions/RestExceptionHandler.java b/src/main/java/uk/gov/hmcts/ccd/endpoint/exceptions/RestExceptionHandler.java index e41758c339..d0976a488b 100644 --- a/src/main/java/uk/gov/hmcts/ccd/endpoint/exceptions/RestExceptionHandler.java +++ b/src/main/java/uk/gov/hmcts/ccd/endpoint/exceptions/RestExceptionHandler.java @@ -172,7 +172,7 @@ private HttpStatus getHttpStatus(final Throwable causeOfException) { private HttpStatus checkAndRetrieveExceptionStatusCode(final Throwable causeOfException) { HttpStatus httpStatus = null; if (causeOfException instanceof HttpStatusCodeException) { - httpStatus = HttpStatus.valueOf(((HttpStatusCodeException) causeOfException).getRawStatusCode()); + httpStatus = HttpStatus.valueOf(((HttpStatusCodeException) causeOfException).getStatusCode().value()); } else if (causeOfException instanceof FeignException.FeignClientException || causeOfException instanceof FeignException.FeignServerException) { httpStatus = HttpStatus.valueOf(((FeignException) causeOfException).status()); diff --git a/src/main/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpoint.java b/src/main/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpoint.java index 2c447cdaea..2bfdd2b10a 100644 --- a/src/main/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpoint.java +++ b/src/main/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpoint.java @@ -161,8 +161,10 @@ public CaseDetails findCaseDetailsForCitizen( @GetMapping( value = "/caseworkers/{uid}/jurisdictions/{jid}/case-types/{ctid}/cases/{cid}/event-triggers/{etid}/token") - @Operation(summary = "Start event creation as Case worker", - description = "Start the event creation process for an existing case. Triggers `AboutToStart` callback.") + @Operation( + summary = "Start event creation as Case worker", + description = "Start the event creation process for an existing case. Triggers `AboutToStart` callback." + ) @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Event creation process started"), @ApiResponse(responseCode = "404", description = "No case found for the given ID"), @@ -186,8 +188,10 @@ public StartEventResult startEventForCaseworker( } @GetMapping(value = "/citizens/{uid}/jurisdictions/{jid}/case-types/{ctid}/cases/{cid}/event-triggers/{etid}/token") - @Operation(summary = "Start event creation as Citizen", description = "Start the event creation process for an existing " - + "case. Triggers `AboutToStart` callback.") + @Operation( + summary = "Start event creation as Citizen", + description = "Start the event creation process for an existing case. Triggers `AboutToStart` callback." + ) @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Event creation process started"), @ApiResponse(responseCode = "404", description = "No case found for the given ID"), @@ -211,8 +215,10 @@ public StartEventResult startEventForCitizen( } @GetMapping(value = "/caseworkers/{uid}/jurisdictions/{jid}/case-types/{ctid}/event-triggers/{etid}/token") - @Operation(summary = "Start case creation as Case worker", description = "Start the case creation process for a new " - + "case. Triggers `AboutToStart` callback.") + @Operation( + summary = "Start case creation as Case worker", + description = "Start the case creation process for a new case. Triggers `AboutToStart` callback." + ) @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Case creation process started"), @ApiResponse(responseCode = "422", description = "Process could not be started") @@ -233,8 +239,10 @@ public StartEventResult startCaseForCaseworker( } @GetMapping(value = "/citizens/{uid}/jurisdictions/{jid}/case-types/{ctid}/event-triggers/{etid}/token") - @Operation(summary = "Start case creation as Citizen", description = "Start the case creation process for a new case. " - + "Triggers `AboutToStart` callback.") + @Operation( + summary = "Start case creation as Citizen", + description = "Start the case creation process for a new case. Triggers `AboutToStart` callback." + ) @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Case creation process started"), @ApiResponse(responseCode = "422", description = "Process could not be started") @@ -258,8 +266,8 @@ public StartEventResult startCaseForCitizen( @ResponseStatus(HttpStatus.CREATED) @Operation( summary = "Submit case creation as Case worker", - description = "Complete the case creation process. This requires a valid event token to be provided, as generated by" - + " `startCaseForCaseworker`." + description = "Complete the case creation process. This requires a valid event token to be provided, " + + "as generated by `startCaseForCaseworker`." ) @ApiResponses(value = { @ApiResponse(responseCode = "201", description = "Case created"), @@ -286,8 +294,8 @@ public CaseDetails saveCaseDetailsForCaseWorker( @ResponseStatus(HttpStatus.CREATED) @Operation( summary = "Submit case creation as Citizen", - description = "Complete the case creation process. This requires a valid event token to be provided, as generated by" - + " `startCaseForCitizen`." + description = "Complete the case creation process. This requires a valid event token to be provided, " + + "as generated by `startCaseForCitizen`." ) @ApiResponses(value = { @ApiResponse(responseCode = "201", description = "Case created"), @@ -345,8 +353,8 @@ public JsonNode validateCaseDetails( @ResponseStatus(HttpStatus.CREATED) @Operation( summary = "Submit event creation as Case worker", - description = "Complete the event creation process. This requires a valid event token to be provided, as generated by" - + " `startEventForCaseworker`." + description = "Complete the event creation process. This requires a valid event token to be provided, " + + "as generated by `startEventForCaseworker`." ) @ApiResponses(value = { @ApiResponse(responseCode = "201", description = "Case event created"), @@ -373,8 +381,8 @@ public CaseDetails createCaseEventForCaseWorker( @ResponseStatus(HttpStatus.CREATED) @Operation( summary = "Submit event creation as Citizen", - description = "Complete the event creation process. This requires a valid event token to be provided, as generated by" - + " `startEventForCitizen`." + description = "Complete the event creation process. This requires a valid event token to be provided, " + + "as generated by `startEventForCitizen`." ) @ApiResponses(value = { @ApiResponse(responseCode = "201", description = "Case event created"), diff --git a/src/main/java/uk/gov/hmcts/ccd/endpoint/std/CaseSearchEndpoint.java b/src/main/java/uk/gov/hmcts/ccd/endpoint/std/CaseSearchEndpoint.java index 86e5a4b416..18d510c6db 100644 --- a/src/main/java/uk/gov/hmcts/ccd/endpoint/std/CaseSearchEndpoint.java +++ b/src/main/java/uk/gov/hmcts/ccd/endpoint/std/CaseSearchEndpoint.java @@ -63,9 +63,9 @@ public CaseSearchEndpoint(@Qualifier(AuthorisedCaseSearchOperation.QUALIFIER) @LogAudit(operationType = AuditOperationType.SEARCH_CASE, caseTypeIds = "#caseTypeIds", caseId = "T(uk.gov.hmcts.ccd.endpoint.std.CaseSearchEndpoint).buildCaseIds(#result)") public CaseSearchResult searchCases( - @Parameter(description = "Comma separated list of case type ID(s) or '*' if the search should be applied on any " - + "existing case type. Note that using '*' is an expensive operation and might have low response times so " - + "always prefer explicitly listing the case types when known in advance", required = true) + @Parameter(description = "Comma separated list of case type ID(s) or '*' if the search should be applied on " + + "any existing case type. Note that using '*' is an expensive operation and might have low response times" + + " so always prefer explicitly listing the case types when known in advance", required = true) @RequestParam("ctid") List caseTypeIds, @Parameter(description = "Native ElasticSearch Search API request. Please refer to the ElasticSearch official " + "documentation. For cross case type search, " diff --git a/src/main/java/uk/gov/hmcts/ccd/endpoint/ui/QueryEndpoint.java b/src/main/java/uk/gov/hmcts/ccd/endpoint/ui/QueryEndpoint.java index ecebb77966..4b966cc632 100644 --- a/src/main/java/uk/gov/hmcts/ccd/endpoint/ui/QueryEndpoint.java +++ b/src/main/java/uk/gov/hmcts/ccd/endpoint/ui/QueryEndpoint.java @@ -206,8 +206,14 @@ public SearchInput[] findSearchInputDetails(@PathVariable("uid") final String ui + "work-basket-inputs", method = RequestMethod.GET) @Operation(summary = "Get Workbasket Input details") - @ApiResponse(responseCode = "200", description = "Workbasket Input data found for the given case type and jurisdiction") - @ApiResponse(responseCode = "404", description = "No Workbasket Input found for the given case type and jurisdiction") + @ApiResponse( + responseCode = "200", + description = "Workbasket Input data found for the given case type and jurisdiction" + ) + @ApiResponse( + responseCode = "404", + description = "No Workbasket Input found for the given case type and jurisdiction" + ) public WorkbasketInput[] findWorkbasketInputDetails(@PathVariable("uid") final String uid, @PathVariable("jid") final String jurisdictionId, @PathVariable("ctid") final String caseTypeId) { diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserController.java b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserController.java index 51932a6af7..71bed1a36a 100644 --- a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserController.java +++ b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserController.java @@ -49,8 +49,8 @@ public CaseUserController(UIDService caseReferenceService, consumes = MediaType.APPLICATION_JSON_VALUE ) @Operation( - description = "Update a user's roles for a specific case. Grant access for added case roles and revoke access for " - + "removed case roles." + description = "Update a user's roles for a specific case. Grant access for added case roles and" + + " revoke access for removed case roles." ) @ApiResponse( responseCode = "204", diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/external/resource/DocumentsResource.java b/src/main/java/uk/gov/hmcts/ccd/v2/external/resource/DocumentsResource.java index f98cead520..ad790a22b9 100644 --- a/src/main/java/uk/gov/hmcts/ccd/v2/external/resource/DocumentsResource.java +++ b/src/main/java/uk/gov/hmcts/ccd/v2/external/resource/DocumentsResource.java @@ -12,7 +12,6 @@ import lombok.NoArgsConstructor; import lombok.NonNull; import lombok.Setter; -import lombok.Setter; import uk.gov.hmcts.ccd.domain.model.definition.Document; import uk.gov.hmcts.ccd.v2.external.controller.DocumentController; diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDraftsController.java b/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDraftsController.java index af5aaa45bb..8843a1fe25 100644 --- a/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDraftsController.java +++ b/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDraftsController.java @@ -19,7 +19,6 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.responses.ApiResponse; -import io.swagger.v3.oas.annotations.responses.ApiResponses; import uk.gov.hmcts.ccd.data.draft.CachedDraftGateway; import uk.gov.hmcts.ccd.data.draft.DraftGateway; import uk.gov.hmcts.ccd.domain.model.aggregated.CaseView; diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartTriggerController.java b/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartTriggerController.java index c23c9f0e39..a00877c42b 100644 --- a/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartTriggerController.java +++ b/src/main/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartTriggerController.java @@ -20,7 +20,6 @@ import uk.gov.hmcts.ccd.domain.service.common.UIDService; import uk.gov.hmcts.ccd.endpoint.exceptions.BadRequestException; import uk.gov.hmcts.ccd.v2.V2; -import uk.gov.hmcts.ccd.v2.external.domain.CaseAssignedUserRolesResponse; import uk.gov.hmcts.ccd.v2.internal.resource.CaseUpdateViewEventResource; import static uk.gov.hmcts.ccd.v2.internal.resource.CaseUpdateViewEventResource.forCase; @@ -153,8 +152,8 @@ public ResponseEntity getCaseUpdateViewEvent(@PathV ), @ApiResponse( responseCode = "422", - description = "One of: Case event has no pre states, callback validation errors, unable to sanitize document " - + "for case field or missing user roles" + description = "One of: Case event has no pre states, callback validation errors, unable to" + + " sanitize document for case field or missing user roles" ), @ApiResponse( responseCode = "404", diff --git a/src/test/java/uk/gov/hmcts/ccd/AbstractBaseIntegrationTest.java b/src/test/java/uk/gov/hmcts/ccd/AbstractBaseIntegrationTest.java index 524c9dc5e0..532f6274eb 100644 --- a/src/test/java/uk/gov/hmcts/ccd/AbstractBaseIntegrationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/AbstractBaseIntegrationTest.java @@ -141,7 +141,7 @@ public abstract class AbstractBaseIntegrationTest { @Before @BeforeEach public void initMock() throws IOException { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); ReflectionTestUtils.setField(caseRoleRepository, "securityUtils", securityUtils); ReflectionTestUtils.setField(roleAssignmentRepository, "securityUtils", securityUtils); ReflectionTestUtils.setField(userRepository, "securityUtils", securityUtils); diff --git a/src/test/java/uk/gov/hmcts/ccd/AuthCheckingConfigurationTest.java b/src/test/java/uk/gov/hmcts/ccd/AuthCheckingConfigurationTest.java index 2a2966e6aa..1b428b7645 100644 --- a/src/test/java/uk/gov/hmcts/ccd/AuthCheckingConfigurationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/AuthCheckingConfigurationTest.java @@ -30,7 +30,7 @@ class AuthCheckingConfigurationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); authCheckerConfiguration = new AuthCheckerConfiguration(applicationParams); } diff --git a/src/test/java/uk/gov/hmcts/ccd/ElasticsearchIT.java b/src/test/java/uk/gov/hmcts/ccd/ElasticsearchIT.java index aaff2ef706..2a5920bad6 100644 --- a/src/test/java/uk/gov/hmcts/ccd/ElasticsearchIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/ElasticsearchIT.java @@ -17,9 +17,11 @@ import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; -import org.junit.jupiter.params.provider.MethodSource; +import org.junit.jupiter.params.provider.ArgumentsProvider; +import org.junit.jupiter.params.provider.ArgumentsSource; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; @@ -1846,8 +1848,7 @@ void shouldNotReturnCaseFieldsFilteredByPostFilteringAuthRules() throws Exceptio } @ParameterizedTest(name = "Pagination: should apply Pagination: {0}") - @MethodSource("providePaginationTestArguments") - @SuppressWarnings("unused") + @ArgumentsSource(value = PaginationTestProvider.class) void shouldApplyPagination(String name, int startRecordNumber, int maxReturnRecordCount, @@ -1898,8 +1899,7 @@ void shouldApplyPagination(String name, } @ParameterizedTest(name = "Sort: should apply sort: {0}") - @MethodSource("provideSortCriteriaTestArguments") - @SuppressWarnings("unused") + @ArgumentsSource(SortCriteriaTestProvider.class) void shouldApplySort(String name, List sortCriteria, List expectedCaseReferenceOrder) throws Exception { @@ -1966,7 +1966,14 @@ private GlobalSearchResponsePayload executeRequest(GlobalSearchRequestPayload gl } } - @SuppressWarnings("unused") + public static class PaginationTestProvider implements ArgumentsProvider { + + @Override + public Stream provideArguments(ExtensionContext context) throws Exception { + return providePaginationTestArguments(); + } + } + private static Stream providePaginationTestArguments() { // NB: sort order for test data same as sort test: "caseName.ASCENDING and createdDate.DESCENDING" List defaultSortOrder = List.of( @@ -2039,8 +2046,16 @@ private static Stream providePaginationTestArguments() { ); } - @SuppressWarnings("unused") - private static Stream provideSortCriteriaTestArguments() { + public static class SortCriteriaTestProvider implements ArgumentsProvider { + + @Override + public Stream provideArguments(ExtensionContext context) throws Exception { + return provideSortCriteriaTestArguments(); + } + + } + + public static Stream provideSortCriteriaTestArguments() { return Stream.of( Arguments.of( "DEFAULT", @@ -2150,6 +2165,7 @@ private static SortCriteria createSortCriteria(GlobalSearchSortByCategory catego return sortCriteria; } + private void stubCaseTypeRoleAssignments(String... caseTypes) { if (applicationParams.getEnableAttributeBasedAccessControl()) { diff --git a/src/test/java/uk/gov/hmcts/ccd/RestTemplateConfigurationTest.java b/src/test/java/uk/gov/hmcts/ccd/RestTemplateConfigurationTest.java index ff4ddb6fa8..cdad321aaa 100644 --- a/src/test/java/uk/gov/hmcts/ccd/RestTemplateConfigurationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/RestTemplateConfigurationTest.java @@ -26,7 +26,7 @@ import static org.hamcrest.collection.IsCollectionWithSize.hasSize; import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.springframework.http.HttpMethod.GET; import static org.springframework.http.HttpMethod.PUT; import static org.apache.http.entity.ContentType.APPLICATION_JSON; diff --git a/src/test/java/uk/gov/hmcts/ccd/WireMockBaseTest.java b/src/test/java/uk/gov/hmcts/ccd/WireMockBaseTest.java index 2f550e674f..8607325d4a 100644 --- a/src/test/java/uk/gov/hmcts/ccd/WireMockBaseTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/WireMockBaseTest.java @@ -42,7 +42,7 @@ @AutoConfigureWireMock(port = 0) public abstract class WireMockBaseTest extends AbstractBaseIntegrationTest { - private static final Logger LOG = LoggerFactory.getLogger(WireMockBaseContractTest.class); + private static final Logger LOG = LoggerFactory.getLogger(WireMockBaseTest.class); // data values as per: classpath:sql/insert_cases.sql public static final String CASE_01_REFERENCE = "1504259907353529"; diff --git a/src/test/java/uk/gov/hmcts/ccd/appinsights/AppInsightsTest.java b/src/test/java/uk/gov/hmcts/ccd/appinsights/AppInsightsTest.java index a84e7d7d60..6f27cb454f 100644 --- a/src/test/java/uk/gov/hmcts/ccd/appinsights/AppInsightsTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/appinsights/AppInsightsTest.java @@ -18,8 +18,8 @@ import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.is; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.times; @@ -41,7 +41,7 @@ public class AppInsightsTest { @Before public void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); } @Test diff --git a/src/test/java/uk/gov/hmcts/ccd/auditlog/AuditRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/auditlog/AuditRepositoryTest.java index e2f676cfab..43a59884c6 100644 --- a/src/test/java/uk/gov/hmcts/ccd/auditlog/AuditRepositoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/auditlog/AuditRepositoryTest.java @@ -16,7 +16,7 @@ public class AuditRepositoryTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); repository = new LoggerAuditRepository(logFormatter); } diff --git a/src/test/java/uk/gov/hmcts/ccd/auditlog/AuditServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/auditlog/AuditServiceTest.java index 56760d776a..c98f38f32d 100644 --- a/src/test/java/uk/gov/hmcts/ccd/auditlog/AuditServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/auditlog/AuditServiceTest.java @@ -66,7 +66,7 @@ class AuditServiceTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); auditService = new AuditService(fixedClock, userRepository, securityUtils, auditRepository, auditCaseRemoteConfiguration, auditCaseRemoteOperation); IdamUser user = new IdamUser(); diff --git a/src/test/java/uk/gov/hmcts/ccd/config/HalConfigTest.java b/src/test/java/uk/gov/hmcts/ccd/config/HalConfigTest.java index 0a685253a4..ed85a159d2 100644 --- a/src/test/java/uk/gov/hmcts/ccd/config/HalConfigTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/config/HalConfigTest.java @@ -25,7 +25,7 @@ import static org.junit.jupiter.api.Assertions.assertAll; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyZeroInteractions; +import static org.mockito.Mockito.verifyNoInteractions; import static org.mockito.Mockito.when; @DisplayName("HalConfig") @@ -62,7 +62,7 @@ class HalConverterPostProcessorTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); final List> messageConverters = Arrays.asList(halConverter, otherConverter); when(restTemplateBean.getMessageConverters()).thenReturn(messageConverters); @@ -81,7 +81,7 @@ void shouldNotAlterOtherBeans() { halProcessor.postProcessBeforeInitialization(otherBean, BEAN_NAME); halProcessor.postProcessAfterInitialization(otherBean, BEAN_NAME); - verifyZeroInteractions(otherBean); + verifyNoInteractions(otherBean); } @Test @@ -89,7 +89,7 @@ void shouldNotAlterOtherBeans() { void shouldNotAlterRestTemplateBeansBeforeInit() { halProcessor.postProcessBeforeInitialization(restTemplateBean, BEAN_NAME); - verifyZeroInteractions(restTemplateBean); + verifyNoInteractions(restTemplateBean); } @Test @@ -97,7 +97,7 @@ void shouldNotAlterRestTemplateBeansBeforeInit() { void shouldNotAlterRequestAdapterBeansBeforeInit() { halProcessor.postProcessBeforeInitialization(requestAdapterBean, BEAN_NAME); - verifyZeroInteractions(requestAdapterBean); + verifyNoInteractions(requestAdapterBean); } @Test @@ -121,7 +121,7 @@ void shouldAlterRequestAdepaterBeansAfterInit() { void shouldNotAlterRestTemplateOtherMessageConverters() { halProcessor.postProcessAfterInitialization(restTemplateBean, BEAN_NAME); - verifyZeroInteractions(otherConverter); + verifyNoInteractions(otherConverter); } @Test @@ -129,7 +129,7 @@ void shouldNotAlterRestTemplateOtherMessageConverters() { void shouldNotAlterRequestAdapterOtherMessageConverters() { halProcessor.postProcessAfterInitialization(requestAdapterBean, BEAN_NAME); - verifyZeroInteractions(otherConverter); + verifyNoInteractions(otherConverter); } private void verifyMediaTypes() { diff --git a/src/test/java/uk/gov/hmcts/ccd/data/SecurityUtilsTest.java b/src/test/java/uk/gov/hmcts/ccd/data/SecurityUtilsTest.java index 36568132e3..576d6cef78 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/SecurityUtilsTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/SecurityUtilsTest.java @@ -59,7 +59,7 @@ class SecurityUtilsTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); final GrantedAuthority[] authorities = new GrantedAuthority[] { newAuthority("role1"), newAuthority("role2")}; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/caseaccess/AMSwitchTest.java b/src/test/java/uk/gov/hmcts/ccd/data/caseaccess/AMSwitchTest.java index 9ce022cf02..4f5db88093 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/caseaccess/AMSwitchTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/caseaccess/AMSwitchTest.java @@ -36,7 +36,7 @@ class AMSwitchTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); doReturn(ccdOnlyWriteCaseTypes).when(applicationParams).getWriteToCCDCaseTypesOnly(); doReturn(amOnlyWriteCaseTypes).when(applicationParams).getWriteToAMCaseTypesOnly(); doReturn(bothWriteCaseTypes).when(applicationParams).getWriteToBothCaseTypes(); diff --git a/src/test/java/uk/gov/hmcts/ccd/data/caseaccess/CachedCaseUserRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/caseaccess/CachedCaseUserRepositoryTest.java index 5fb34c3ebb..1b76d45abc 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/caseaccess/CachedCaseUserRepositoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/caseaccess/CachedCaseUserRepositoryTest.java @@ -37,7 +37,7 @@ class CachedCaseUserRepositoryTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); doReturn(caseUserRoles).when(caseUserRepository).findCaseRoles(caseId, userId); doReturn(caseIds).when(caseUserRepository).findCasesUserIdHasAccessTo(userId); diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/CachedCaseDetailsRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/CachedCaseDetailsRepositoryTest.java index d4860a03c8..883f391522 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/CachedCaseDetailsRepositoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/CachedCaseDetailsRepositoryTest.java @@ -51,7 +51,7 @@ class CachedCaseDetailsRepositoryTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); caseDetails = new CaseDetails(); caseDetails.setId(valueOf(CASE_ID)); caseDetails.setReference(CASE_REFERENCE); diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventRepositoryTest.java index d7a11e36b8..d303e9b10d 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventRepositoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventRepositoryTest.java @@ -6,7 +6,7 @@ import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.simple.SimpleJdbcInsert; import org.springframework.transaction.annotation.Transactional; -import uk.gov.hmcts.ccd.WireMockBaseContractTest; +import uk.gov.hmcts.ccd.WireMockBaseTest; import uk.gov.hmcts.ccd.domain.model.definition.CaseDetails; import uk.gov.hmcts.ccd.domain.model.std.AuditEvent; import uk.gov.hmcts.ccd.endpoint.exceptions.ResourceNotFoundException; @@ -26,7 +26,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; @Transactional -public class CaseAuditEventRepositoryTest extends WireMockBaseContractTest { +public class CaseAuditEventRepositoryTest extends WireMockBaseTest { @Autowired CaseAuditEventRepository classUnderTest; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/JurisdictionDefinitionMapperTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/JurisdictionDefinitionMapperTest.java index e3b06135aa..9e4b72e035 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/JurisdictionDefinitionMapperTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/JurisdictionDefinitionMapperTest.java @@ -8,7 +8,7 @@ import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import static uk.gov.hmcts.ccd.domain.service.common.TestBuildersUtil.CaseStateBuilder.newState; import static uk.gov.hmcts.ccd.domain.service.common.TestBuildersUtil.CaseTypeBuilder.newCaseType; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseDetailsQueryBuilderFactoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseDetailsQueryBuilderFactoryTest.java index ba594fcc97..2091a2331a 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseDetailsQueryBuilderFactoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseDetailsQueryBuilderFactoryTest.java @@ -53,7 +53,7 @@ class CaseDetailsQueryBuilderFactoryTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); factory = new CaseDetailsQueryBuilderFactory(asList(caseStateAuthorisationSecurity, userAuthorisationSecurity)); when(em.getCriteriaBuilder()).thenReturn(criteriaBuilder); diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseDetailsQueryBuilderTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseDetailsQueryBuilderTest.java index 0918f2a2b5..79fc0f1e3c 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseDetailsQueryBuilderTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseDetailsQueryBuilderTest.java @@ -42,7 +42,7 @@ class CaseDetailsQueryBuilderTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(entityManager.getCriteriaBuilder()).thenReturn(criteriaBuilder); when(criteriaBuilder.createQuery(CaseDetailsEntity.class)).thenReturn(criteriaQuery); when(criteriaQuery.from(CaseDetailsEntity.class)).thenReturn(root); diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseStateAuthorisationSecurityTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseStateAuthorisationSecurityTest.java index 5a47e979ed..293c32742a 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseStateAuthorisationSecurityTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/CaseStateAuthorisationSecurityTest.java @@ -30,7 +30,7 @@ class CaseStateAuthorisationSecurityTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); } @Nested diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/UserAuthorisationSecurityTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/UserAuthorisationSecurityTest.java index 75b9f7a598..c160987a1f 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/UserAuthorisationSecurityTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/UserAuthorisationSecurityTest.java @@ -44,7 +44,7 @@ class UserAuthorisationSecurityTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(userAuthorisation.getUserId()).thenReturn(USER_ID); } diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/SearchQueryFactoryOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/SearchQueryFactoryOperationTest.java index cab0caa4ae..1fcab3e038 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/SearchQueryFactoryOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/SearchQueryFactoryOperationTest.java @@ -62,7 +62,7 @@ class SearchQueryFactoryOperationTest { @BeforeEach public void initMock() throws IOException { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); CaseTypeDefinition caseTypeDefinition = mock(CaseTypeDefinition.class); when(caseTypeService.getCaseTypeForJurisdiction(anyString(), anyString())).thenReturn(caseTypeDefinition); classUnderTest = new SearchQueryFactoryOperation(criterionFactory, diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/builder/AccessControlGrantTypeQueryBuilderTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/builder/AccessControlGrantTypeQueryBuilderTest.java index 26106dd336..ef9ee1f282 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/builder/AccessControlGrantTypeQueryBuilderTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/builder/AccessControlGrantTypeQueryBuilderTest.java @@ -43,7 +43,7 @@ class AccessControlGrantTypeQueryBuilderTest extends GrantTypeQueryBuilderTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); accessControlGrantTypeQueryBuilder = new AccessControlGrantTypeQueryBuilder( new BasicGrantTypeQueryBuilder(accessControlService, caseDataAccessControl, applicationParams), new SpecificGrantTypeQueryBuilder(accessControlService, caseDataAccessControl, applicationParams), diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/builder/BasicGrantTypeQueryBuilderTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/builder/BasicGrantTypeQueryBuilderTest.java index 7037c0a97a..956ca539ca 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/builder/BasicGrantTypeQueryBuilderTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/builder/BasicGrantTypeQueryBuilderTest.java @@ -51,7 +51,7 @@ class BasicGrantTypeQueryBuilderTest extends GrantTypeQueryBuilderTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); basicGrantTypeQueryBuilder = new BasicGrantTypeQueryBuilder(accessControlService, caseDataAccessControl, applicationParams); CaseStateDefinition caseStateDefinition = mock(CaseStateDefinition.class); diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/builder/ChallengedGrantTypeQueryBuilderTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/builder/ChallengedGrantTypeQueryBuilderTest.java index 7edfdd50ec..428e5dfcc2 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/builder/ChallengedGrantTypeQueryBuilderTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/builder/ChallengedGrantTypeQueryBuilderTest.java @@ -37,7 +37,7 @@ class ChallengedGrantTypeQueryBuilderTest extends GrantTypeQueryBuilderTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); challengedGrantTypeQueryBuilder = new ChallengedGrantTypeQueryBuilder(accessControlService, caseDataAccessControl, applicationParams); diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/FindSupplementaryDataQueryBuilderTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/FindSupplementaryDataQueryBuilderTest.java index 94afe63890..903e2b52c1 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/FindSupplementaryDataQueryBuilderTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/FindSupplementaryDataQueryBuilderTest.java @@ -5,12 +5,12 @@ import jakarta.persistence.PersistenceContext; import jakarta.persistence.Query; import org.junit.jupiter.api.Test; -import uk.gov.hmcts.ccd.WireMockBaseContractTest; +import uk.gov.hmcts.ccd.WireMockBaseTest; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -class FindSupplementaryDataQueryBuilderTest extends WireMockBaseContractTest { +class FindSupplementaryDataQueryBuilderTest extends WireMockBaseTest { private static final String CASE_REFERENCE = "1234567"; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/IncrementSupplementaryDataQueryBuilderTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/IncrementSupplementaryDataQueryBuilderTest.java index 3b6899ed85..942709e4ae 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/IncrementSupplementaryDataQueryBuilderTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/IncrementSupplementaryDataQueryBuilderTest.java @@ -5,12 +5,12 @@ import jakarta.persistence.PersistenceContext; import jakarta.persistence.Query; import org.junit.jupiter.api.Test; -import uk.gov.hmcts.ccd.WireMockBaseContractTest; +import uk.gov.hmcts.ccd.WireMockBaseTest; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -class IncrementSupplementaryDataQueryBuilderTest extends WireMockBaseContractTest { +class IncrementSupplementaryDataQueryBuilderTest extends WireMockBaseTest { private static final String CASE_REFERENCE = "1234568"; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SetSupplementaryDataQueryBuilderTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SetSupplementaryDataQueryBuilderTest.java index a6cabb42e0..13d0be0847 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SetSupplementaryDataQueryBuilderTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SetSupplementaryDataQueryBuilderTest.java @@ -9,7 +9,7 @@ import org.junit.jupiter.api.Test; import org.mockito.Mock; -import uk.gov.hmcts.ccd.WireMockBaseContractTest; +import uk.gov.hmcts.ccd.WireMockBaseTest; import uk.gov.hmcts.ccd.endpoint.exceptions.ServiceException; import static org.mockito.Mockito.when; @@ -18,7 +18,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; -class SetSupplementaryDataQueryBuilderTest extends WireMockBaseContractTest { +class SetSupplementaryDataQueryBuilderTest extends WireMockBaseTest { private static final String CASE_REFERENCE = "1234569"; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/definition/CachedCaseDefinitionRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/definition/CachedCaseDefinitionRepositoryTest.java index ed76c2b27a..9bb374880d 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/definition/CachedCaseDefinitionRepositoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/definition/CachedCaseDefinitionRepositoryTest.java @@ -48,7 +48,7 @@ class CachedCaseDefinitionRepositoryTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); doReturn(0).when(appParams).getRequestScopeCachedCaseTypesFromHour(); doReturn(24).when(appParams).getRequestScopeCachedCaseTypesTillHour(); doReturn(Arrays.asList("GrantOfRepresentation")).when(appParams).getRequestScopeCachedCaseTypes(); diff --git a/src/test/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepositoryIT.java b/src/test/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepositoryIT.java index 6b5106f95a..5ecec74195 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepositoryIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepositoryIT.java @@ -2,7 +2,6 @@ import com.github.tomakehurst.wiremock.client.WireMock; import org.hamcrest.collection.IsCollectionWithSize; -import org.junit.Assert; import org.junit.Test; import uk.gov.hmcts.ccd.WireMockBaseTest; import uk.gov.hmcts.ccd.domain.model.definition.CaseTypeDefinition; @@ -158,7 +157,7 @@ public void shouldFailToGetClassificationsForUserRoleList() { .willReturn(serverError())); final ServiceException exception = assertThrows(ServiceException.class, () -> caseDefinitionRepository.getClassificationsForUserRoleList(userRoles)); - Assert.assertThat(exception.getMessage(), + assertThat(exception.getMessage(), startsWith("Error while retrieving classification for user roles " + userRoles + " because of ")); } } diff --git a/src/test/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepositoryTest.java index d56d4a0cde..e01b4124a9 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepositoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepositoryTest.java @@ -3,7 +3,7 @@ import static org.hamcrest.Matchers.nullValue; import static org.hamcrest.core.StringStartsWith.startsWith; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyString; @@ -51,7 +51,7 @@ public class DefaultCaseDefinitionRepositoryTest { @Before public void setup() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); doReturn(new HttpHeaders()).when(securityUtils).authorizationHeaders(); doReturn(new HttpHeaders()).when(securityUtils).userAuthorizationHeaders(); diff --git a/src/test/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGatewayServiceExceptionTest.java b/src/test/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGatewayServiceExceptionTest.java index 3fcbcbceec..21059d66b5 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGatewayServiceExceptionTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGatewayServiceExceptionTest.java @@ -4,13 +4,13 @@ import org.junit.Before; import org.junit.Test; import org.springframework.test.util.ReflectionTestUtils; -import uk.gov.hmcts.ccd.WireMockBaseContractTest; +import uk.gov.hmcts.ccd.WireMockBaseTest; import uk.gov.hmcts.ccd.endpoint.exceptions.ServiceException; import jakarta.inject.Inject; import java.util.List; -public class HttpUIDefinitionGatewayServiceExceptionTest extends WireMockBaseContractTest { +public class HttpUIDefinitionGatewayServiceExceptionTest extends WireMockBaseTest { private static final int VERSION = 33; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGatewayTest.java b/src/test/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGatewayTest.java index 50ba38bb49..48ce5e58c5 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGatewayTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGatewayTest.java @@ -3,7 +3,7 @@ import com.google.common.collect.Lists; import org.junit.Test; import org.junit.jupiter.api.DisplayName; -import uk.gov.hmcts.ccd.WireMockBaseContractTest; +import uk.gov.hmcts.ccd.WireMockBaseTest; import uk.gov.hmcts.ccd.domain.model.definition.BannersResult; import uk.gov.hmcts.ccd.domain.model.definition.JurisdictionUiConfigResult; import uk.gov.hmcts.ccd.domain.model.definition.SearchResultDefinition; @@ -16,7 +16,7 @@ import static org.hamcrest.Matchers.is; import static org.junit.jupiter.api.Assertions.assertAll; -public class HttpUIDefinitionGatewayTest extends WireMockBaseContractTest { +public class HttpUIDefinitionGatewayTest extends WireMockBaseTest { private static final int VERSION = 33; private static final String ORG_CASES = "ORGCASES"; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/definition/UIDefinitionRepositoryWireMockNotRunningTest.java b/src/test/java/uk/gov/hmcts/ccd/data/definition/UIDefinitionRepositoryWireMockNotRunningTest.java index 7662153759..a2fb1788ee 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/definition/UIDefinitionRepositoryWireMockNotRunningTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/definition/UIDefinitionRepositoryWireMockNotRunningTest.java @@ -6,7 +6,7 @@ import uk.gov.hmcts.ccd.endpoint.exceptions.ServiceException; import static org.hamcrest.core.StringStartsWith.startsWith; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertThrows; @org.junit.Ignore("Fixed by Mario's PR") diff --git a/src/test/java/uk/gov/hmcts/ccd/data/draft/CachedDraftGatewayTest.java b/src/test/java/uk/gov/hmcts/ccd/data/draft/CachedDraftGatewayTest.java index 4eb08d8481..7727926cb7 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/draft/CachedDraftGatewayTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/draft/CachedDraftGatewayTest.java @@ -50,7 +50,7 @@ class CachedDraftGatewayTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); doReturn(draftId).doReturn(draftId2).when(defaultDraftGateway).create(createCaseDraftRequest); doReturn(draftResponse).when(defaultDraftGateway).get(draftIdS); diff --git a/src/test/java/uk/gov/hmcts/ccd/data/draft/DefaultDraftGatewayTest.java b/src/test/java/uk/gov/hmcts/ccd/data/draft/DefaultDraftGatewayTest.java index f039e67e59..69323e0db0 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/draft/DefaultDraftGatewayTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/draft/DefaultDraftGatewayTest.java @@ -109,7 +109,7 @@ class DefaultDraftGatewayTest { @BeforeEach public void setUp() throws JsonProcessingException { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); doReturn(new HttpHeaders()).when(securityUtils).authorizationHeaders(); doReturn(new HttpHeaders()).when(securityUtils).userAuthorizationHeaders(); when(applicationParams.draftBaseURL()).thenReturn(draftBaseURL); diff --git a/src/test/java/uk/gov/hmcts/ccd/data/message/additionaldata/DefinitionBlockGeneratorTest.java b/src/test/java/uk/gov/hmcts/ccd/data/message/additionaldata/DefinitionBlockGeneratorTest.java index 1473aaa2b3..61f3162c31 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/message/additionaldata/DefinitionBlockGeneratorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/message/additionaldata/DefinitionBlockGeneratorTest.java @@ -75,7 +75,7 @@ class DefinitionBlockGeneratorTest { @BeforeEach void setUp() throws JsonProcessingException { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); Map mappings = newHashMap(); mappings.put(TEXT, SIMPLE_TEXT_TYPE); diff --git a/src/test/java/uk/gov/hmcts/ccd/data/user/AttributeBasedJurisdictionsResolverTest.java b/src/test/java/uk/gov/hmcts/ccd/data/user/AttributeBasedJurisdictionsResolverTest.java index e1f80d980b..6a2d26bcc6 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/user/AttributeBasedJurisdictionsResolverTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/user/AttributeBasedJurisdictionsResolverTest.java @@ -52,7 +52,7 @@ class AttributeBasedJurisdictionsResolverTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); jurisdictionsResolver = new AttributeBasedJurisdictionsResolver(userRepository, roleAssignmentService, caseDefinitionRepository); diff --git a/src/test/java/uk/gov/hmcts/ccd/data/user/CachedUserRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/user/CachedUserRepositoryTest.java index 612a707504..d540912204 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/user/CachedUserRepositoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/user/CachedUserRepositoryTest.java @@ -35,7 +35,7 @@ class CachedUserRepositoryTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); cachedUserRepository = new uk.gov.hmcts.ccd.data.user.CachedUserRepository(userRepository); } diff --git a/src/test/java/uk/gov/hmcts/ccd/data/user/DefaultJurisdictionsResolverTest.java b/src/test/java/uk/gov/hmcts/ccd/data/user/DefaultJurisdictionsResolverTest.java index 58089b245d..f1852b4464 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/user/DefaultJurisdictionsResolverTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/user/DefaultJurisdictionsResolverTest.java @@ -13,7 +13,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyZeroInteractions; +import static org.mockito.Mockito.verifyNoInteractions; class DefaultJurisdictionsResolverTest { @@ -30,7 +30,7 @@ class DefaultJurisdictionsResolverTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); jurisdictionsResolver = new DefaultJurisdictionsResolver(applicationParams, idamJurisdictionsResolver, attributeBasedJurisdictionsResolver); } @@ -44,7 +44,7 @@ public void shouldDelegateToIdamJurisdictionsResolver() { assertEquals(jurisdictions, jurisdictionsResolver.getJurisdictions()); verify(idamJurisdictionsResolver).getJurisdictions(); - verifyZeroInteractions(attributeBasedJurisdictionsResolver); + verifyNoInteractions(attributeBasedJurisdictionsResolver); } @Test diff --git a/src/test/java/uk/gov/hmcts/ccd/data/user/DefaultUserRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/user/DefaultUserRepositoryTest.java index c61946c662..1f2386cc38 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/user/DefaultUserRepositoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/user/DefaultUserRepositoryTest.java @@ -12,6 +12,7 @@ import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; +import org.springframework.http.HttpStatusCode; import org.springframework.http.ResponseEntity; import org.springframework.security.core.Authentication; import org.springframework.security.core.GrantedAuthority; @@ -110,7 +111,7 @@ class DefaultUserRepositoryTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); initSecurityContext(); @@ -258,12 +259,12 @@ void getUserDefaultSettingsShouldReturnBadRequestWhenNot404() { }); } - private HttpClientErrorException createErrorResponse(HttpStatus status, String message) { + private HttpClientErrorException createErrorResponse(HttpStatusCode status, String message) { HttpClientErrorException response = mock(HttpClientErrorException.class); HttpHeaders headers = new HttpHeaders(); headers.add("Message", message); when(response.getResponseHeaders()).thenReturn(headers); - when(response.getRawStatusCode()).thenReturn(status.value()); + when(response.getStatusCode()).thenReturn(status); return response; } diff --git a/src/test/java/uk/gov/hmcts/ccd/data/user/IdamJurisdictionsResolverTest.java b/src/test/java/uk/gov/hmcts/ccd/data/user/IdamJurisdictionsResolverTest.java index 4c9325ca4f..698f7ce336 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/user/IdamJurisdictionsResolverTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/user/IdamJurisdictionsResolverTest.java @@ -18,7 +18,7 @@ public class IdamJurisdictionsResolverTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); } @Test diff --git a/src/test/java/uk/gov/hmcts/ccd/data/user/UserRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/user/UserRepositoryTest.java index db823662f1..9ac7867734 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/user/UserRepositoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/user/UserRepositoryTest.java @@ -72,7 +72,7 @@ public class UserRepositoryTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); doReturn(authentication).when(securityContext).getAuthentication(); SecurityContextHolder.setContext(securityContext); diff --git a/src/test/java/uk/gov/hmcts/ccd/data/user/UserServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/data/user/UserServiceTest.java index 91da0dda46..e8a9e89104 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/user/UserServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/user/UserServiceTest.java @@ -19,7 +19,7 @@ import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.mockito.Mockito.when; public class UserServiceTest { @@ -48,7 +48,7 @@ public class UserServiceTest { @Before public void setup() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); userService = new uk.gov.hmcts.ccd.data.user.UserService(userRepoMock, caseDefinitionRepoMock, jurisdictionMapperMock,jurisdictionsResolver); when(mockIdamProps.getEmail()).thenReturn("email"); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/model/aggregated/CaseViewFieldBuilderTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/model/aggregated/CaseViewFieldBuilderTest.java index 5e322a0da5..2bc709378b 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/model/aggregated/CaseViewFieldBuilderTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/model/aggregated/CaseViewFieldBuilderTest.java @@ -23,7 +23,7 @@ import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.notNullValue; import static org.hamcrest.Matchers.nullValue; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.mockito.Mockito.any; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/model/aggregated/CompoundFieldOrderServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/model/aggregated/CompoundFieldOrderServiceTest.java index 1d2abfbf18..a2406a27d1 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/model/aggregated/CompoundFieldOrderServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/model/aggregated/CompoundFieldOrderServiceTest.java @@ -15,7 +15,7 @@ import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.is; import static org.hamcrest.collection.IsIterableContainingInOrder.contains; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static uk.gov.hmcts.ccd.domain.model.aggregated.CompoundFieldOrderService.ROOT; import static uk.gov.hmcts.ccd.domain.model.definition.CaseEventFieldComplexDefinition.builder; import static uk.gov.hmcts.ccd.domain.model.definition.FieldTypeDefinition.COLLECTION; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/model/common/HttpErrorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/model/common/HttpErrorTest.java index 515881ddd1..4ad825479b 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/model/common/HttpErrorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/model/common/HttpErrorTest.java @@ -14,7 +14,7 @@ import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.not; import static org.hamcrest.Matchers.notNullValue; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/model/definition/AccessTypeTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/model/definition/AccessTypeTest.java index e5acf94c60..52947ea1df 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/model/definition/AccessTypeTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/model/definition/AccessTypeTest.java @@ -30,7 +30,7 @@ class AccessTypeTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); setupWithAccessType(); setupWithAccessRoleType(); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/model/definition/CaseAccessGroupTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/model/definition/CaseAccessGroupTest.java index a97baa3572..1585374719 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/model/definition/CaseAccessGroupTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/model/definition/CaseAccessGroupTest.java @@ -16,7 +16,7 @@ class CaseAccessGroupTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); } @Test diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/model/definition/CaseFieldDefinitionTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/model/definition/CaseFieldDefinitionTest.java index ec75957d1a..44e0c498fc 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/model/definition/CaseFieldDefinitionTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/model/definition/CaseFieldDefinitionTest.java @@ -16,7 +16,7 @@ import static org.hamcrest.Matchers.is; import static org.hamcrest.beans.HasPropertyWithValue.hasProperty; import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/model/definition/FieldTypeDefinitionTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/model/definition/FieldTypeDefinitionTest.java index 482d6a8570..bdaed8a220 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/model/definition/FieldTypeDefinitionTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/model/definition/FieldTypeDefinitionTest.java @@ -9,7 +9,7 @@ import static java.util.Arrays.asList; import static java.util.Collections.emptyList; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertTrue; public class FieldTypeDefinitionTest { diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/accessprofile/filter/RoleAssignmentsFilteringServiceImplTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/accessprofile/filter/RoleAssignmentsFilteringServiceImplTest.java index 108ba737b3..a87bb31033 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/accessprofile/filter/RoleAssignmentsFilteringServiceImplTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/accessprofile/filter/RoleAssignmentsFilteringServiceImplTest.java @@ -60,7 +60,7 @@ class RoleAssignmentsFilteringServiceImplTest extends BaseFilter { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); List roleAttributeMatchers = Lists.newArrayList(new BeginDateEndDateMatcher(), new CaseIdMatcher(), new CaseTypeMatcher(), diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCaseHistoryViewOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCaseHistoryViewOperationTest.java index b3eae18645..0823b1b7da 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCaseHistoryViewOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCaseHistoryViewOperationTest.java @@ -129,7 +129,7 @@ void resetStaticFields() { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); FIELD_1.setAccessControlLists(ACCESS_CONTROL_LISTS); FIELD_2.setAccessControlLists(ACCESS_CONTROL_LISTS); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCaseTypeDefinitionOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCaseTypeDefinitionOperationTest.java index 899aecb108..2cdec2fcf8 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCaseTypeDefinitionOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCaseTypeDefinitionOperationTest.java @@ -23,9 +23,9 @@ import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.not; -import static org.hamcrest.core.IsCollectionContaining.hasItems; +import static org.hamcrest.core.IsIterableContaining.hasItems; import static org.hamcrest.core.IsEqual.equalTo; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.doReturn; @@ -185,7 +185,7 @@ class AuthorisedGetCaseTypeDefinitionOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); testCaseTypeDefinition1 = newCaseType() .withId(CASE_TYPE_ID) diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCaseTypeDefinitionsOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCaseTypeDefinitionsOperationTest.java index 244401ad16..c92ccfcb53 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCaseTypeDefinitionsOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCaseTypeDefinitionsOperationTest.java @@ -24,9 +24,9 @@ import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.not; -import static org.hamcrest.core.IsCollectionContaining.hasItems; +import static org.hamcrest.core.IsIterableContaining.hasItems; import static org.hamcrest.core.IsEqual.equalTo; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doReturn; @@ -194,7 +194,7 @@ class AuthorisedGetCaseTypeDefinitionsOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); testCaseType1 = newCaseType() .withAcl(anAcl() diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCaseViewOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCaseViewOperationTest.java index e738399f05..dcedbe120c 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCaseViewOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCaseViewOperationTest.java @@ -163,7 +163,7 @@ class AuthorisedGetCaseViewOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); doReturn(TEST_CASE_TYPE).when(caseDefinitionRepository).getCaseType(CASE_TYPE_ID); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCriteriaOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCriteriaOperationTest.java index 64329838e5..6a53d74c58 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCriteriaOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCriteriaOperationTest.java @@ -61,7 +61,7 @@ class AuthorisedGetCriteriaOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); testWorkbasketInputs = Arrays.asList( aWorkbasketInput().withFieldId(CASE_FIELD_ID_1_1).build(), diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetUserProfileOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetUserProfileOperationTest.java index fe23341bcd..b490a3602a 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetUserProfileOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetUserProfileOperationTest.java @@ -26,7 +26,7 @@ import static org.hamcrest.Matchers.isIn; import static org.hamcrest.Matchers.not; import static org.hamcrest.core.Is.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import static org.mockito.Matchers.any; import static org.mockito.Matchers.eq; @@ -74,7 +74,7 @@ class AuthorisedGetUserProfileOperationTest { @BeforeEach public void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); userProfile.setUser(user); userProfile.setJurisdictions(new JurisdictionDisplayProperties[]{test1JurisdictionDisplayProperties, test2JurisdictionDisplayProperties}); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/CaseSearchResultViewGeneratorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/CaseSearchResultViewGeneratorTest.java index 93df73b01e..a5e8e7d6db 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/CaseSearchResultViewGeneratorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/CaseSearchResultViewGeneratorTest.java @@ -151,7 +151,7 @@ class CaseSearchResultViewGeneratorTest { @BeforeEach void setUp() throws IOException { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); caseSearchesViewAccessControl = new CaseSearchesViewAccessControl(caseTypeService, searchResultDefinitionService, securityClassificationService, caseDataAccessControl); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/CaseSearchesViewAccessControlTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/CaseSearchesViewAccessControlTest.java index 17457e18a5..907aaf4a1e 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/CaseSearchesViewAccessControlTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/CaseSearchesViewAccessControlTest.java @@ -116,7 +116,7 @@ class CaseSearchesViewAccessControlTest { @BeforeEach void setUp() throws IOException { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); dataMap = buildData(CASE_FIELD_1, CASE_FIELD_2, CASE_FIELD_3, CASE_FIELD_4, CASE_FIELD_5); ObjectNode familyDetails = (ObjectNode) new ObjectMapper().readTree(FAMILY_DETAILS_VALUE); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/CaseUpdateViewEventBuilderTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/CaseUpdateViewEventBuilderTest.java index f73ec39405..4b15d30b64 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/CaseUpdateViewEventBuilderTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/CaseUpdateViewEventBuilderTest.java @@ -35,7 +35,7 @@ import static org.hamcrest.Matchers.hasProperty; import static org.hamcrest.Matchers.nullValue; import static org.hamcrest.core.StringStartsWith.startsWith; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.assertAll; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -105,7 +105,7 @@ class CaseUpdateViewEventBuilderTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(caseDefinitionRepository.getCaseType(CASE_TYPE_ID)).thenReturn(caseTypeDefinition); when(eventTriggerService.findCaseEvent(caseTypeDefinition, EVENT_TRIGGER_ID)).thenReturn(caseEventDefinition); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/ClassifiedGetCriteriaOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/ClassifiedGetCriteriaOperationTest.java index dfc3876d96..d53297115c 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/ClassifiedGetCriteriaOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/ClassifiedGetCriteriaOperationTest.java @@ -75,7 +75,7 @@ void setUp() { aSearchInput().withFieldId(CASE_FIELD_ID_1_4).build() ); - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); testCaseTypeDefinition = newCaseType() .withJurisdiction(newJurisdiction() .withJurisdictionId(JURISDICTION_ID) diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetBannerOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetBannerOperationTest.java index c5164cc761..3b6efe57ac 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetBannerOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetBannerOperationTest.java @@ -1,5 +1,6 @@ package uk.gov.hmcts.ccd.domain.service.aggregated; +import java.util.Collections; import java.util.List; import org.assertj.core.util.Lists; import org.junit.jupiter.api.BeforeEach; @@ -27,7 +28,7 @@ class DefaultGetBannerOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); } @Test @@ -41,7 +42,7 @@ void shouldReturnEmptyBannerList() { } private BannersResult createBannersResultWithEmptyCollection() { - BannersResult bannersResult = new BannersResult(Lists.emptyList()); + BannersResult bannersResult = new BannersResult(Collections.emptyList()); return bannersResult; } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetCaseHistoryViewOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetCaseHistoryViewOperationTest.java index ca40c1b91c..5959bac425 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetCaseHistoryViewOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetCaseHistoryViewOperationTest.java @@ -82,7 +82,7 @@ class DefaultGetCaseHistoryViewOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); caseDetails = new CaseDetails(); caseDetails.setCaseTypeId(CASE_TYPE_ID); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetCaseTypeDefinitionOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetCaseTypeDefinitionOperationTest.java index 860afffea0..2a98b339b7 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetCaseTypeDefinitionOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetCaseTypeDefinitionOperationTest.java @@ -3,7 +3,7 @@ import java.util.Optional; import static org.hamcrest.CoreMatchers.equalTo; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.mockito.Mockito.when; import org.junit.jupiter.api.BeforeEach; @@ -29,7 +29,7 @@ public class DefaultGetCaseTypeDefinitionOperationTest { @BeforeEach public void setup() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); } @Test diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetCaseTypesOperationTestDefinition.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetCaseTypesOperationTestDefinition.java index e5f772c841..9e833a825d 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetCaseTypesOperationTestDefinition.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetCaseTypesOperationTestDefinition.java @@ -1,7 +1,6 @@ package uk.gov.hmcts.ccd.domain.service.aggregated; import com.google.common.collect.Lists; -import org.hamcrest.core.IsCollectionContaining; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.Mock; @@ -13,7 +12,8 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.core.IsIterableContaining.hasItems; import static org.junit.jupiter.api.Assertions.assertAll; import static org.mockito.Mockito.doReturn; import static uk.gov.hmcts.ccd.domain.service.common.AccessControlService.CAN_CREATE; @@ -37,7 +37,7 @@ class DefaultGetCaseTypesOperationTestDefinition { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); testCaseTypeDefinition1 = newCaseType().build(); testCaseTypeDefinition2 = newCaseType().build(); testCaseTypeDefinition3 = newCaseType().build(); @@ -64,7 +64,7 @@ void shouldReturnCaseTypesRegardlessOfAccessParam() { () -> assertThat(updateCaseTypeDefinitions, is(equalTo(createCaseTypeDefinitions))), () -> assertThat(readCaseTypeDefinitions, is(equalTo(updateCaseTypeDefinitions))), () -> assertThat(updateCaseTypeDefinitions, is(equalTo(readCaseTypeDefinitions))), - () -> assertThat(createCaseTypeDefinitions, IsCollectionContaining.hasItems(testCaseTypeDefinition1, + () -> assertThat(createCaseTypeDefinitions, hasItems(testCaseTypeDefinition1, testCaseTypeDefinition2, testCaseTypeDefinition3)) ); } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetCaseViewFromDraftOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetCaseViewFromDraftOperationTest.java index c2367042de..8ba14d78da 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetCaseViewFromDraftOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetCaseViewFromDraftOperationTest.java @@ -35,7 +35,6 @@ import static org.hamcrest.Matchers.hasProperty; import static org.hamcrest.Matchers.is; import static org.junit.jupiter.api.Assertions.assertAll; -import static org.mockito.Matchers.anyObject; import static org.mockito.Mockito.any; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.doReturn; @@ -103,7 +102,7 @@ class DefaultGetCaseViewFromDraftOperationTest { @BeforeEach public void setup() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); LocalDateTime now = LocalDateTime.now(); LocalDateTime then = LocalDateTime.now(); @@ -148,7 +147,7 @@ public void setup() { caseTypeDefinition.setJurisdictionDefinition(jurisdictionDefinition); doReturn(caseTypeDefinition).when(caseTypeService).getCaseType(CASE_TYPE_ID); - doReturn(eventsNode).when(objectMapperService).convertJsonNodeToMap(anyObject()); + doReturn(eventsNode).when(objectMapperService).convertJsonNodeToMap(any()); doAnswer(invocation -> invocation.getArgument(0)).when(fieldProcessorService).processCaseViewField(any()); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetCaseViewOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetCaseViewOperationTest.java index e9d4adbeb4..6d24616e6e 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetCaseViewOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetCaseViewOperationTest.java @@ -56,7 +56,6 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.mockito.ArgumentMatchers.anyList; import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Matchers.anyObject; import static org.mockito.Mockito.any; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.doReturn; @@ -128,7 +127,7 @@ class DefaultGetCaseViewOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); caseDetails = new CaseDetails(); caseDetails.setJurisdiction(JURISDICTION_ID); @@ -146,7 +145,7 @@ void setUp() { auditEvents = asList(event1, event2); doReturn(auditEvents).when(getEventsOperation).getEvents(caseDetails); - doReturn(eventsNode).when(objectMapperService).convertJsonNodeToMap(anyObject()); + doReturn(eventsNode).when(objectMapperService).convertJsonNodeToMap(any()); doReturn(Boolean.TRUE).when(uidService).validateUID(CASE_REFERENCE); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetCriteriaOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetCriteriaOperationTest.java index 7898e537dc..b0de507d0f 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetCriteriaOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetCriteriaOperationTest.java @@ -25,7 +25,7 @@ import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.Matchers.hasItems; import static org.hamcrest.Matchers.hasProperty; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.Mockito.doReturn; @@ -85,7 +85,7 @@ public class DefaultGetCriteriaOperationTest { @BeforeEach void setup() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); FieldTypeDefinition fieldTypeDefinition = new FieldTypeDefinition(); caseFieldDefinition1.setId("field1"); caseFieldDefinition1.setFieldTypeDefinition(fieldTypeDefinition); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetEventTriggerOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetEventTriggerOperationTest.java index daef4d5567..ee4baf4ef5 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetEventTriggerOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetEventTriggerOperationTest.java @@ -5,7 +5,7 @@ import static org.hamcrest.CoreMatchers.sameInstance; import static org.hamcrest.core.StringStartsWith.startsWith; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.Mockito.doReturn; @@ -82,7 +82,7 @@ class DefaultGetEventTriggerOperationTest { @BeforeEach public void setup() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); defaultGetEventTriggerOperation = new DefaultGetEventTriggerOperation( caseDetailsRepository, diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetJurisdictionUiConfigDefinitionOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetJurisdictionUiConfigDefinitionOperationTest.java index 1fa9de21a8..f2243cf71b 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetJurisdictionUiConfigDefinitionOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetJurisdictionUiConfigDefinitionOperationTest.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.doReturn; +import java.util.Collections; import java.util.List; import org.assertj.core.util.Lists; @@ -29,7 +30,7 @@ class DefaultGetJurisdictionUiConfigDefinitionOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); } @Test @@ -55,7 +56,7 @@ void shouldReturnJurisdictionUiConfigList() { } private JurisdictionUiConfigResult createConfigResultWithEmptyCollection() { - JurisdictionUiConfigResult jurisdictionUiConfigResult = new JurisdictionUiConfigResult(Lists.emptyList()); + JurisdictionUiConfigResult jurisdictionUiConfigResult = new JurisdictionUiConfigResult(Collections.emptyList()); return jurisdictionUiConfigResult; } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetUserProfileOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetUserProfileOperationTest.java index 03bfda35d6..ee994c4842 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetUserProfileOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/DefaultGetUserProfileOperationTest.java @@ -2,8 +2,8 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.collection.IsArrayContainingInAnyOrder.arrayContainingInAnyOrder; -import static org.junit.Assert.assertThat; +import static org.hamcrest.collection.ArrayMatching.arrayContainingInAnyOrder; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import static org.mockito.Mockito.doReturn; import static uk.gov.hmcts.ccd.domain.service.common.AccessControlService.CAN_READ; @@ -37,7 +37,7 @@ public class DefaultGetUserProfileOperationTest { @BeforeEach public void setup() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); defaultGetUserProfileOperation = new DefaultGetUserProfileOperation(userService); userProfile.setUser(user); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/MergeDataToSearchResultOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/MergeDataToSearchResultOperationTest.java index e460177162..4d3572e632 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/MergeDataToSearchResultOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/MergeDataToSearchResultOperationTest.java @@ -10,7 +10,6 @@ import java.util.Map; import java.util.UUID; import org.hamcrest.Matchers; -import org.junit.Assert; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -106,7 +105,7 @@ class MergeDataToSearchResultOperationTest { @BeforeEach void setUp() throws IOException { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); Map dataMap = buildData(CASE_FIELD_1, CASE_FIELD_2, CASE_FIELD_3, CASE_FIELD_4); ObjectNode familyDetails = (ObjectNode) new ObjectMapper().readTree(FAMILY_DETAILS_VALUE); @@ -512,7 +511,7 @@ void throwsBadRequestExceptionWhenNoNestedElementFoundForPath() { final BadRequestException exception = assertThrows(BadRequestException.class, () -> classUnderTest.execute(caseTypeDefinition, searchResult, caseDetailsList, NO_ERROR)); - Assert.assertThat(exception.getMessage(), + assertThat(exception.getMessage(), Matchers.is("CaseField " + FAMILY_DETAILS + " has no nested elements with code InvalidElement.")); } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/SearchQueryOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/SearchQueryOperationTest.java index b1ac9a21f4..6f9a98992e 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/SearchQueryOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/SearchQueryOperationTest.java @@ -33,11 +33,10 @@ import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.not; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyList; -import static org.mockito.ArgumentMatchers.anyObject; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doAnswer; @@ -111,7 +110,7 @@ public class SearchQueryOperationTest { @BeforeEach public void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); testCaseTypeDefinition = newCaseType() .withId(CASE_TYPE_ID) @@ -174,7 +173,7 @@ public void shouldIncludeDrafts() { () -> verify(getCaseTypeOperation).execute(CASE_TYPE_ID, CAN_READ), () -> verify(searchOperation).execute(metadata, criteria), () -> verify(getDraftsOperation).execute(metadata), - () -> verify(mergeDataToSearchResultOperation).execute(anyObject(), any(), argument.capture(), + () -> verify(mergeDataToSearchResultOperation).execute(any(), any(), argument.capture(), eq(NO_ERROR)), () -> assertThat(argument.getValue(), hasSize(2)), () -> assertThat(argument.getValue(), hasDraftItemInResults()) @@ -194,7 +193,7 @@ public void shouldNotCallDraftStore() { () -> verify(getCaseTypeOperation).execute(CASE_TYPE_ID, CAN_READ), () -> verify(searchOperation).execute(metadata, criteria), () -> verifyNoMoreInteractions(getDraftsOperation), - () -> verify(mergeDataToSearchResultOperation).execute(anyObject(), any(), argument.capture(), + () -> verify(mergeDataToSearchResultOperation).execute(any(), any(), argument.capture(), eq(NO_ERROR)), () -> assertThat(argument.getValue(), hasSize(1)), () -> assertThat(argument.getValue(), not(hasDraftItemInResults())) @@ -213,7 +212,7 @@ public void shouldNotCallDraftStoreForSearch() { () -> verify(getCaseTypeOperation).execute(CASE_TYPE_ID, CAN_READ), () -> verify(searchOperation).execute(metadata, criteria), () -> verifyNoMoreInteractions(getDraftsOperation), - () -> verify(mergeDataToSearchResultOperation).execute(anyObject(), any(), argument.capture(), + () -> verify(mergeDataToSearchResultOperation).execute(any(), any(), argument.capture(), eq(NO_ERROR)), () -> assertThat(argument.getValue(), hasSize(1)), () -> assertThat(argument.getValue(), not(hasDraftItemInResults())) @@ -232,7 +231,7 @@ public void shouldReturnCasesAndResultErrorButNoDraftsWhenDraftStoreUnresponsive () -> verify(getCaseTypeOperation).execute(CASE_TYPE_ID, CAN_READ), () -> verify(searchOperation).execute(metadata, criteria), () -> verify(getDraftsOperation).execute(metadata), - () -> verify(mergeDataToSearchResultOperation).execute(anyObject(), any(), eq(cases), + () -> verify(mergeDataToSearchResultOperation).execute(any(), any(), eq(cases), eq(DRAFT_STORE_DOWN_ERR_MESSAGE)) ); } @@ -247,7 +246,7 @@ public void shouldReturnEmptyNoCaseTypeFound() { () -> verify(getCaseTypeOperation).execute(CASE_TYPE_ID, CAN_READ), () -> verify(searchOperation, never()).execute(metadata, criteria), () -> verify(getDraftsOperation, never()).execute(metadata), - () -> verify(mergeDataToSearchResultOperation, never()).execute(anyObject(), any(), anyList(), anyString()) + () -> verify(mergeDataToSearchResultOperation, never()).execute(any(), any(), anyList(), anyString()) ); } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackServiceTest.java index 1b854a9c36..2b18d4ead0 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackServiceTest.java @@ -82,7 +82,7 @@ class CallbackServiceTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); caseEventDefinition.setId("TEST-EVENT"); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackServiceWireMockTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackServiceWireMockTest.java index 8009790276..119f93ac0f 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackServiceWireMockTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackServiceWireMockTest.java @@ -9,7 +9,7 @@ import static com.github.tomakehurst.wiremock.client.WireMock.verify; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.Matchers.greaterThan; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.assertAll; import static org.mockito.ArgumentMatchers.anyString; @@ -48,13 +48,13 @@ import org.springframework.http.ResponseEntity; import org.springframework.test.context.TestPropertySource; import org.springframework.web.client.RestTemplate; -import uk.gov.hmcts.ccd.WireMockBaseContractTest; +import uk.gov.hmcts.ccd.WireMockBaseTest; @TestPropertySource(properties = { "ccd.callback.timeouts=1,2,3" }) -public class CallbackServiceWireMockTest extends WireMockBaseContractTest { +public class CallbackServiceWireMockTest extends WireMockBaseTest { private static final ObjectMapper mapper = new ObjectMapper(); public static final CallbackType TEST_CALLBACK = CallbackType.ABOUT_TO_START; @@ -248,7 +248,7 @@ public void shouldGetBodyInGeneric() throws Exception { null, caseDetails, String.class); assertAll( - () -> assertThat(result.getStatusCodeValue(), is(201)), + () -> assertThat(result.getStatusCode().value(), is(201)), () -> JSONAssert.assertEquals( "{\"data\":null,\"errors\":[],\"warnings\":[],\"data_classification\":null,\"security_classification\"" + ":null}", diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/casedataaccesscontrol/PseudoRoleAssignmentsGeneratorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/casedataaccesscontrol/PseudoRoleAssignmentsGeneratorTest.java index 3504d563a2..d5a4908db1 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/casedataaccesscontrol/PseudoRoleAssignmentsGeneratorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/casedataaccesscontrol/PseudoRoleAssignmentsGeneratorTest.java @@ -50,7 +50,7 @@ class PseudoRoleAssignmentsGeneratorTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); pseudoRoleAssignmentsGenerator = new PseudoRoleAssignmentsGenerator(userRepository, caseDefinitionRepository, diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/casedataaccesscontrol/RoleAssignmentsMapperTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/casedataaccesscontrol/RoleAssignmentsMapperTest.java index 1a6e646c62..198d20f75f 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/casedataaccesscontrol/RoleAssignmentsMapperTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/casedataaccesscontrol/RoleAssignmentsMapperTest.java @@ -42,7 +42,7 @@ class RoleAssignmentsMapperTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); } @Nested diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/casedataaccesscontrol/RoleBasedCaseDataAccessControlTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/casedataaccesscontrol/RoleBasedCaseDataAccessControlTest.java index dbe35f94c5..c165ebca2d 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/casedataaccesscontrol/RoleBasedCaseDataAccessControlTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/casedataaccesscontrol/RoleBasedCaseDataAccessControlTest.java @@ -19,7 +19,7 @@ import java.util.Set; import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyZeroInteractions; +import static org.mockito.Mockito.verifyNoInteractions; import static org.mockito.Mockito.when; import static java.util.Arrays.asList; @@ -52,7 +52,7 @@ class RoleBasedCaseDataAccessControlTest { @BeforeEach void setup() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); } @Test @@ -76,7 +76,7 @@ void shouldNotGrantAccessToAccessLevelAllCreator() { instance.grantAccess(caseDetails, IDAM_ID); - verifyZeroInteractions(caseUserRepository); + verifyNoInteractions(caseUserRepository); } @Test diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/caselinking/CaseLinkMigrationServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/caselinking/CaseLinkMigrationServiceTest.java index 423d7a1b68..227375cfbb 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/caselinking/CaseLinkMigrationServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/caselinking/CaseLinkMigrationServiceTest.java @@ -9,9 +9,6 @@ import uk.gov.hmcts.ccd.data.definition.CaseDefinitionRepository; import uk.gov.hmcts.ccd.domain.model.definition.CaseDetails; import uk.gov.hmcts.ccd.domain.model.definition.CaseTypeDefinition; -import uk.gov.hmcts.ccd.domain.service.caselinking.CaseLinkService; -import uk.gov.hmcts.ccd.domain.service.caselinking.CaseLinkTestFixtures; - import java.util.ArrayList; import java.util.HashMap; import java.util.List; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/cauroles/AuthorisedCaseAssignedUserRolesOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/cauroles/AuthorisedCaseAssignedUserRolesOperationTest.java index 1dbd7f7fd7..50a4805f5e 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/cauroles/AuthorisedCaseAssignedUserRolesOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/cauroles/AuthorisedCaseAssignedUserRolesOperationTest.java @@ -29,7 +29,7 @@ class AuthorisedCaseAssignedUserRolesOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); authorisedCaseAssignedUserRolesOperation = new AuthorisedCaseAssignedUserRolesOperation( defaultCaseAssignedUserRolesOperation, caseAssignedUserRoleValidator); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/cauroles/DefaultCaseAssignedUserRolesOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/cauroles/DefaultCaseAssignedUserRolesOperationTest.java index 1ade36aaa6..757c3f96ed 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/cauroles/DefaultCaseAssignedUserRolesOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/cauroles/DefaultCaseAssignedUserRolesOperationTest.java @@ -24,7 +24,7 @@ class DefaultCaseAssignedUserRolesOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); caseAssignedUserRolesOperation = new DefaultCaseAssignedUserRolesOperation(caseAccessOperation); } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/cauroles/rolevalidator/DefaultCaseAssignedUserRoleValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/cauroles/rolevalidator/DefaultCaseAssignedUserRoleValidatorTest.java index 490993806c..00bb775df9 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/cauroles/rolevalidator/DefaultCaseAssignedUserRoleValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/cauroles/rolevalidator/DefaultCaseAssignedUserRoleValidatorTest.java @@ -39,7 +39,7 @@ class DefaultCaseAssignedUserRoleValidatorTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); caseAssignedUserRoleValidator = new DefaultCaseAssignedUserRoleValidator(userRepository, applicationParams); } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/CaseAccessServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/CaseAccessServiceTest.java index db50802627..f863d80995 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/CaseAccessServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/CaseAccessServiceTest.java @@ -89,7 +89,7 @@ class CaseAccessServiceTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); grantAccess(); } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/CaseEventEnablingServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/CaseEventEnablingServiceTest.java index a16d50c4a8..7331452cd9 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/CaseEventEnablingServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/CaseEventEnablingServiceTest.java @@ -25,7 +25,7 @@ class CaseEventEnablingServiceTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); this.caseEventEnablingService = new CaseEventEnablingService(this.enablingConditionParser); } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/CasePostStateEvaluationServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/CasePostStateEvaluationServiceTest.java index 2c13bd72bd..3440affcef 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/CasePostStateEvaluationServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/CasePostStateEvaluationServiceTest.java @@ -24,7 +24,7 @@ class CasePostStateEvaluationServiceTest extends BaseStateReferenceTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); this.casePostStateEvaluationService = new CasePostStateEvaluationService(this.enablingConditionParser); } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/CasePostStateServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/CasePostStateServiceTest.java index 7a41652c6e..7d37277fc8 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/CasePostStateServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/CasePostStateServiceTest.java @@ -27,7 +27,7 @@ class CasePostStateServiceTest extends BaseStateReferenceTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); casePostStateService = new CasePostStateService(new PrioritiseEnablingCondition(), this.casePostStateEvaluationService); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/CaseServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/CaseServiceTest.java index 84d99874e3..3482d4d63b 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/CaseServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/CaseServiceTest.java @@ -67,7 +67,7 @@ class CaseServiceTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); doReturn(true).when(uidService).validateUID(CASE_REFERENCE); caseDetails = buildCaseDetails(); caseDetails.setId(CASE_ID); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/CaseTypeServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/CaseTypeServiceTest.java index c863672ad2..c0823b6ac0 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/CaseTypeServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/CaseTypeServiceTest.java @@ -25,7 +25,7 @@ import java.util.Map; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.times; @@ -46,7 +46,7 @@ class CaseTypeServiceTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); subject = new CaseTypeService(caseDataValidator, caseDefinitionRepository); } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/DefaultAuthorisedCaseDefinitionDataServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/DefaultAuthorisedCaseDefinitionDataServiceTest.java index 372355bd9c..cfdd4aa53e 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/DefaultAuthorisedCaseDefinitionDataServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/DefaultAuthorisedCaseDefinitionDataServiceTest.java @@ -52,7 +52,7 @@ class DefaultAuthorisedCaseDefinitionDataServiceTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(caseTypeDefinition.getJurisdictionDefinition()).thenReturn(newJurisdiction().withJurisdictionId("jid") .build()); } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/DefaultObjectMapperServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/DefaultObjectMapperServiceTest.java index 1b04e58bde..9dd80605cd 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/DefaultObjectMapperServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/DefaultObjectMapperServiceTest.java @@ -21,7 +21,7 @@ import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; -import org.mockito.Matchers; +import org.mockito.ArgumentMatchers; import uk.gov.hmcts.ccd.endpoint.exceptions.ServiceException; class DefaultObjectMapperServiceTest { @@ -133,7 +133,7 @@ void shouldThrowExceptionOnConvertObjectToString() throws JsonProcessingExceptio ObjectMapper objectMapper = mock(ObjectMapper.class); DefaultObjectMapperService service = new DefaultObjectMapperService(objectMapper); doThrow(new IllegalArgumentException("")).when(objectMapper).convertValue(any(), - Matchers.>>any()); + ArgumentMatchers.>>any()); assertThrows(ServiceException.class, () -> service.convertJsonNodeToMap(node)); } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/SecurityClassificationServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/SecurityClassificationServiceTest.java index 36e3bcd0de..5605f41d40 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/SecurityClassificationServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/SecurityClassificationServiceTest.java @@ -82,7 +82,7 @@ public class SecurityClassificationServiceTest { @BeforeEach public void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); caseDetails = new CaseDetails(); caseDetails.setJurisdiction(JURISDICTION_ID); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/SecurityValidationServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/SecurityValidationServiceTest.java index 5ddce99437..94489a0963 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/SecurityValidationServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/SecurityValidationServiceTest.java @@ -2,7 +2,6 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.JsonNodeFactory; -import org.junit.Assert; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; @@ -15,6 +14,7 @@ import java.util.Map; import static com.google.common.collect.Lists.newArrayList; +import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; import static org.hamcrest.collection.IsMapContaining.hasEntry; import static org.junit.jupiter.api.Assertions.assertAll; @@ -33,7 +33,7 @@ class SecurityValidationServiceTest { @BeforeEach public void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); securityValidationService = new SecurityValidationService(); } @@ -82,7 +82,7 @@ void shouldIncreaseSecurityIfValidClassificationLevelForCase() { securityValidationService.setClassificationFromCallbackIfValid(callbackResponse, caseDetails, defaultDataClassification); - Assert.assertThat(caseDetails.getSecurityClassification(), is(PRIVATE)); + assertThat(caseDetails.getSecurityClassification(), is(PRIVATE)); } } @@ -113,8 +113,8 @@ void shouldIncreaseSecurityIfValidClassificationLevelForCaseAndDataNodes() { defaultDataClassification); assertAll( - () -> Assert.assertThat(caseDetails.getDataClassification().size(), is(1)), - () -> Assert.assertThat(caseDetails.getDataClassification(), hasEntry("field1", + () -> assertThat(caseDetails.getDataClassification().size(), is(1)), + () -> assertThat(caseDetails.getDataClassification(), hasEntry("field1", getTextNode("RESTRICTED"))) ); } @@ -248,13 +248,13 @@ void shouldIncreaseSecurityIfValidClassificationLevelForCaseAndDataNodes() { defaultDataClassification); assertAll( - () -> Assert.assertThat(caseDetails.getDataClassification().size(), is(1)), - () -> Assert.assertThat(caseDetails.getDataClassification().get("complexField1").size(), is(2)), - () -> Assert.assertThat(caseDetails.getDataClassification().get("complexField1").get("classification"), + () -> assertThat(caseDetails.getDataClassification().size(), is(1)), + () -> assertThat(caseDetails.getDataClassification().get("complexField1").size(), is(2)), + () -> assertThat(caseDetails.getDataClassification().get("complexField1").get("classification"), is(getTextNode("RESTRICTED"))), - () -> Assert.assertThat(caseDetails.getDataClassification().get("complexField1").get("value").size(), + () -> assertThat(caseDetails.getDataClassification().get("complexField1").get("value").size(), is(1)), - () -> Assert.assertThat(caseDetails.getDataClassification().get("complexField1").get("value") + () -> assertThat(caseDetails.getDataClassification().get("complexField1").get("value") .get("field2"), is(getTextNode("RESTRICTED"))) ); } @@ -653,15 +653,15 @@ void shouldIncreaseSecurityIfValidClassificationLevelForCaseAndDataNodes() { defaultDataClassification); assertAll( - () -> Assert.assertThat(caseDetails.getDataClassification().size(), is(1)), - () -> Assert.assertThat(caseDetails.getDataClassification().get("collectionField1").size(), is(2)), - () -> Assert.assertThat(caseDetails.getDataClassification().get("collectionField1") + () -> assertThat(caseDetails.getDataClassification().size(), is(1)), + () -> assertThat(caseDetails.getDataClassification().get("collectionField1").size(), is(2)), + () -> assertThat(caseDetails.getDataClassification().get("collectionField1") .get("classification"), is(getTextNode("RESTRICTED"))), - () -> Assert.assertThat(caseDetails.getDataClassification().get("collectionField1").get("value") + () -> assertThat(caseDetails.getDataClassification().get("collectionField1").get("value") .size(), is(1)), - () -> Assert.assertThat(caseDetails.getDataClassification().get("collectionField1").get("value") + () -> assertThat(caseDetails.getDataClassification().get("collectionField1").get("value") .get(0).get("id"), is(getTextNode("someId1"))), - () -> Assert.assertThat(caseDetails.getDataClassification().get("collectionField1").get("value") + () -> assertThat(caseDetails.getDataClassification().get("collectionField1").get("value") .get(0).get("value").get("field2"), is(getTextNode("RESTRICTED"))) ); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/AuthorisedCreateCaseOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/AuthorisedCreateCaseOperationTest.java index 1e6dcc1eb8..40fc192b8f 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/AuthorisedCreateCaseOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/AuthorisedCreateCaseOperationTest.java @@ -92,7 +92,7 @@ class AuthorisedCreateCaseOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); authorisedCreateCaseOperation = new AuthorisedCreateCaseOperation( classifiedCreateCaseOperation, caseDefinitionRepository, accessControlService, caseAccessService); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/ClassifiedCreateCaseOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/ClassifiedCreateCaseOperationTest.java index 75876ee8e3..c42b1096f8 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/ClassifiedCreateCaseOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/ClassifiedCreateCaseOperationTest.java @@ -40,7 +40,7 @@ class ClassifiedCreateCaseOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); caseDetails = new CaseDetails(); doReturn(caseDetails).when(createCaseOperation).createCaseDetails(CASE_TYPE_ID, diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/DefaultCreateCaseOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/DefaultCreateCaseOperationTest.java index ace1e2b05f..bd2e3740cc 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/DefaultCreateCaseOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/DefaultCreateCaseOperationTest.java @@ -10,6 +10,7 @@ import org.mockito.InOrder; import org.mockito.Mock; import org.mockito.MockitoAnnotations; +import org.springframework.http.HttpStatusCode; import org.springframework.http.ResponseEntity; import uk.gov.hmcts.ccd.data.definition.CaseDefinitionRepository; import uk.gov.hmcts.ccd.data.draft.DraftGateway; @@ -49,10 +50,9 @@ import java.util.Map; import static org.hamcrest.core.Is.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.mockito.ArgumentMatchers.anyObject; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.BDDMockito.given; import static org.mockito.BDDMockito.willDoNothing; @@ -65,7 +65,7 @@ import static org.mockito.Mockito.same; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyZeroInteractions; +import static org.mockito.Mockito.verifyNoInteractions; import static org.mockito.Mockito.when; import static uk.gov.hmcts.ccd.domain.model.std.EventBuilder.anEvent; import static uk.gov.hmcts.ccd.domain.service.common.TestBuildersUtil.CaseDataContentBuilder.newCaseDataContent; @@ -141,7 +141,7 @@ class DefaultCreateCaseOperationTest { @BeforeEach void setup() throws Exception { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); defaultCreateCaseOperation = new DefaultCreateCaseOperation(userRepository, caseDefinitionRepository, eventTriggerService, @@ -167,7 +167,7 @@ void setup() throws Exception { CASE_TYPE = buildCaseType(); SupplementaryData supplementaryData = new SupplementaryData(); - when(supplementaryDataUpdateOperation.updateSupplementaryData(anyString(), anyObject())) + when(supplementaryDataUpdateOperation.updateSupplementaryData(anyString(), any())) .thenReturn(supplementaryData); } @@ -428,7 +428,7 @@ void shouldReturnSavedCaseDetails_whenSubmittedCallBackUrlIsBlank() { same(IGNORE_WARNING), any()), () -> order.verify(draftGateway).delete(DRAFT_ID), - () -> verifyZeroInteractions(callbackInvoker), + () -> verifyNoInteractions(callbackInvoker), () -> assertCaseDetails(caseDetailsArgumentCaptor.getValue()), () -> assertThat(caseDetails, is(savedCaseType)) ); @@ -487,7 +487,7 @@ void shouldReturnSavedCaseDetails_whenCallBackFails() { any(CaseDetails.class), same(IGNORE_WARNING), any()), - () -> order.verify(callbackInvoker).invokeSubmittedCallback(eq(eventTrigger), isNull(CaseDetails.class), + () -> order.verify(callbackInvoker).invokeSubmittedCallback(eq(eventTrigger), isNull(), same(savedCaseType)), () -> order.verify(savedCaseType).setIncompleteCallbackResponse(), () -> order.verify(draftGateway).delete(DRAFT_ID) @@ -511,7 +511,7 @@ void shouldReturnAlsoCallbackResponse_whenCallBackIsInvokedSuccessfully() { savedCaseType)).willReturn(response); given(response.hasBody()).willReturn(true); given(response.getBody()).willReturn(responseBody); - given(response.getStatusCodeValue()).willReturn(200); + given(response.getStatusCode()).willReturn(HttpStatusCode.valueOf(200)); given(savedCaseType.getCaseTypeId()).willReturn(mockCaseTypeId); given(validateCaseFieldsOperation.validateCaseDetails(CASE_TYPE_ID, eventData)) .willReturn(data); @@ -551,7 +551,7 @@ void shouldReturnAlsoCallbackResponse_whenCallBackIsInvokedSuccessfully() { any(CaseDetails.class), same(IGNORE_WARNING), any()), - () -> order.verify(callbackInvoker).invokeSubmittedCallback(eq(eventTrigger), isNull(CaseDetails.class), + () -> order.verify(callbackInvoker).invokeSubmittedCallback(eq(eventTrigger), isNull(), same(savedCaseType)), () -> order.verify(savedCaseType).setAfterSubmitCallbackResponseEntity(response), () -> order.verify(draftGateway).delete(DRAFT_ID) @@ -577,7 +577,7 @@ void shouldInsertCaseLinks() { savedCaseType)).willReturn(response); given(response.hasBody()).willReturn(true); given(response.getBody()).willReturn(responseBody); - given(response.getStatusCodeValue()).willReturn(200); + given(response.getStatusCode()).willReturn(HttpStatusCode.valueOf(200)); given(savedCaseType.getCaseTypeId()).willReturn(CASE_TYPE_ID); given(savedCaseType.getId()).willReturn(CASE_ID); given(savedCaseType.getData()).willReturn(data); @@ -618,7 +618,7 @@ void shouldInsertCaseLinks() { any(CaseDetails.class), same(IGNORE_WARNING), any()), - () -> order.verify(callbackInvoker).invokeSubmittedCallback(eq(eventTrigger), isNull(CaseDetails.class), + () -> order.verify(callbackInvoker).invokeSubmittedCallback(eq(eventTrigger), isNull(), same(savedCaseType)), () -> order.verify(savedCaseType).setAfterSubmitCallbackResponseEntity(response), () -> order.verify(caseLinkService).updateCaseLinks(caseDetails, CASE_TYPE.getCaseFieldDefinitions()), diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/SubmitCaseTransactionCaseAccessGroupTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/SubmitCaseTransactionCaseAccessGroupTest.java index d91c9fcd16..bd1a2e1aeb 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/SubmitCaseTransactionCaseAccessGroupTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/SubmitCaseTransactionCaseAccessGroupTest.java @@ -146,7 +146,7 @@ class SubmitCaseTransactionCaseAccessGroupTest { @BeforeEach void setup() throws IOException { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); event = buildEvent(); caseTypeDefinition = buildCaseType(); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/SubmitCaseTransactionTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/SubmitCaseTransactionTest.java index 07c7039512..e7bb680872 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/SubmitCaseTransactionTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/SubmitCaseTransactionTest.java @@ -39,7 +39,6 @@ import java.io.IOException; import java.io.InputStream; -import java.time.LocalDateTime; import java.util.HashMap; import java.util.Map; import java.util.Optional; @@ -135,7 +134,7 @@ class SubmitCaseTransactionTest { @BeforeEach void setup() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); event = buildEvent(); caseTypeDefinition = buildCaseType(); @@ -212,8 +211,8 @@ void shouldPersistCase() { assertAll( () -> assertThat(actualCaseDetails, sameInstance(savedCaseDetails)), - () -> order.verify(caseDetails).setCreatedDate(notNull(LocalDateTime.class)), - () -> order.verify(caseDetails).setLastStateModifiedDate(notNull(LocalDateTime.class)), + () -> order.verify(caseDetails).setCreatedDate(notNull()), + () -> order.verify(caseDetails).setLastStateModifiedDate(notNull()), () -> order.verify(caseDetails).setReference(Long.valueOf(CASE_UID)), () -> order.verify(caseDetailsRepository).set(caseDetails) ); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/AuthorisedCreateEventOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/AuthorisedCreateEventOperationTest.java index 036511ab25..f02a5f727a 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/AuthorisedCreateEventOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/AuthorisedCreateEventOperationTest.java @@ -162,7 +162,7 @@ class AuthorisedCreateEventOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); EVENT.setEventId(EVENT_ID); authorisedCreateEventOperation = new AuthorisedCreateEventOperation( createEventOperation, diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/ClassifiedCreateEventOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/ClassifiedCreateEventOperationTest.java index f1014571b4..c53531236a 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/ClassifiedCreateEventOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/ClassifiedCreateEventOperationTest.java @@ -43,7 +43,7 @@ class ClassifiedCreateEventOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); caseDetails = new CaseDetails(); doReturn(caseDetails).when(createEventOperation).createCaseEvent(CASE_REFERENCE, diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/CreateCaseEventServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/CreateCaseEventServiceTest.java index 93f63648cf..db5aed5ec1 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/CreateCaseEventServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/CreateCaseEventServiceTest.java @@ -184,7 +184,7 @@ class CreateCaseEventServiceTest extends TestFixtures { @BeforeEach void setUp() throws Exception { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); event = buildEvent(); data = buildJsonNodeData(); @@ -603,7 +603,7 @@ void shouldNotReplaceUploadTimestampInDocument() throws Exception { Map data = Maps.newHashMap(); ObjectNode objectNode = createBasicDoc(); final String uploadTimestamp = "2001-01-01T01:02:03.00Z"; - objectNode.put(UPLOAD_TIMESTAMP, new TextNode(uploadTimestamp)); + objectNode.set(UPLOAD_TIMESTAMP, new TextNode(uploadTimestamp)); data.put("dataKey1", objectNode); caseDetails.setData(data); caseDetailsFromDB = caseDetails.shallowClone(); @@ -645,9 +645,9 @@ private Map buildJsonNodeData() { private ObjectNode createBasicDoc() { ObjectNode node = MAPPER.createObjectNode(); - node.put(DOCUMENT_URL, new TextNode(VALID_DOCUMENT_URL)); - node.put(DOCUMENT_BINARY_URL, new TextNode(VALID_DOCUMENT_URL + "/binary")); - node.put("document_filename", new TextNode("test-a5.pdf")); + node.set(DOCUMENT_URL, new TextNode(VALID_DOCUMENT_URL)); + node.set(DOCUMENT_BINARY_URL, new TextNode(VALID_DOCUMENT_URL + "/binary")); + node.set("document_filename", new TextNode("test-a5.pdf")); return node; } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/DefaultCreateEventOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/DefaultCreateEventOperationTest.java index bd390b4e91..8bd49af996 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/DefaultCreateEventOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/DefaultCreateEventOperationTest.java @@ -91,7 +91,7 @@ private static Event buildEvent() { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); event = buildEvent(); data = buildJsonNodeData(); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/MidEventCallbackTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/MidEventCallbackTest.java index f4c12f0e18..e7cb432a29 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/MidEventCallbackTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/MidEventCallbackTest.java @@ -32,7 +32,7 @@ import static java.util.Arrays.asList; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.never; @@ -74,7 +74,7 @@ class MidEventCallbackTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); event = new Event(); event.setEventId("createCase"); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/getcase/AuthorisedGetCaseOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/getcase/AuthorisedGetCaseOperationTest.java index abf7cb3a97..24760c054c 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/getcase/AuthorisedGetCaseOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/getcase/AuthorisedGetCaseOperationTest.java @@ -76,7 +76,7 @@ class AuthorisedGetCaseOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); caseDetails = new CaseDetails(); caseDetails.setCaseTypeId(CASE_TYPE_ID); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/getcase/ClassifiedGetCaseOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/getcase/ClassifiedGetCaseOperationTest.java index 96d458491e..330551000f 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/getcase/ClassifiedGetCaseOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/getcase/ClassifiedGetCaseOperationTest.java @@ -38,7 +38,7 @@ class ClassifiedGetCaseOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); caseDetails = Optional.of(new CaseDetails()); doReturn(caseDetails).when(getCaseOperation).execute(JURISDICTION_ID, CASE_TYPE_ID, CASE_REFERENCE); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/getcase/CreatorGetCaseOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/getcase/CreatorGetCaseOperationTest.java index 2337e7d278..ec11d13c7c 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/getcase/CreatorGetCaseOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/getcase/CreatorGetCaseOperationTest.java @@ -40,7 +40,7 @@ class CreatorGetCaseOperationTest { @BeforeEach public void setupMocks() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); classUnderTest = new CreatorGetCaseOperation(getCaseOperation, caseAccessService, applicationParams); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/getcase/DefaultGetCaseOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/getcase/DefaultGetCaseOperationTest.java index c59e71bb65..6b5a363c37 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/getcase/DefaultGetCaseOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/getcase/DefaultGetCaseOperationTest.java @@ -37,7 +37,7 @@ class DefaultGetCaseOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); doReturn(Boolean.TRUE).when(uidService).validateUID(CASE_REFERENCE); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/getcase/RestrictedGetCaseOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/getcase/RestrictedGetCaseOperationTest.java index af186c67fc..f7df07812c 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/getcase/RestrictedGetCaseOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/getcase/RestrictedGetCaseOperationTest.java @@ -73,7 +73,7 @@ class RestrictedGetCaseOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); caseDetails = new CaseDetails(); caseDetails.setCaseTypeId(CASE_TYPE_ID); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/CaseDocumentMetadataMapperTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/CaseDocumentMetadataMapperTest.java index a7981aebe2..7897ca1ce8 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/CaseDocumentMetadataMapperTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/CaseDocumentMetadataMapperTest.java @@ -3,7 +3,7 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; -import uk.gov.hmcts.ccd.WireMockBaseContractTest; +import uk.gov.hmcts.ccd.WireMockBaseTest; import uk.gov.hmcts.ccd.domain.model.search.CaseDocumentsMetadata; import uk.gov.hmcts.ccd.v2.external.domain.DocumentHashToken; @@ -17,7 +17,7 @@ @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) -class CaseDocumentMetadataMapperTest extends WireMockBaseContractTest { +class CaseDocumentMetadataMapperTest extends WireMockBaseTest { @Autowired private CaseDocumentMetadataMapper mapper; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/GetCaseDocumentsOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/GetCaseDocumentsOperationTest.java index 15e848c801..86c9bb43f3 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/GetCaseDocumentsOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/GetCaseDocumentsOperationTest.java @@ -58,7 +58,7 @@ public class GetCaseDocumentsOperationTest { @BeforeEach public void setUp() throws IOException { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); caseDocumentsOperation = new GetCaseDocumentOperation(getCaseOperation, documentIdValidationService); caseDetails = prepareCaseDetails(); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/getdraft/DefaultGetDraftsOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/getdraft/DefaultGetDraftsOperationTest.java index 90b0097336..0c2d3c0138 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/getdraft/DefaultGetDraftsOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/getdraft/DefaultGetDraftsOperationTest.java @@ -22,7 +22,7 @@ import static org.hamcrest.Matchers.hasProperty; import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.never; @@ -55,7 +55,7 @@ class DefaultGetDraftsOperationTest { @BeforeEach public void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); metadata = new MetaData(CASE_TYPE_ID, JURISDICTION_ID); draft = newDraftResponse() diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/getevents/AuthorisedGetEventsOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/getevents/AuthorisedGetEventsOperationTest.java index 32118e6a89..ee071b7744 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/getevents/AuthorisedGetEventsOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/getevents/AuthorisedGetEventsOperationTest.java @@ -33,7 +33,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Matchers.any; -import static org.mockito.Mockito.anyListOf; +import static org.mockito.Mockito.anyList; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.inOrder; @@ -83,7 +83,7 @@ class AuthorisedGetEventsOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); caseType = new CaseTypeDefinition(); List eventsDefinition = new ArrayList<>(); @@ -278,7 +278,7 @@ void shouldReturnEmptyListWhenGetEventsReturnsNull() { void shouldApplyAuthorisationForJurisdictionCaseTypeIdAndEvent() { doReturn(Optional.of(event)).when(getEventsOperation).getEvent(caseDetails, CASE_TYPE_ID, EVENT_ID); doReturn(singletonList(event)).when(accessControlService) - .filterCaseAuditEventsByReadAccess(anyListOf(AuditEvent.class), anyListOf(CaseEventDefinition.class), + .filterCaseAuditEventsByReadAccess(anyList(), anyList(), eq(CASE_USER_ROLES)); Optional optionalAuditEvent = @@ -295,7 +295,7 @@ void shouldApplyAuthorisationForJurisdictionCaseTypeIdAndEvent() { () -> inOrder.verify(accessControlService).canAccessCaseTypeWithCriteria(caseType, CASE_USER_ROLES, CAN_READ), () -> inOrder.verify(accessControlService) - .filterCaseAuditEventsByReadAccess(anyListOf(AuditEvent.class), eq(caseType.getEvents()), + .filterCaseAuditEventsByReadAccess(anyList(), eq(caseType.getEvents()), eq(CASE_USER_ROLES)), () -> assertThat(output, is(event)) ); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/getevents/ClassifiedGetEventsOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/getevents/ClassifiedGetEventsOperationTest.java index b0eee3765a..d80b1e0cd2 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/getevents/ClassifiedGetEventsOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/getevents/ClassifiedGetEventsOperationTest.java @@ -21,7 +21,7 @@ import static org.hamcrest.Matchers.notNullValue; import static org.hamcrest.Matchers.sameInstance; import static org.junit.jupiter.api.Assertions.assertAll; -import static org.mockito.Mockito.anyListOf; +import static org.mockito.Mockito.anyList; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.inOrder; @@ -53,7 +53,7 @@ class ClassifiedGetEventsOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); caseDetails = new CaseDetails(); caseDetails.setReference(Long.valueOf(CASE_REFERENCE)); @@ -163,14 +163,14 @@ void shouldReturnEmptyListWhenNullDataFoundForCaseReference() { void shouldApplySecurityClassificationsForJurisdictionCaseTypeIdAndEventId() { doReturn(Optional.of(event)).when(getEventsOperation).getEvent(caseDetails, CASE_TYPE_ID, EVENT_ID); doReturn(classifiedEvents).when(classificationService) - .applyClassification(eq(caseDetails), anyListOf(AuditEvent.class)); + .applyClassification(eq(caseDetails), anyList()); Optional optionalAuditEvent = classifiedOperation.getEvent(caseDetails, CASE_TYPE_ID, EVENT_ID); assertThat(optionalAuditEvent.isPresent(), is(true)); AuditEvent output = optionalAuditEvent.get(); assertAll( - () -> verify(classificationService).applyClassification(eq(caseDetails), anyListOf(AuditEvent.class)), + () -> verify(classificationService).applyClassification(eq(caseDetails), anyList()), () -> assertThat(output, sameInstance(event)) ); } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/getevents/DefaultGetEventsOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/getevents/DefaultGetEventsOperationTest.java index 41dd614e80..f7afd5f961 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/getevents/DefaultGetEventsOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/getevents/DefaultGetEventsOperationTest.java @@ -46,7 +46,7 @@ class DefaultGetEventsOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); caseDetails = new CaseDetails(); caseDetails.setId(String.valueOf(CASE_ID)); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperationIT.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperationIT.java index 4d30528f97..e8e89b5538 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperationIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperationIT.java @@ -118,7 +118,7 @@ public class AuditCaseRemoteOperationIT extends WireMockBaseTest { @Before public void setUp() throws IOException { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); IdamUser user = new IdamUser(); user.setId(IDAM_ID); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperationTest.java index b6afc87ab4..a05bad335b 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperationTest.java @@ -87,7 +87,7 @@ class AuditCaseRemoteOperationTest { @BeforeEach void setUp() throws JsonProcessingException { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); doReturn("Bearer 1234").when(securityUtils).getServiceAuthorization(); doReturn("http://localhost/caseAction").when(auditCaseRemoteConfiguration).getCaseActionAuditUrl(); doReturn("http://localhost/caseSearch").when(auditCaseRemoteConfiguration).getCaseSearchAuditUrl(); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/message/CaseEventMessageServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/message/CaseEventMessageServiceTest.java index 480f514354..74cbea5c00 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/message/CaseEventMessageServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/message/CaseEventMessageServiceTest.java @@ -79,7 +79,7 @@ class CaseEventMessageServiceTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); doReturn(getUser()).when(userRepository).getUser(); doReturn(getAuditEvent()).when(caseAuditEventRepository).findByCase(any()); fixedClock = Clock.fixed(Instant.now(), ZoneId.systemDefault()); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/message/additionaldata/AdditionalDataContextTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/message/additionaldata/AdditionalDataContextTest.java index 1b55cbe211..734d7abe0b 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/message/additionaldata/AdditionalDataContextTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/message/additionaldata/AdditionalDataContextTest.java @@ -46,7 +46,7 @@ class AdditionalDataContextTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); } @Test diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/message/additionaldata/DataBlockGeneratorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/message/additionaldata/DataBlockGeneratorTest.java index ed2e1e9142..a4e999f5f2 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/message/additionaldata/DataBlockGeneratorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/message/additionaldata/DataBlockGeneratorTest.java @@ -69,7 +69,7 @@ class DataBlockGeneratorTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/DateTimeEntryProcessorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/DateTimeEntryProcessorTest.java index deb48e4f5b..86cf4954a0 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/DateTimeEntryProcessorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/DateTimeEntryProcessorTest.java @@ -64,9 +64,9 @@ class DateTimeEntryProcessorTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); - when(definitionRepository.getBaseTypes()).thenReturn(Collections.EMPTY_LIST); + when(definitionRepository.getBaseTypes()).thenReturn(Collections.emptyList()); BaseType.setCaseDefinitionRepository(definitionRepository); BaseType.initialise(); setUpBaseTypes(); @@ -86,7 +86,7 @@ void shouldReturnProcessedNodeForSimpleField() throws IOException { JsonNode result = dateTimeEntryProcessor.execute(node, new CaseFieldDefinition(), new CaseEventFieldDefinition(), - wizardPageField(ID, Collections.EMPTY_LIST)); + wizardPageField(ID, Collections.emptyList())); assertAll( () -> assertThat(result.isTextual(), is(true)), @@ -107,7 +107,7 @@ void shouldReturnProcessedNodeForSimpleFieldNullDisplayContextParameter() throws JsonNode result = dateTimeEntryProcessor.execute(node, new CaseFieldDefinition(), new CaseEventFieldDefinition(), - wizardPageField(ID, Collections.EMPTY_LIST)); + wizardPageField(ID, Collections.emptyList())); assertAll( () -> assertThat(result.isTextual(), is(true)), @@ -129,7 +129,7 @@ void shouldReturnProcessedNodeForSimpleFieldIncorrectDisplayContextParameter() t JsonNode result = dateTimeEntryProcessor.execute(node, new CaseFieldDefinition(), new CaseEventFieldDefinition(), - wizardPageField(ID, Collections.EMPTY_LIST)); + wizardPageField(ID, Collections.emptyList())); assertAll( () -> assertThat(result.isTextual(), is(true)), @@ -143,8 +143,8 @@ void shouldReturnProcessedNodeForCollectionField() throws IOException { + "\"25/12/1995\"}]}"; JsonNode node = MAPPER.readTree(json).get("CollectionField"); CaseViewField caseViewField = caseViewField(ID, "#DATETIMEENTRY(dd/MM/yyyy)", - fieldType("Collection", "Collection", Collections.EMPTY_LIST, fieldType( - "DateTime", "DateTime", Collections.EMPTY_LIST, null + fieldType("Collection", "Collection", Collections.emptyList(), fieldType( + "DateTime", "DateTime", Collections.emptyList(), null )) ); when(caseViewFieldBuilder.build(any(), any())).thenReturn(caseViewField); @@ -158,7 +158,7 @@ void shouldReturnProcessedNodeForCollectionField() throws IOException { JsonNode result = dateTimeEntryProcessor.execute(node, new CaseFieldDefinition(), new CaseEventFieldDefinition(), - wizardPageField(ID, Collections.EMPTY_LIST)); + wizardPageField(ID, Collections.emptyList())); assertAll( () -> assertThat(result.isArray(), is(true)), @@ -208,7 +208,7 @@ void shouldReturnProcessedNodeForComplexField() throws IOException { .thenReturn(new TextNode("1970-12-01")); JsonNode result = dateTimeEntryProcessor.execute(node, caseField6, new CaseEventFieldDefinition(), - wizardPageField(ID, Collections.EMPTY_LIST)); + wizardPageField(ID, Collections.emptyList())); assertAll( () -> assertThat(result.isObject(), is(true)), @@ -220,12 +220,6 @@ void shouldReturnProcessedNodeForComplexField() throws IOException { ); } - private CaseFieldDefinition caseField(String id) { - CaseFieldDefinition caseField = new CaseFieldDefinition(); - caseField.setId(id); - return caseField; - } - private WizardPageField wizardPageField(String id, List overrides) { WizardPageField wizardPageField = new WizardPageField(); wizardPageField.setCaseFieldId(id); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/FieldProcessorServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/FieldProcessorServiceTest.java index c5e7026fcc..499d4864cc 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/FieldProcessorServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/FieldProcessorServiceTest.java @@ -80,7 +80,7 @@ class FieldProcessorServiceTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); caseDataFieldProcessors.add(caseDataFieldProcessor1); caseDataFieldProcessors.add(caseDataFieldProcessor2); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeFormatParserTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeFormatParserTest.java index 65c31bb437..b392d8f75b 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeFormatParserTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeFormatParserTest.java @@ -41,9 +41,9 @@ class DateTimeFormatParserTest { @BeforeEach void setUp() { dateTimeFormatParser = new DateTimeFormatParser(); - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); - when(definitionRepository.getBaseTypes()).thenReturn(Collections.EMPTY_LIST); + when(definitionRepository.getBaseTypes()).thenReturn(Collections.emptyList()); BaseType.setCaseDefinitionRepository(definitionRepository); BaseType.initialise(); setUpBaseTypes(); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeSearchInputProcessorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeSearchInputProcessorTest.java index da5fb6f594..707b3ded35 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeSearchInputProcessorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeSearchInputProcessorTest.java @@ -22,8 +22,6 @@ import uk.gov.hmcts.ccd.domain.model.search.CriteriaType; import uk.gov.hmcts.ccd.domain.model.search.Field; import uk.gov.hmcts.ccd.domain.service.aggregated.GetCriteriaOperation; -import uk.gov.hmcts.ccd.domain.service.processor.date.DateTimeFormatParser; -import uk.gov.hmcts.ccd.domain.service.processor.date.DateTimeSearchInputProcessor; import uk.gov.hmcts.ccd.endpoint.exceptions.DataProcessingException; import static org.hamcrest.MatcherAssert.assertThat; @@ -64,7 +62,7 @@ class DateTimeSearchInputProcessorTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); CriteriaInput criteriaInput1 = new CriteriaInput(); CriteriaInput criteriaInput2 = new CriteriaInput(); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeSearchResultProcessorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeSearchResultProcessorTest.java index 0d3a92a092..582036a9e2 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeSearchResultProcessorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeSearchResultProcessorTest.java @@ -23,8 +23,6 @@ import uk.gov.hmcts.ccd.domain.model.definition.FieldTypeDefinition; import uk.gov.hmcts.ccd.domain.model.search.SearchResultViewColumn; import uk.gov.hmcts.ccd.domain.model.search.SearchResultViewItem; -import uk.gov.hmcts.ccd.domain.service.processor.date.DateTimeFormatParser; -import uk.gov.hmcts.ccd.domain.service.processor.date.DateTimeSearchResultProcessor; import uk.gov.hmcts.ccd.domain.types.BaseType; import uk.gov.hmcts.ccd.domain.types.CollectionValidator; @@ -63,9 +61,9 @@ class DateTimeSearchResultProcessorTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); - when(definitionRepository.getBaseTypes()).thenReturn(Collections.EMPTY_LIST); + when(definitionRepository.getBaseTypes()).thenReturn(Collections.emptyList()); BaseType.setCaseDefinitionRepository(definitionRepository); BaseType.initialise(); setUpBaseTypes(); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeValueFormatterTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeValueFormatterTest.java index 863c71c7ad..8f9725aa1f 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeValueFormatterTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeValueFormatterTest.java @@ -63,9 +63,9 @@ class DateTimeValueFormatterTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); - when(definitionRepository.getBaseTypes()).thenReturn(Collections.EMPTY_LIST); + when(definitionRepository.getBaseTypes()).thenReturn(Collections.emptyList()); BaseType.setCaseDefinitionRepository(definitionRepository); BaseType.initialise(); } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/AuthorisedSearchOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/AuthorisedSearchOperationTest.java index 8f308caafe..b65c2c42fa 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/AuthorisedSearchOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/AuthorisedSearchOperationTest.java @@ -100,7 +100,7 @@ class AuthorisedSearchOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); metaData = new MetaData(CASE_TYPE_ID, JURISDICTION_ID); criteria = new HashMap<>(); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/ClassifiedSearchOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/ClassifiedSearchOperationTest.java index 2df78bf125..65ada2ad18 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/ClassifiedSearchOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/ClassifiedSearchOperationTest.java @@ -45,7 +45,7 @@ class ClassifiedSearchOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); metaData = new MetaData(CASE_TYPE_ID, JURISDICTION_ID); criteria = new HashMap<>(); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/DefaultSearchOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/DefaultSearchOperationTest.java index 9b81fc6ae6..c235108c2b 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/DefaultSearchOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/DefaultSearchOperationTest.java @@ -39,7 +39,7 @@ class DefaultSearchOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); searchOperation = new DefaultSearchOperation(caseDetailsRepository); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/PaginatedSearchMetaDataOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/PaginatedSearchMetaDataOperationTest.java index ca7fc59d54..94a4b005ac 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/PaginatedSearchMetaDataOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/PaginatedSearchMetaDataOperationTest.java @@ -14,7 +14,7 @@ import java.util.Optional; import static org.hamcrest.CoreMatchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import static org.mockito.Mockito.doReturn; @@ -33,7 +33,7 @@ class PaginatedSearchMetaDataOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); paginatedSearchMetadata.setTotalResultsCount(60); paginatedSearchMetadata.setTotalPagesCount(3); paginatedSearchMetaDataOperation = new PaginatedSearchMetaDataOperation(caseDetailsRepository); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/SearchResultDefinitionServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/SearchResultDefinitionServiceTest.java index dc8b0f5a21..4f3526cfe3 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/SearchResultDefinitionServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/SearchResultDefinitionServiceTest.java @@ -15,7 +15,7 @@ import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.nullValue; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.verifyNoMoreInteractions; @@ -61,7 +61,7 @@ class SearchResultDefinitionServiceTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); testCaseTypeDefinition = newCaseType() .withId(CASE_TYPE_ID) diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/CaseSearchRequestTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/CaseSearchRequestTest.java index cada646c9d..84a0b33a27 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/CaseSearchRequestTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/CaseSearchRequestTest.java @@ -25,7 +25,7 @@ class CaseSearchRequestTest { @BeforeEach void setUp() throws IOException { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); caseSearchRequest = new CaseSearchRequest(CASE_TYPE_ID, new ElasticsearchRequest(objectMapper.readValue(FULL_QUERY, JsonNode.class))); } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/ElasticsearchSortServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/ElasticsearchSortServiceTest.java index 61096fffb5..ab12670561 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/ElasticsearchSortServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/ElasticsearchSortServiceTest.java @@ -25,7 +25,7 @@ import java.util.Optional; import static org.hamcrest.CoreMatchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.ArgumentMatchers.any; @@ -91,7 +91,7 @@ class ElasticsearchSortServiceTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); sortOrderFields = new ArrayList<>(); doAnswer(invocation -> objectMapperES.readValue((String)invocation.getArgument(0), ObjectNode.class)) .when(objectMapperService).convertStringToObject(anyString(), any()); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/builder/BasicGrantTypeESQueryBuilderTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/builder/BasicGrantTypeESQueryBuilderTest.java index 3ddae5ecdf..cebfd30f14 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/builder/BasicGrantTypeESQueryBuilderTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/builder/BasicGrantTypeESQueryBuilderTest.java @@ -49,7 +49,7 @@ class BasicGrantTypeESQueryBuilderTest extends GrantTypeESQueryBuilderTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); basicGrantTypeESQueryBuilder = new BasicGrantTypeESQueryBuilder(accessControlService, caseDataAccessControl, applicationParams); } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/builder/ChallengedGrantTypeESQueryBuilderTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/builder/ChallengedGrantTypeESQueryBuilderTest.java index d74a725dc5..19a0649a7c 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/builder/ChallengedGrantTypeESQueryBuilderTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/builder/ChallengedGrantTypeESQueryBuilderTest.java @@ -33,7 +33,7 @@ class ChallengedGrantTypeESQueryBuilderTest extends GrantTypeESQueryBuilderTest @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); challengedGrantTypeESQueryBuilder = new ChallengedGrantTypeESQueryBuilder(accessControlService, caseDataAccessControl, applicationParams); } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/builder/ExcludedGrantTypeESQueryBuilderTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/builder/ExcludedGrantTypeESQueryBuilderTest.java index 47ab9df7db..d21e7cea1a 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/builder/ExcludedGrantTypeESQueryBuilderTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/builder/ExcludedGrantTypeESQueryBuilderTest.java @@ -33,7 +33,7 @@ class ExcludedGrantTypeESQueryBuilderTest extends GrantTypeESQueryBuilderTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); excludedGrantTypeESQueryBuilder = new ExcludedGrantTypeESQueryBuilder(accessControlService, caseDataAccessControl, applicationParams); } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/builder/SpecificGrantTypeESQueryBuilderTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/builder/SpecificGrantTypeESQueryBuilderTest.java index ded2496f74..1301a95c62 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/builder/SpecificGrantTypeESQueryBuilderTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/builder/SpecificGrantTypeESQueryBuilderTest.java @@ -33,7 +33,7 @@ class SpecificGrantTypeESQueryBuilderTest extends GrantTypeESQueryBuilderTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); specificGrantTypeESQueryBuilder = new SpecificGrantTypeESQueryBuilder(accessControlService, caseDataAccessControl, applicationParams); } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/builder/StandardGrantTypeESQueryBuilderTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/builder/StandardGrantTypeESQueryBuilderTest.java index b417b1e882..1738a4d366 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/builder/StandardGrantTypeESQueryBuilderTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/builder/StandardGrantTypeESQueryBuilderTest.java @@ -33,7 +33,7 @@ class StandardGrantTypeESQueryBuilderTest extends GrantTypeESQueryBuilderTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); standardGrantTypeESQueryBuilder = new StandardGrantTypeESQueryBuilder(accessControlService, caseDataAccessControl, applicationParams); } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/AuthorisedCaseSearchOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/AuthorisedCaseSearchOperationTest.java index f869db0b03..5411756df4 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/AuthorisedCaseSearchOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/AuthorisedCaseSearchOperationTest.java @@ -47,10 +47,10 @@ import static org.junit.jupiter.api.Assertions.assertAll; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.Matchers.any; -import static org.mockito.Matchers.anyMapOf; +import static org.mockito.Matchers.anyMap; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyZeroInteractions; +import static org.mockito.Mockito.verifyNoInteractions; import static org.mockito.Mockito.when; import static uk.gov.hmcts.ccd.domain.model.search.elasticsearch.ElasticsearchRequest.QUERY; import static uk.gov.hmcts.ccd.domain.service.common.AccessControlService.CAN_READ; @@ -88,7 +88,7 @@ class AuthorisedCaseSearchOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); caseTypeDefinition.setId(CASE_TYPE_ID_1); searchRequestJsonNode.set(QUERY, mock(ObjectNode.class)); when(authorisedCaseDefinitionDataService.getAuthorisedCaseType(CASE_TYPE_ID_1, CAN_READ)) @@ -165,9 +165,9 @@ void shouldReturnEmptyCaseList() { () -> assertThat(result.getCases(), hasSize(0)), () -> assertThat(result.getTotal(), is(0L)), () -> verify(authorisedCaseDefinitionDataService).getAuthorisedCaseType(CASE_TYPE_ID_1, CAN_READ), - () -> verifyZeroInteractions(caseSearchOperation), - () -> verifyZeroInteractions(accessControlService), - () -> verifyZeroInteractions(userRepository) + () -> verifyNoInteractions(caseSearchOperation), + () -> verifyNoInteractions(accessControlService), + () -> verifyNoInteractions(userRepository) ); } @@ -206,7 +206,7 @@ void shouldPreserveSearchIndexPropertyInExecuteCall() { ObjectNode complexNode = JsonNodeFactory.instance.objectNode(); complexNode.set("postcode", JsonNodeFactory.instance.textNode("W4")); dataNode.set("personAddress", complexNode); - when(objectMapperService.convertObjectToJsonNode(anyMapOf(String.class, JsonNode.class))) + when(objectMapperService.convertObjectToJsonNode(anyMap())) .thenReturn(dataNode); SearchIndex searchIndex = new SearchIndex( @@ -248,7 +248,7 @@ void shouldTransformMultiCaseTypeSearchResults() { ObjectNode complexNode = JsonNodeFactory.instance.objectNode(); complexNode.set("postcode", JsonNodeFactory.instance.textNode("W4")); dataNode.set("personAddress", complexNode); - when(objectMapperService.convertObjectToJsonNode(anyMapOf(String.class, JsonNode.class))) + when(objectMapperService.convertObjectToJsonNode(anyMap())) .thenReturn(dataNode); CrossCaseTypeSearchRequest searchRequest = new CrossCaseTypeSearchRequest.Builder() @@ -279,7 +279,7 @@ void shouldTransformAliasFieldForCollection() { collectionNode.add(textNode); dataNode.set("collectionField", collectionNode); - when(objectMapperService.convertObjectToJsonNode(anyMapOf(String.class, JsonNode.class))) + when(objectMapperService.convertObjectToJsonNode(anyMap())) .thenReturn(dataNode); CrossCaseTypeSearchRequest searchRequest = new CrossCaseTypeSearchRequest.Builder() diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/ClassifiedCaseSearchOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/ClassifiedCaseSearchOperationTest.java index 70068674c3..1b7e32fe8b 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/ClassifiedCaseSearchOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/ClassifiedCaseSearchOperationTest.java @@ -41,7 +41,7 @@ class ClassifiedCaseSearchOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); case1 = new CaseDetails(); case2 = new CaseDetails(); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/ElasticsearchCaseSearchRequestSecurityRATest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/ElasticsearchCaseSearchRequestSecurityRATest.java index 1947fc660c..f6bd7d81d9 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/ElasticsearchCaseSearchRequestSecurityRATest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/ElasticsearchCaseSearchRequestSecurityRATest.java @@ -48,7 +48,7 @@ class ElasticsearchCaseSearchRequestSecurityRATest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); querySecurity = new ElasticsearchCaseSearchRequestSecurity(Collections.singletonList(caseSearchFilter), objectMapperService, grantTypeESQueryBuilder); when(searchRequestJsonNode.has(QUERY)).thenReturn(true); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/ElasticsearchCaseSearchRequestSecurityTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/ElasticsearchCaseSearchRequestSecurityTest.java index f65388aff6..07ca446ff8 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/ElasticsearchCaseSearchRequestSecurityTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/ElasticsearchCaseSearchRequestSecurityTest.java @@ -70,7 +70,7 @@ class ElasticsearchCaseSearchRequestSecurityTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); searchRequestNode = objectMapperService.convertStringToObject(SEARCH_QUERY, JsonNode.class); elasticsearchRequest = new ElasticsearchRequest(searchRequestNode); underTest = diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/ElasticsearchCaseStateFilterTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/ElasticsearchCaseStateFilterTest.java index 74dd13419c..d17040919c 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/ElasticsearchCaseStateFilterTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/ElasticsearchCaseStateFilterTest.java @@ -6,7 +6,7 @@ import static org.hamcrest.CoreMatchers.hasItem; import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.CoreMatchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.mockito.Mockito.when; import static uk.gov.hmcts.ccd.data.casedetails.CaseDetailsEntity.STATE_FIELD_COL; import static uk.gov.hmcts.ccd.domain.service.common.AccessControlService.CAN_READ; @@ -34,7 +34,7 @@ class ElasticsearchCaseStateFilterTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); } @Test diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/ElasticsearchSecurityClassificationFilterTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/ElasticsearchSecurityClassificationFilterTest.java index 4e5dcc78c0..edc2f868f0 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/ElasticsearchSecurityClassificationFilterTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/ElasticsearchSecurityClassificationFilterTest.java @@ -5,7 +5,7 @@ import static org.hamcrest.CoreMatchers.hasItems; import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.CoreMatchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static uk.gov.hmcts.ccd.data.casedetails.CaseDetailsEntity.SECURITY_CLASSIFICATION_FIELD_COL; @@ -41,7 +41,7 @@ class ElasticsearchSecurityClassificationFilterTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(applicationParams.getEnableAttributeBasedAccessControl()).thenReturn(false); } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/ElasticsearchUserCaseAccessFilterTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/ElasticsearchUserCaseAccessFilterTest.java index a39cfa8319..28136d4f72 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/ElasticsearchUserCaseAccessFilterTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/ElasticsearchUserCaseAccessFilterTest.java @@ -21,7 +21,7 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyZeroInteractions; +import static org.mockito.Mockito.verifyNoInteractions; import static org.mockito.Mockito.when; import static uk.gov.hmcts.ccd.data.casedetails.CaseDetailsEntity.REFERENCE_FIELD_COL; @@ -44,7 +44,7 @@ class ElasticsearchUserCaseAccessFilterTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(applicationParams.getEnableAttributeBasedAccessControl()).thenReturn(false); } @@ -79,7 +79,7 @@ void shouldReturnOptionalEmptyWhenNoCaseTypeDefinitionFound() { assertTrue(optQueryBuilder.isEmpty()); - verifyZeroInteractions(caseAccessService); + verifyNoInteractions(caseAccessService); } } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/startevent/AuthorisedStartEventOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/startevent/AuthorisedStartEventOperationTest.java index fcf15f8c99..6356b7b9d9 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/startevent/AuthorisedStartEventOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/startevent/AuthorisedStartEventOperationTest.java @@ -111,7 +111,7 @@ class AuthorisedStartEventOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); classifiedCaseDetailsNode = JSON_NODE_FACTORY.objectNode(); ((ObjectNode) classifiedCaseDetailsNode).put("dataTestField", "dataTestValue"); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/startevent/ClassifiedStartEventOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/startevent/ClassifiedStartEventOperationTest.java index 6724672bfc..ed3033ba29 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/startevent/ClassifiedStartEventOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/startevent/ClassifiedStartEventOperationTest.java @@ -62,7 +62,7 @@ class ClassifiedStartEventOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); caseDetails = newCaseDetails().withCaseTypeId(CASE_TYPE_ID).build(); startEvent = new StartEventResult(); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/startevent/DefaultStartEventOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/startevent/DefaultStartEventOperationTest.java index 451940621f..0d37b5cd2d 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/startevent/DefaultStartEventOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/startevent/DefaultStartEventOperationTest.java @@ -315,7 +315,7 @@ static Map expectedAfterMergeWithDefaultValue() { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); doReturn(DEFAULT_VALUE_DATA).when(caseService) .buildJsonFromCaseFieldsWithDefaultValue(caseEventDefinition.getCaseFields()); doReturn(caseTypeDefinition).when(caseDefinitionRepository).getCaseType(TEST_CASE_TYPE_ID); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/stdapi/CallbackInvokerTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/stdapi/CallbackInvokerTest.java index 1cd4f1d140..6877c48dc2 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/stdapi/CallbackInvokerTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/stdapi/CallbackInvokerTest.java @@ -44,7 +44,7 @@ import static org.hamcrest.collection.IsIterableContainingInOrder.contains; import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertThrows; @@ -111,7 +111,7 @@ class CallbackInvokerTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); caseEventDefinition = new CaseEventDefinition(); caseEventDefinition.setCallBackURLAboutToStartEvent(URL_ABOUT_TO_START); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/supplementarydata/AuthorisedSupplementaryDataUpdateOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/supplementarydata/AuthorisedSupplementaryDataUpdateOperationTest.java index b86719f1ac..74a62157d0 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/supplementarydata/AuthorisedSupplementaryDataUpdateOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/supplementarydata/AuthorisedSupplementaryDataUpdateOperationTest.java @@ -39,7 +39,7 @@ class AuthorisedSupplementaryDataUpdateOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); supplementaryDataOperation = new AuthorisedSupplementaryDataUpdateOperation(defaultSupplementaryDataOperation, caseDetailsRepository, diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/supplementarydata/DefaultSupplementaryDataUpdateOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/supplementarydata/DefaultSupplementaryDataUpdateOperationTest.java index 1449a84dca..9680fb9cb8 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/supplementarydata/DefaultSupplementaryDataUpdateOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/supplementarydata/DefaultSupplementaryDataUpdateOperationTest.java @@ -36,7 +36,7 @@ class DefaultSupplementaryDataUpdateOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); this.defaultSupplementaryDataOperation = new DefaultSupplementaryDataUpdateOperation(supplementaryDataRepository); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/upsertdraft/DefaultUpsertDraftOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/upsertdraft/DefaultUpsertDraftOperationTest.java index 1937434519..34ace883a1 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/upsertdraft/DefaultUpsertDraftOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/upsertdraft/DefaultUpsertDraftOperationTest.java @@ -5,7 +5,7 @@ import static org.hamcrest.Matchers.hasProperty; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.samePropertyValuesAs; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.any; @@ -78,7 +78,7 @@ class DefaultUpsertDraftOperationTest { @BeforeEach public void setup() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(applicationParams.getDraftMaxTTLDays()).thenReturn(DRAFT_MAX_STALE_DAYS); given(caseDefinitionRepository.getCaseType(CTID)).willReturn(CASE_TYPE); given(caseSanitiser.sanitise(CASE_TYPE, DATA)).willReturn(SANITISED_DATA); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/validate/CaseDataIssueLoggerTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/validate/CaseDataIssueLoggerTest.java index ec0eb38edb..0dfc538133 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/validate/CaseDataIssueLoggerTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/validate/CaseDataIssueLoggerTest.java @@ -40,7 +40,7 @@ public class CaseDataIssueLoggerTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(this.applicationParams.getCaseDataIssueLoggingJurisdictions()) .thenReturn(singletonList(JURISDICTION_ID)); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/validate/DefaultValidateCaseFieldsOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/validate/DefaultValidateCaseFieldsOperationTest.java index 4aa361e39a..5c28a5e49a 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/validate/DefaultValidateCaseFieldsOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/validate/DefaultValidateCaseFieldsOperationTest.java @@ -36,7 +36,7 @@ import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.is; import static org.hamcrest.core.StringStartsWith.startsWith; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.ArgumentMatchers.any; @@ -79,7 +79,7 @@ class DefaultValidateCaseFieldsOperationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); doReturn(caseTypeDefinition).when(caseDefinitionRepository).getCaseType(CASE_TYPE_ID); doReturn(Stream.of("[DEFAULT_ROLE1]", "[DEFAULT_ROLE2]").collect(Collectors.toSet())) .when(caseRoleRepository).getCaseRoles(CASE_TYPE_ID); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/BaseLocationValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/BaseLocationValidatorTest.java index 222df5f2f2..0f0fc0447e 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/BaseLocationValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/BaseLocationValidatorTest.java @@ -42,7 +42,7 @@ class BaseLocationValidatorTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(definitionRepository.getBaseTypes()).thenReturn(Collections.emptyList()); BaseType.setCaseDefinitionRepository(definitionRepository); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/BaseTypeTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/BaseTypeTest.java index e4399b0c2b..eb0febae6d 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/BaseTypeTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/BaseTypeTest.java @@ -25,7 +25,7 @@ public class BaseTypeTest { @BeforeEach public void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); final FieldTypeDefinition documentFieldTypeDefinition = mock(FieldTypeDefinition.class); when(documentFieldTypeDefinition.getType()).thenReturn(TEXT_TYPE); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/CaseDataValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/CaseDataValidatorTest.java index 46db8fca5e..858a20197c 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/CaseDataValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/CaseDataValidatorTest.java @@ -28,7 +28,7 @@ import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertThrows; import static org.junit.jupiter.api.Assertions.assertAll; import static org.mockito.Mockito.any; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/CollectionValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/CollectionValidatorTest.java index 16c6459c14..53d0fbb7dd 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/CollectionValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/CollectionValidatorTest.java @@ -9,7 +9,7 @@ import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static uk.gov.hmcts.ccd.domain.model.definition.FieldTypeDefinition.COLLECTION; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/CustomNumberValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/CustomNumberValidatorTest.java index 8bbdf0c650..bc7f7da221 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/CustomNumberValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/CustomNumberValidatorTest.java @@ -33,7 +33,7 @@ class CustomNumberValidatorTest { @BeforeEach void setup() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(definitionRepository.getBaseTypes()).thenReturn(Collections.emptyList()); BaseType.setCaseDefinitionRepository(definitionRepository); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/DateTimeValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/DateTimeValidatorTest.java index 4592ce7f11..e625485932 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/DateTimeValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/DateTimeValidatorTest.java @@ -48,7 +48,7 @@ class DateTimeValidatorTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(definitionRepository.getBaseTypes()).thenReturn(Collections.emptyList()); BaseType.setCaseDefinitionRepository(definitionRepository); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/DateValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/DateValidatorTest.java index f0dca6792d..9529a006dd 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/DateValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/DateValidatorTest.java @@ -43,7 +43,7 @@ class DateValidatorTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(definitionRepository.getBaseTypes()).thenReturn(Collections.emptyList()); BaseType.setCaseDefinitionRepository(definitionRepository); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/DynamicListValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/DynamicListValidatorTest.java index ee6bba2139..0f4717c961 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/DynamicListValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/DynamicListValidatorTest.java @@ -34,7 +34,7 @@ class DynamicListValidatorTest { @BeforeEach public void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(definitionRepository.getBaseTypes()).thenReturn(Collections.emptyList()); BaseType.setCaseDefinitionRepository(definitionRepository); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/DynamicMultiSelectListValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/DynamicMultiSelectListValidatorTest.java index 1025fbfbe1..4e5a2b5ce1 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/DynamicMultiSelectListValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/DynamicMultiSelectListValidatorTest.java @@ -32,7 +32,7 @@ class DynamicMultiSelectListValidatorTest { @BeforeEach public void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(definitionRepository.getBaseTypes()).thenReturn(Collections.emptyList()); BaseType.setCaseDefinitionRepository(definitionRepository); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/DynamicRadioListValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/DynamicRadioListValidatorTest.java index a49bd274b4..df58adf13e 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/DynamicRadioListValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/DynamicRadioListValidatorTest.java @@ -32,7 +32,7 @@ class DynamicRadioListValidatorTest { @BeforeEach public void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(definitionRepository.getBaseTypes()).thenReturn(Collections.emptyList()); BaseType.setCaseDefinitionRepository(definitionRepository); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/EmailValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/EmailValidatorTest.java index 7414e870b7..5e397655a4 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/EmailValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/EmailValidatorTest.java @@ -36,7 +36,7 @@ class EmailValidatorTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(definitionRepository.getBaseTypes()).thenReturn(Collections.emptyList()); BaseType.setCaseDefinitionRepository(definitionRepository); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/FixedListValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/FixedListValidatorTest.java index fed06984f4..fb050c1fc2 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/FixedListValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/FixedListValidatorTest.java @@ -33,7 +33,7 @@ class FixedListValidatorTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(definitionRepository.getBaseTypes()).thenReturn(Collections.emptyList()); BaseType.setCaseDefinitionRepository(definitionRepository); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/FixedRadioListValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/FixedRadioListValidatorTest.java index fc105718b2..a70e3ba1f8 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/FixedRadioListValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/FixedRadioListValidatorTest.java @@ -34,7 +34,7 @@ class FixedRadioListValidatorTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(definitionRepository.getBaseTypes()).thenReturn(Collections.emptyList()); BaseType.setCaseDefinitionRepository(definitionRepository); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/MoneyGBPValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/MoneyGBPValidatorTest.java index da0082d012..bf7b5937ce 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/MoneyGBPValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/MoneyGBPValidatorTest.java @@ -32,7 +32,7 @@ class MoneyGBPValidatorTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(definitionRepository.getBaseTypes()).thenReturn(Collections.emptyList()); BaseType.setCaseDefinitionRepository(definitionRepository); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/MultiSelectListValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/MultiSelectListValidatorTest.java index 17dbd03272..1b02147b75 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/MultiSelectListValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/MultiSelectListValidatorTest.java @@ -45,7 +45,7 @@ class MultiSelectListValidatorTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(definitionRepository.getBaseTypes()).thenReturn(Collections.emptyList()); BaseType.setCaseDefinitionRepository(definitionRepository); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/NumberValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/NumberValidatorTest.java index d95868642f..64e23e8545 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/NumberValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/NumberValidatorTest.java @@ -34,7 +34,7 @@ class NumberValidatorTest { @BeforeEach void setup() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(definitionRepository.getBaseTypes()).thenReturn(Collections.emptyList()); BaseType.setCaseDefinitionRepository(definitionRepository); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/OrgPolicyCaseAssignedRoleValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/OrgPolicyCaseAssignedRoleValidatorTest.java index 3fc8b52d69..97654c8512 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/OrgPolicyCaseAssignedRoleValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/OrgPolicyCaseAssignedRoleValidatorTest.java @@ -40,7 +40,7 @@ class OrgPolicyCaseAssignedRoleValidatorTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(definitionRepository.getBaseTypes()).thenReturn(Collections.emptyList()); BaseType.setCaseDefinitionRepository(definitionRepository); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/PhoneUKValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/PhoneUKValidatorTest.java index fd686fadd9..e940aa002f 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/PhoneUKValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/PhoneUKValidatorTest.java @@ -36,7 +36,7 @@ class PhoneUKValidatorTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(definitionRepository.getBaseTypes()).thenReturn(Collections.emptyList()); BaseType.setCaseDefinitionRepository(definitionRepository); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/PostCodeValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/PostCodeValidatorTest.java index 20c5275741..5891b665d4 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/PostCodeValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/PostCodeValidatorTest.java @@ -42,7 +42,7 @@ class PostCodeValidatorTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(definitionRepository.getBaseTypes()).thenReturn(Collections.emptyList()); BaseType.setCaseDefinitionRepository(definitionRepository); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/RegionValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/RegionValidatorTest.java index 3c05641b04..d055eef002 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/RegionValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/RegionValidatorTest.java @@ -42,7 +42,7 @@ class RegionValidatorTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(definitionRepository.getBaseTypes()).thenReturn(Collections.emptyList()); BaseType.setCaseDefinitionRepository(definitionRepository); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/TextAreaValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/TextAreaValidatorTest.java index 744bdcddbb..ce924193b2 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/TextAreaValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/TextAreaValidatorTest.java @@ -37,7 +37,7 @@ class TextAreaValidatorTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(definitionRepository.getBaseTypes()).thenReturn(Collections.emptyList()); BaseType.setCaseDefinitionRepository(definitionRepository); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/TextCaseReferenceCaseLinkValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/TextCaseReferenceCaseLinkValidatorTest.java index 470eeabbff..1e472e9a59 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/TextCaseReferenceCaseLinkValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/TextCaseReferenceCaseLinkValidatorTest.java @@ -44,7 +44,7 @@ class TextCaseReferenceCaseLinkValidatorTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(definitionRepository.getBaseTypes()).thenReturn(Collections.emptyList()); BaseType.setCaseDefinitionRepository(definitionRepository); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/TextValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/TextValidatorTest.java index f0874fde00..23ffe6a132 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/TextValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/TextValidatorTest.java @@ -40,7 +40,7 @@ class TextValidatorTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(definitionRepository.getBaseTypes()).thenReturn(Collections.emptyList()); BaseType.setCaseDefinitionRepository(definitionRepository); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/YesNoValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/YesNoValidatorTest.java index e30c97d196..515d4e4c8c 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/YesNoValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/YesNoValidatorTest.java @@ -39,7 +39,7 @@ class YesNoValidatorTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(definitionRepository.getBaseTypes()).thenReturn(Collections.emptyList()); BaseType.setCaseDefinitionRepository(definitionRepository); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/CaseSanitiserTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/CaseSanitiserTest.java index b23ad999ad..79d4c66f2e 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/CaseSanitiserTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/CaseSanitiserTest.java @@ -13,7 +13,7 @@ import java.util.Map; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.mockito.Mockito.any; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/CollectionSanitiserTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/CollectionSanitiserTest.java index 6b1810e4b6..511d4b757d 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/CollectionSanitiserTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/CollectionSanitiserTest.java @@ -6,7 +6,7 @@ import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.not; import static org.hamcrest.Matchers.notNullValue; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/ComplexSanitiserTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/ComplexSanitiserTest.java index 5744641a60..f68b3d15c3 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/ComplexSanitiserTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/ComplexSanitiserTest.java @@ -5,7 +5,7 @@ import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/DocumentSanitiserTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/DocumentSanitiserTest.java index 2215835eaa..e9ed35a6d6 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/DocumentSanitiserTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/DocumentSanitiserTest.java @@ -74,7 +74,7 @@ class DocumentSanitiserTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); documentSanitiser = new DocumentSanitiser(documentManagementRestClient); documentValueInitial.put("document_url", DOCUMENT_URL_VALUE); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/client/DocumentManagementRestClientTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/client/DocumentManagementRestClientTest.java index 8e27893bb4..c6018f310a 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/client/DocumentManagementRestClientTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/client/DocumentManagementRestClientTest.java @@ -12,7 +12,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; -import org.mockito.runners.MockitoJUnitRunner; +import org.mockito.junit.MockitoJUnitRunner; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.converter.HttpMessageConverter; diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/exceptions/RestExceptionHandlerTest.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/exceptions/RestExceptionHandlerTest.java index fec7ed7cd3..9b8e2abf5b 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/exceptions/RestExceptionHandlerTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/exceptions/RestExceptionHandlerTest.java @@ -90,7 +90,7 @@ public class RestExceptionHandlerTest { @Before public void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); logger = (Logger) LoggerFactory.getLogger(RestExceptionHandler.class); diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackEndpointIT.java index fd0760d453..65468f199f 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackEndpointIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackEndpointIT.java @@ -41,7 +41,7 @@ public class CallbackEndpointIT extends WireMockBaseTest { @Before public void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); MockUtils.setSecurityAuthorities(authentication, MockUtils.ROLE_CASEWORKER_PUBLIC); mockMvc = MockMvcBuilders.webAppContextSetup(wac).build(); } diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackTest.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackTest.java index 08dca5d87b..09c4f108a8 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackTest.java @@ -48,7 +48,7 @@ import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching; import static org.hamcrest.Matchers.equalTo; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertTrue; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static uk.gov.hmcts.ccd.data.casedetails.SecurityClassification.PUBLIC; @@ -261,7 +261,7 @@ public void setUp() throws IOException { + " }\n" + "}\n"; - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); MockUtils.setSecurityAuthorities(authentication, MockUtils.ROLE_TEST_PUBLIC); mockMvc = MockMvcBuilders.webAppContextSetup(wac).build(); diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointIT.java index 3d366a8364..2f392526d1 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointIT.java @@ -65,16 +65,16 @@ import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.Matchers.empty; +import static org.hamcrest.Matchers.emptyString; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.hasProperty; import static org.hamcrest.Matchers.hasSize; -import static org.hamcrest.Matchers.isEmptyString; -import static org.hamcrest.collection.IsIn.isIn; +import static org.hamcrest.Matchers.in; import static org.hamcrest.core.Every.everyItem; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.assertAll; import static org.mockito.Mockito.doReturn; @@ -166,7 +166,7 @@ public class CaseDetailsEndpointIT extends WireMockBaseTest { @Before public void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); doReturn(authentication).when(securityContext).getAuthentication(); SecurityContextHolder.setContext(securityContext); @@ -447,8 +447,8 @@ public void shouldReturn201WhenPostCreateCaseWithEmptyDataClassificationForCasew .getReference()))); assertEquals("Incorrect Case Type", CASE_TYPE, savedCaseDetails.getCaseTypeId()); Map sanitizedDataMap = JacksonUtils.convertValue(sanitizedData); - assertThat("Incorrect Data content", savedCaseDetails.getData().entrySet(), everyItem(isIn( - sanitizedDataMap.entrySet()))); + assertThat("Incorrect Data content", savedCaseDetails.getData().entrySet(), everyItem(is(in( + sanitizedDataMap.entrySet())))); assertEquals("Incorrect security classification size", 5, savedCaseDetails.getDataClassification().size()); JsonNode expectedClassification = mapper.readTree( "{" + @@ -949,8 +949,8 @@ public void shouldReturn201WhenPostCreateCaseWithEmptyDataClassificationForCitiz .getReference()))); assertEquals("Incorrect Case Type", CASE_TYPE, savedCaseDetails.getCaseTypeId()); Map sanitizedDataMap = JacksonUtils.convertValue(sanitizedData); - assertThat("Incorrect Data content", savedCaseDetails.getData().entrySet(), everyItem(isIn( - sanitizedDataMap.entrySet()))); + assertThat("Incorrect Data content", savedCaseDetails.getData().entrySet(), everyItem(is(in( + sanitizedDataMap.entrySet())))); assertEquals("Incorrect security classification size", 4, savedCaseDetails.getDataClassification().size()); JsonNode expectedClassification = mapper.readTree("{" + " \"PersonAddress\":{" + @@ -3672,7 +3672,7 @@ private void shouldReturn201WithEmptyBodyWhenPostCreateCaseWithNoReadAccessOnCas ).andExpect(status().is(201)) .andReturn(); - assertThat(mvcResult.getResponse().getContentAsString(), CoreMatchers.is(isEmptyString())); + assertThat(mvcResult.getResponse().getContentAsString(), CoreMatchers.is(emptyString())); } private void shouldReturn201WithEmptyBodyWhenPostCreateCaseEventWithNoCaseTypeReadAccess(String userRole) @@ -3704,7 +3704,7 @@ private void shouldReturn201WithEmptyBodyWhenPostCreateCaseEventWithNoCaseTypeRe .andReturn(); String response = mvcResult.getResponse().getContentAsString(); - assertThat(response, CoreMatchers.is(isEmptyString())); + assertThat(response, CoreMatchers.is(emptyString())); } @@ -4284,7 +4284,7 @@ private void shouldReturn201WhenPostCreateCaseEventWithValidData(String userRole Map sanitizedDataMap = JacksonUtils.convertValue(sanitizedData); assertThat( "Incorrect Data content: Data should have changed", - savedCaseDetails.getData().entrySet(), everyItem(isIn(sanitizedDataMap.entrySet()))); + savedCaseDetails.getData().entrySet(), everyItem(is(in(sanitizedDataMap.entrySet())))); assertEquals("State should have been updated", "state4", savedCaseDetails.getState()); JSONAssert.assertEquals(expectedClassificationString, mapper.convertValue(savedCaseDetails.getDataClassification(), JsonNode.class).toString(), JSONCompareMode @@ -4370,7 +4370,7 @@ private void shouldReturn201WhenPostCreateCaseEventWithExistingDocumentBinary(St Map sanitizedDataMap = JacksonUtils.convertValue(sanitizedData); assertThat( "Incorrect Data content: Data should have changed", - savedCaseDetails.getData().entrySet(), everyItem(isIn(sanitizedDataMap.entrySet()))); + savedCaseDetails.getData().entrySet(), everyItem(is(in(sanitizedDataMap.entrySet())))); } @Test diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointTest.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointTest.java index 7e1f829b84..443118cc33 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointTest.java @@ -102,7 +102,7 @@ class CaseDetailsEndpointTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); params = initParams("STATE"); diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/DraftsEndpointTest.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/DraftsEndpointTest.java index 2cef55fc7b..6ed05a1fa1 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/DraftsEndpointTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/DraftsEndpointTest.java @@ -41,7 +41,7 @@ class DraftsEndpointTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); endpoint = new DraftsEndpoint(upsertDraftOperation, getDraftViewOperation, draftGateway); } diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/EventsEndpointTest.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/EventsEndpointTest.java index 974269762b..a6c95027b5 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/EventsEndpointTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/EventsEndpointTest.java @@ -29,7 +29,7 @@ class EventsEndpointTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); endpoint = new EventsEndpoint(getEventsOperation); } diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/CallbackTest.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/CallbackTest.java index 89cbac06e0..0c7d8454a9 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/CallbackTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/CallbackTest.java @@ -30,13 +30,12 @@ import static com.github.tomakehurst.wiremock.client.WireMock.get; import static com.github.tomakehurst.wiremock.client.WireMock.notFound; import static com.github.tomakehurst.wiremock.client.WireMock.okJson; -import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching; import static org.hamcrest.Matchers.containsInAnyOrder; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.hasSize; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertTrue; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import static uk.gov.hmcts.ccd.data.casedetails.SecurityClassification.PUBLIC; diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/QueryEndpointTest.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/QueryEndpointTest.java index 21a9e6f774..6b9a09f536 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/QueryEndpointTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/QueryEndpointTest.java @@ -73,7 +73,7 @@ class QueryEndpointTest { @BeforeEach void setup() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); queryEndpoint = new QueryEndpoint(getCaseViewOperation, getCaseHistoryViewOperation, getEventTriggerOperation, diff --git a/src/test/java/uk/gov/hmcts/ccd/infrastructure/user/UserAuthorisationConfigurationTest.java b/src/test/java/uk/gov/hmcts/ccd/infrastructure/user/UserAuthorisationConfigurationTest.java index eb0e5846fd..d25ab182ee 100644 --- a/src/test/java/uk/gov/hmcts/ccd/infrastructure/user/UserAuthorisationConfigurationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/infrastructure/user/UserAuthorisationConfigurationTest.java @@ -39,7 +39,7 @@ class UserAuthorisationConfigurationTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); userInfo = UserInfo.builder() .uid(USER_ID) diff --git a/src/test/java/uk/gov/hmcts/ccd/integrations/IdamIT.java b/src/test/java/uk/gov/hmcts/ccd/integrations/IdamIT.java index 0637df44f2..a5134b9116 100644 --- a/src/test/java/uk/gov/hmcts/ccd/integrations/IdamIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/integrations/IdamIT.java @@ -51,8 +51,8 @@ public void shouldPassUserAuthorizationWhenValidCaseworker() { String.class ); - assertThat(response.getStatusCodeValue(), not(401)); - assertThat(response.getStatusCodeValue(), not(403)); + assertThat(response.getStatusCode().value(), not(401)); + assertThat(response.getStatusCode().value(), not(403)); verify(getRequestedFor(urlEqualTo("/idam/details")) .withHeader("Authorization", equalTo(VALID_IDAM_TOKEN))); } @@ -67,8 +67,8 @@ public void shouldPassUserAuthorizationWhenValidCitizen() { String.class ); - assertThat(response.getStatusCodeValue(), not(401)); - assertThat(response.getStatusCodeValue(), not(403)); + assertThat(response.getStatusCode().value(), not(401)); + assertThat(response.getStatusCode().value(), not(403)); verify(getRequestedFor(urlEqualTo("/idam/details")) .withHeader("Authorization", equalTo(VALID_CITIZEN_TOKEN))); } @@ -83,8 +83,8 @@ public void shouldPassUserAuthorizationWhenValidLetterHolder() { String.class ); - assertThat(response.getStatusCodeValue(), not(401)); - assertThat(response.getStatusCodeValue(), not(403)); + assertThat(response.getStatusCode().value(), not(401)); + assertThat(response.getStatusCode().value(), not(403)); verify(getRequestedFor(urlEqualTo("/idam/details")) .withHeader("Authorization", equalTo(VALID_LETTERHOLDER_TOKEN))); } @@ -108,7 +108,7 @@ public void shouldFailUserAuthorizationWhenInvalidUser() { String.class ); - assertThat(response.getStatusCodeValue(), is(403)); + assertThat(response.getStatusCode().value(), is(403)); verify(getRequestedFor(urlEqualTo("/idam/details")) .withHeader("Authorization", equalTo(INVALID_IDAM_TOKEN))); } @@ -123,7 +123,7 @@ public void shouldFailUserAuthorizationWhenExtractedIdNotMatching() { String.class ); - assertThat(response.getStatusCodeValue(), is(403)); + assertThat(response.getStatusCode().value(), is(403)); verify(getRequestedFor(urlEqualTo("/idam/details")) .withHeader("Authorization", equalTo(VALID_IDAM_TOKEN))); } @@ -138,7 +138,7 @@ public void shouldFailUserAuthorizationWhenRolesNotMatching() { String.class ); - assertThat(response.getStatusCodeValue(), is(403)); + assertThat(response.getStatusCode().value(), is(403)); verify(getRequestedFor(urlEqualTo("/idam/details")) .withHeader("Authorization", equalTo(VALID_IDAM_TOKEN))); } diff --git a/src/test/java/uk/gov/hmcts/ccd/integrations/ServiceToServiceIT.java b/src/test/java/uk/gov/hmcts/ccd/integrations/ServiceToServiceIT.java index babf64cc16..32d9986979 100644 --- a/src/test/java/uk/gov/hmcts/ccd/integrations/ServiceToServiceIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/integrations/ServiceToServiceIT.java @@ -48,8 +48,8 @@ public void shouldPassServiceAuthorizationWhenValidServiceToken() { String.class ); - assertThat(response.getStatusCodeValue(), not(401)); - assertThat(response.getStatusCodeValue(), not(403)); + assertThat(response.getStatusCode().value(), not(401)); + assertThat(response.getStatusCode().value(), not(403)); verify(getRequestedFor(urlEqualTo("/s2s/details")) .withHeader("Authorization", equalTo("Bearer " + SERVICE_TOKEN))); @@ -74,7 +74,7 @@ public void shouldFailServiceAuthorizationWhenInvalidServiceToken() { String.class ); - assertThat(response.getStatusCodeValue(), is(403)); + assertThat(response.getStatusCode().value(), is(403)); verify(getRequestedFor(urlEqualTo("/s2s/details")) .withHeader("Authorization", equalTo("Bearer " + INVALID_SERVICE_TOKEN))); diff --git a/src/test/java/uk/gov/hmcts/ccd/security/JwtGrantedAuthoritiesConverterTest.java b/src/test/java/uk/gov/hmcts/ccd/security/JwtGrantedAuthoritiesConverterTest.java index 03fae2576d..5b8f12f30b 100644 --- a/src/test/java/uk/gov/hmcts/ccd/security/JwtGrantedAuthoritiesConverterTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/security/JwtGrantedAuthoritiesConverterTest.java @@ -31,7 +31,7 @@ class JwtGrantedAuthoritiesConverterTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); } @Test diff --git a/src/test/java/uk/gov/hmcts/ccd/security/idam/IdamRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/security/idam/IdamRepositoryTest.java index 2dda3d2edd..866ce104b9 100644 --- a/src/test/java/uk/gov/hmcts/ccd/security/idam/IdamRepositoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/security/idam/IdamRepositoryTest.java @@ -42,7 +42,7 @@ class IdamRepositoryTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); Whitebox.setInternalState(idamRepository, "selfInstance", idamRepository); } diff --git a/src/test/java/uk/gov/hmcts/ccd/swagger/SwaggerGeneratorTest.java b/src/test/java/uk/gov/hmcts/ccd/swagger/SwaggerGeneratorTest.java index 07a0245e1b..bf8df8280e 100644 --- a/src/test/java/uk/gov/hmcts/ccd/swagger/SwaggerGeneratorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/swagger/SwaggerGeneratorTest.java @@ -7,7 +7,7 @@ import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.ResultActions; import org.springframework.web.context.WebApplicationContext; -import uk.gov.hmcts.ccd.WireMockBaseContractTest; +import uk.gov.hmcts.ccd.WireMockBaseTest; import java.io.OutputStream; import java.nio.file.Files; @@ -17,7 +17,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import static org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppContextSetup; -public class SwaggerGeneratorTest extends WireMockBaseContractTest { +public class SwaggerGeneratorTest extends WireMockBaseTest { private MockMvc mvc; @@ -54,7 +54,7 @@ public void generateV2InternalSpecsDocument() throws Exception { } private void generateSpecsFor(String groupName) throws Exception { - ResultActions perform = mvc.perform(get("/v2/api-docs?group=" + groupName)); + ResultActions perform = mvc.perform(get("/v3/api-docs?group=" + groupName)); byte[] specs = perform .andExpect(status().isOk()) .andReturn() diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/BaseCaseAssignedUserRolesControllerIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/BaseCaseAssignedUserRolesControllerIT.java index 5f38cf592d..aaf482c23d 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/BaseCaseAssignedUserRolesControllerIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/BaseCaseAssignedUserRolesControllerIT.java @@ -122,7 +122,7 @@ class BaseCaseAssignedUserRolesControllerIT extends WireMockBaseTest { @BeforeEach void setUp() throws IOException { super.initMock(); - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); doReturn(authentication).when(securityContext).getAuthentication(); SecurityContextHolder.setContext(securityContext); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseAssignedUserRolesControllerTest.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseAssignedUserRolesControllerTest.java index 98af1e3edc..7a493dce20 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseAssignedUserRolesControllerTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseAssignedUserRolesControllerTest.java @@ -78,7 +78,7 @@ class CaseAssignedUserRolesControllerTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(caseReferenceService.validateUID(CASE_ID_GOOD)).thenReturn(true); when(caseReferenceService.validateUID(CASE_ID_BAD)).thenReturn(false); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerDCPIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerDCPIT.java index e6715ead9f..af630efab9 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerDCPIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerDCPIT.java @@ -26,7 +26,7 @@ import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import static org.mockito.Mockito.doReturn; import static org.springframework.http.HttpHeaders.AUTHORIZATION; @@ -73,7 +73,7 @@ public class CaseControllerDCPIT extends WireMockBaseTest { @Before public void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); doReturn(authentication).when(securityContext).getAuthentication(); SecurityContextHolder.setContext(securityContext); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerTest.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerTest.java index 68571add37..f849ba1f58 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerTest.java @@ -58,7 +58,6 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyObject; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doCallRealMethod; @@ -114,7 +113,7 @@ class CaseControllerTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(caseDetails.getReference()).thenReturn(Long.valueOf(CASE_REFERENCE)); @@ -285,7 +284,7 @@ void shouldUpdateSupplementaryData() { when(caseReferenceService.validateUID(CASE_REFERENCE)).thenReturn(TRUE); Map data = createResponseData(); SupplementaryData supplementaryData = new SupplementaryData(data); - when(supplementaryDataUpdateOperation.updateSupplementaryData(anyString(), anyObject())) + when(supplementaryDataUpdateOperation.updateSupplementaryData(anyString(), any())) .thenReturn(supplementaryData); final ResponseEntity response = diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDataValidatorControllerDCPIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDataValidatorControllerDCPIT.java index 26fd2ea3f1..30ed4b4edc 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDataValidatorControllerDCPIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDataValidatorControllerDCPIT.java @@ -27,7 +27,7 @@ import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import static org.mockito.Mockito.doReturn; import static org.springframework.http.HttpHeaders.AUTHORIZATION; @@ -63,7 +63,7 @@ public class CaseDataValidatorControllerDCPIT extends WireMockBaseTest { @Before public void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); doReturn(authentication).when(securityContext).getAuthentication(); SecurityContextHolder.setContext(securityContext); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDataValidatorControllerTest.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDataValidatorControllerTest.java index 53ec6226b7..604531b5f9 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDataValidatorControllerTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDataValidatorControllerTest.java @@ -59,7 +59,7 @@ class CaseDataValidatorControllerTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(validateCaseFieldsOperation.validateCaseDetails(CASE_TYPE_ID, EVENT_DATA)).thenReturn(DATA); when(midEventCallback.invoke(CASE_TYPE_ID, EVENT_DATA, PAGE_ID)).thenReturn(DATA_NODE); } diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDocumentControllerIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDocumentControllerIT.java index 0633bbe97c..151f0312b2 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDocumentControllerIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDocumentControllerIT.java @@ -30,13 +30,13 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; import uk.gov.hmcts.ccd.MockUtils; -import uk.gov.hmcts.ccd.WireMockBaseContractTest; +import uk.gov.hmcts.ccd.WireMockBaseTest; import uk.gov.hmcts.ccd.v2.V2; import uk.gov.hmcts.ccd.v2.external.domain.CaseDocumentMetadata; import uk.gov.hmcts.ccd.v2.external.domain.Permission; import uk.gov.hmcts.ccd.v2.external.resource.CaseDocumentResource; -public class CaseDocumentControllerIT extends WireMockBaseContractTest { +public class CaseDocumentControllerIT extends WireMockBaseTest { @Inject private WebApplicationContext wac; @@ -54,7 +54,7 @@ public class CaseDocumentControllerIT extends WireMockBaseContractTest { @Before public void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); doReturn(authentication).when(securityContext).getAuthentication(); SecurityContextHolder.setContext(securityContext); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDocumentControllerTest.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDocumentControllerTest.java index debfd47a03..69e7cbf389 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDocumentControllerTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDocumentControllerTest.java @@ -45,7 +45,7 @@ class CaseDocumentControllerTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); CaseDocumentMetadata caseDocumentMetadata = CaseDocumentMetadata.builder() .caseId(CASE_REFERENCE) diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserControllerIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserControllerIT.java index f09689e741..e98e3fc82c 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserControllerIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserControllerIT.java @@ -27,7 +27,7 @@ import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.mockito.Mockito.verify; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserControllerTest.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserControllerTest.java index 156d9309e4..d21c1f47aa 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserControllerTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserControllerTest.java @@ -58,7 +58,7 @@ class CaseUserControllerTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(caseReferenceService.validateUID(CASE_REFERENCE)).thenReturn(true); when(caseReferenceService.validateUID(NOT_CASE_REFERENCE)).thenReturn(false); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerTest.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerTest.java index 61b99aabc0..3410894bc9 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerTest.java @@ -50,7 +50,7 @@ class DocumentControllerTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); Document document = new Document(); document.setName("name1"); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/StartEventControllerTest.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/StartEventControllerTest.java index f53a28beb6..28ecd18f47 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/StartEventControllerTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/StartEventControllerTest.java @@ -50,7 +50,7 @@ class StartEventControllerTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); Map data = Maps.newHashMap(); data.put("dataKey1", JSON_NODE_FACTORY.textNode("dataValue1")); CASE_DETAILS.setData(data); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/resource/CaseAssignedUserRolesResourceTest.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/resource/CaseAssignedUserRolesResourceTest.java index 392e42c350..2961d4dce9 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/resource/CaseAssignedUserRolesResourceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/resource/CaseAssignedUserRolesResourceTest.java @@ -7,7 +7,7 @@ import uk.gov.hmcts.ccd.domain.model.std.CaseAssignedUserRole; import static org.hamcrest.Matchers.hasSize; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; class CaseAssignedUserRolesResourceTest { diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/resource/CaseResourceTest.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/resource/CaseResourceTest.java index 77b78e322a..5db1dfb50e 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/resource/CaseResourceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/resource/CaseResourceTest.java @@ -78,10 +78,10 @@ void shouldCopyCaseDetails() { () -> assertThat(caseResource.getDataClassification(), equalTo(DATA_CLASSIFICATION)), () -> assertThat(caseResource.getAfterSubmitCallbackResponse(), equalTo(CALLBACK_BODY)), () -> assertThat(caseResource.getCallbackResponseStatusCode(), equalTo(AFTER_SUBMIT_CALLBACK_RESPONSE - .getStatusCodeValue())), + .getStatusCode().value())), () -> assertThat(caseResource.getCallbackResponseStatus(), equalTo(CALLBACK_COMPLETED)), () -> assertThat(caseResource.getDeleteDraftResponseStatusCode(), equalTo(DELETE_DRAFT_RESPONSE - .getStatusCodeValue())), + .getStatusCode().value())), () -> assertThat(caseResource.getDeleteDraftResponseStatus(), equalTo(DELETE_DRAFT_COMPLETED)) ); } @@ -121,10 +121,10 @@ void shouldCopyCaseDetails() { () -> assertThat(caseResource.getDataClassification(), equalTo(DATA_CLASSIFICATION)), () -> assertThat(caseResource.getAfterSubmitCallbackResponse(), equalTo(CALLBACK_BODY)), () -> assertThat(caseResource.getCallbackResponseStatusCode(), equalTo(AFTER_SUBMIT_CALLBACK_RESPONSE - .getStatusCodeValue())), + .getStatusCode().value())), () -> assertThat(caseResource.getCallbackResponseStatus(), equalTo(CALLBACK_COMPLETED)), () -> assertThat(caseResource.getDeleteDraftResponseStatusCode(), equalTo(DELETE_DRAFT_RESPONSE - .getStatusCodeValue())), + .getStatusCode().value())), () -> assertThat(caseResource.getDeleteDraftResponseStatus(), equalTo(DELETE_DRAFT_COMPLETED)) ); } @@ -166,10 +166,10 @@ void shouldCopyCaseDetails() { () -> assertThat(caseResource.getDataClassification(), equalTo(DATA_CLASSIFICATION)), () -> assertThat(caseResource.getAfterSubmitCallbackResponse(), equalTo(CALLBACK_BODY)), () -> assertThat(caseResource.getCallbackResponseStatusCode(), equalTo(AFTER_SUBMIT_CALLBACK_RESPONSE - .getStatusCodeValue())), + .getStatusCode().value())), () -> assertThat(caseResource.getCallbackResponseStatus(), equalTo(CALLBACK_COMPLETED)), () -> assertThat(caseResource.getDeleteDraftResponseStatusCode(), equalTo(DELETE_DRAFT_RESPONSE - .getStatusCodeValue())), + .getStatusCode().value())), () -> assertThat(caseResource.getDeleteDraftResponseStatus(), equalTo(DELETE_DRAFT_COMPLETED)) ); } diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/resource/SupplementaryDataResourceTest.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/resource/SupplementaryDataResourceTest.java index bf8cdfbf1f..04c3b5f8fd 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/resource/SupplementaryDataResourceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/resource/SupplementaryDataResourceTest.java @@ -7,7 +7,7 @@ import uk.gov.hmcts.ccd.domain.model.std.SupplementaryData; import static org.hamcrest.Matchers.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; class SupplementaryDataResourceTest { diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerDCPIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerDCPIT.java index 6d550c319e..37a70b55a6 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerDCPIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerDCPIT.java @@ -30,7 +30,7 @@ import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.nullValue; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import static org.mockito.Mockito.doReturn; import static org.springframework.http.HttpHeaders.AUTHORIZATION; @@ -70,7 +70,7 @@ public class UICaseControllerDCPIT extends WireMockBaseTest { @Before public void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); doReturn(authentication).when(securityContext).getAuthentication(); SecurityContextHolder.setContext(securityContext); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerTest.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerTest.java index 0707079561..6c45379bae 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerTest.java @@ -55,7 +55,7 @@ class UICaseControllerTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(caseView.getCaseId()).thenReturn(CASE_REFERENCE); when(caseHistoryView.getCaseId()).thenReturn(CASE_REFERENCE); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseSearchControllerTest.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseSearchControllerTest.java index bba41c8e1b..a5997ce1df 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseSearchControllerTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseSearchControllerTest.java @@ -60,7 +60,7 @@ class UICaseSearchControllerTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); } @Test diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDefinitionControllerIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDefinitionControllerIT.java index 85f3abb99f..d7f3bfb7b8 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDefinitionControllerIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDefinitionControllerIT.java @@ -19,7 +19,7 @@ import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.core.Is.is; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.springframework.http.HttpHeaders.AUTHORIZATION; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDefinitionControllerTest.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDefinitionControllerTest.java index 4fc2c6234f..09e16a3445 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDefinitionControllerTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDefinitionControllerTest.java @@ -105,7 +105,7 @@ class UIDefinitionControllerTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); doReturn(workbasketInputs).when(getCriteriaOperation).execute(CASE_TYPE_ID, CAN_READ, WORKBASKET); doReturn(searchInputs).when(getCriteriaOperation).execute(CASE_TYPE_ID, CAN_READ, SEARCH); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDraftsControllerTest.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDraftsControllerTest.java index 3a8b4081df..c88a3c037f 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDraftsControllerTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDraftsControllerTest.java @@ -47,7 +47,7 @@ class UIDraftsControllerTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(caseView.getCaseId()).thenReturn(CASE_REFERENCE); when(upsertDraftOperation.executeSave(CASE_TYPE_ID, CASE_DATA_CONTENT)).thenReturn(DRAFT_RESPONSE); when(upsertDraftOperation.executeUpdate(CASE_TYPE_ID, DRAFT_ID, CASE_DATA_CONTENT)).thenReturn(DRAFT_RESPONSE); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartEventControllerTest.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartEventControllerTest.java index 4ee96ebe39..43487b19e1 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartEventControllerTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartEventControllerTest.java @@ -87,7 +87,7 @@ class UIStartEventControllerTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(getEventTriggerOperation.executeForCaseType(CASE_TYPE_ID, EVENT_TRIGGER_ID, IGNORE_WARNING)) .thenReturn(caseUpdateViewEvent); when(getEventTriggerOperation.executeForCase(CASE_ID, EVENT_TRIGGER_ID, IGNORE_WARNING)) diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartTriggerControllerDCPIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartTriggerControllerDCPIT.java index 3753c5a93d..0041d2a7b5 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartTriggerControllerDCPIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartTriggerControllerDCPIT.java @@ -30,7 +30,7 @@ import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.nullValue; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; import static org.mockito.Mockito.doReturn; import static org.springframework.http.HttpHeaders.AUTHORIZATION; @@ -70,7 +70,7 @@ public class UIStartTriggerControllerDCPIT extends WireMockBaseTest { @Before public void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); doReturn(authentication).when(securityContext).getAuthentication(); SecurityContextHolder.setContext(securityContext); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIUserProfileControllerTest.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIUserProfileControllerTest.java index cdee18e846..4ca8b4e96e 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIUserProfileControllerTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIUserProfileControllerTest.java @@ -36,7 +36,7 @@ class UIUserProfileControllerTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); when(getUserProfileOperation.execute(AccessControlService.CAN_READ)).thenReturn(userProfile); } diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/resource/BannerViewResourceTest.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/resource/BannerViewResourceTest.java index f23b5eda91..2cd2803603 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/resource/BannerViewResourceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/resource/BannerViewResourceTest.java @@ -1,5 +1,6 @@ package uk.gov.hmcts.ccd.v2.internal.resource; +import java.util.Collections; import java.util.List; import org.assertj.core.util.Lists; import org.junit.jupiter.api.BeforeEach; @@ -18,7 +19,7 @@ class BannerViewResourceTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); } @Test @@ -32,7 +33,7 @@ void shouldThrowException() { @Test @DisplayName("should copy empty banners") void shouldCopyEmptyBannerList() { - List emptyList = Lists.emptyList(); + List emptyList = Collections.emptyList(); final BannerViewResource resource = new BannerViewResource(emptyList); assertAll( () -> assertThat(resource.getBanners(), sameInstance(emptyList)) diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/resource/CaseHistoryViewResourceTest.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/resource/CaseHistoryViewResourceTest.java index d16ae4e7ef..9c484464df 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/resource/CaseHistoryViewResourceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/resource/CaseHistoryViewResourceTest.java @@ -39,7 +39,7 @@ class CaseHistoryViewResourceTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); tabs = new CaseViewTab[]{}; event = newCaseViewEvent(); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/resource/CaseViewResourceTest.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/resource/CaseViewResourceTest.java index b1f584a70e..9d42ac749c 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/resource/CaseViewResourceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/resource/CaseViewResourceTest.java @@ -44,7 +44,7 @@ class CaseViewResourceTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); mockArrays(); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/resource/DraftViewResourceTest.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/resource/DraftViewResourceTest.java index ff9df9c60a..77b70cbefb 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/resource/DraftViewResourceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/resource/DraftViewResourceTest.java @@ -24,7 +24,7 @@ class DraftViewResourceTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); } @Test diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/resource/JurisdictionConfigViewResourceTest.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/resource/JurisdictionConfigViewResourceTest.java index 869b717082..8ce8840f36 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/resource/JurisdictionConfigViewResourceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/resource/JurisdictionConfigViewResourceTest.java @@ -5,6 +5,7 @@ import static org.junit.jupiter.api.Assertions.assertAll; import static org.junit.jupiter.api.Assertions.assertThrows; +import java.util.Collections; import java.util.List; import org.assertj.core.util.Lists; @@ -20,7 +21,7 @@ class JurisdictionConfigViewResourceTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); } @Test @@ -34,7 +35,7 @@ void shouldThrowException() { @Test @DisplayName("should copy empty jurisdiction UI configs") void shouldCopyEmptyJurisdictionUIConfigList() { - List emptyList = Lists.emptyList(); + List emptyList = Collections.emptyList(); final JurisdictionConfigViewResource resource = new JurisdictionConfigViewResource(emptyList); assertAll( () -> assertThat(resource.getConfigs(), sameInstance(emptyList)) diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/resource/UserProfileViewResourceTest.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/resource/UserProfileViewResourceTest.java index f67010ad9d..9da2379981 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/resource/UserProfileViewResourceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/resource/UserProfileViewResourceTest.java @@ -47,7 +47,7 @@ class UserProfileViewResourceTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); channels = new String[]{channel1, channel2}; jurisdictionDisplayProperties = From fd326e0e431810abd752fdd6d65d4810f1ac11e2 Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Tue, 8 Oct 2024 23:32:55 +0100 Subject: [PATCH 03/42] Fix NumberFormatException not getting caught and timeout issue --- .../uk/gov/hmcts/ccd/RestTemplateConfiguration.java | 10 +++++----- .../aggregated/AuthorisedGetEventTriggerOperation.java | 1 + .../ccd/domain/service/stdapi/DocumentsOperation.java | 1 + 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/ccd/RestTemplateConfiguration.java b/src/main/java/uk/gov/hmcts/ccd/RestTemplateConfiguration.java index 0540c94a85..318cd204a0 100644 --- a/src/main/java/uk/gov/hmcts/ccd/RestTemplateConfiguration.java +++ b/src/main/java/uk/gov/hmcts/ccd/RestTemplateConfiguration.java @@ -146,9 +146,9 @@ private HttpClient getHttpClient(final int timeout) { @Override public ConnectionConfig resolve(HttpRoute route) { return ConnectionConfig.custom() - .setConnectTimeout(Timeout.ofSeconds(timeout)) - .setSocketTimeout(Timeout.ofSeconds(timeout)) - .setValidateAfterInactivity(TimeValue.ofSeconds(validateAfterInactivity)) + .setConnectTimeout(Timeout.ofMilliseconds(timeout)) + .setSocketTimeout(Timeout.ofMilliseconds(timeout)) + .setValidateAfterInactivity(TimeValue.ofMilliseconds(validateAfterInactivity)) .build(); } }; @@ -157,14 +157,14 @@ public ConnectionConfig resolve(HttpRoute route) { @Override public SocketConfig resolve(HttpRoute route) { return SocketConfig.custom() - .setSoTimeout(Timeout.ofSeconds(readTimeout)) + .setSoTimeout(Timeout.ofMilliseconds(timeout)) .build(); } }; cm.setSocketConfigResolver(socketConfigResolver); final RequestConfig config = RequestConfig.custom() - .setConnectionRequestTimeout(timeout, TimeUnit.SECONDS) + .setConnectionRequestTimeout(timeout, TimeUnit.MILLISECONDS) .build(); diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetEventTriggerOperation.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetEventTriggerOperation.java index 65ddf7656f..f36ad53104 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetEventTriggerOperation.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetEventTriggerOperation.java @@ -153,6 +153,7 @@ private void updateWithAccessControlMetadata(CaseUpdateViewEvent caseUpdateViewE private CaseDetails getCaseDetails(String caseReference) { CaseDetails caseDetails; try { + Long.parseLong(caseReference); // Check if case reference is a number caseDetails = caseDetailsRepository.findByReference(caseReference) .orElseThrow(() -> new ResourceNotFoundException("No case exist with id=" + caseReference)); } catch (NumberFormatException nfe) { diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/stdapi/DocumentsOperation.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/stdapi/DocumentsOperation.java index 55de83b1a8..43fe2256ca 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/stdapi/DocumentsOperation.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/stdapi/DocumentsOperation.java @@ -80,6 +80,7 @@ public List getPrintableDocumentsForCase(final String caseReference) { private CaseDetails getCaseDetails(String caseReference) { CaseDetails caseDetails = null; try { + Long.parseLong(caseReference); // Check if case reference is a number caseDetails = caseDetailsRepository.findByReference(caseReference) .orElseThrow(() -> new ResourceNotFoundException("No case exist with id=" + caseReference)); } catch (NumberFormatException nfe) { From 83fddb0284054bffc6e9f4199d920546dad007ad Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Thu, 10 Oct 2024 11:46:55 +0100 Subject: [PATCH 04/42] Test fixes andd suppressions --- build.gradle | 18 ++++++ dependency-check-suppressions.xml | 9 ++- .../SupplementaryDataUserTypeTest.java | 55 +++++++++++++++++++ .../common/SecurityValidationServiceTest.java | 6 +- .../TestingSupportControllerTest.java | 6 +- 5 files changed, 83 insertions(+), 11 deletions(-) create mode 100644 src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserTypeTest.java diff --git a/build.gradle b/build.gradle index 3da1e29850..026a2ab906 100644 --- a/build.gradle +++ b/build.gradle @@ -14,6 +14,7 @@ plugins { id 'uk.gov.hmcts.java' version '0.12.57' id 'au.com.dius.pact' version '4.1.0' id "org.jsonschema2pojo" version "1.2.1" + id("org.owasp.dependencycheck") version "10.0.4" } apply from: './gradle/suppress.gradle' @@ -288,6 +289,23 @@ dependencyManagement { dependencies { + dependencySet(group: 'commons-beanutils', version: '1.9.4') { + entry 'commons-beanutils' + } + + dependencySet(group: 'com.squareup.okio', version: '3.9.1') { + entry 'okio' + } + + dependencySet(group: 'com.google.guava', version: '33.3.1-jre') { + entry 'guava' + } + + dependencySet(group: 'ch.qos.logback', version: '1.5.8') { + entry 'logback-classic' + entry 'logback-core' + } + dependencySet(group: 'org.codehaus.groovy', version: '4.0.22') { entry 'groovy' entry 'groovy-xml' diff --git a/dependency-check-suppressions.xml b/dependency-check-suppressions.xml index 71b2f41a87..a63dd4d3a5 100644 --- a/dependency-check-suppressions.xml +++ b/dependency-check-suppressions.xml @@ -1,10 +1,9 @@ Temporary Suppression - CVE-2023-6378 refer [Ticket] - CVE-2023-34055 refer [Ticket] - - CVE-2023-6378 - CVE-2023-34055 + CVE-2024-9329 refer [Ticket] + CVE-2024-45772 refer [Ticket] + CVE-2024-9329 + CVE-2024-45772 diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserTypeTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserTypeTest.java new file mode 100644 index 0000000000..0937f0193e --- /dev/null +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserTypeTest.java @@ -0,0 +1,55 @@ +package uk.gov.hmcts.ccd.data.casedetails.supplementarydata; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.verify; + +import java.io.Serializable; +import java.sql.PreparedStatement; +import java.sql.SQLException; + +import org.hibernate.type.CustomType; +import org.hibernate.type.SqlTypes; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.JsonNodeFactory; + +public class SupplementaryDataUserTypeTest { + + @Test + public void checkSupplementaryDataUserType_fields() throws SQLException { + SupplementaryDataUserType supplementaryDataUserType = new SupplementaryDataUserType(); + + assertEquals(SqlTypes.JSON, supplementaryDataUserType.getSqlType()); + assertEquals(JsonNode.class, supplementaryDataUserType.returnedClass()); + assertEquals(true, supplementaryDataUserType.isMutable()); + + JsonNode jsonNode = JsonNodeFactory.instance.objectNode(); + assertEquals(true, supplementaryDataUserType.equals(jsonNode, jsonNode)); + assertEquals(jsonNode.hashCode(), supplementaryDataUserType.hashCode(jsonNode)); + assertEquals(jsonNode, supplementaryDataUserType.deepCopy(jsonNode)); + assertEquals(jsonNode, supplementaryDataUserType.replace(jsonNode, null, null)); + assertEquals(jsonNode, supplementaryDataUserType.assemble((Serializable)jsonNode, null)); + assertEquals((Serializable)jsonNode, supplementaryDataUserType.disassemble(jsonNode)); + + PreparedStatement psMock = Mockito.mock(PreparedStatement.class); + supplementaryDataUserType.nullSafeSet(psMock, null, 0, null); + verify(psMock).setNull(anyInt(), anyInt()); + + supplementaryDataUserType.nullSafeSet(psMock, jsonNode, 0, null); + verify(psMock).setObject(anyInt(), anyString(), anyInt()); + } + + @Test + public void testCustomType() { + CustomType customClass = SupplementaryDataUserType.CUSTOM_TYPE; + assertNotNull(customClass); + assertEquals(CustomType.class, customClass.getClass()); + assertEquals(JsonNode.class, customClass.getJavaType()); + } + +} diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/SecurityValidationServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/SecurityValidationServiceTest.java index 31e3cb4c24..26546eac45 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/SecurityValidationServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/SecurityValidationServiceTest.java @@ -240,10 +240,10 @@ void shouldPassIfDefaultDataClassificationMatchesCallbackResponseDataClassificat securityValidationService.setClassificationFromCallbackIfValid(callbackResponse, caseDetails, caseDetails.getDataClassification()); assertAll( - () -> Assert.assertThat(caseDetails.getDataClassification().size(), is(2)), - () -> Assert.assertThat(caseDetails.getDataClassification(), hasEntry("field1", + () -> assertThat(caseDetails.getDataClassification().size(), is(2)), + () -> assertThat(caseDetails.getDataClassification(), hasEntry("field1", getTextNode("PRIVATE"))), - () -> Assert.assertThat(caseDetails.getDataClassification(), hasEntry("field2", + () -> assertThat(caseDetails.getDataClassification(), hasEntry("field2", getTextNode("PRIVATE"))) ); } diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/TestingSupportControllerTest.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/TestingSupportControllerTest.java index 939deb9a39..3de8e1df7d 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/TestingSupportControllerTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/TestingSupportControllerTest.java @@ -1,10 +1,10 @@ package uk.gov.hmcts.ccd.v2.external.controller; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyList; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.ArgumentMatchers.isA; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -17,7 +17,7 @@ import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.query.NativeQuery; -import org.hibernate.type.StringType; +import org.hibernate.type.BasicTypeReference; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; @@ -67,7 +67,7 @@ void shouldDeleteCaseTypeIds() { .thenReturn(session); when(session.createNativeQuery(anyString())) .thenReturn(nativeQuery); - when(nativeQuery.setParameterList(eq("caseTypeReferences"), anyList(), isA(StringType.class))) + when(nativeQuery.setParameterList(eq("caseTypeReferences"), anyList(), any(BasicTypeReference.class))) .thenReturn(nativeQuery); when(session.getTransaction()) .thenReturn(transaction); From 4ee648565d5b28bf476f1d4315cf46cf99204c94 Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Thu, 10 Oct 2024 12:29:06 +0100 Subject: [PATCH 05/42] Additional SupplementaryDataUserType tests --- .../SupplementaryDataUserType.java | 9 +++++++ .../SupplementaryDataUserTypeTest.java | 24 ++++++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserType.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserType.java index d03dd28f8b..39452eb0fd 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserType.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserType.java @@ -77,6 +77,9 @@ public void nullSafeSet(PreparedStatement st, JsonNode value, int index, SharedS @Override public JsonNode deepCopy(JsonNode value) { + if(value == null) { + return null; + } return value.deepCopy(); } @@ -87,11 +90,17 @@ public boolean isMutable() { @Override public Serializable disassemble(JsonNode value) { + if(value == null) { + return null; + } return (Serializable) value; } @Override public JsonNode assemble(Serializable cached, Object owner) { + if(cached == null) { + return null; + } return (JsonNode) cached; } diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserTypeTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserTypeTest.java index 0937f0193e..647d4b65fb 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserTypeTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserTypeTest.java @@ -1,15 +1,22 @@ package uk.gov.hmcts.ccd.data.casedetails.supplementarydata; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertThrows; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import java.io.Serializable; +import java.io.UnsupportedEncodingException; import java.sql.PreparedStatement; +import java.sql.ResultSet; import java.sql.SQLException; +import org.hibernate.HibernateException; import org.hibernate.type.CustomType; import org.hibernate.type.SqlTypes; import org.junit.jupiter.api.Test; @@ -21,7 +28,7 @@ public class SupplementaryDataUserTypeTest { @Test - public void checkSupplementaryDataUserType_fields() throws SQLException { + public void checkSupplementaryDataUserType_fields() throws Exception { SupplementaryDataUserType supplementaryDataUserType = new SupplementaryDataUserType(); assertEquals(SqlTypes.JSON, supplementaryDataUserType.getSqlType()); @@ -31,10 +38,14 @@ public void checkSupplementaryDataUserType_fields() throws SQLException { JsonNode jsonNode = JsonNodeFactory.instance.objectNode(); assertEquals(true, supplementaryDataUserType.equals(jsonNode, jsonNode)); assertEquals(jsonNode.hashCode(), supplementaryDataUserType.hashCode(jsonNode)); + assertThrows(HibernateException.class, () -> supplementaryDataUserType.hashCode(null)); assertEquals(jsonNode, supplementaryDataUserType.deepCopy(jsonNode)); + assertNull(supplementaryDataUserType.deepCopy(null)); assertEquals(jsonNode, supplementaryDataUserType.replace(jsonNode, null, null)); assertEquals(jsonNode, supplementaryDataUserType.assemble((Serializable)jsonNode, null)); + assertNull(supplementaryDataUserType.assemble(null, null)); assertEquals((Serializable)jsonNode, supplementaryDataUserType.disassemble(jsonNode)); + assertNull(supplementaryDataUserType.disassemble(null)); PreparedStatement psMock = Mockito.mock(PreparedStatement.class); supplementaryDataUserType.nullSafeSet(psMock, null, 0, null); @@ -42,6 +53,17 @@ public void checkSupplementaryDataUserType_fields() throws SQLException { supplementaryDataUserType.nullSafeSet(psMock, jsonNode, 0, null); verify(psMock).setObject(anyInt(), anyString(), anyInt()); + + doThrow(RuntimeException.class).when(psMock).setObject(anyInt(), anyString(), anyInt()); + assertThrows(RuntimeException.class, () -> + supplementaryDataUserType.nullSafeSet(psMock, jsonNode, 0, null)); + + ResultSet rsMock = Mockito.mock(ResultSet.class); + String rsMockString = Mockito.mock(String.class); + when(rsMock.getString(anyInt())).thenReturn(rsMockString); + when(rsMockString.getBytes("UTF-8")).thenThrow(RuntimeException.class); + assertThrows(RuntimeException.class, () -> + supplementaryDataUserType.nullSafeGet(rsMock, 0, null, null)); } @Test From 49cbc05d06e510ae9d0aba06fd8a837626929fcb Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Thu, 10 Oct 2024 16:04:27 +0100 Subject: [PATCH 06/42] Fix exception matching for SupplementaryDataUserTypeTest --- .../SupplementaryDataUserType.java | 8 ++++---- .../SupplementaryDataUserTypeTest.java | 16 ++++++---------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserType.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserType.java index 39452eb0fd..7739fd4b5f 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserType.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserType.java @@ -47,11 +47,11 @@ public int hashCode(JsonNode x) throws HibernateException { @Override public JsonNode nullSafeGet(ResultSet rs, int position, SharedSessionContractImplementor session, Object owner) throws SQLException { - final String cellContent = rs.getString(position); - if (cellContent == null) { - return null; - } try { + final String cellContent = rs.getString(position); + if (cellContent == null) { + return null; + } return mapper.readValue(cellContent.getBytes("UTF-8"), returnedClass()); } catch (final Exception ex) { throw new RuntimeException("Failed to convert String to MyJson: " + ex.getMessage(), ex); diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserTypeTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserTypeTest.java index 647d4b65fb..1966255ef2 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserTypeTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserTypeTest.java @@ -11,12 +11,8 @@ import static org.mockito.Mockito.when; import java.io.Serializable; -import java.io.UnsupportedEncodingException; import java.sql.PreparedStatement; import java.sql.ResultSet; -import java.sql.SQLException; - -import org.hibernate.HibernateException; import org.hibernate.type.CustomType; import org.hibernate.type.SqlTypes; import org.junit.jupiter.api.Test; @@ -38,7 +34,7 @@ public void checkSupplementaryDataUserType_fields() throws Exception { JsonNode jsonNode = JsonNodeFactory.instance.objectNode(); assertEquals(true, supplementaryDataUserType.equals(jsonNode, jsonNode)); assertEquals(jsonNode.hashCode(), supplementaryDataUserType.hashCode(jsonNode)); - assertThrows(HibernateException.class, () -> supplementaryDataUserType.hashCode(null)); + assertThrows(AssertionError.class, () -> supplementaryDataUserType.hashCode(null)); assertEquals(jsonNode, supplementaryDataUserType.deepCopy(jsonNode)); assertNull(supplementaryDataUserType.deepCopy(null)); assertEquals(jsonNode, supplementaryDataUserType.replace(jsonNode, null, null)); @@ -55,15 +51,15 @@ public void checkSupplementaryDataUserType_fields() throws Exception { verify(psMock).setObject(anyInt(), anyString(), anyInt()); doThrow(RuntimeException.class).when(psMock).setObject(anyInt(), anyString(), anyInt()); - assertThrows(RuntimeException.class, () -> + RuntimeException ex2 = assertThrows(RuntimeException.class, () -> supplementaryDataUserType.nullSafeSet(psMock, jsonNode, 0, null)); + assertEquals("Failed to convert MyJson to String: null", ex2.getMessage()); ResultSet rsMock = Mockito.mock(ResultSet.class); - String rsMockString = Mockito.mock(String.class); - when(rsMock.getString(anyInt())).thenReturn(rsMockString); - when(rsMockString.getBytes("UTF-8")).thenThrow(RuntimeException.class); - assertThrows(RuntimeException.class, () -> + when(rsMock.getString(0)).thenThrow(new RuntimeException()); + RuntimeException ex3 = assertThrows(RuntimeException.class, () -> supplementaryDataUserType.nullSafeGet(rsMock, 0, null, null)); + assertEquals("Failed to convert String to MyJson: null", ex3.getMessage()); } @Test From 49947fb07b67aca8bb6f7b346c089ec0be5aa22a Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Thu, 10 Oct 2024 16:41:25 +0100 Subject: [PATCH 07/42] fix whitespace issue --- .../supplementarydata/SupplementaryDataUserType.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserType.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserType.java index 7739fd4b5f..365c502614 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserType.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserType.java @@ -77,7 +77,7 @@ public void nullSafeSet(PreparedStatement st, JsonNode value, int index, SharedS @Override public JsonNode deepCopy(JsonNode value) { - if(value == null) { + if (value == null) { return null; } return value.deepCopy(); @@ -90,7 +90,7 @@ public boolean isMutable() { @Override public Serializable disassemble(JsonNode value) { - if(value == null) { + if (value == null) { return null; } return (Serializable) value; @@ -98,7 +98,7 @@ public Serializable disassemble(JsonNode value) { @Override public JsonNode assemble(Serializable cached, Object owner) { - if(cached == null) { + if (cached == null) { return null; } return (JsonNode) cached; From cd65e8306000804cc123330574d5c12bb0fb04fc Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Mon, 14 Oct 2024 13:05:17 +0100 Subject: [PATCH 08/42] fix healthcheck diskspace path issue --- src/aat/resources/features/common/health/Health__Base.td.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/aat/resources/features/common/health/Health__Base.td.json b/src/aat/resources/features/common/health/Health__Base.td.json index c4bd48c208..0d90df455b 100644 --- a/src/aat/resources/features/common/health/Health__Base.td.json +++ b/src/aat/resources/features/common/health/Health__Base.td.json @@ -41,6 +41,7 @@ "total": "[[ANYTHING_PRESENT]]", "free": "[[ANYTHING_PRESENT]]", "threshold": "[[ANYTHING_PRESENT]]", + "path": "[[ANYTHING_PRESENT]]", "exists": true } }, From e610542cd4372689d5a4e843b1ccb6198dddf7ad Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Mon, 14 Oct 2024 13:59:18 +0100 Subject: [PATCH 09/42] fix case mgmt healthcheck --- src/main/resources/application.properties | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index ae01f5e8b2..0c807a99c1 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -134,6 +134,9 @@ management.endpoint.health.cache.time-to-live=1000ms # Enable default health indicators management.health.defaults.enabled=true +# Enable case doc am health check +management.health.case-document-am-api.enabled=true + # Enable database health check management.health.db.enabled=true From a263a50ad903ad466b77f6b9dcf61318eace8112 Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Sat, 2 Nov 2024 11:51:54 +0000 Subject: [PATCH 10/42] Fix tests --- .../pactprovider/cases/CasesProviderTest.java | 3 +- .../cases/controller/CasesRestController.java | 40 +++++++-------- .../controller/DocumentControllerITest.java | 50 ++++++++++--------- 3 files changed, 49 insertions(+), 44 deletions(-) diff --git a/src/contractTest/java/uk/gov/hmcts/reform/ccd/pactprovider/cases/CasesProviderTest.java b/src/contractTest/java/uk/gov/hmcts/reform/ccd/pactprovider/cases/CasesProviderTest.java index 9bcc028e8b..455fa2490a 100644 --- a/src/contractTest/java/uk/gov/hmcts/reform/ccd/pactprovider/cases/CasesProviderTest.java +++ b/src/contractTest/java/uk/gov/hmcts/reform/ccd/pactprovider/cases/CasesProviderTest.java @@ -38,7 +38,8 @@ @Provider("ccd_data_store_api_cases") @PactBroker( - url = "${PACT_BROKER_FULL_URL:http://localhost:9292}", + host = "${PACT_BROKER_URL:localhost}", + port = "${PACT_BROKER_PORT:9292}", consumerVersionSelectors = {@VersionSelector(tag = "master")}) @IgnoreNoPactsToVerify @ExtendWith(SpringExtension.class) diff --git a/src/contractTest/java/uk/gov/hmcts/reform/ccd/pactprovider/cases/controller/CasesRestController.java b/src/contractTest/java/uk/gov/hmcts/reform/ccd/pactprovider/cases/controller/CasesRestController.java index bf07c2e585..423b9fa037 100644 --- a/src/contractTest/java/uk/gov/hmcts/reform/ccd/pactprovider/cases/controller/CasesRestController.java +++ b/src/contractTest/java/uk/gov/hmcts/reform/ccd/pactprovider/cases/controller/CasesRestController.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.reform.ccd.pactprovider.cases.controller; -import io.swagger.annotations.ApiParam; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; @@ -80,17 +80,17 @@ public ResponseEntity getCase(@PathVariable("caseId") final String path = "/citizens/{uid}/jurisdictions/{jid}/case-types/{ctid}/cases/{cid}/event-triggers/{etid}/token", produces = APPLICATION_JSON_VALUE) public ResponseEntity startEventForCitizen( - @ApiParam(value = "Idam user ID", required = true) + @Parameter(name = "Idam user ID", required = true) @PathVariable("uid") final String uid, - @ApiParam(value = "Jurisdiction ID", required = true) + @Parameter(name = "Jurisdiction ID", required = true) @PathVariable("jid") final String jurisdictionId, - @ApiParam(value = "Case type ID", required = true) + @Parameter(name = "Case type ID", required = true) @PathVariable("ctid") final String caseTypeId, - @ApiParam(value = "Case ID", required = true) + @Parameter(name = "Case ID", required = true) @PathVariable("cid") final String caseId, - @ApiParam(value = "Event ID", required = true) + @Parameter(name = "Event ID", required = true) @PathVariable("etid") final String eventId, - @ApiParam(value = "Should `AboutToStart` callback warnings be ignored") + @Parameter(name = "Should `AboutToStart` callback warnings be ignored") @RequestParam(value = "ignore-warning", required = false, defaultValue = "false") final Boolean ignoreWarning) { StartEventResult startEventResult = startEventOperation.triggerStartForCase(caseId, eventId, ignoreWarning); @@ -112,15 +112,15 @@ public ResponseEntity startEventForCitizen( @GetMapping(path = "/citizens/{uid}/jurisdictions/{jid}/case-types/{ctid}/event-triggers/{etid}/token", produces = APPLICATION_JSON_VALUE) public ResponseEntity startCaseForCitizen( - @ApiParam(value = "Idam user ID", required = true) + @Parameter(name = "Idam user ID", required = true) @PathVariable("uid") final String uid, - @ApiParam(value = "Jurisdiction ID", required = true) + @Parameter(name = "Jurisdiction ID", required = true) @PathVariable("jid") final String jurisdictionId, - @ApiParam(value = "Case type ID", required = true) + @Parameter(name = "Case type ID", required = true) @PathVariable("ctid") final String caseTypeId, - @ApiParam(value = "Event ID", required = true) + @Parameter(name = "Event ID", required = true) @PathVariable("etid") final String eventId, - @ApiParam(value = "Should `AboutToStart` callback warnings be ignored") + @Parameter(name = "Should `AboutToStart` callback warnings be ignored") @RequestParam(value = "ignore-warning", required = false, defaultValue = "false") final Boolean ignoreWarning) { StartEventResult startEventResult = startEventOperation.triggerStartForCaseType(caseTypeId, eventId, @@ -143,13 +143,13 @@ public ResponseEntity startCaseForCitizen( @PostMapping(path = "/citizens/{uid}/jurisdictions/{jid}/case-types/{ctid}/cases/{cid}/events", produces = APPLICATION_JSON_VALUE) public ResponseEntity createCaseEventForCitizen( - @ApiParam(value = "Idam user ID", required = true) + @Parameter(name = "Idam user ID", required = true) @PathVariable("uid") final String uid, - @ApiParam(value = "Jurisdiction ID", required = true) + @Parameter(name = "Jurisdiction ID", required = true) @PathVariable("jid") final String jurisdictionId, - @ApiParam(value = "Case type ID", required = true) + @Parameter(name = "Case type ID", required = true) @PathVariable("ctid") final String caseTypeId, - @ApiParam(value = "Case ID", required = true) + @Parameter(name = "Case ID", required = true) @PathVariable("cid") final String caseId, @RequestBody(required = false) final CaseDataContent content) { @@ -172,13 +172,13 @@ public ResponseEntity createCaseEventForCitizen( @PostMapping(path = "/citizens/{uid}/jurisdictions/{jid}/case-types/{ctid}/cases", produces = APPLICATION_JSON_VALUE) public ResponseEntity saveCaseDetailsForCitizen( - @ApiParam(value = "Idam user ID", required = true) + @Parameter(name = "Idam user ID", required = true) @PathVariable("uid") final String uid, - @ApiParam(value = "Jurisdiction ID", required = true) + @Parameter(name = "Jurisdiction ID", required = true) @PathVariable("jid") final String jurisdictionId, - @ApiParam(value = "Case type ID", required = true) + @Parameter(name = "Case type ID", required = true) @PathVariable("ctid") final String caseTypeId, - @ApiParam(value = "Should `AboutToSubmit` callback warnings be ignored") + @Parameter(name = "Should `AboutToSubmit` callback warnings be ignored") @RequestParam(value = "ignore-warning", required = false, defaultValue = "false") final Boolean ignoreWarning, @RequestBody(required = false) final CaseDataContent content) { diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerITest.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerITest.java index 17ef39ca95..ce9519f0f8 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerITest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerITest.java @@ -1,6 +1,23 @@ package uk.gov.hmcts.ccd.v2.external.controller; -import com.fasterxml.jackson.databind.ObjectMapper; +import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; +import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.allOf; +import static org.hamcrest.Matchers.hasItems; +import static org.hamcrest.Matchers.hasProperty; +import static org.hamcrest.Matchers.is; +import static org.junit.jupiter.api.Assertions.assertAll; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import java.util.List; +import java.util.Optional; + +import javax.sql.DataSource; + import org.junit.Before; import org.junit.Test; import org.springframework.hateoas.Link; @@ -11,6 +28,11 @@ import org.springframework.test.web.servlet.MvcResult; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.github.tomakehurst.wiremock.client.WireMock; + +import jakarta.inject.Inject; import uk.gov.hmcts.ccd.ApplicationParams; import uk.gov.hmcts.ccd.MockUtils; import uk.gov.hmcts.ccd.WireMockBaseTest; @@ -20,24 +42,6 @@ import uk.gov.hmcts.ccd.v2.V2; import uk.gov.hmcts.ccd.v2.external.resource.DocumentsResource; -import jakarta.inject.Inject; -import javax.sql.DataSource; -import java.util.List; -import java.util.Optional; - -import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; -import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.allOf; -import static org.hamcrest.Matchers.hasItems; -import static org.hamcrest.Matchers.hasProperty; -import static org.hamcrest.Matchers.is; -import static org.junit.jupiter.api.Assertions.assertAll; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; - // too many legacy OperatorWrap occurrences on JSON strings so suppress until move to Java12+ @SuppressWarnings("checkstyle:OperatorWrap") public class DocumentControllerITest extends WireMockBaseTest { @@ -69,7 +73,7 @@ public class DocumentControllerITest extends WireMockBaseTest { + " },\n" + " \"name\": \"Test Address Book Case\",\n" + " \"description\": \"Test Address Book Case\",\n" - + " \"printable_document_url\": \"http://localhost:%s/printables\",\n" + + " \"printable_document_url\": \"http://localhost:%d/printables\",\n" + " \"jurisdiction\": {\n" + " \"id\": \"PROBATE\",\n" + " \"name\": \"Test\",\n" @@ -121,7 +125,7 @@ public void setUp() { @Sql(executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD, scripts = {"classpath:sql/insert_cases.sql"}) public void shouldReturn200WhenGetValidCaseDocuments() throws Exception { - stubFor(com.github.tomakehurst.wiremock.client.WireMock + stubFor(WireMock .get(urlMatching("/api/data/case-type/TestAddressBookCase")) .willReturn(aResponse() .withHeader("Content-Type", "application/json") @@ -129,7 +133,7 @@ public void shouldReturn200WhenGetValidCaseDocuments() throws Exception { final MvcResult result = mockMvc .perform( - get(String.format("http://localhost:%s/cases/" + CASE_ID + "/documents", super.wiremockPort)) + get("http://localhost:" + super.wiremockPort + "/cases/" + CASE_ID + "/documents") .contentType(MediaType.APPLICATION_JSON) .header("Accept", V2.MediaType.CASE_DOCUMENTS) .header(REQUEST_ID, REQUEST_ID_VALUE) @@ -148,7 +152,7 @@ public void shouldReturn200WhenGetValidCaseDocuments() throws Exception { ClientContextUtil.decodeFromBase64(result.getResponse().getHeader(CUSTOM_CONTEXT))); assertAll( () -> assertThat(self.get().getHref(), - is(String.format("http://localhost:%s/cases/" + CASE_ID + "/documents", super.wiremockPort))), + is("http://localhost:" + super.wiremockPort + "/cases/" + CASE_ID + "/documents")), () -> assertThat(documentResources, hasItems(allOf(hasProperty("name", is("Claimant ID")), hasProperty("description", is("Document identifying identity")), From 40ceff685e23598a30c7d44b2888ad0b3c94388c Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Sat, 2 Nov 2024 19:06:58 +0000 Subject: [PATCH 11/42] Remove version restrictions --- build.gradle | 41 +++++-------------------------- dependency-check-suppressions.xml | 16 +++++++++--- 2 files changed, 19 insertions(+), 38 deletions(-) diff --git a/build.gradle b/build.gradle index 38f3c87943..52c66543ac 100644 --- a/build.gradle +++ b/build.gradle @@ -13,8 +13,8 @@ plugins { id 'info.solidsoft.pitest' version '1.15.0' id 'uk.gov.hmcts.java' version '0.12.57' id 'au.com.dius.pact' version '4.3.12' - id "org.jsonschema2pojo" version "1.2.1" - id("org.owasp.dependencycheck") version "10.0.4" + id 'org.jsonschema2pojo' version "1.2.1" + id 'org.owasp.dependencycheck' version '11.1.0' } apply from: './gradle/suppress.gradle' @@ -125,6 +125,10 @@ configurations { contractTestRuntimeOnly.extendsFrom(testRuntimeOnly) contractTestAnnotationProcessor.extendsFrom(annotationProcessor) cucumberRuntime.extendsFrom(functionalRuntime) + + all.collect { configuration -> + configuration.exclude group: 'org.apache.logging.log4j', module: 'log4j-to-slf4j' + } } //This is to exclude generated files from build/generated-sources/js2p/uk/gov/hmcts/ccd/domain/types/sanitiser/document @@ -290,33 +294,6 @@ dependencyManagement { imports { mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" } - - dependencies { - - dependencySet(group: 'commons-beanutils', version: '1.9.4') { - entry 'commons-beanutils' - } - - dependencySet(group: 'com.squareup.okio', version: '3.9.1') { - entry 'okio' - } - - dependencySet(group: 'com.google.guava', version: '33.3.1-jre') { - entry 'guava' - } - - dependencySet(group: 'ch.qos.logback', version: '1.5.8') { - entry 'logback-classic' - entry 'logback-core' - } - - dependencySet(group: 'org.codehaus.groovy', version: '4.0.22') { - entry 'groovy' - entry 'groovy-xml' - entry 'groovy-json' - entry 'groovy-all' - } - } } pitest { @@ -578,12 +555,6 @@ compileJava { options.annotationProcessorPath = configurations.annotationProcessor } -configurations { - all.collect { configuration -> - configuration.exclude group: 'org.apache.logging.log4j', module: 'log4j-to-slf4j' - } -} - compileTestJava { options.annotationProcessorPath = configurations.annotationProcessor } diff --git a/dependency-check-suppressions.xml b/dependency-check-suppressions.xml index a63dd4d3a5..53eeaac9f8 100644 --- a/dependency-check-suppressions.xml +++ b/dependency-check-suppressions.xml @@ -1,9 +1,19 @@ Temporary Suppression - CVE-2024-9329 refer [Ticket] - CVE-2024-45772 refer [Ticket] - CVE-2024-9329 + CVE-2019-10086 refer [Ticket] + CVE-2023-2976 refer [Ticket] + CVE-2020-8908 refer [Ticket] + CVE-2023-6378 refer [Ticket] + CVE-2024-45772 refer [Ticket] + CVE-2023-3635 refer [Ticket] + CVE-2024-38820 refer [Ticket] + CVE-2019-10086 + CVE-2023-2976 + CVE-2020-8908 + CVE-2023-6378 CVE-2024-45772 + CVE-2023-3635 + CVE-2024-38820 From 385b426ecccb70c759c6589ea8b026afa7422755 Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Mon, 4 Nov 2024 17:11:52 +0000 Subject: [PATCH 12/42] exclude codehaus.groovy --- build.gradle | 4 +++- .../ccd/v2/external/controller/DocumentControllerITest.java | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 52c66543ac..5999dad8e6 100644 --- a/build.gradle +++ b/build.gradle @@ -274,7 +274,9 @@ dependencies { testImplementation group: 'com.github.hmcts', name: 'befta-fw', version: '9.0.2' testImplementation group: 'com.github.hmcts', name: 'fortify-client', version: '1.3.0', classifier: 'all' - contractTestImplementation group: 'au.com.dius.pact.provider', name: 'junit5', version: pactProviderVersion + contractTestImplementation group: 'au.com.dius.pact.provider', name: 'junit5', version: pactProviderVersion, { + exclude group: 'org.codehaus.groovy', module: 'groovy' + } contractTestImplementation group: 'au.com.dius.pact.provider', name: 'spring', version: pactProviderVersion contractTestImplementation group: 'au.com.dius.pact.provider', name: 'junit5spring', version: pactProviderVersion contractTestImplementation group: 'io.vavr', name: 'vavr', version: '0.10.4' diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerITest.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerITest.java index ce9519f0f8..e69e7855b7 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerITest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerITest.java @@ -122,7 +122,7 @@ public void setUp() { } @Test - @Sql(executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD, scripts = {"classpath:sql/insert_cases.sql"}) + @Sql({"classpath:sql/insert_cases.sql"}) public void shouldReturn200WhenGetValidCaseDocuments() throws Exception { stubFor(WireMock From c1ba8932ccbc6f78a4dfeb836fed55699b014049 Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Tue, 21 Jan 2025 17:31:04 +0000 Subject: [PATCH 13/42] SpringBoot3.4 --- build.gradle | 207 ++++++++-------- .../CasesControllerProviderTest.java | 43 +--- .../controller/SecurityMockConfiguration.java | 4 +- ...eAssignedUserRolesProviderTestContext.java | 9 +- .../resources/application.properties | 9 +- .../gov/hmcts/ccd/SecurityConfiguration.java | 5 +- .../hmcts/ccd/auditlog/aop/AuditAspect.java | 2 +- .../uk/gov/hmcts/ccd/config/JacksonUtils.java | 2 +- .../ccd/config/SwaggerConfiguration.java | 5 - .../DefaultCaseDetailsRepository.java | 8 +- ...ncrementSupplementaryDataQueryBuilder.java | 20 +- .../ccd/data/user/DefaultUserRepository.java | 4 +- .../model/globalsearch/SearchPartyValue.java | 2 +- .../domain/service/AuthorisationMapper.java | 2 +- .../AbstractAuthorisedCaseViewOperation.java | 2 +- .../AuthorisedGetCriteriaOperation.java | 2 +- .../service/callbacks/EventTokenService.java | 11 +- .../caselinking/CaseLinkExtractor.java | 2 +- .../additionaldata/PublishableField.java | 2 +- .../elasticsearch/SearchRoleAssignment.java | 2 +- .../mapper/CaseDetailsMapper.java | 2 +- .../GlobalSearchResponseTransformer.java | 2 +- .../service/validate/CaseDataIssueLogger.java | 2 +- .../validate/ValidateSignificantDocument.java | 2 +- .../ccd/domain/types/EmailValidator.java | 4 +- src/main/resources/application.properties | 9 +- .../ccd/AbstractBaseIntegrationTest.java | 4 +- src/test/java/uk/gov/hmcts/ccd/MockUtils.java | 4 +- .../ccd/data/ReferenceDataCacheRefreshIT.java | 14 +- .../DefaultCaseUserRepositoryTest.java | 8 +- .../DefaultCaseDetailsRepositoryTest.java | 8 +- .../query/UserAuthorisationSecurityTest.java | 2 +- ...efaultSupplementaryDataRepositoryTest.java | 2 + .../DefaultCaseDefinitionRepositoryTest.java | 4 +- .../data/draft/DefaultDraftGatewayTest.java | 6 +- .../jexl/JexlEnablingConditionParserTest.java | 2 +- .../std/validator/EventValidatorTest.java | 2 +- ...AuthorisedGetUserProfileOperationTest.java | 4 +- ...thorisedCaseDefinitionDataServiceTest.java | 2 +- .../DefaultObjectMapperServiceTest.java | 2 +- .../AuthorisedCreateCaseOperationTest.java | 2 +- .../createcase/SubmitCaseTransactionTest.java | 2 +- .../AuthorisedCreateEventOperationTest.java | 2 +- .../getcase/CreatorGetCaseOperationTest.java | 4 +- .../AuthorisedGetEventsOperationTest.java | 2 +- .../lau/AuditCaseRemoteOperationIT.java | 5 +- .../date/DateTimeFormatParserTest.java | 2 +- .../search/AuthorisedSearchOperationTest.java | 2 +- .../ElasticsearchCaseSearchOperationTest.java | 24 +- .../AuthorisedCaseSearchOperationTest.java | 4 +- .../ClassifiedStartEventOperationTest.java | 2 +- .../stdapi/DocumentsOperationTest.java | 4 +- .../sanitiser/DocumentSanitiserTest.java | 4 +- .../ccd/endpoint/std/CallbackEndpointIT.java | 4 +- .../endpoint/std/CaseAccessEndpointIT.java | 4 +- .../endpoint/std/CaseDetailsEndpointIT.java | 2 +- .../endpoint/std/CaseDetailsEndpointTest.java | 2 +- .../endpoint/std/CaseSearchEndpointIT.java | 14 +- .../ccd/endpoint/std/DraftsEndpointTest.java | 2 +- .../endpoint/std/GlobalSearchEndpointIT.java | 12 +- .../ccd/endpoint/std/MigrationEndpointIT.java | 4 +- .../ccd/endpoint/ui/QueryEndpointIT.java | 4 +- .../CaseRoleDefinitionCachingIT.java | 4 +- .../integrations/DefinitionsCachingIT.java | 10 +- .../integrations/IdamRepositoryCachingIT.java | 8 +- .../ccd/security/idam/IdamRepositoryTest.java | 5 +- ...BaseCaseAssignedUserRolesControllerIT.java | 4 +- .../controller/CaseControllerEventsIT.java | 2 +- .../controller/CaseControllerTestIT.java | 4 +- .../CaseFileViewControllerTestIT.java | 4 +- .../controller/CaseUserControllerIT.java | 4 +- .../controller/CaseUserControllerTest.java | 2 +- .../controller/DocumentControllerITest.java | 229 +++++++++++++----- .../UICaseControllerCaseRolesIT.java | 6 +- .../UICaseControllerGetCaseCallbackIT.java | 2 +- 75 files changed, 463 insertions(+), 356 deletions(-) diff --git a/build.gradle b/build.gradle index 5e8441f33b..44904427b6 100644 --- a/build.gradle +++ b/build.gradle @@ -3,35 +3,37 @@ plugins { id 'jacoco' id 'idea' id 'eclipse' - id 'org.springframework.boot' version '3.0.13' + id 'org.springframework.boot' version '3.4.1' id 'com.github.ben-manes.versions' version '0.51.0' - id 'io.spring.dependency-management' version '1.1.5' - id 'org.sonarqube' version '5.0.0.4638' - id 'com.github.kt3k.coveralls' version '2.8.2' + id 'io.spring.dependency-management' version '1.1.7' + id 'org.sonarqube' version '6.0.1.5171' + id("com.github.kt3k.coveralls") version "2.12.2" id 'com.github.spacialcircumstances.gradle-cucumber-reporting' version '0.1.25' - id 'org.jetbrains.gradle.plugin.idea-ext' version '0.7' + id("org.jetbrains.gradle.plugin.idea-ext") version "1.1.9" id 'info.solidsoft.pitest' version '1.15.0' - id 'uk.gov.hmcts.java' version '0.12.57' - id 'au.com.dius.pact' version '4.3.12' - id 'org.jsonschema2pojo' version "1.2.1" - id 'org.owasp.dependencycheck' version '11.1.0' + id 'uk.gov.hmcts.java' version '0.12.63' + id 'au.com.dius.pact' version '4.6.16' + id 'org.jsonschema2pojo' version "1.2.2" + id 'org.owasp.dependencycheck' version '11.1.1' } apply from: './gradle/suppress.gradle' ext { - set('springCloudVersion', '2022.0.5') - set('spring-framework.version', '6.0.21') - set('spring-security.version', '6.0.8') - set('log4j2.version', '2.17.1') - set('jackson.version', '2.16.0') - set('snakeyaml.version', '2.2') - junitJupiterVersion = '5.9.3' - junitVintageVersion = '5.9.3' - powermockVersion = '2.0.7' - appInsightsVersion = '2.4.1' - pactProviderVersion = '4.1.7' - lombokVersion = '1.18.34' + set('springCloudVersion', '2024.0.0') + set('spring-framework.version', '6.2.1') + set('spring-security.version', '6.4.2') + set('log4j2.version', '2.24.3') + set('jackson.version', '2.18.2') + set('snakeyaml.version', '2.3') + junitJupiterVersion = '5.11.4' + junitVintageVersion = '5.11.4' + appInsightsVersion = '2.6.4' + pactProviderVersion = '4.6.16' + lombokVersion = '1.18.36' + lombokBindingVersion = '0.2.0' + elasticVersion = '8.16.2' + testContainersVersion = '1.20.4' limits = [ 'instruction': 90, 'branch' : 85, @@ -148,13 +150,53 @@ tasks.withType(Test) { dependencies { + // start::CVE Vulnerability dependency overrides // MAIN PARENT DEPENDEDNCY + + implementation group: 'com.auth0', name: 'java-jwt', version: '4.4.0' + implementation group: 'com.google.code.gson', name: 'gson', version: '2.11.0' // java-property-to-json + implementation group: 'com.google.guava', name: 'guava', version: '33.4.0-jre' // java-property-to-json + implementation group: 'com.jayway.jsonpath', name: 'json-path', version: '2.9.0' // spring-hateoas + implementation group: 'com.nimbusds', name: 'nimbus-jose-jwt', version: '10.0.1' // spring-security-oauth2-jose + runtimeOnly group: 'com.zaxxer', name: 'HikariCP', version: '6.2.1' // spring-boot-starter-data-jpa + implementation group: 'ch.qos.logback', name: 'logback-core', version: '1.5.16' // applicationinsights-logging-logback + implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.5.16' // applicationinsights-logging-logback + implementation group: 'commons-beanutils', name: 'commons-beanutils', version: '1.10.0' // commons-validator + implementation group: 'commons-fileupload', name: 'commons-fileupload', version: '1.5' // feign-form-spring + implementation group: 'commons-io', name: 'commons-io', version: '2.18.0' // spring-cloud-starter-openfeign + implementation group: 'io.github.openfeign', name: 'feign-httpclient', version: '13.5' // spring-cloud-starter-openfeign + implementation group: 'io.github.openfeign', name: 'feign-jackson', version: '13.5' // service-auth-provider-java-client + implementation group: 'io.github.openfeign.form', name: 'feign-form-spring', version: '3.8.0' // spring-cloud-starter-openfeign + implementation group: 'jakarta.inject', name: 'jakarta.inject-api', version: '2.0.1' // spring-boot-starter-data-jpa + implementation group: 'jakarta.persistence', name: 'jakarta.persistence-api', version: '3.1.0' // spring-boot-starter-data-jpa (held at 3.1.0 due to methods with same signature getSchemaManager()) + implementation group: 'jakarta.servlet', name: 'jakarta.servlet-api', version: '6.1.0' // service-auth-provider-java-client + implementation group: 'net.minidev', name: 'json-smart', version: '2.5.1' // spring-security-oauth2-client + implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.17.0' // java-property-to-json + implementation group: 'org.hibernate.orm', name: 'hibernate-core', version: '6.6.4.Final' // spring-boot-starter-data-jpa + + testImplementation group: 'io.rest-assured', name: 'rest-assured', version: '5.5.0' // ccd-test-definitions + testImplementation group: 'org.json', name: 'json', version: '20250107' // ccd-test-definitions + testImplementation group: 'org.assertj', name: 'assertj-core', version: '3.27.2' // spring-cloud-starter-contract-stub-runner + testImplementation group: 'org.mockito', name: 'mockito-core', version: '5.15.2' // spring-cloud-starter-contract-stub-runner + testImplementation group: 'org.mockito', name: 'mockito-junit-jupiter', version: '5.15.2' // spring-boot-starter-test + + + configurations.all { + exclude group: 'com.vaadin.external.google', module: 'android-json' + + // Group versions + resolutionStrategy.eachDependency { + // if (requested.group == 'org.apache.lucene') useVersion '10.1.0' + } + } + // end::CVE Vulnerability dependency overrides + // Lombok compileOnly group: 'org.projectlombok', name: 'lombok', version: lombokVersion annotationProcessor group: 'org.projectlombok', name: 'lombok', version: lombokVersion - annotationProcessor group: 'org.projectlombok', name: 'lombok-mapstruct-binding', version: '0.2.0' + annotationProcessor group: 'org.projectlombok', name: 'lombok-mapstruct-binding', version: lombokBindingVersion testCompileOnly group: 'org.projectlombok', name: 'lombok', version: lombokVersion testAnnotationProcessor group: 'org.projectlombok', name: 'lombok', version: lombokVersion - testAnnotationProcessor group: 'org.projectlombok', name: 'lombok-mapstruct-binding', version: '0.2.0' + testAnnotationProcessor group: 'org.projectlombok', name: 'lombok-mapstruct-binding', version: lombokBindingVersion // Spring implementation group: 'org.springframework.boot', name: 'spring-boot-starter-actuator' @@ -162,9 +204,7 @@ dependencies { implementation group: 'org.springframework.boot', name: 'spring-boot-starter-web' implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation' implementation group: 'org.springframework.boot', name: 'spring-boot-starter-cache' - implementation group: 'org.springframework.boot', name: 'spring-boot-starter-jdbc', { - exclude group: 'org.apache.tomcat', module: 'tomcat-jdbc' - } + implementation group: 'org.springframework.boot', name: 'spring-boot-starter-jdbc' implementation group: 'org.springframework.boot', name: 'spring-boot-starter-oauth2-resource-server' implementation group: 'org.springframework.cloud', name: 'spring-cloud-starter-openfeign' implementation group: 'org.springframework.hateoas', name: 'spring-hateoas' @@ -178,8 +218,7 @@ dependencies { implementation group: 'org.springframework.security', name: 'spring-security-config' implementation group: 'org.springframework.security', name: 'spring-security-web' implementation group: 'org.springframework.security', name: 'spring-security-crypto' - - implementation group: 'org.springdoc', name: 'springdoc-openapi-starter-webmvc-ui', version: '2.6.0' + implementation group: 'org.springdoc', name: 'springdoc-openapi-starter-webmvc-ui', version: '2.8.1' // HMCTS implementation group: 'com.github.hmcts', name: 'service-auth-provider-java-client', version: '5.2.0' @@ -187,105 +226,53 @@ dependencies { implementation group: 'com.github.hmcts', name: 'ccd-case-document-am-client', version: '1.8.1' implementation group: 'com.github.hmcts.java-logging', name: 'logging', version: '6.1.6' - implementation group: 'com.auth0', name: 'java-jwt', version: '4.4.0' implementation group: 'com.github.ben-manes.caffeine', name: 'caffeine', version: '3.1.8' - implementation group: 'com.google.code.gson', name: 'gson', version: '2.11.0' - implementation group: 'com.jayway.jsonpath', name: 'json-path', version: '2.4.0' implementation group: 'com.microsoft.azure', name: 'applicationinsights-logging-logback', version: appInsightsVersion implementation group: 'com.microsoft.azure', name: 'applicationinsights-spring-boot-starter', version: appInsightsVersion - implementation group: 'com.nimbusds', name: 'nimbus-jose-jwt', version: '9.37.2' - implementation group: 'com.sun.mail', name: 'mailapi', version: '1.6.1' + implementation group: 'com.sun.mail', name: 'mailapi', version: '2.0.1' implementation group: 'com.vladmihalcea', name: 'hibernate-types-60', version: '2.21.1' - implementation group: 'commons-beanutils', name: 'commons-beanutils', version: '1.9.4' - implementation group: 'commons-fileupload', name: 'commons-fileupload', version: '1.5' - implementation group: 'commons-io', name: 'commons-io', version: '2.17.0' - implementation group: 'commons-lang', name: 'commons-lang', version: '2.6' - implementation group: 'commons-validator', name: 'commons-validator', version: '1.6' - implementation group: 'io.github.openfeign', name: 'feign-httpclient', version: '11.0' - implementation group: 'io.github.openfeign.form', name: 'feign-form-spring', version: '3.8.0' - implementation group: 'io.jsonwebtoken', name: 'jjwt', version: '0.9.1' - implementation group: 'io.searchbox', name: 'jest', version: '6.3.1', { - exclude group: 'org.apache.logging.log4j', module: 'log4j-core' - } - implementation group: 'io.vavr', name: 'vavr', version: '0.10.4' - implementation group: 'jakarta.inject', name: 'jakarta.inject-api', version: '2.0.1' - implementation group: 'jakarta.persistence', name: 'jakarta.persistence-api', version: '3.1.0' - implementation group: 'jakarta.servlet', name: 'jakarta.servlet-api', version: '6.1.0' - implementation group: 'net.minidev', name: 'json-smart', version: '2.4.11' + implementation group: 'commons-validator', name: 'commons-validator', version: '1.9.0' + implementation group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.12.6' + implementation group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.12.6' + implementation group: 'io.jsonwebtoken', name: 'jjwt-jackson', version: '0.12.6' + implementation group: 'io.searchbox', name: 'jest', version: '6.3.1' + implementation group: 'io.vavr', name: 'vavr', version: '0.10.5' implementation group: 'org.apache.commons', name: 'commons-jexl3', version: '3.4.0' - implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.17.0' - implementation group: 'org.apache.httpcomponents.client5', name: 'httpclient5', version: '5.2.3' - implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.17.1' - implementation group: 'org.awaitility', name: 'awaitility', version: '3.1.6' - implementation group: 'org.bouncycastle', name: 'bcpkix-jdk15to18', version: '1.77' - implementation group: 'org.elasticsearch', name: 'elasticsearch', version: '7.16.2', { - exclude group: 'org.apache.logging.log4j', module: 'log4j-api' - } + implementation group: 'org.apache.httpcomponents.client5', name: 'httpclient5', version: '5.4.1' + implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.24.3' + implementation group: 'org.elasticsearch', name: 'elasticsearch', version: '7.16.2' implementation group: 'org.flywaydb', name: 'flyway-core', version: '8.5.13' - implementation group: 'org.hibernate.orm', name: 'hibernate-core', version: '6.0.2.Final' - implementation group: 'org.jooq', name: 'jool-java-8', version: '0.9.14' - implementation group: 'org.mapstruct', name: 'mapstruct-jdk8', version: '1.3.1.Final' - implementation group: 'org.yaml', name: 'snakeyaml', version: '2.2' - annotationProcessor group: 'org.mapstruct', name: 'mapstruct-processor', version: '1.3.1.Final' + implementation group: 'org.jooq', name: 'jool-java-8', version: '0.9.15' + implementation group: 'org.mapstruct', name: 'mapstruct', version: '1.6.3' implementation group: 'pl.jalokim.propertiestojson', name: 'java-properties-to-json', version: '5.3.0' - testAnnotationProcessor group: 'org.mapstruct', name: 'mapstruct-processor', version: '1.3.1.Final' - testImplementation group: 'io.github.openfeign.form', name: 'feign-form', version: '3.8.0' - - // FIXME 0.6 doesn't support jsonb; 0.7 doesn't work on Windows - // runtime group: 'com.impossibl.pgjdbc-ng', name: 'pgjdbc-ng', version: '0.6' - runtimeOnly group: 'org.postgresql', name: 'postgresql', version: '42.5.5' - runtimeOnly group: 'com.zaxxer', name: 'HikariCP', version: '4.0.2' - - - configurations.all { - exclude group: 'com.vaadin.external.google', module: 'android-json' - } - testImplementation group: 'org.json', name: 'json', version: '20211205' - - testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: '3.0.13' - testImplementation group: 'org.springframework.cloud', name: 'spring-cloud-contract-wiremock', version: '4.1.4' - testImplementation group: 'org.springframework.cloud', name: 'spring-cloud-starter-contract-stub-runner', version: '4.1.4' - testImplementation group: 'com.opentable.components', name: 'otj-pg-embedded', version: '0.12.0' - testImplementation group: 'org.assertj', name: 'assertj-core', version: '3.22.0' - testImplementation group: 'org.assertj', name: 'assertj-vavr', version: '0.4.2' - testImplementation group: 'org.testcontainers', name: 'postgresql', version: '1.20.2' - - // To avoid compiler warnings about @API annotations in JUnit5 code. - testImplementation 'org.apiguardian:apiguardian-api:1.0.0' + + annotationProcessor group: 'org.mapstruct', name: 'mapstruct-processor', version: '1.6.3' + testAnnotationProcessor group: 'org.mapstruct', name: 'mapstruct-processor', version: '1.6.3' + runtimeOnly group: 'org.postgresql', name: 'postgresql', version: '42.5.6' + + // TEST DEPENDENCIES + testImplementation group: 'com.opentable.components', name: 'otj-pg-embedded', version: '1.1.0' + testImplementation group: 'com.xebialabs.restito', name: 'restito', version: '1.1.2' + testImplementation group: 'org.assertj', name: 'assertj-vavr', version: '0.4.3' testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: junitJupiterVersion testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: junitJupiterVersion testRuntimeOnly group: 'org.junit.vintage', name: 'junit-vintage-engine', version: junitVintageVersion - testImplementation group: 'org.mockito', name: 'mockito-core', version: '3.6.0' - testImplementation group: 'org.mockito', name: 'mockito-junit-jupiter', version:'3.6.0' - testImplementation group: 'org.powermock', name: 'powermock-api-mockito2', version: powermockVersion - testImplementation group: 'org.powermock', name: 'powermock-module-junit4', version: powermockVersion - testImplementation group: 'io.rest-assured', name: 'rest-assured', version: '5.5.0' - testImplementation group: 'com.xebialabs.restito', name: 'restito', version: '0.9.3' - - testImplementation group: 'io.github.openfeign', name: 'feign-jackson', version: '9.7.0' - testImplementation group: 'org.testcontainers', name: 'elasticsearch', version: '1.20.2' - testImplementation group: 'org.testcontainers', name: 'junit-jupiter', version: '1.20.2' - - // for sonar analysis - testImplementation group: 'org.openid4java', name: 'openid4java', version: '1.0.0' - testImplementation group: 'com.github.hmcts', name: 'ccd-test-definitions', version: '7.24.0' - testImplementation group: 'com.github.hmcts', name: 'befta-fw', version: '9.2.0' - testImplementation group: 'com.github.hmcts', name: 'fortify-client', version: '1.3.0', classifier: 'all' + testImplementation group: 'org.springframework.cloud', name: 'spring-cloud-starter-contract-stub-runner', version: '4.1.4' + testImplementation group: 'org.testcontainers', name: 'testcontainers', version: testContainersVersion + testImplementation group: 'org.testcontainers', name: 'postgresql', version: testContainersVersion + testImplementation group: 'org.testcontainers', name: 'elasticsearch', version: testContainersVersion + testImplementation group: 'org.testcontainers', name: 'junit-jupiter', version: testContainersVersion + testImplementation group: 'org.openid4java', name: 'openid4java', version: '1.0.0' // for sonar analysis + testImplementation group: 'com.github.hmcts', name: 'ccd-test-definitions', version: '7.25.0' + testImplementation group: 'com.github.hmcts', name: 'befta-fw', version: '9.2.1' + testImplementation group: 'com.github.hmcts', name: 'fortify-client', version: '1.4.6' contractTestImplementation group: 'au.com.dius.pact.provider', name: 'junit5', version: pactProviderVersion, { exclude group: 'org.codehaus.groovy', module: 'groovy' } contractTestImplementation group: 'au.com.dius.pact.provider', name: 'spring', version: pactProviderVersion contractTestImplementation group: 'au.com.dius.pact.provider', name: 'junit5spring', version: pactProviderVersion - contractTestImplementation group: 'com.microsoft.azure', name: 'applicationinsights-core', version: '2.6.1' contractTestAnnotationProcessor group: 'org.projectlombok', name: 'lombok', version: lombokVersion - contractTestImplementation(group: 'io.searchbox', name: 'jest', version: '6.3.1') { - exclude group: 'org.apache.logging.log4j', module: 'log4j-core' - } - contractTestImplementation group: 'org.apache.commons', name: 'commons-jexl3', version: '3.1' - contractTestImplementation(group: 'org.elasticsearch', name: 'elasticsearch', version: '7.16.2') { - exclude group: 'org.apache.logging.log4j', module: 'log4j-api' - } aatAnnotationProcessor group: 'org.projectlombok', name: 'lombok', version: lombokVersion } // end::dependencies[] diff --git a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/CasesControllerProviderTest.java b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/CasesControllerProviderTest.java index 3727d429c7..d1d39f93cb 100644 --- a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/CasesControllerProviderTest.java +++ b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/CasesControllerProviderTest.java @@ -15,9 +15,9 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.bean.override.mockito.MockitoBean; import org.springframework.test.context.junit.jupiter.SpringExtension; import uk.gov.hmcts.ccd.WireMockBaseContractTest; import uk.gov.hmcts.ccd.auditlog.AuditService; @@ -66,58 +66,41 @@ public class CasesControllerProviderTest extends WireMockBaseContractTest { @Autowired ContractTestSecurityUtils securityUtils; - - @MockBean + @MockitoBean UserAuthorisationSecurity userAuthorisationSecurity; - @Autowired ContractTestCreateCaseOperation contractTestCreateCaseOperation; - @Autowired ContractTestGetCaseOperation getCaseOperation; - @Autowired ContractTestStartEventOperation startEventOperation; - @Autowired ObjectMapper objectMapper; - - @MockBean + @MockitoBean EventTokenService eventTokenServiceMock; - - @MockBean + @MockitoBean DocumentSanitiser documentSanitiser; - @Autowired ContractTestCaseDefinitionRepository contractTestCaseDefinitionRepository; - - @MockBean + @MockitoBean AuthorisedCaseSearchOperation elasticsearchCaseSearchOperationMock; - - @MockBean + @MockitoBean AuthorisedSearchOperation authorisedSearchOperation; - - @MockBean + @MockitoBean UserAuthorisation userAuthorisation; - - @MockBean + @MockitoBean AuditService auditService; - - @MockBean + @MockitoBean CaseAccessService caseAccessService; - @MockBean + @MockitoBean AccessControlService accessControlService; - - @MockBean + @MockitoBean TelemetryClient telemetryClient; - @Autowired ContractTestCreateEventOperation createEventOperation; - - @MockBean + @MockitoBean CaseDataService caseDataService; - - @MockBean + @MockitoBean MessageService messageService; @TestTemplate diff --git a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/SecurityMockConfiguration.java b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/SecurityMockConfiguration.java index bc13d988f8..83995f144f 100644 --- a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/SecurityMockConfiguration.java +++ b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/SecurityMockConfiguration.java @@ -62,13 +62,13 @@ public WebSecurityCustomizer webSecurityCustomizer() { @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { - http.authorizeHttpRequests().requestMatchers( + http.authorizeHttpRequests(ahr -> ahr.requestMatchers( "/case-types/**", "/caseworkers/**", "/citizens/**", "/searchCases/**", "/cases/**" - ).permitAll(); + ).permitAll()); return http.build(); } } diff --git a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTestContext.java b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTestContext.java index 0e7a2efdc8..45b0f15e90 100644 --- a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTestContext.java +++ b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTestContext.java @@ -1,10 +1,11 @@ package uk.gov.hmcts.ccd.v2.external.controller.caseassigned; -import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import org.springframework.context.annotation.Profile; +import org.springframework.test.context.bean.override.mockito.MockitoBean; + import uk.gov.hmcts.ccd.ApplicationParams; import uk.gov.hmcts.ccd.data.SecurityUtils; import uk.gov.hmcts.ccd.domain.service.caseaccess.CaseAccessOperation; @@ -16,13 +17,13 @@ @Profile("CASE_ASSIGNED") public class CaseAssignedUserRolesProviderTestContext { - @MockBean + @MockitoBean ApplicationParams applicationParams; - @MockBean + @MockitoBean SecurityUtils securityUtils; - @MockBean + @MockitoBean CaseAccessOperation caseAccessOperation; @Primary diff --git a/src/contractTest/resources/application.properties b/src/contractTest/resources/application.properties index f1cdc1cdde..70d5cd89f4 100644 --- a/src/contractTest/resources/application.properties +++ b/src/contractTest/resources/application.properties @@ -64,7 +64,7 @@ ccd.user-profile.host=${USER_PROFILE_HOST:http://localhost:4453} case_document_am.url=${CASE_DOCUMENT_AM_URL:http://localhost:4455} ccd.case-document-am-api.attachDocumentEnabled=${CASE_DOCUMENT_AM_API_ATTACH_DOCUMENT_ENABLED:true} -ccd.token.secret=${DATA_STORE_TOKEN_SECRET:AAAAAAAAAA} +ccd.token.secret=${DATA_STORE_TOKEN_SECRET:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA} #callback timeouts - comma separated integers in seconds ccd.callback.retries=1,5,10 @@ -88,7 +88,7 @@ spring.security.oauth2.client.registration.oidc.client-secret = internal oidc.issuer = ${OIDC_ISSUER:http://fr-am:8080/openam/oauth2/hmcts} # Required for the ServiceAuthorisationApi class in service-auth-provider-java-client library -idam.s2s-auth.totp_secret=${DATA_STORE_IDAM_KEY:AAAAAAAAAAAAAAAB} +idam.s2s-auth.totp_secret=${DATA_STORE_IDAM_KEY:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB} idam.s2s-auth.microservice=ccd_data idam.s2s-auth.url=${IDAM_S2S_URL:http://localhost:4502} @@ -134,12 +134,15 @@ management.health.db.enabled=true # Enable disk space health check management.health.diskspace.enabled=true +# Enable readiness state health check +management.health.readinessState.enabled=true + # METRICS ENDPOINT CONFIG # Enable the metrics endpoint management.endpoint.metrics.enabled=true # Define Readiness checks -management.endpoint.health.group.readiness.include=readinessState,db,ping,refreshScope +management.endpoint.health.group.readiness.include=db,ping,refreshScope # Caching period in milliseconds of metrics endpoint management.endpoint.metrics.cache.time-to-live=1000ms diff --git a/src/main/java/uk/gov/hmcts/ccd/SecurityConfiguration.java b/src/main/java/uk/gov/hmcts/ccd/SecurityConfiguration.java index a8fc69c96a..3754275e36 100644 --- a/src/main/java/uk/gov/hmcts/ccd/SecurityConfiguration.java +++ b/src/main/java/uk/gov/hmcts/ccd/SecurityConfiguration.java @@ -3,6 +3,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityCustomizer; @@ -107,8 +108,8 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti .permitAll() .anyRequest() .authenticated()) - .oauth2ResourceServer(oauth -> oauth.jwt().jwtAuthenticationConverter(jwtAuthenticationConverter)) - .oauth2Client(); + .oauth2ResourceServer(oauth -> oauth.jwt(jwt -> jwt.jwtAuthenticationConverter(jwtAuthenticationConverter))) + .oauth2Client(Customizer.withDefaults()); return http.build(); } diff --git a/src/main/java/uk/gov/hmcts/ccd/auditlog/aop/AuditAspect.java b/src/main/java/uk/gov/hmcts/ccd/auditlog/aop/AuditAspect.java index 2d8eaf4a7b..2a391f85f7 100644 --- a/src/main/java/uk/gov/hmcts/ccd/auditlog/aop/AuditAspect.java +++ b/src/main/java/uk/gov/hmcts/ccd/auditlog/aop/AuditAspect.java @@ -1,6 +1,6 @@ package uk.gov.hmcts.ccd.auditlog.aop; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; diff --git a/src/main/java/uk/gov/hmcts/ccd/config/JacksonUtils.java b/src/main/java/uk/gov/hmcts/ccd/config/JacksonUtils.java index 049a17ca6e..2bf9b1f74a 100644 --- a/src/main/java/uk/gov/hmcts/ccd/config/JacksonUtils.java +++ b/src/main/java/uk/gov/hmcts/ccd/config/JacksonUtils.java @@ -13,7 +13,7 @@ import com.fasterxml.jackson.databind.node.ObjectNode; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import lombok.NonNull; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import uk.gov.hmcts.ccd.domain.types.sanitiser.CollectionSanitiser; import java.util.Arrays; diff --git a/src/main/java/uk/gov/hmcts/ccd/config/SwaggerConfiguration.java b/src/main/java/uk/gov/hmcts/ccd/config/SwaggerConfiguration.java index e3b1042a61..27994b2973 100644 --- a/src/main/java/uk/gov/hmcts/ccd/config/SwaggerConfiguration.java +++ b/src/main/java/uk/gov/hmcts/ccd/config/SwaggerConfiguration.java @@ -11,8 +11,6 @@ import org.springframework.boot.actuate.endpoint.web.WebEndpointsSupplier; import org.springframework.boot.actuate.endpoint.web.EndpointMapping; import org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver; -import org.springframework.boot.actuate.endpoint.web.annotation.ControllerEndpointsSupplier; -import org.springframework.boot.actuate.endpoint.web.annotation.ServletEndpointsSupplier; import org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -63,15 +61,12 @@ private GroupedOpenApi getNewGroupedOpenApiForPackageOf(Class klazz, String g //conflict in Springfox after Springboot 2.6.10 @Bean public WebMvcEndpointHandlerMapping webEndpointServletHandlerMapping(WebEndpointsSupplier webEndpointsSupplier, - ServletEndpointsSupplier servletEndpointsSupplier, ControllerEndpointsSupplier controllerEndpointsSupplier, EndpointMediaTypes endpointMediaTypes, CorsEndpointProperties corsProperties, WebEndpointProperties webEndpointProperties, Environment environment) { List> allEndpoints = new ArrayList<>(); Collection webEndpoints = webEndpointsSupplier.getEndpoints(); allEndpoints.addAll(webEndpoints); - allEndpoints.addAll(servletEndpointsSupplier.getEndpoints()); - allEndpoints.addAll(controllerEndpointsSupplier.getEndpoints()); String basePath = webEndpointProperties.getBasePath(); EndpointMapping endpointMapping = new EndpointMapping(basePath); boolean shouldRegisterLinksMapping = this.shouldRegisterLinksMapping(webEndpointProperties, environment, diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/DefaultCaseDetailsRepository.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/DefaultCaseDetailsRepository.java index 34ed98c246..c4a436385d 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/DefaultCaseDetailsRepository.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/DefaultCaseDetailsRepository.java @@ -82,7 +82,8 @@ public CaseDetails set(final CaseDetails caseDetails) { another action happened at the same time. Please review the case and try again."""); } catch (PersistenceException e) { - if (e.getCause() instanceof ConstraintViolationException && isDuplicateReference(e)) { + if ((e instanceof ConstraintViolationException || e.getCause() instanceof ConstraintViolationException) + && isDuplicateReference(e)) { LOG.warn("ConstraintViolationException happen for UUID={}. ConstraintName: {}", caseDetails.getReference(), UNIQUE_REFERENCE_KEY_CONSTRAINT); throw new ReferenceKeyUniqueConstraintException(e.getMessage()); @@ -259,7 +260,10 @@ private void paginateSetLimit(Query query, int limit) { query.setMaxResults(limit); } - private boolean isDuplicateReference(PersistenceException e) { + private boolean isDuplicateReference(Exception e) { + if (e instanceof ConstraintViolationException) { + return ((ConstraintViolationException) e).getConstraintName().equals(UNIQUE_REFERENCE_KEY_CONSTRAINT); + } return ((ConstraintViolationException) e.getCause()).getConstraintName() .equals(UNIQUE_REFERENCE_KEY_CONSTRAINT); } diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/IncrementSupplementaryDataQueryBuilder.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/IncrementSupplementaryDataQueryBuilder.java index b94cbd0621..fc78b0b296 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/IncrementSupplementaryDataQueryBuilder.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/IncrementSupplementaryDataQueryBuilder.java @@ -12,15 +12,15 @@ public class IncrementSupplementaryDataQueryBuilder implements SupplementaryData @SuppressWarnings("checkstyle:LineLength") //don't want to break long SQL statement private static final String INC_UPDATE_QUERY = "UPDATE case_data SET " + "supplementary_data= (CASE" - + " WHEN COALESCE(supplementary_data, '{}') = '{}' " - + " THEN COALESCE(supplementary_data, '{}') || :json_value\\:\\:jsonb" - + " WHEN jsonb_extract_path_text(COALESCE(supplementary_data, '{}'), :parent_path) IS NULL AND :value > 0" - + " THEN jsonb_insert(COALESCE(supplementary_data, '{}'), :parent_key, :json_value_insert\\:\\:jsonb)" - + " WHEN jsonb_extract_path_text(COALESCE(supplementary_data, '{}'), VARIADIC :node_path) IS NULL " - + " THEN jsonb_set(COALESCE(supplementary_data, '{}'), :leaf_node_key, :value\\:\\:TEXT\\:\\:jsonb)" - + " WHEN jsonb_extract_path_text(COALESCE(supplementary_data, '{}'), VARIADIC :node_path) IS NOT NULL " - + " THEN jsonb_set(COALESCE(supplementary_data, '{}'), :leaf_node_key," - + " (jsonb_extract_path_text(supplementary_data, VARIADIC :node_path)\\:\\:INT + :value) \\:\\:TEXT\\:\\:jsonb, false)" + + " WHEN COALESCE(supplementary_data, '{}') = '{}' " + + " THEN COALESCE(supplementary_data, '{}') || :json_value\\:\\:jsonb" + + " WHEN jsonb_extract_path_text(COALESCE(supplementary_data, '{}'), :parent_path) IS NULL AND :value > 0" + + " THEN jsonb_insert(COALESCE(supplementary_data, '{}'), :parent_key, :json_value_insert\\:\\:jsonb)" + + " WHEN jsonb_extract_path_text(COALESCE(supplementary_data, '{}'), VARIADIC regexp_split_to_array(:node_path, '\\.')) IS NULL " + + " THEN jsonb_set(COALESCE(supplementary_data, '{}'), :leaf_node_key, :value\\:\\:TEXT\\:\\:jsonb)" + + " WHEN jsonb_extract_path_text(COALESCE(supplementary_data, '{}'), VARIADIC regexp_split_to_array(:node_path, '\\.')) IS NOT NULL " + + " THEN jsonb_set(COALESCE(supplementary_data, '{}'), :leaf_node_key," + + " (jsonb_extract_path_text(supplementary_data, VARIADIC regexp_split_to_array(:node_path, '\\.'))\\:\\:INT + :value) \\:\\:TEXT\\:\\:jsonb, false)" + " END) " + "WHERE reference = :reference"; @@ -36,7 +36,7 @@ public Query build(EntityManager entityManager, query.setParameter("json_value", jsonValue); String parentKeyJsonValue = requestedDataJsonForPath(fieldPath, fieldValue, parentKey); query.setParameter("json_value_insert", parentKeyJsonValue); - query.setParameter("node_path", fieldPath.split(Pattern.quote("."))); + query.setParameter("node_path", fieldPath); query.setParameter("parent_key", "{" + parentKey + "}"); query.setParameter("parent_path", parentKey); diff --git a/src/main/java/uk/gov/hmcts/ccd/data/user/DefaultUserRepository.java b/src/main/java/uk/gov/hmcts/ccd/data/user/DefaultUserRepository.java index 98246b43ad..31d651ea62 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/user/DefaultUserRepository.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/user/DefaultUserRepository.java @@ -13,9 +13,9 @@ import static java.util.Comparator.comparingInt; import static java.util.function.Predicate.not; -import static org.apache.commons.lang.StringUtils.startsWithIgnoreCase; +import static org.apache.commons.lang3.StringUtils.startsWithIgnoreCase; -import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang3.ArrayUtils; import org.elasticsearch.rest.RestRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/model/globalsearch/SearchPartyValue.java b/src/main/java/uk/gov/hmcts/ccd/domain/model/globalsearch/SearchPartyValue.java index 7e41147df0..5e1d664880 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/model/globalsearch/SearchPartyValue.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/model/globalsearch/SearchPartyValue.java @@ -8,7 +8,7 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; @JsonNaming(PropertyNamingStrategies.UpperCamelCaseStrategy.class) @JsonInclude(JsonInclude.Include.NON_NULL) diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/AuthorisationMapper.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/AuthorisationMapper.java index 7a5b497c33..77759ceea4 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/AuthorisationMapper.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/AuthorisationMapper.java @@ -6,7 +6,7 @@ import java.util.function.Function; import java.util.stream.Collectors; import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang.BooleanUtils; +import org.apache.commons.lang3.BooleanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.context.annotation.RequestScope; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/aggregated/AbstractAuthorisedCaseViewOperation.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/aggregated/AbstractAuthorisedCaseViewOperation.java index 0ea53a297f..103572e7f1 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/aggregated/AbstractAuthorisedCaseViewOperation.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/aggregated/AbstractAuthorisedCaseViewOperation.java @@ -3,7 +3,7 @@ import java.util.Arrays; import java.util.Optional; import java.util.Set; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import uk.gov.hmcts.ccd.data.casedetails.CaseDetailsRepository; import uk.gov.hmcts.ccd.data.definition.CaseDefinitionRepository; import uk.gov.hmcts.ccd.domain.model.aggregated.AbstractCaseView; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCriteriaOperation.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCriteriaOperation.java index 470f1e9419..633bb759dc 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCriteriaOperation.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCriteriaOperation.java @@ -6,7 +6,7 @@ import java.util.Set; import java.util.function.Predicate; import java.util.stream.Collectors; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import uk.gov.hmcts.ccd.domain.model.casedataaccesscontrol.AccessProfile; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/callbacks/EventTokenService.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/callbacks/EventTokenService.java index c8eceba627..0a3849e8c6 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/callbacks/EventTokenService.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/callbacks/EventTokenService.java @@ -14,6 +14,8 @@ import java.util.Date; +import javax.crypto.SecretKey; + import com.google.common.collect.Maps; import io.jsonwebtoken.Claims; import io.jsonwebtoken.ExpiredJwtException; @@ -21,6 +23,8 @@ import io.jsonwebtoken.SignatureAlgorithm; import io.jsonwebtoken.SignatureException; import io.jsonwebtoken.impl.TextCodec; +import io.jsonwebtoken.security.Keys; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -75,9 +79,12 @@ public String generateToken(final String uid, public EventTokenProperties parseToken(final String token) { try { + SecretKey key = Keys.hmacShaKeyFor(tokenSecret.getBytes()); final Claims claims = Jwts.parser() - .setSigningKey(TextCodec.BASE64.encode(tokenSecret)) - .parseClaimsJws(token).getBody(); + .verifyWith(key) + .build() + .parseSignedClaims(token) + .getPayload(); return new EventTokenProperties( claims.getSubject(), diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/caselinking/CaseLinkExtractor.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/caselinking/CaseLinkExtractor.java index 03cd061739..7bb4c60453 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/caselinking/CaseLinkExtractor.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/caselinking/CaseLinkExtractor.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.domain.service.caselinking; import com.fasterxml.jackson.databind.JsonNode; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import uk.gov.hmcts.ccd.config.JacksonUtils; import uk.gov.hmcts.ccd.domain.model.caselinking.CaseLink; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/message/additionaldata/PublishableField.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/message/additionaldata/PublishableField.java index eced259dc4..71f94f460f 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/message/additionaldata/PublishableField.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/message/additionaldata/PublishableField.java @@ -5,7 +5,7 @@ import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import uk.gov.hmcts.ccd.domain.model.aggregated.CommonField; import uk.gov.hmcts.ccd.domain.model.definition.CaseEventFieldComplexDefinition; import uk.gov.hmcts.ccd.domain.model.definition.CaseEventFieldDefinition; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/SearchRoleAssignment.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/SearchRoleAssignment.java index e0e97f25c3..51c04e532a 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/SearchRoleAssignment.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/SearchRoleAssignment.java @@ -2,7 +2,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import uk.gov.hmcts.ccd.domain.model.casedataaccesscontrol.RoleAssignment; import java.util.Optional; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/mapper/CaseDetailsMapper.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/mapper/CaseDetailsMapper.java index 4e4b5222d9..90a9d509d0 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/mapper/CaseDetailsMapper.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/mapper/CaseDetailsMapper.java @@ -11,7 +11,7 @@ @Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE, componentModel = "spring") public interface CaseDetailsMapper { - String EMPTY_MAP = "java(new HashMap<>())"; + String EMPTY_MAP = "java(new java.util.HashMap<>())"; @Mapping(source = "data", target = "data", defaultExpression = EMPTY_MAP) @Mapping(source = "dataClassification", target = "dataClassification", defaultExpression = EMPTY_MAP) diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/search/global/GlobalSearchResponseTransformer.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/search/global/GlobalSearchResponseTransformer.java index 7b64558068..f29c3fa82e 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/search/global/GlobalSearchResponseTransformer.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/search/global/GlobalSearchResponseTransformer.java @@ -2,7 +2,7 @@ import com.fasterxml.jackson.databind.JsonNode; import lombok.NonNull; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Qualifier; import uk.gov.hmcts.ccd.data.definition.CachedCaseDefinitionRepository; import uk.gov.hmcts.ccd.data.definition.CaseDefinitionRepository; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/validate/CaseDataIssueLogger.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/validate/CaseDataIssueLogger.java index 60e914736d..74588b2c21 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/validate/CaseDataIssueLogger.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/validate/CaseDataIssueLogger.java @@ -12,7 +12,7 @@ import java.util.Map; import java.util.stream.Collectors; -import static org.apache.commons.lang.StringUtils.isEmpty; +import static org.apache.commons.lang3.StringUtils.isEmpty; @Slf4j @Service diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/validate/ValidateSignificantDocument.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/validate/ValidateSignificantDocument.java index a8c75dba93..b6adf3b3d6 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/validate/ValidateSignificantDocument.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/validate/ValidateSignificantDocument.java @@ -1,6 +1,6 @@ package uk.gov.hmcts.ccd.domain.service.validate; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.validator.routines.UrlValidator; import uk.gov.hmcts.ccd.domain.model.callbacks.CallbackResponse; import uk.gov.hmcts.ccd.domain.model.callbacks.SignificantItem; diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/types/EmailValidator.java b/src/main/java/uk/gov/hmcts/ccd/domain/types/EmailValidator.java index e2a17af87e..e9d6d2f28a 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/types/EmailValidator.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/types/EmailValidator.java @@ -5,8 +5,8 @@ import jakarta.inject.Named; import jakarta.inject.Singleton; -import javax.mail.internet.AddressException; -import javax.mail.internet.InternetAddress; +import jakarta.mail.internet.AddressException; +import jakarta.mail.internet.InternetAddress; import java.util.Collections; import java.util.List; diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 0c807a99c1..1e2eafd9de 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -70,7 +70,7 @@ ccd.user-profile.host=${USER_PROFILE_HOST:http://localhost:4453} case_document_am.url=${CASE_DOCUMENT_AM_URL:http://localhost:4455} ccd.case-document-am-api.attachDocumentEnabled=${CASE_DOCUMENT_AM_API_ATTACH_DOCUMENT_ENABLED:true} -ccd.token.secret=${DATA_STORE_TOKEN_SECRET:AAAAAAAAAA} +ccd.token.secret=${DATA_STORE_TOKEN_SECRET:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA} #callback timeouts - comma separated integers in seconds ccd.callback.retries=1,5,10 @@ -96,7 +96,7 @@ spring.security.oauth2.client.registration.oidc.client-secret = internal oidc.issuer = ${OIDC_ISSUER:http://fr-am:8080/openam/oauth2/hmcts} # Required for the ServiceAuthorisationApi class in service-auth-provider-java-client library -idam.s2s-auth.totp_secret=${DATA_STORE_IDAM_KEY:AAAAAAAAAAAAAAAB} +idam.s2s-auth.totp_secret=${DATA_STORE_IDAM_KEY:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB} idam.s2s-auth.microservice=ccd_data idam.s2s-auth.url=${IDAM_S2S_URL:http://localhost:4502} @@ -143,6 +143,9 @@ management.health.db.enabled=true # Enable disk space health check management.health.diskspace.enabled=true +# Enable readiness state health check +management.health.readinessState.enabled=true + # TESTING ENDPOINT CONFIG # Disable testing support endpoint testing.support.endpoint.enabled=${TESTING_SUPPORT_ENABLED:false} @@ -154,7 +157,7 @@ migrations.endpoint.enabled=${MIGRATIONS_ENDPOINT_ENABLED:false} management.endpoint.metrics.enabled=true # Define Readiness checks -management.endpoint.health.group.readiness.include=readinessState,db,ping,refreshScope +management.endpoint.health.group.readiness.include=db,ping,refreshScope # Caching period in milliseconds of metrics endpoint management.endpoint.metrics.cache.time-to-live=1000ms diff --git a/src/test/java/uk/gov/hmcts/ccd/AbstractBaseIntegrationTest.java b/src/test/java/uk/gov/hmcts/ccd/AbstractBaseIntegrationTest.java index 2ddcc5dd61..a35c272788 100644 --- a/src/test/java/uk/gov/hmcts/ccd/AbstractBaseIntegrationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/AbstractBaseIntegrationTest.java @@ -72,8 +72,8 @@ import java.util.stream.Collectors; import static org.junit.Assert.fail; -import static org.mockito.Matchers.anyBoolean; -import static org.mockito.Matchers.anyString; +import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.when; diff --git a/src/test/java/uk/gov/hmcts/ccd/MockUtils.java b/src/test/java/uk/gov/hmcts/ccd/MockUtils.java index bcbaaa4eac..58c63562c0 100644 --- a/src/test/java/uk/gov/hmcts/ccd/MockUtils.java +++ b/src/test/java/uk/gov/hmcts/ccd/MockUtils.java @@ -45,7 +45,9 @@ public static String generateDummyS2SToken(String serviceName) { return Jwts.builder() .setSubject(serviceName) .setIssuedAt(new Date()) - .signWith(SignatureAlgorithm.HS256, TextCodec.BASE64.encode("AA")) + .signWith(SignatureAlgorithm.HS256, TextCodec.BASE64.encode( + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + )) .compact(); } diff --git a/src/test/java/uk/gov/hmcts/ccd/data/ReferenceDataCacheRefreshIT.java b/src/test/java/uk/gov/hmcts/ccd/data/ReferenceDataCacheRefreshIT.java index eea43df324..f835f5fc54 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/ReferenceDataCacheRefreshIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/ReferenceDataCacheRefreshIT.java @@ -2,7 +2,7 @@ import com.github.tomakehurst.wiremock.matching.RequestPattern; import com.github.tomakehurst.wiremock.verification.VerificationResult; -import org.awaitility.Duration; +import org.awaitility.Durations; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.parallel.Isolated; import org.springframework.test.context.TestPropertySource; @@ -36,7 +36,7 @@ void testShouldRefreshBuildingLocationCacheOnScheduleSuccessfully() { // WHEN/THEN await() .pollDelay(1500, MILLISECONDS) - .atMost(Duration.FIVE_SECONDS) + .atMost(Durations.FIVE_SECONDS) .untilAsserted(() -> assertThat(underTest.getBuildingLocations()) .isNotEmpty() .hasSameElementsAs(updatedBuildingLocations)); @@ -53,7 +53,7 @@ void testShouldRefreshServicesCacheOnScheduleSuccessfully() { // WHEN/THEN await() .pollDelay(1500, MILLISECONDS) - .atMost(Duration.FIVE_SECONDS) + .atMost(Durations.FIVE_SECONDS) .untilAsserted(() -> assertThat(underTest.getServices()) .isNotEmpty() .hasSameElementsAs(updatedServices)); @@ -70,7 +70,7 @@ void testShouldNotRefreshBuildingLocationsCacheWhenBuildingLocationsCannotBeRetr // WHEN/THEN await() .pollDelay(1500, MILLISECONDS) - .atMost(Duration.FIVE_SECONDS) + .atMost(Durations.FIVE_SECONDS) .untilAsserted(() -> assertThat(underTest.getBuildingLocations()) .isNotEmpty() .hasSameElementsAs(initialBuildingLocations)); @@ -85,7 +85,7 @@ void testShouldNotRefreshServicesCacheWhenServicesCannotBeRetrieved() { // WHEN/THEN await() .pollDelay(1500, MILLISECONDS) - .atMost(Duration.FIVE_SECONDS) + .atMost(Durations.FIVE_SECONDS) .untilAsserted(() -> assertThat(underTest.getServices()) .isNotEmpty() .hasSameElementsAs(initialServices)); @@ -95,7 +95,7 @@ void testShouldNotRefreshServicesCacheWhenServicesCannotBeRetrieved() { void testThatExceptionShouldNotDisableCacheRefreshScheduler() { // GIVEN/WHEN await() - .atMost(Duration.TEN_SECONDS) + .atMost(Durations.TEN_SECONDS) .untilAsserted(() -> { cacheContainsInitialReferenceData(); @@ -111,7 +111,7 @@ void testThatExceptionShouldNotDisableCacheRefreshScheduler() { // THEN await() .pollDelay(2, SECONDS) - .atMost(Duration.FIVE_SECONDS) + .atMost(Durations.FIVE_SECONDS) .untilAsserted(() -> assertThat(underTest.getBuildingLocations()) .isNotEmpty() .hasSameElementsAs(updatedBuildingLocations)); diff --git a/src/test/java/uk/gov/hmcts/ccd/data/caseaccess/DefaultCaseUserRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/caseaccess/DefaultCaseUserRepositoryTest.java index 8584c6c4a7..bba1e7bc98 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/caseaccess/DefaultCaseUserRepositoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/caseaccess/DefaultCaseUserRepositoryTest.java @@ -4,8 +4,8 @@ import org.junit.Before; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.test.context.bean.override.mockito.MockitoBean; import org.springframework.test.context.jdbc.Sql; import org.springframework.transaction.annotation.Transactional; import uk.gov.hmcts.ccd.WireMockBaseTest; @@ -22,8 +22,8 @@ import static org.hamcrest.Matchers.hasItems; import static org.hamcrest.collection.IsIterableContainingInAnyOrder.containsInAnyOrder; import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.verify; -import static org.powermock.api.mockito.PowerMockito.doReturn; @Transactional public class DefaultCaseUserRepositoryTest extends WireMockBaseTest { @@ -47,10 +47,10 @@ public class DefaultCaseUserRepositoryTest extends WireMockBaseTest { private JdbcTemplate template; - @MockBean + @MockitoBean private CaseUserAuditRepository auditRepository; - @MockBean + @MockitoBean RoleAssignmentCategoryService roleAssignmentCategoryService; @Autowired diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/DefaultCaseDetailsRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/DefaultCaseDetailsRepositoryTest.java index 1a89cbb6b6..192a0870d2 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/DefaultCaseDetailsRepositoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/DefaultCaseDetailsRepositoryTest.java @@ -6,10 +6,10 @@ import org.junit.Before; import org.junit.Test; import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockServletContext; +import org.springframework.test.context.bean.override.mockito.MockitoBean; import org.springframework.test.context.jdbc.Sql; import org.springframework.test.util.ReflectionTestUtils; import org.springframework.transaction.annotation.Transactional; @@ -95,13 +95,13 @@ public class DefaultCaseDetailsRepositoryTest extends WireMockBaseTest { private RequestContextListener listener; private ServletContext context; - @MockBean + @MockitoBean private UserAuthorisation userAuthorisation; - @MockBean + @MockitoBean private AuthorisedCaseDefinitionDataService authorisedCaseDefinitionDataService; - @MockBean + @MockitoBean private AccessControlService accessControlService; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/UserAuthorisationSecurityTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/UserAuthorisationSecurityTest.java index c160987a1f..9fcda8ada4 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/UserAuthorisationSecurityTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/query/UserAuthorisationSecurityTest.java @@ -16,7 +16,7 @@ import uk.gov.hmcts.ccd.infrastructure.user.UserAuthorisation.AccessLevel; import static org.junit.jupiter.api.Assertions.assertAll; -import static org.mockito.Matchers.anyString; +import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/DefaultSupplementaryDataRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/DefaultSupplementaryDataRepositoryTest.java index 3c86e7416a..51c218aa5d 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/DefaultSupplementaryDataRepositoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/DefaultSupplementaryDataRepositoryTest.java @@ -1,6 +1,8 @@ package uk.gov.hmcts.ccd.data.casedetails.supplementarydata; import com.google.common.collect.Sets; + +import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepositoryTest.java index e01b4124a9..e859abfbd1 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepositoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepositoryTest.java @@ -5,8 +5,8 @@ import static org.junit.Assert.assertEquals; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.anyString; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doThrow; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/draft/DefaultDraftGatewayTest.java b/src/test/java/uk/gov/hmcts/ccd/data/draft/DefaultDraftGatewayTest.java index 69323e0db0..196b9012b0 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/draft/DefaultDraftGatewayTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/draft/DefaultDraftGatewayTest.java @@ -44,9 +44,9 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.anyString; -import static org.mockito.Matchers.eq; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.never; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/enablingcondition/jexl/JexlEnablingConditionParserTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/enablingcondition/jexl/JexlEnablingConditionParserTest.java index 2f47f348ac..45339bdda1 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/enablingcondition/jexl/JexlEnablingConditionParserTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/enablingcondition/jexl/JexlEnablingConditionParserTest.java @@ -15,7 +15,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; -import static org.powermock.api.mockito.PowerMockito.when; +import static org.mockito.Mockito.when; class JexlEnablingConditionParserTest { diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/model/std/validator/EventValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/model/std/validator/EventValidatorTest.java index 03f3ec96a2..55b8f232b4 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/model/std/validator/EventValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/model/std/validator/EventValidatorTest.java @@ -6,7 +6,7 @@ import uk.gov.hmcts.ccd.domain.model.std.Event; import uk.gov.hmcts.ccd.endpoint.exceptions.ValidationException; -import static org.apache.commons.lang.RandomStringUtils.random; +import static org.apache.commons.lang3.RandomStringUtils.random; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; import static uk.gov.hmcts.ccd.domain.model.std.EventBuilder.anEvent; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetUserProfileOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetUserProfileOperationTest.java index b490a3602a..638eeb744c 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetUserProfileOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetUserProfileOperationTest.java @@ -28,8 +28,8 @@ import static org.hamcrest.core.Is.is; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.eq; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.when; import static uk.gov.hmcts.ccd.domain.service.common.AccessControlService.CAN_CREATE; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/DefaultAuthorisedCaseDefinitionDataServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/DefaultAuthorisedCaseDefinitionDataServiceTest.java index cfdd4aa53e..178106e784 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/DefaultAuthorisedCaseDefinitionDataServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/DefaultAuthorisedCaseDefinitionDataServiceTest.java @@ -27,7 +27,7 @@ import static org.junit.jupiter.api.Assertions.assertAll; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; -import static org.mockito.Matchers.anyString; +import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/DefaultObjectMapperServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/DefaultObjectMapperServiceTest.java index 9dd80605cd..221bcf861d 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/DefaultObjectMapperServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/DefaultObjectMapperServiceTest.java @@ -7,7 +7,7 @@ import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.mockito.Matchers.any; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.mock; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/AuthorisedCreateCaseOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/AuthorisedCreateCaseOperationTest.java index 40fc192b8f..1f932072da 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/AuthorisedCreateCaseOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/AuthorisedCreateCaseOperationTest.java @@ -37,7 +37,7 @@ import static org.junit.jupiter.api.Assertions.assertAll; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Matchers.any; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.anyBoolean; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doThrow; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/SubmitCaseTransactionTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/SubmitCaseTransactionTest.java index e7bb680872..bcd6c4a1e1 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/SubmitCaseTransactionTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/createcase/SubmitCaseTransactionTest.java @@ -50,7 +50,7 @@ import static org.mockito.ArgumentMatchers.anyList; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.isNotNull; -import static org.mockito.Matchers.notNull; +import static org.mockito.ArgumentMatchers.notNull; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.inOrder; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/AuthorisedCreateEventOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/AuthorisedCreateEventOperationTest.java index f02a5f727a..7645b2ac4d 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/AuthorisedCreateEventOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/createevent/AuthorisedCreateEventOperationTest.java @@ -68,7 +68,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.anyMap; import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Matchers.any; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.anyBoolean; import static org.mockito.Mockito.doCallRealMethod; import static org.mockito.Mockito.doReturn; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/getcase/CreatorGetCaseOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/getcase/CreatorGetCaseOperationTest.java index ec11d13c7c..2db86f5147 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/getcase/CreatorGetCaseOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/getcase/CreatorGetCaseOperationTest.java @@ -4,8 +4,8 @@ import static junit.framework.TestCase.assertTrue; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.mockito.Matchers.same; -import static org.mockito.Matchers.any; +import static org.mockito.ArgumentMatchers.same; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/getevents/AuthorisedGetEventsOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/getevents/AuthorisedGetEventsOperationTest.java index ee071b7744..5d3ac99090 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/getevents/AuthorisedGetEventsOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/getevents/AuthorisedGetEventsOperationTest.java @@ -32,7 +32,7 @@ import static org.junit.jupiter.api.Assertions.assertAll; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Matchers.any; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.anyList; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.eq; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperationIT.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperationIT.java index e8e89b5538..0283920e35 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperationIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperationIT.java @@ -14,7 +14,8 @@ import org.mockito.MockitoAnnotations; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.test.mock.mockito.SpyBean; +import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; + import uk.gov.hmcts.ccd.AuditCaseRemoteConfiguration; import uk.gov.hmcts.ccd.WireMockBaseTest; import uk.gov.hmcts.ccd.auditlog.AuditEntry; @@ -83,7 +84,7 @@ public class AuditCaseRemoteOperationIT extends WireMockBaseTest { @Mock private AuditRepository auditRepository; - @SpyBean + @MockitoSpyBean private AuditCaseRemoteOperation auditCaseRemoteOperation; @Inject diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeFormatParserTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeFormatParserTest.java index b392d8f75b..74964fcc49 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeFormatParserTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeFormatParserTest.java @@ -19,7 +19,7 @@ import static org.hamcrest.Matchers.nullValue; import static org.junit.jupiter.api.Assertions.assertAll; import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.powermock.api.mockito.PowerMockito.when; +import static org.mockito.Mockito.when; import static uk.gov.hmcts.ccd.domain.model.definition.FieldTypeDefinition.COLLECTION; import static uk.gov.hmcts.ccd.domain.model.definition.FieldTypeDefinition.DATE; import static uk.gov.hmcts.ccd.domain.model.definition.FieldTypeDefinition.DATETIME; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/AuthorisedSearchOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/AuthorisedSearchOperationTest.java index b65c2c42fa..a1f278865e 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/AuthorisedSearchOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/AuthorisedSearchOperationTest.java @@ -40,7 +40,7 @@ import static org.junit.jupiter.api.Assertions.assertAll; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Matchers.any; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.anyBoolean; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.eq; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/ElasticsearchCaseSearchOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/ElasticsearchCaseSearchOperationTest.java index 15ee30a615..d5c41695ee 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/ElasticsearchCaseSearchOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/ElasticsearchCaseSearchOperationTest.java @@ -18,7 +18,7 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import org.powermock.reflect.Whitebox; +import org.springframework.test.util.ReflectionTestUtils; import uk.gov.hmcts.ccd.ApplicationParams; import uk.gov.hmcts.ccd.domain.model.definition.CaseDetails; import uk.gov.hmcts.ccd.domain.model.search.CaseSearchResult; @@ -407,7 +407,7 @@ void searchShouldMapElasticSearchResultToSearchResult() throws IOException { MultiSearchResult.MultiSearchResponse response = mock(MultiSearchResult.MultiSearchResponse.class); when(multiSearchResult.getResponses()).thenReturn(Collections.singletonList(response)); - Whitebox.setInternalState(response, "searchResult", searchResult); + ReflectionTestUtils.setField(response, "searchResult", searchResult, SearchResult.class); when(objectMapper.readValue(caseDetailsElastic, ElasticSearchCaseDetailsDTO.class)) .thenReturn(caseDetailsDTO); @@ -448,7 +448,7 @@ void searchShouldReturnServiceErrorWhenESIndexCaseTypeIdCapturingGroudNotMatchin MultiSearchResult.MultiSearchResponse response = mock(MultiSearchResult.MultiSearchResponse.class); when(multiSearchResult.getResponses()).thenReturn(Collections.singletonList(response)); when(searchResult.getJsonObject()).thenReturn(convertedObject); - Whitebox.setInternalState(response, "searchResult", searchResult); + ReflectionTestUtils.setField(response, "searchResult", searchResult, SearchResult.class); when(objectMapper.readValue(caseDetailsElastic, ElasticSearchCaseDetailsDTO.class)) .thenReturn(caseDetailsDTO); @@ -479,7 +479,7 @@ void searchShouldReturnServiceErrorWhenESIndexCaseTypeIdCapturingGroudNotSpedifi MultiSearchResult.MultiSearchResponse response = mock(MultiSearchResult.MultiSearchResponse.class); when(multiSearchResult.getResponses()).thenReturn(Collections.singletonList(response)); when(searchResult.getJsonObject()).thenReturn(convertedObject); - Whitebox.setInternalState(response, "searchResult", searchResult); + ReflectionTestUtils.setField(response, "searchResult", searchResult, SearchResult.class); when(objectMapper.readValue(caseDetailsElastic, ElasticSearchCaseDetailsDTO.class)) .thenReturn(caseDetailsDTO); @@ -512,7 +512,7 @@ void searchShouldReturnServiceErrorWhenESIndexCaseTypeIdCapturingGroudNotAssocia MultiSearchResult.MultiSearchResponse response = mock(MultiSearchResult.MultiSearchResponse.class); when(multiSearchResult.getResponses()).thenReturn(Collections.singletonList(response)); when(searchResult.getJsonObject()).thenReturn(convertedObject); - Whitebox.setInternalState(response, "searchResult", searchResult); + ReflectionTestUtils.setField(response, "searchResult", searchResult, SearchResult.class); when(objectMapper.readValue(caseDetailsElastic, ElasticSearchCaseDetailsDTO.class)) .thenReturn(caseDetailsDTO); @@ -561,7 +561,7 @@ void testComplexESIndexCapturingGroupScenario() throws IOException { when(multiSearchResult.isSucceeded()).thenReturn(true); MultiSearchResult.MultiSearchResponse response = mock(MultiSearchResult.MultiSearchResponse.class); when(multiSearchResult.getResponses()).thenReturn(Collections.singletonList(response)); - Whitebox.setInternalState(response, "searchResult", searchResult); + ReflectionTestUtils.setField(response, "searchResult", searchResult, SearchResult.class); when(objectMapper.readValue(caseDetailsElastic, ElasticSearchCaseDetailsDTO.class)) .thenReturn(caseDetailsDTO); @@ -606,9 +606,9 @@ void searchShouldMapElasticSearchResultToSearchResult() throws IOException { MultiSearchResult.MultiSearchResponse response1 = mock(MultiSearchResult.MultiSearchResponse.class); - Whitebox.setInternalState(response1, "searchResult", searchResult); + ReflectionTestUtils.setField(response1, "searchResult", searchResult, SearchResult.class); MultiSearchResult.MultiSearchResponse response2 = mock(MultiSearchResult.MultiSearchResponse.class); - Whitebox.setInternalState(response2, "searchResult", searchResult); + ReflectionTestUtils.setField(response2, "searchResult", searchResult, SearchResult.class); when(multiSearchResult.getResponses()).thenReturn(asList(response1, response2)); when(objectMapper.readValue(caseDetailsElastic, ElasticSearchCaseDetailsDTO.class)) @@ -659,9 +659,9 @@ void searchShouldMapElasticSearchResultToSearchResult() throws IOException { MultiSearchResult.MultiSearchResponse response1 = mock(MultiSearchResult.MultiSearchResponse.class); - Whitebox.setInternalState(response1, "searchResult", searchResult); + ReflectionTestUtils.setField(response1, "searchResult", searchResult, SearchResult.class); MultiSearchResult.MultiSearchResponse response2 = mock(MultiSearchResult.MultiSearchResponse.class); - Whitebox.setInternalState(response2, "searchResult", searchResult); + ReflectionTestUtils.setField(response2, "searchResult", searchResult, SearchResult.class); when(multiSearchResult.getResponses()).thenReturn(asList(response1, response2)); when(objectMapper.readValue(caseDetailsElastic, ElasticSearchCaseDetailsDTO.class)) @@ -717,8 +717,8 @@ void searchShouldReturnBadSearchRequestOnFailure() throws IOException { void searchShouldReturnBadSearchRequestOnResponseError() throws IOException { MultiSearchResult.MultiSearchResponse response = mock(MultiSearchResult.MultiSearchResponse.class); JsonElement error = mock(JsonElement.class); - Whitebox.setInternalState(response, "isError", true); - Whitebox.setInternalState(response, "error", error); + ReflectionTestUtils.setField(response, "isError", true); + ReflectionTestUtils.setField(response, "error", error); JsonObject errorObject = new JsonObject(); errorObject.addProperty(MULTI_SEARCH_ERROR_MSG_ROOT_CAUSE, "error msg"); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/AuthorisedCaseSearchOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/AuthorisedCaseSearchOperationTest.java index 5411756df4..83a702dfde 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/AuthorisedCaseSearchOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/search/elasticsearch/security/AuthorisedCaseSearchOperationTest.java @@ -46,8 +46,8 @@ import static org.hamcrest.Matchers.hasSize; import static org.junit.jupiter.api.Assertions.assertAll; import static org.mockito.ArgumentMatchers.anyBoolean; -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.anyMap; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyMap; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoInteractions; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/startevent/ClassifiedStartEventOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/startevent/ClassifiedStartEventOperationTest.java index ed3033ba29..254f73bab5 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/startevent/ClassifiedStartEventOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/startevent/ClassifiedStartEventOperationTest.java @@ -7,7 +7,7 @@ import static org.hamcrest.Matchers.nullValue; import static org.hamcrest.Matchers.sameInstance; import static org.junit.jupiter.api.Assertions.assertAll; -import static org.mockito.Matchers.eq; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/stdapi/DocumentsOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/stdapi/DocumentsOperationTest.java index 3f81229069..7b4ccfa001 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/stdapi/DocumentsOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/stdapi/DocumentsOperationTest.java @@ -23,8 +23,8 @@ import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching; import static org.junit.Assert.assertEquals; -import static org.mockito.Matchers.anyBoolean; -import static org.mockito.Matchers.anyString; +import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.when; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/DocumentSanitiserTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/DocumentSanitiserTest.java index e9ed35a6d6..ef4820e676 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/DocumentSanitiserTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/DocumentSanitiserTest.java @@ -26,8 +26,8 @@ import static org.hamcrest.Matchers.sameInstance; import static org.junit.jupiter.api.Assertions.assertAll; import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.anyString; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackEndpointIT.java index 65468f199f..ef4e3e4b5d 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackEndpointIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackEndpointIT.java @@ -3,7 +3,7 @@ import org.junit.Before; import org.junit.Test; import org.mockito.MockitoAnnotations; -import org.springframework.boot.test.mock.mockito.SpyBean; +import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; import org.springframework.test.web.servlet.setup.MockMvcBuilders; @@ -36,7 +36,7 @@ public class CallbackEndpointIT extends WireMockBaseTest { private WebApplicationContext wac; private MockMvc mockMvc; - @SpyBean + @MockitoSpyBean private AuditRepository auditRepository; @Before diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseAccessEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseAccessEndpointIT.java index 0733d3c7b9..9f0e1afee4 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseAccessEndpointIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseAccessEndpointIT.java @@ -7,8 +7,8 @@ import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentCaptor; -import org.springframework.boot.test.mock.mockito.SpyBean; import org.springframework.http.MediaType; +import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.context.jdbc.Sql; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; @@ -54,7 +54,7 @@ public class CaseAccessEndpointIT extends WireMockBaseTest { @Inject private WebApplicationContext wac; private MockMvc mockMvc; - @SpyBean + @MockitoSpyBean private AuditRepository auditRepository; @Before diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointIT.java index 2f392526d1..25b43c7ce5 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointIT.java @@ -180,7 +180,7 @@ public void setUp() { @Test public void shouldReturn409WhenPostCreateCaseAndNonUniqueReferenceOccursTwiceForCaseworker() throws Exception { - when(uidService.generateUID()).thenReturn(REFERENCE).thenReturn(REFERENCE).thenReturn(REFERENCE); + when(uidService.generateUID()).thenReturn(REFERENCE); final String URL = "/caseworkers/0/jurisdictions/" + JURISDICTION + "/case-types/" + CASE_TYPE + "/cases"; final JsonNode DATA = mapper.readTree("{}\n"); final CaseDataContent caseDetailsToSave = newCaseDataContent().build(); diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointTest.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointTest.java index 443118cc33..eafc6dbcef 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointTest.java @@ -11,7 +11,7 @@ import static org.junit.jupiter.api.Assertions.assertAll; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.BDDMockito.given; -import static org.mockito.Matchers.eq; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.verify; import static uk.gov.hmcts.ccd.domain.model.std.EventBuilder.anEvent; diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseSearchEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseSearchEndpointIT.java index fa0a07ab79..a4d0aa5b6d 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseSearchEndpointIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseSearchEndpointIT.java @@ -8,9 +8,9 @@ import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentCaptor; -import org.powermock.reflect.Whitebox; -import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.boot.test.mock.mockito.SpyBean; +import org.springframework.test.context.bean.override.mockito.MockitoBean; +import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; +import org.springframework.test.util.ReflectionTestUtils; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; import org.springframework.test.web.servlet.setup.MockMvcBuilders; @@ -35,8 +35,8 @@ import static org.hamcrest.Matchers.hasItem; import static org.hamcrest.Matchers.hasProperty; import static org.hamcrest.Matchers.hasSize; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.BDDMockito.given; -import static org.mockito.Mockito.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -52,10 +52,10 @@ public class CaseSearchEndpointIT extends WireMockBaseTest { @Inject private WebApplicationContext wac; private MockMvc mockMvc; - @MockBean + @MockitoBean private JestClient jestClient; - @SpyBean + @MockitoSpyBean private AuditRepository auditRepository; @Before @@ -200,7 +200,7 @@ private void stubElasticSearchSearchRequestWillReturn(String caseDetailElastic) MultiSearchResult.MultiSearchResponse response = mock(MultiSearchResult.MultiSearchResponse.class); when(multiSearchResult.getResponses()).thenReturn(Collections.singletonList(response)); - Whitebox.setInternalState(response, "searchResult", searchResult); + ReflectionTestUtils.setField(response, "searchResult", searchResult, SearchResult.class); given(jestClient.execute(any())).willReturn(multiSearchResult); } diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/DraftsEndpointTest.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/DraftsEndpointTest.java index 6ed05a1fa1..1e9417fcee 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/DraftsEndpointTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/DraftsEndpointTest.java @@ -3,7 +3,7 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.sameInstance; import static org.junit.jupiter.api.Assertions.assertAll; -import static org.mockito.Matchers.any; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.verify; diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/GlobalSearchEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/GlobalSearchEndpointIT.java index 58b3450d94..0bba9b3014 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/GlobalSearchEndpointIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/GlobalSearchEndpointIT.java @@ -10,9 +10,9 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.NullAndEmptySource; import org.mockito.ArgumentCaptor; -import org.powermock.reflect.Whitebox; -import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.boot.test.mock.mockito.SpyBean; +import org.springframework.test.context.bean.override.mockito.MockitoBean; +import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; +import org.springframework.test.util.ReflectionTestUtils; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; import org.springframework.test.web.servlet.setup.MockMvcBuilders; @@ -77,10 +77,10 @@ class GlobalSearchEndpointIT extends WireMockBaseTest { @Inject private WebApplicationContext wac; private MockMvc mockMvc; - @MockBean + @MockitoBean private JestClient jestClient; - @SpyBean + @MockitoSpyBean private AuditRepository auditRepository; private List validFields; @@ -405,7 +405,7 @@ private void stubElasticSearchSearchRequestWillReturn() throws java.io.IOExcepti MultiSearchResult.MultiSearchResponse response = mock(MultiSearchResult.MultiSearchResponse.class); when(multiSearchResult.getResponses()).thenReturn(Collections.singletonList(response)); - Whitebox.setInternalState(response, "searchResult", searchResult); + ReflectionTestUtils.setField(response, "searchResult", searchResult, SearchResult.class); given(jestClient.execute(any())).willReturn(multiSearchResult); } diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/MigrationEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/MigrationEndpointIT.java index d2e99be859..c9dfb39bd0 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/MigrationEndpointIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/MigrationEndpointIT.java @@ -9,7 +9,6 @@ import org.junit.jupiter.params.provider.CsvSource; import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.springframework.boot.test.mock.mockito.SpyBean; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.jdbc.core.BeanPropertyRowMapper; @@ -18,6 +17,7 @@ import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.context.jdbc.Sql; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; @@ -88,7 +88,7 @@ class MigrationEndpointIT extends WireMockBaseTest { @Mock private SecurityContext securityContext; - @SpyBean + @MockitoSpyBean private AuditRepository auditRepository; private JdbcTemplate template; diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/QueryEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/QueryEndpointIT.java index c903245dcc..50b21a00c7 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/QueryEndpointIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/QueryEndpointIT.java @@ -6,8 +6,8 @@ import org.junit.Ignore; import org.junit.Test; import org.mockito.ArgumentCaptor; -import org.springframework.boot.test.mock.mockito.SpyBean; import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.context.jdbc.Sql; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; @@ -162,7 +162,7 @@ public class QueryEndpointIT extends WireMockBaseTest { @Inject private WebApplicationContext wac; - @SpyBean + @MockitoSpyBean private AuditRepository auditRepository; private MockMvc mockMvc; private JdbcTemplate template; diff --git a/src/test/java/uk/gov/hmcts/ccd/integrations/CaseRoleDefinitionCachingIT.java b/src/test/java/uk/gov/hmcts/ccd/integrations/CaseRoleDefinitionCachingIT.java index 03ca5d38a7..9d78d47319 100644 --- a/src/test/java/uk/gov/hmcts/ccd/integrations/CaseRoleDefinitionCachingIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/integrations/CaseRoleDefinitionCachingIT.java @@ -7,9 +7,9 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.mock.mockito.SpyBean; import org.springframework.cloud.contract.wiremock.AutoConfigureWireMock; import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.context.junit4.SpringRunner; import uk.gov.hmcts.ccd.ApplicationParams; import uk.gov.hmcts.ccd.data.caseaccess.DefaultCaseRoleRepository; @@ -31,7 +31,7 @@ public class CaseRoleDefinitionCachingIT { @Autowired private ApplicationParams applicationParams; - @SpyBean + @MockitoSpyBean private DefaultCaseRoleRepository caseRoleRepository; private final String caseTypeId1 = "caseTypeId1"; diff --git a/src/test/java/uk/gov/hmcts/ccd/integrations/DefinitionsCachingIT.java b/src/test/java/uk/gov/hmcts/ccd/integrations/DefinitionsCachingIT.java index e883d4e203..f5dc3adc5f 100644 --- a/src/test/java/uk/gov/hmcts/ccd/integrations/DefinitionsCachingIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/integrations/DefinitionsCachingIT.java @@ -8,10 +8,10 @@ import org.mockito.Mock; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.mock.mockito.SpyBean; import org.springframework.cloud.contract.wiremock.AutoConfigureWireMock; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.context.junit4.SpringRunner; import uk.gov.hmcts.ccd.ApplicationParams; import uk.gov.hmcts.ccd.data.definition.CachedCaseDefinitionRepository; @@ -71,7 +71,7 @@ public class DefinitionsCachingIT { private static final JurisdictionDefinition JURISDICTION_DEFINITION_2 = new JurisdictionDefinition(); private static final JurisdictionDefinition JURISDICTION_DEFINITION_3 = new JurisdictionDefinition(); - @SpyBean + @MockitoSpyBean private DefaultCaseDefinitionRepository caseDefinitionRepository; @Autowired @@ -80,13 +80,13 @@ public class DefinitionsCachingIT { @Autowired ApplicationParams applicationParams; - @SpyBean + @MockitoSpyBean UIDefinitionRepository uiDefinitionRepository; - @SpyBean + @MockitoSpyBean private HttpUIDefinitionGateway httpUIDefinitionGateway; - @SpyBean + @MockitoSpyBean private CachedUIDefinitionGateway cachedUIDefinitionGateway; @Mock diff --git a/src/test/java/uk/gov/hmcts/ccd/integrations/IdamRepositoryCachingIT.java b/src/test/java/uk/gov/hmcts/ccd/integrations/IdamRepositoryCachingIT.java index 423e8e12eb..88f0bbfe6e 100644 --- a/src/test/java/uk/gov/hmcts/ccd/integrations/IdamRepositoryCachingIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/integrations/IdamRepositoryCachingIT.java @@ -9,10 +9,10 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.boot.test.mock.mockito.SpyBean; import org.springframework.cloud.contract.wiremock.AutoConfigureWireMock; import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.bean.override.mockito.MockitoBean; +import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.context.junit4.SpringRunner; import uk.gov.hmcts.ccd.ApplicationParams; import uk.gov.hmcts.ccd.security.idam.IdamRepository; @@ -41,10 +41,10 @@ public class IdamRepositoryCachingIT { private static final String TEST_SYS_ACCESS_TOKEN_TWO = "testSysAccessTokenTwo"; // Need to Spy ApplicationParams rather than Mock it as it is used during setup of other beans - @SpyBean + @MockitoSpyBean private ApplicationParams applicationParams; - @MockBean + @MockitoBean private IdamClient idamClient; // SpyBean and MockBean annotations mean that IdamRepository bean will automatically use diff --git a/src/test/java/uk/gov/hmcts/ccd/security/idam/IdamRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/security/idam/IdamRepositoryTest.java index 866ce104b9..953b01e605 100644 --- a/src/test/java/uk/gov/hmcts/ccd/security/idam/IdamRepositoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/security/idam/IdamRepositoryTest.java @@ -9,7 +9,8 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import org.powermock.reflect.Whitebox; +import org.springframework.test.util.ReflectionTestUtils; + import uk.gov.hmcts.ccd.ApplicationParams; import uk.gov.hmcts.reform.authorisation.exceptions.InvalidTokenException; import uk.gov.hmcts.reform.authorisation.exceptions.ServiceException; @@ -43,7 +44,7 @@ class IdamRepositoryTest { @BeforeEach void setUp() { MockitoAnnotations.openMocks(this); - Whitebox.setInternalState(idamRepository, "selfInstance", idamRepository); + ReflectionTestUtils.setField(idamRepository, "selfInstance", idamRepository); } @Test diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/BaseCaseAssignedUserRolesControllerIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/BaseCaseAssignedUserRolesControllerIT.java index aaf482c23d..62d0c5ed03 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/BaseCaseAssignedUserRolesControllerIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/BaseCaseAssignedUserRolesControllerIT.java @@ -9,13 +9,13 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.boot.test.mock.mockito.SpyBean; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.util.ReflectionTestUtils; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.setup.MockMvcBuilders; @@ -96,7 +96,7 @@ class BaseCaseAssignedUserRolesControllerIT extends WireMockBaseTest { @Inject protected ApplicationParams applicationParams; - @SpyBean @Inject + @MockitoSpyBean @Inject protected AuditRepository auditRepository; @Mock diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerEventsIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerEventsIT.java index fe29b6e4e8..52612b4c44 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerEventsIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerEventsIT.java @@ -4,7 +4,7 @@ import com.github.tomakehurst.wiremock.client.WireMock; import java.util.Arrays; import jakarta.inject.Inject; -import org.apache.commons.lang.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.junit.Before; import org.junit.Test; import org.springframework.http.HttpHeaders; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerTestIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerTestIT.java index 115aa87c14..316c4b1134 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerTestIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerTestIT.java @@ -11,9 +11,9 @@ import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; -import org.springframework.boot.test.mock.mockito.SpyBean; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; +import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.context.jdbc.Sql; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; @@ -98,7 +98,7 @@ class CaseControllerTestIT extends WireMockBaseTest { private MockMvc mockMvc; - @SpyBean + @MockitoSpyBean private AuditRepository auditRepository; @BeforeEach diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseFileViewControllerTestIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseFileViewControllerTestIT.java index 844004427b..3deec14224 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseFileViewControllerTestIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseFileViewControllerTestIT.java @@ -4,7 +4,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; -import org.springframework.boot.test.mock.mockito.SpyBean; +import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.context.jdbc.Sql; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; @@ -43,7 +43,7 @@ class CaseFileViewControllerTestIT extends WireMockBaseTest { private MockMvc mockMvc; - @SpyBean + @MockitoSpyBean private AuditRepository auditRepository; private static final String REQUEST_ID = "request-id"; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserControllerIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserControllerIT.java index e98e3fc82c..26051822b6 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserControllerIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserControllerIT.java @@ -7,7 +7,7 @@ import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentCaptor; -import org.springframework.boot.test.mock.mockito.SpyBean; +import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.context.jdbc.Sql; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; @@ -38,7 +38,7 @@ public class CaseUserControllerIT extends WireMockBaseTest { private MockMvc mockMvc; - @SpyBean + @MockitoSpyBean private AuditRepository auditRepository; @Before diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserControllerTest.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserControllerTest.java index d21c1f47aa..9e1952502a 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserControllerTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserControllerTest.java @@ -26,7 +26,7 @@ import static org.hamcrest.Matchers.hasSize; import static org.junit.jupiter.api.Assertions.assertAll; import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.mockito.Matchers.eq; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerITest.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerITest.java index e69e7855b7..07bae744c2 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerITest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerITest.java @@ -10,47 +10,95 @@ import static org.junit.jupiter.api.Assertions.assertAll; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.reset; +import static org.mockito.Mockito.when; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import java.sql.SQLException; import java.util.List; +import java.util.Objects; import java.util.Optional; +import java.util.stream.Collectors; import javax.sql.DataSource; -import org.junit.Before; -import org.junit.Test; +import org.json.JSONObject; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.Mock; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.cache.CacheManager; +import org.springframework.cloud.contract.wiremock.AutoConfigureWireMock; +import org.springframework.core.io.ClassPathResource; import org.springframework.hateoas.Link; import org.springframework.hateoas.mediatype.hal.Jackson2HalModule; import org.springframework.http.MediaType; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator; +import org.springframework.jdbc.datasource.init.ScriptException; +import org.springframework.jdbc.datasource.init.ScriptUtils; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContext; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.jdbc.Sql; +import org.springframework.test.util.ReflectionTestUtils; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; import com.fasterxml.jackson.databind.ObjectMapper; +import com.github.tomakehurst.wiremock.WireMockServer; +import com.github.tomakehurst.wiremock.client.MappingBuilder; import com.github.tomakehurst.wiremock.client.WireMock; import jakarta.inject.Inject; import uk.gov.hmcts.ccd.ApplicationParams; import uk.gov.hmcts.ccd.MockUtils; -import uk.gov.hmcts.ccd.WireMockBaseTest; import uk.gov.hmcts.ccd.customheaders.CustomHeadersFilter; import uk.gov.hmcts.ccd.domain.model.definition.Document; +import uk.gov.hmcts.ccd.domain.service.common.UIDService; import uk.gov.hmcts.ccd.util.ClientContextUtil; import uk.gov.hmcts.ccd.v2.V2; import uk.gov.hmcts.ccd.v2.external.resource.DocumentsResource; -// too many legacy OperatorWrap occurrences on JSON strings so suppress until move to Java12+ -@SuppressWarnings("checkstyle:OperatorWrap") -public class DocumentControllerITest extends WireMockBaseTest { +@ActiveProfiles("test") +@AutoConfigureWireMock(port = 0) +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +@TestPropertySource(locations = "classpath:test.properties") +public class DocumentControllerITest { private static final String PRINTABLE_URL = "http://remote_host/print/cases/1565620330684549?jwt=test"; private static final String CASE_ID = "1504259907353529"; private static final String REQUEST_ID = "request-id"; private static final String REQUEST_ID_VALUE = "1234567898765432"; + @Value("${wiremock.server.port}") + private Integer wiremockPort; + + @Mock + protected SecurityContext securityContext; + + @Mock + protected Authentication authentication; + + @Inject + protected WireMockServer wireMockServer; + + @Inject + protected UIDService uidService; + + @Inject + protected CacheManager cacheManager; + @Inject private WebApplicationContext wac; @@ -64,76 +112,121 @@ public class DocumentControllerITest extends WireMockBaseTest { protected DataSource db; private MockMvc mockMvc; + private String wiremockUrl; protected static final ObjectMapper mapper = new ObjectMapper(); - private static final String caseTypeResponseString = "{\n" - + " \"id\": \"TestAddressBookCase\",\n" - + " \"version\": {\n" - + " \"number\": 1,\n" - + " \"live_from\": \"2017-01-01\"\n" - + " },\n" - + " \"name\": \"Test Address Book Case\",\n" - + " \"description\": \"Test Address Book Case\",\n" - + " \"printable_document_url\": \"http://localhost:%d/printables\",\n" - + " \"jurisdiction\": {\n" - + " \"id\": \"PROBATE\",\n" - + " \"name\": \"Test\",\n" - + " \"description\": \"Test Jurisdiction\"\n" - + " },\n" - + " \"security_classification\": \"PUBLIC\",\n" - + " \"acls\": [\n" - + " {\n" - + " \"role\": \"caseworker-probate-public\",\n" - + " \"create\": true,\n" - + " \"read\": true,\n" - + " \"update\": true,\n" - + " \"delete\": false\n" - + " },\n" - + " {\n" - + " \"role\": \"caseworker-probate-private\",\n" - + " \"create\": true,\n" - + " \"read\": true,\n" - + " \"update\": true,\n" - + " \"delete\": false\n" - + " },\n" - + " {\n" - + " \"role\": \"citizen\",\n" - + " \"create\": true,\n" - + " \"read\": true,\n" - + " \"update\": true,\n" - + " \"delete\": false\n" - + " }],\n" - + " \"events\": [\n" - + " ],\n" - + " \"states\": [\n" - + " ],\n" - + " \"case_fields\": [\n" - + " ]\n" - + " }"; + public static final JSONObject responseJson1 = new JSONObject(""" + { + "user_task": { + "task_data": { + "task_id": "0001", + "task_name": "Task 1 - description 1" + }, + "complete_task": "false" + } + } + """); + private static final String caseTypeResponseString = """ + {\n + \"id\": \"TestAddressBookCase\",\n + \"version\": {\n + \"number\": 1,\n + \"live_from\": \"2017-01-01\"\n + },\n + \"name\": \"Test Address Book Case\",\n + \"description\": \"Test Address Book Case\",\n + \"printable_document_url\": \"http://localhost:%d/printables\",\n + \"jurisdiction\": {\n + \"id\": \"PROBATE\",\n + \"name\": \"Test\",\n + \"description\": \"Test Jurisdiction\"\n + },\n + \"security_classification\": \"PUBLIC\",\n + \"acls\": [\n + {\n + \"role\": \"caseworker-probate-public\",\n + \"create\": true,\n + \"read\": true,\n + \"update\": true,\n + \"delete\": false\n + },\n + {\n + \"role\": \"caseworker-probate-private\",\n + \"create\": true,\n + \"read\": true,\n + \"update\": true,\n + \"delete\": false\n + },\n + {\n + \"role\": \"citizen\",\n + \"create\": true,\n + \"read\": true,\n + \"update\": true,\n + \"delete\": false\n + }],\n + \"events\": [\n + ],\n + \"states\": [\n + ],\n + \"case_fields\": [\n + ]\n + }"""; private static String CUSTOM_CONTEXT = ""; - @Before - public void setUp() { + @BeforeEach + public void setUp() throws ScriptException, SQLException { + clearDownData(); + doReturn(authentication).when(securityContext).getAuthentication(); + SecurityContextHolder.setContext(securityContext); MockUtils.setSecurityAuthorities(authentication, MockUtils.ROLE_CASEWORKER_PUBLIC); mockMvc = MockMvcBuilders.webAppContextSetup(wac).addFilters(customHeadersFilter).build(); CUSTOM_CONTEXT = applicationParams.getCallbackPassthruHeaderContexts().get(0); mapper.registerModule(new Jackson2HalModule()); + wiremockUrl = "http://localhost:" + wiremockPort; + ReflectionTestUtils.setField(applicationParams, "caseDefinitionHost", wiremockUrl); + + reset(uidService); + when(uidService.validateUID(anyString())).thenCallRealMethod(); + when(uidService.checkSum(anyString())).thenCallRealMethod(); + when(uidService.checkSum(anyString(), anyBoolean())).thenCallRealMethod(); + + ScriptUtils.executeSqlScript(db.getConnection(), new ClassPathResource("sql/insert_cases.sql")); + } + + @AfterEach + public void clearDownData() { + JdbcTemplate jdbcTemplate = new JdbcTemplate(db); + List tables = determineTables(jdbcTemplate); + List sequences = determineSequences(jdbcTemplate); + + String truncateTablesQuery = + "START TRANSACTION;\n" + + tables.stream() + .map(record -> String.format("TRUNCATE TABLE %s CASCADE;", record)) + .collect(Collectors.joining("\n")) + + "\nCOMMIT;"; + jdbcTemplate.execute(truncateTablesQuery); + + sequences.forEach(sequence -> jdbcTemplate.execute("ALTER SEQUENCE " + sequence + " RESTART WITH 1")); + + cacheManager.getCacheNames().forEach( + cacheName -> Objects.requireNonNull(cacheManager.getCache(cacheName)).clear()); } @Test - @Sql({"classpath:sql/insert_cases.sql"}) + // @Sql(executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD, scripts = {"classpath:sql/insert_cases.sql"}) public void shouldReturn200WhenGetValidCaseDocuments() throws Exception { stubFor(WireMock .get(urlMatching("/api/data/case-type/TestAddressBookCase")) .willReturn(aResponse() .withHeader("Content-Type", "application/json") - .withBody(String.format(caseTypeResponseString, super.wiremockPort)))); + .withBody(String.format(caseTypeResponseString, wiremockPort)))); final MvcResult result = mockMvc .perform( - get("http://localhost:" + super.wiremockPort + "/cases/" + CASE_ID + "/documents") + get(wiremockUrl + "/cases/" + CASE_ID + "/documents") .contentType(MediaType.APPLICATION_JSON) .header("Accept", V2.MediaType.CASE_DOCUMENTS) .header(REQUEST_ID, REQUEST_ID_VALUE) @@ -152,7 +245,7 @@ public void shouldReturn200WhenGetValidCaseDocuments() throws Exception { ClientContextUtil.decodeFromBase64(result.getResponse().getHeader(CUSTOM_CONTEXT))); assertAll( () -> assertThat(self.get().getHref(), - is("http://localhost:" + super.wiremockPort + "/cases/" + CASE_ID + "/documents")), + is(wiremockUrl + "/cases/" + CASE_ID + "/documents")), () -> assertThat(documentResources, hasItems(allOf(hasProperty("name", is("Claimant ID")), hasProperty("description", is("Document identifying identity")), @@ -165,4 +258,28 @@ public void shouldReturn200WhenGetValidCaseDocuments() throws Exception { hasProperty("url", is(PRINTABLE_URL)))))); } + public void stubFor(MappingBuilder mappingBuilder) { + wireMockServer.stubFor(mappingBuilder); + } + + private List determineTables(JdbcTemplate jdbcTemplate) { + return jdbcTemplate.queryForList("SELECT * FROM pg_catalog.pg_tables").stream() + .filter(tableInfo -> tableInfo.get("schemaname").equals("public")) + .map(tableInfo -> (String)tableInfo.get("tablename")) + .filter(DocumentControllerITest::notFlyaway) + .collect(Collectors.toList()); + } + + private static boolean notFlyaway(String tableName) { + return !tableName.equals("flyway_schema_history"); + } + + private List determineSequences(JdbcTemplate jdbcTemplate) { + final String sequenceNameKey = "relname"; + String query = "SELECT c.relname FROM pg_class c WHERE c.relkind = 'S'"; + return jdbcTemplate.queryForList(query).stream() + .map(sequenceInfo -> (String) sequenceInfo.get(sequenceNameKey)) + .collect(Collectors.toList()); + } + } diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerCaseRolesIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerCaseRolesIT.java index 54910da36c..f4384fe4b7 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerCaseRolesIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerCaseRolesIT.java @@ -3,13 +3,13 @@ import com.fasterxml.jackson.databind.DeserializationFeature; import com.github.tomakehurst.wiremock.client.WireMock; import com.google.common.collect.Lists; -import org.apache.commons.lang.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.junit.Before; import org.junit.Test; import org.mockito.ArgumentCaptor; -import org.springframework.boot.test.mock.mockito.SpyBean; import org.springframework.http.HttpHeaders; import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.context.jdbc.Sql; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; @@ -52,7 +52,7 @@ public class UICaseControllerCaseRolesIT extends WireMockBaseTest { @Inject private WebApplicationContext wac; - @SpyBean + @MockitoSpyBean private AuditRepository auditRepository; private MockMvc mockMvc; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerGetCaseCallbackIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerGetCaseCallbackIT.java index ebe5b384f0..1dc562f018 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerGetCaseCallbackIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerGetCaseCallbackIT.java @@ -2,7 +2,7 @@ import com.fasterxml.jackson.databind.DeserializationFeature; import com.github.tomakehurst.wiremock.client.WireMock; -import org.apache.commons.lang.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.junit.Before; import org.junit.Test; import org.springframework.http.HttpHeaders; From 17c0b9c1b8f7a5e65a3cf365667804cf50b9d1ac Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Tue, 21 Jan 2025 17:42:02 +0000 Subject: [PATCH 14/42] Fix checkstyle --- .../DefaultSupplementaryDataRepositoryTest.java | 1 - .../ccd/v2/external/controller/DocumentControllerITest.java | 2 -- 2 files changed, 3 deletions(-) diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/DefaultSupplementaryDataRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/DefaultSupplementaryDataRepositoryTest.java index 51c218aa5d..35db620e42 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/DefaultSupplementaryDataRepositoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/DefaultSupplementaryDataRepositoryTest.java @@ -2,7 +2,6 @@ import com.google.common.collect.Sets; -import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerITest.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerITest.java index 07bae744c2..516973a9df 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerITest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerITest.java @@ -40,7 +40,6 @@ import org.springframework.hateoas.mediatype.hal.Jackson2HalModule; import org.springframework.http.MediaType; import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator; import org.springframework.jdbc.datasource.init.ScriptException; import org.springframework.jdbc.datasource.init.ScriptUtils; import org.springframework.security.core.Authentication; @@ -48,7 +47,6 @@ import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.jdbc.Sql; import org.springframework.test.util.ReflectionTestUtils; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; From ee4c6a5ab2155eacea72855ad1306dba90355553 Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Wed, 2 Apr 2025 16:44:09 +0100 Subject: [PATCH 15/42] Update to Junit 5 and cleanup wiremock usage --- build.gradle | 64 ++++---- gradle/libs.versions.toml | 5 + .../datastore/befta/DataStoreBeftaRunner.java | 8 +- .../hmcts/ccd/WireMockBaseContractTest.java | 6 +- .../ccd/AbstractBaseIntegrationTest.java | 14 +- .../ccd/AuditCaseRemoteConfigurationTest.java | 3 +- .../uk/gov/hmcts/ccd/ElasticsearchIT.java | 34 ++-- .../ccd/RestTemplateConfigurationTest.java | 17 +- .../uk/gov/hmcts/ccd/WireMockBaseTest.java | 14 +- .../ccd/appinsights/AppInsightsTest.java | 6 +- .../ccd/auditlog/aop/AuditAspectTest.java | 6 +- .../auditlog/aop/ExpressionEvaluatorTest.java | 6 +- .../hmcts/ccd/data/JsonDataConverterTest.java | 6 +- .../ccd/data/ReferenceDataRepositoryTest.java | 6 +- .../DefaultCaseUserRepositoryTest.java | 6 +- .../CaseAuditEventRepositoryTest.java | 2 +- .../DefaultCaseDetailsRepositoryTest.java | 21 +-- .../data/casedetails/search/CriteraTest.java | 2 +- .../search/CriteriaFactoryTest.java | 6 +- .../search/ParameterSanitiserTest.java | 7 +- .../casedetails/search/SortDirectionTest.java | 13 +- .../SetSupplementaryDataQueryBuilderTest.java | 7 +- .../DefaultCaseDefinitionRepositoryIT.java | 2 +- .../DefaultCaseDefinitionRepositoryTest.java | 26 ++-- .../definition/DefinitionStoreClientIT.java | 35 +++-- ...DefinitionGatewayServiceExceptionTest.java | 38 +++-- .../HttpUIDefinitionGatewayTest.java | 2 +- ...itionRepositoryWireMockNotRunningTest.java | 6 +- .../hmcts/ccd/data/user/UserServiceTest.java | 6 +- .../domain/model/casedeletion/TTLTest.java | 6 +- .../domain/model/common/HttpErrorTest.java | 6 +- .../ElasticsearchRequestTest.java | 2 +- .../GlobalSearchRequestPayloadTest.java | 6 +- ...leAssignmentsFilteringServiceImplTest.java | 6 +- ...sedGetCaseTypeDefinitionOperationTest.java | 2 +- .../CallbackInvokerWireMockTest.java | 8 +- .../CallbackServiceWireMockTest.java | 145 ++++++++++-------- .../DefaultCaseDataAccessControlTest.java | 2 +- .../common/AccessControlServiceTest.java | 4 +- .../domain/service/common/UIDServiceTest.java | 2 +- .../DocumentIdValidationServiceTest.java | 2 +- .../lau/AuditCaseRemoteOperationIT.java | 12 +- .../additionaldata/PublishableFieldTest.java | 12 +- .../date/DateTimeFormatParserTest.java | 2 +- .../stdapi/DocumentsOperationTest.java | 16 +- .../domain/types/CaseDataValidatorTest.java | 6 +- .../domain/types/CollectionValidatorTest.java | 6 +- .../domain/types/DocumentValidatorTest.java | 6 +- .../types/sanitiser/CaseSanitiserTest.java | 6 +- .../sanitiser/CollectionSanitiserTest.java | 6 +- .../types/sanitiser/ComplexSanitiserTest.java | 6 +- .../DocumentManagementRestClientTest.java | 39 ++--- .../sanitiser/client/StubServerDependent.java | 8 +- .../exceptions/RestExceptionHandlerTest.java | 21 ++- .../ccd/endpoint/std/CallbackEndpointIT.java | 6 +- .../hmcts/ccd/endpoint/std/CallbackTest.java | 14 +- .../endpoint/std/CaseAccessEndpointIT.java | 6 +- .../endpoint/std/CaseDetailsEndpointIT.java | 48 +++--- .../std/CaseDetailsEndpointPostStateIT.java | 6 +- .../std/CaseDetailsEndpointUserRolesIT.java | 6 +- .../endpoint/std/CaseSearchEndpointIT.java | 6 +- .../ccd/endpoint/std/DraftsEndpointIT.java | 6 +- .../ccd/endpoint/std/EventsEndpointIT.java | 6 +- .../hmcts/ccd/endpoint/ui/CallbackTest.java | 6 +- .../hmcts/ccd/endpoint/ui/CaseRolesIT.java | 6 +- .../ccd/endpoint/ui/QueryEndpointIT.java | 10 +- .../endpoint/ui/SearchInputEndpointTest.java | 6 +- .../ccd/endpoint/ui/SearchWithSortIT.java | 6 +- .../endpoint/ui/UserProfileEndpointTest.java | 10 +- .../CaseRoleDefinitionCachingIT.java | 31 ++-- .../integrations/DefinitionsCachingIT.java | 18 +-- .../uk/gov/hmcts/ccd/integrations/IdamIT.java | 6 +- .../integrations/IdamRepositoryCachingIT.java | 25 ++- .../ccd/integrations/ServiceToServiceIT.java | 6 +- ...eHttpStatusRequestRejectedHandlerTest.java | 10 +- .../filters/ExceptionHandlingFilterTest.java | 16 +- ...1EndpointsPathParamSecurityFilterTest.java | 12 +- .../ccd/swagger/SwaggerGeneratorTest.java | 6 +- .../controller/CaseControllerDCPIT.java | 6 +- .../controller/CaseControllerEventsIT.java | 6 +- .../controller/CaseControllerTestIT.java | 29 ++-- .../CaseDataValidatorControllerDCPIT.java | 6 +- .../controller/CaseDocumentControllerIT.java | 21 +-- .../CaseFileViewControllerTestIT.java | 4 +- .../controller/CaseUserControllerIT.java | 6 +- .../controller/DocumentControllerITest.java | 135 ++-------------- .../StartEventControllerCaseRolesIT.java | 6 +- .../controller/StartEventControllerIT.java | 41 +++-- .../TestingSupportControllerTestIT.java | 6 +- .../UICaseControllerCaseRolesIT.java | 6 +- .../controller/UICaseControllerDCPIT.java | 6 +- .../UICaseControllerGetCaseCallbackIT.java | 6 +- .../controller/UIDefinitionControllerIT.java | 6 +- .../UIStartEventControllerCaseRolesIT.java | 6 +- .../UIStartTriggerControllerDCPIT.java | 6 +- .../controller/UIUserProfileControllerIT.java | 6 +- .../validator/CaseTypeIdValidatorTest.java | 2 +- 97 files changed, 609 insertions(+), 690 deletions(-) create mode 100644 gradle/libs.versions.toml diff --git a/build.gradle b/build.gradle index 44904427b6..3238da00b3 100644 --- a/build.gradle +++ b/build.gradle @@ -7,13 +7,13 @@ plugins { id 'com.github.ben-manes.versions' version '0.51.0' id 'io.spring.dependency-management' version '1.1.7' id 'org.sonarqube' version '6.0.1.5171' - id("com.github.kt3k.coveralls") version "2.12.2" + id 'com.github.kt3k.coveralls' version '2.12.2' id 'com.github.spacialcircumstances.gradle-cucumber-reporting' version '0.1.25' - id("org.jetbrains.gradle.plugin.idea-ext") version "1.1.9" + id 'org.jetbrains.gradle.plugin.idea-ext' version '1.1.9' id 'info.solidsoft.pitest' version '1.15.0' id 'uk.gov.hmcts.java' version '0.12.63' id 'au.com.dius.pact' version '4.6.16' - id 'org.jsonschema2pojo' version "1.2.2" + id 'org.jsonschema2pojo' version '1.2.2' id 'org.owasp.dependencycheck' version '11.1.1' } @@ -24,16 +24,18 @@ ext { set('spring-framework.version', '6.2.1') set('spring-security.version', '6.4.2') set('log4j2.version', '2.24.3') - set('jackson.version', '2.18.2') - set('snakeyaml.version', '2.3') - junitJupiterVersion = '5.11.4' - junitVintageVersion = '5.11.4' + set('jackson.version', '2.17.0') + set('snakeyaml.version', '2.2') + junit = '5.11.4' + junitPlatform = '1.11.4' appInsightsVersion = '2.6.4' pactProviderVersion = '4.6.16' lombokVersion = '1.18.36' lombokBindingVersion = '0.2.0' + mockito = '5.15.2' elasticVersion = '8.16.2' testContainersVersion = '1.20.4' + cucumber = '6.6.1' limits = [ 'instruction': 90, 'branch' : 85, @@ -119,6 +121,7 @@ bootJar { configurations { providedRuntime annotationProcessor + mockitoAgent aatImplementation.extendsFrom(testImplementation) aatRuntimeOnly.extendsFrom(testRuntimeOnly) @@ -127,6 +130,7 @@ configurations { contractTestRuntimeOnly.extendsFrom(testRuntimeOnly) contractTestAnnotationProcessor.extendsFrom(annotationProcessor) cucumberRuntime.extendsFrom(functionalRuntime) + cucumberImplementation.extendsFrom(functionalImplementation) all.collect { configuration -> configuration.exclude group: 'org.apache.logging.log4j', module: 'log4j-to-slf4j' @@ -148,6 +152,17 @@ tasks.withType(Test) { } } +ext.libraries = [ + junit5: [ + "org.junit.jupiter:junit-jupiter-api:${junit}", + "org.junit.jupiter:junit-jupiter-engine:${junit}", + "org.junit.jupiter:junit-jupiter-params:${junit}", + "org.junit.platform:junit-platform-commons:${junitPlatform}", + "org.junit.platform:junit-platform-engine:${junitPlatform}", + "org.apiguardian:apiguardian-api:1.1.2" + ] +] + dependencies { // start::CVE Vulnerability dependency overrides // MAIN PARENT DEPENDEDNCY @@ -176,18 +191,9 @@ dependencies { testImplementation group: 'io.rest-assured', name: 'rest-assured', version: '5.5.0' // ccd-test-definitions testImplementation group: 'org.json', name: 'json', version: '20250107' // ccd-test-definitions testImplementation group: 'org.assertj', name: 'assertj-core', version: '3.27.2' // spring-cloud-starter-contract-stub-runner - testImplementation group: 'org.mockito', name: 'mockito-core', version: '5.15.2' // spring-cloud-starter-contract-stub-runner - testImplementation group: 'org.mockito', name: 'mockito-junit-jupiter', version: '5.15.2' // spring-boot-starter-test + testImplementation group: 'org.mockito', name: 'mockito-core', version: mockito // spring-cloud-starter-contract-stub-runner + testImplementation group: 'org.mockito', name: 'mockito-junit-jupiter', version: mockito // spring-boot-starter-test - - configurations.all { - exclude group: 'com.vaadin.external.google', module: 'android-json' - - // Group versions - resolutionStrategy.eachDependency { - // if (requested.group == 'org.apache.lucene') useVersion '10.1.0' - } - } // end::CVE Vulnerability dependency overrides // Lombok @@ -251,29 +257,33 @@ dependencies { runtimeOnly group: 'org.postgresql', name: 'postgresql', version: '42.5.6' // TEST DEPENDENCIES + testImplementation libraries.junit5 + testImplementation libs.mockito + mockitoAgent(libs.mockito) { + transitive = false; + } testImplementation group: 'com.opentable.components', name: 'otj-pg-embedded', version: '1.1.0' testImplementation group: 'com.xebialabs.restito', name: 'restito', version: '1.1.2' testImplementation group: 'org.assertj', name: 'assertj-vavr', version: '0.4.3' - testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: junitJupiterVersion - testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: junitJupiterVersion - testRuntimeOnly group: 'org.junit.vintage', name: 'junit-vintage-engine', version: junitVintageVersion testImplementation group: 'org.springframework.cloud', name: 'spring-cloud-starter-contract-stub-runner', version: '4.1.4' testImplementation group: 'org.testcontainers', name: 'testcontainers', version: testContainersVersion testImplementation group: 'org.testcontainers', name: 'postgresql', version: testContainersVersion testImplementation group: 'org.testcontainers', name: 'elasticsearch', version: testContainersVersion testImplementation group: 'org.testcontainers', name: 'junit-jupiter', version: testContainersVersion testImplementation group: 'org.openid4java', name: 'openid4java', version: '1.0.0' // for sonar analysis - testImplementation group: 'com.github.hmcts', name: 'ccd-test-definitions', version: '7.25.0' + testImplementation group: 'com.github.hmcts', name: 'ccd-test-definitions', version: '7.24.2' testImplementation group: 'com.github.hmcts', name: 'befta-fw', version: '9.2.1' testImplementation group: 'com.github.hmcts', name: 'fortify-client', version: '1.4.6' - contractTestImplementation group: 'au.com.dius.pact.provider', name: 'junit5', version: pactProviderVersion, { - exclude group: 'org.codehaus.groovy', module: 'groovy' - } + contractTestImplementation group: 'au.com.dius.pact.provider', name: 'junit5', version: pactProviderVersion contractTestImplementation group: 'au.com.dius.pact.provider', name: 'spring', version: pactProviderVersion contractTestImplementation group: 'au.com.dius.pact.provider', name: 'junit5spring', version: pactProviderVersion contractTestAnnotationProcessor group: 'org.projectlombok', name: 'lombok', version: lombokVersion aatAnnotationProcessor group: 'org.projectlombok', name: 'lombok', version: lombokVersion + + cucumberRuntime group: 'io.cucumber', name: 'cucumber-java', version: cucumber + cucumberRuntime group: 'io.cucumber', name: 'cucumber-junit', version: cucumber + cucumberRuntime group: 'io.cucumber', name: 'cucumber-junit-platform-engine', version: cucumber } // end::dependencies[] @@ -628,10 +638,12 @@ test { timeout = Duration.ofMinutes(30) environment("AZURE_APPLICATIONINSIGHTS_INSTRUMENTATIONKEY", "some-key") generateCucumberReports.enabled = false - systemProperty 'java.locale.providers', 'COMPAT' + systemProperty 'java.locale.providers', 'CLDR' useJUnitPlatform() + jvmArgs += "-javaagent:${configurations.mockitoAgent.asPath}" + testLogging { // set options for log level LIFECYCLE events "failed" diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000000..df08b94b8c --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,5 @@ +[versions] +mockito = "5.15.2" + +[libraries] +mockito = { module = "org.mockito:mockito-core", version.ref = "mockito" } \ No newline at end of file diff --git a/src/aat/java/uk/gov/hmcts/ccd/datastore/befta/DataStoreBeftaRunner.java b/src/aat/java/uk/gov/hmcts/ccd/datastore/befta/DataStoreBeftaRunner.java index 5e7982ceae..9478d4001b 100644 --- a/src/aat/java/uk/gov/hmcts/ccd/datastore/befta/DataStoreBeftaRunner.java +++ b/src/aat/java/uk/gov/hmcts/ccd/datastore/befta/DataStoreBeftaRunner.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.datastore.befta; -import org.junit.AfterClass; -import org.junit.BeforeClass; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; import org.junit.runner.RunWith; import io.cucumber.junit.Cucumber; @@ -19,12 +19,12 @@ private DataStoreBeftaRunner() { // Hide Utility Class Constructor : Utility classes should not have a public or default constructor (squid:S1118) } - @BeforeClass + @BeforeAll public static void setUp() { BeftaMain.setUp(new DataStoreTestAutomationAdapter()); } - @AfterClass + @AfterAll public static void tearDown() { BeftaMain.tearDown(); } diff --git a/src/contractTest/java/uk/gov/hmcts/ccd/WireMockBaseContractTest.java b/src/contractTest/java/uk/gov/hmcts/ccd/WireMockBaseContractTest.java index 5b890af954..46eed709c8 100644 --- a/src/contractTest/java/uk/gov/hmcts/ccd/WireMockBaseContractTest.java +++ b/src/contractTest/java/uk/gov/hmcts/ccd/WireMockBaseContractTest.java @@ -7,7 +7,6 @@ import com.github.tomakehurst.wiremock.http.Request; import com.github.tomakehurst.wiremock.http.ResponseDefinition; import org.apache.http.HttpHeaders; -import org.junit.Before; import org.junit.jupiter.api.BeforeEach; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -29,13 +28,14 @@ public abstract class WireMockBaseContractTest { @Value("${wiremock.server.port}") protected Integer wiremockPort; + public String hostUrl; + @Inject protected ApplicationParams applicationParams; - @Before @BeforeEach public void initMock() throws IOException { - final String hostUrl = "http://localhost:" + wiremockPort; + hostUrl = "http://localhost:" + wiremockPort; LOG.info("Wire mock test, host url is {}", hostUrl); diff --git a/src/test/java/uk/gov/hmcts/ccd/AbstractBaseIntegrationTest.java b/src/test/java/uk/gov/hmcts/ccd/AbstractBaseIntegrationTest.java index a35c272788..2dd8266989 100644 --- a/src/test/java/uk/gov/hmcts/ccd/AbstractBaseIntegrationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/AbstractBaseIntegrationTest.java @@ -4,13 +4,10 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.github.tomakehurst.wiremock.common.Slf4jNotifier; -import org.junit.After; -import org.junit.Before; -import org.junit.BeforeClass; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.BeforeAll; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.beans.factory.annotation.Qualifier; @@ -24,7 +21,7 @@ import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.util.ReflectionTestUtils; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; @@ -79,7 +76,7 @@ import static org.mockito.Mockito.when; @ActiveProfiles("test") -@RunWith(SpringRunner.class) +@ExtendWith(SpringExtension.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @TestPropertySource(locations = "classpath:test.properties") public abstract class AbstractBaseIntegrationTest { @@ -142,7 +139,6 @@ public abstract class AbstractBaseIntegrationTest { @Mock protected HttpServletRequest request; - @Before @BeforeEach public void initMock() throws IOException { MockitoAnnotations.openMocks(this); @@ -176,7 +172,6 @@ private void setupUIDService() { when(uidService.checkSum(anyString(), anyBoolean())).thenCallRealMethod(); } - @BeforeClass @BeforeAll public static void init() { mapper.registerModule(new JavaTimeModule()); @@ -186,7 +181,6 @@ public static void init() { ReflectionTestUtils.setField(BaseType.class, "initialised", false); } - @After @AfterEach public void clearDownData() { JdbcTemplate jdbcTemplate = new JdbcTemplate(db); diff --git a/src/test/java/uk/gov/hmcts/ccd/AuditCaseRemoteConfigurationTest.java b/src/test/java/uk/gov/hmcts/ccd/AuditCaseRemoteConfigurationTest.java index 86db15cf9a..9a1ed153d7 100644 --- a/src/test/java/uk/gov/hmcts/ccd/AuditCaseRemoteConfigurationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/AuditCaseRemoteConfigurationTest.java @@ -1,6 +1,6 @@ package uk.gov.hmcts.ccd; -import org.junit.Before; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -21,7 +21,6 @@ public class AuditCaseRemoteConfigurationTest { protected AuditCaseRemoteConfiguration auditCaseRemoteConfiguration = new AuditCaseRemoteConfiguration(); - @Before @BeforeEach public void initMock() throws IOException { ReflectionTestUtils.setField(auditCaseRemoteConfiguration, diff --git a/src/test/java/uk/gov/hmcts/ccd/ElasticsearchIT.java b/src/test/java/uk/gov/hmcts/ccd/ElasticsearchIT.java index 2a5920bad6..73ffd18a4a 100644 --- a/src/test/java/uk/gov/hmcts/ccd/ElasticsearchIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/ElasticsearchIT.java @@ -10,32 +10,27 @@ import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.assertj.core.api.Assertions; -import org.junit.experimental.runners.Enclosed; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.ArgumentsProvider; import org.junit.jupiter.params.provider.ArgumentsSource; -import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.contract.wiremock.AutoConfigureWireMock; import org.springframework.http.MediaType; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.jdbc.Sql; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; import org.springframework.test.web.servlet.setup.MockMvcBuilders; @@ -177,7 +172,7 @@ import static uk.gov.hmcts.ccd.test.RoleAssignmentsHelper.securityCTSpecificRestrictedUserRoleAssignmentJson; @Slf4j -@RunWith(Enclosed.class) +@ExtendWith(SpringExtension.class) public class ElasticsearchIT extends ElasticsearchBaseTest { private static final String REFERENCE_GLOBAL_SEARCH_01 = "1111222233334444"; @@ -243,7 +238,7 @@ public void prepare() { } @Nested - class UICaseSearchControllerIT { + public class UICaseSearchControllerIT { private static final String POST_SEARCH_CASES = "/internal/searchCases"; private static final String CASE_FIELD_ID = "caseFieldId"; @@ -833,13 +828,8 @@ private JsonNode executeErrorRequest(ElasticsearchTestRequest searchRequest, } } - @AutoConfigureWireMock(port = 0) - @ActiveProfiles("test") - @RunWith(SpringRunner.class) - @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) - @TestPropertySource(locations = "classpath:test.properties") @Nested - class CaseSearchEndpointESSecurityIT { + public class CaseSearchEndpointESSecurityIT extends WireMockBaseTest { private static final String POST_SEARCH_CASES = "/searchCases"; private static final String SECURITY_CASE_2 = "1589460125872336"; @@ -855,7 +845,7 @@ void setUp() { } @Nested - class CrudTest { + public class CrudTest { @BeforeEach void beforeEach() { log.info("CrudTest BeforeEach test method"); @@ -1062,7 +1052,7 @@ void shouldReturnComplexNestedFieldsWithoutCrud() throws Exception { } @Nested - class SecurityClassificationTest { + public class SecurityClassificationTest { // Case @@ -1232,7 +1222,7 @@ void shouldNotReturnComplexNestedFieldsWithHigherSC() throws Exception { } @Nested - class GeneralAccessTest { + public class GeneralAccessTest { @BeforeEach void beforeEach() { log.info("GeneralAccessTest BeforeEach test method"); @@ -1404,7 +1394,7 @@ private Map getCaseData(CaseSearchResult caseSearchResult, Lon } @Nested - class CaseSearchEndpointESIT { + public class CaseSearchEndpointESIT { private static final String POST_SEARCH_CASES = "/searchCases"; @@ -1421,7 +1411,7 @@ void setUp() { } @Nested - class CrossCaseTypeSearch { + public class CrossCaseTypeSearch { // Note that cross case type searches do NOT return case data @Test @@ -1501,7 +1491,7 @@ void shouldQueryOnAliasField() throws Exception { } @Nested - class SingleCaseTypeSearch { + public class SingleCaseTypeSearch { @Test void shouldReturnAllCaseDetails() throws Exception { @@ -1669,7 +1659,7 @@ private JsonNode executeErrorRequest(ElasticsearchTestRequest searchRequest, @Nested - class GlobalSearchEndpointESIT { + public class GlobalSearchEndpointESIT { private static final String CASE_TYPE_GLOBAL_SEARCH = "GlobalSearch"; private static final String JURISDICTION_GLOBAL_SEARCH = "AUTOTEST1"; diff --git a/src/test/java/uk/gov/hmcts/ccd/RestTemplateConfigurationTest.java b/src/test/java/uk/gov/hmcts/ccd/RestTemplateConfigurationTest.java index cdad321aaa..21ffee5cce 100644 --- a/src/test/java/uk/gov/hmcts/ccd/RestTemplateConfigurationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/RestTemplateConfigurationTest.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.RequestEntity; import org.springframework.http.ResponseEntity; @@ -26,6 +26,7 @@ import static org.hamcrest.collection.IsCollectionWithSize.hasSize; import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThrows; import static org.hamcrest.MatcherAssert.assertThat; import static org.springframework.http.HttpMethod.GET; import static org.springframework.http.HttpMethod.PUT; @@ -58,25 +59,25 @@ public void restTemplateShouldBeUsable() throws Exception { final RequestEntity request = - new RequestEntity<>(PUT, URI.create("http://localhost:" + wiremockPort + URL)); + new RequestEntity<>(PUT, URI.create(hostUrl + URL)); final ResponseEntity response = restTemplate.exchange(request, JsonNode.class); assertResponse(response); } - @Test(expected = ResourceAccessException.class) + @Test public void shouldTimeOut() { assertNotNull(restTemplate); stubFor(get(urlEqualTo(URL)).willReturn(aResponse().withStatus(SC_OK).withFixedDelay(2000))); final RequestEntity request = - new RequestEntity<>(GET, URI.create("http://localhost:" + wiremockPort + URL)); + new RequestEntity<>(GET, URI.create(hostUrl + URL)); - restTemplate.exchange(request, String.class); + assertThrows(ResourceAccessException.class, () -> restTemplate.exchange(request, String.class)); } - @Ignore("for local dev only") + @Disabled("for local dev only") @Test public void shouldBeAbleToUseMultipleTimes() throws Exception { stubResponse(); @@ -88,7 +89,7 @@ public void shouldBeAbleToUseMultipleTimes() throws Exception { futures.add(executorService.submit(() -> { final RequestEntity request = - new RequestEntity<>(PUT, URI.create("http://localhost:" + wiremockPort + URL)); + new RequestEntity<>(PUT, URI.create(hostUrl + URL)); final ResponseEntity response = restTemplate.exchange(request, JsonNode.class); assertResponse(response); return response.getStatusCode().value(); diff --git a/src/test/java/uk/gov/hmcts/ccd/WireMockBaseTest.java b/src/test/java/uk/gov/hmcts/ccd/WireMockBaseTest.java index e41e3b4773..d4d30a0ab7 100644 --- a/src/test/java/uk/gov/hmcts/ccd/WireMockBaseTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/WireMockBaseTest.java @@ -11,9 +11,8 @@ import com.github.tomakehurst.wiremock.http.Request; import com.github.tomakehurst.wiremock.http.ResponseDefinition; import com.github.tomakehurst.wiremock.matching.RequestPatternBuilder; + import org.apache.http.HttpHeaders; -import org.json.JSONObject; -import org.junit.Before; import org.junit.jupiter.api.BeforeEach; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -30,6 +29,7 @@ import java.util.UUID; import java.util.stream.Collectors; import java.util.stream.Stream; + import jakarta.inject.Inject; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; @@ -38,6 +38,7 @@ import static com.github.tomakehurst.wiremock.client.WireMock.okJson; import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching; import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo; + import static org.springframework.http.HttpHeaders.CONTENT_TYPE; @AutoConfigureWireMock(port = 0) @@ -68,7 +69,7 @@ public abstract class WireMockBaseTest extends AbstractBaseIntegrationTest { public static final String CASE_02_TYPE = "TestAddressBookCase"; public static final String CASE_03_TYPE = "TestAddressBookCase"; public static final int NUMBER_OF_CASES = 23; - public static final JSONObject responseJson1 = new JSONObject(""" + public static final String responseJson1 = """ { "user_task": { "task_data": { @@ -78,8 +79,8 @@ public abstract class WireMockBaseTest extends AbstractBaseIntegrationTest { "complete_task": "false" } } - """); - public static final JSONObject responseJson2 = new JSONObject(""" + """; + public static final String responseJson2 = """ { "user_task": { "task_data": { @@ -89,7 +90,7 @@ public abstract class WireMockBaseTest extends AbstractBaseIntegrationTest { "complete_task": "true" } } - """); + """; private static final String BEARER = "Bearer "; private static final String SERVICE_AUTHORIZATION = "ServiceAuthorization"; private static final String TOKEN = "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJjY2RfZ3ciLCJleHAiOjE1ODI2MDAyMzN9" @@ -107,7 +108,6 @@ public abstract class WireMockBaseTest extends AbstractBaseIntegrationTest { @Inject protected WireMockServer wireMockServer; - @Before @BeforeEach public void initMock() throws IOException { super.initMock(); diff --git a/src/test/java/uk/gov/hmcts/ccd/appinsights/AppInsightsTest.java b/src/test/java/uk/gov/hmcts/ccd/appinsights/AppInsightsTest.java index 6f27cb454f..63d9786255 100644 --- a/src/test/java/uk/gov/hmcts/ccd/appinsights/AppInsightsTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/appinsights/AppInsightsTest.java @@ -5,8 +5,8 @@ import com.microsoft.applicationinsights.telemetry.ExceptionTelemetry; import com.microsoft.applicationinsights.telemetry.RequestTelemetry; import com.microsoft.applicationinsights.telemetry.SeverityLevel; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; import org.mockito.InjectMocks; import org.mockito.Mock; @@ -39,7 +39,7 @@ public class AppInsightsTest { @Mock private TelemetryClient telemetryClient; - @Before + @BeforeEach public void setUp() { MockitoAnnotations.openMocks(this); } diff --git a/src/test/java/uk/gov/hmcts/ccd/auditlog/aop/AuditAspectTest.java b/src/test/java/uk/gov/hmcts/ccd/auditlog/aop/AuditAspectTest.java index 3e4435a634..cba484b529 100644 --- a/src/test/java/uk/gov/hmcts/ccd/auditlog/aop/AuditAspectTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/auditlog/aop/AuditAspectTest.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.auditlog.aop; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.aop.aspectj.annotation.AspectJProxyFactory; import org.springframework.aop.framework.AopProxy; import org.springframework.aop.framework.DefaultAopProxyFactory; @@ -23,7 +23,7 @@ public class AuditAspectTest { private final AuditAspect aspect = new AuditAspect(); private TestController controllerProxy; - @Before + @BeforeEach public void setUp() { AspectJProxyFactory aspectJProxyFactory = new AspectJProxyFactory(new TestController()); aspectJProxyFactory.addAspect(aspect); diff --git a/src/test/java/uk/gov/hmcts/ccd/auditlog/aop/ExpressionEvaluatorTest.java b/src/test/java/uk/gov/hmcts/ccd/auditlog/aop/ExpressionEvaluatorTest.java index 7247cfb9d5..339cc7740a 100644 --- a/src/test/java/uk/gov/hmcts/ccd/auditlog/aop/ExpressionEvaluatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/auditlog/aop/ExpressionEvaluatorTest.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.auditlog.aop; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.context.expression.AnnotatedElementKey; import org.springframework.expression.EvaluationContext; import org.springframework.expression.spel.SpelEvaluationException; @@ -17,7 +17,7 @@ public class ExpressionEvaluatorTest { private ExpressionEvaluator evaluator; - @Before + @BeforeEach public void setup() { evaluator = new ExpressionEvaluator(); } diff --git a/src/test/java/uk/gov/hmcts/ccd/data/JsonDataConverterTest.java b/src/test/java/uk/gov/hmcts/ccd/data/JsonDataConverterTest.java index 7fade0805d..85d2e1cbe8 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/JsonDataConverterTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/JsonDataConverterTest.java @@ -3,8 +3,8 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -20,7 +20,7 @@ public class JsonDataConverterTest { private JsonDataConverter jsonbConverter; - @Before + @BeforeEach public void setup() { jsonbConverter = new JsonDataConverter(); } diff --git a/src/test/java/uk/gov/hmcts/ccd/data/ReferenceDataRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/ReferenceDataRepositoryTest.java index ec814f5bff..ae5249db2e 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/ReferenceDataRepositoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/ReferenceDataRepositoryTest.java @@ -86,7 +86,7 @@ void setUp() { @DisplayName("getBuildingLocations()") @Nested - class GetBuildingLocations { + public class GetBuildingLocations { @Test @DisplayName("Should load ReferenceData using SystemUser headers") @@ -138,7 +138,7 @@ void shouldReturnEmptyResultAfterReferenceDataException() { @DisplayName("getServices()") @Nested - class GetServices { + public class GetServices { @Test @DisplayName("Should load ReferenceData using SystemUser headers") @@ -191,7 +191,7 @@ void shouldReturnEmptyResultAfterReferenceDataException() { @DisplayName("updateCache()") @Nested - class UpdateCache { + public class UpdateCache { @Mock private Cache cache; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/caseaccess/DefaultCaseUserRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/caseaccess/DefaultCaseUserRepositoryTest.java index bba1e7bc98..40254ac752 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/caseaccess/DefaultCaseUserRepositoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/caseaccess/DefaultCaseUserRepositoryTest.java @@ -1,8 +1,8 @@ package uk.gov.hmcts.ccd.data.caseaccess; import com.google.common.collect.Lists; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.test.context.bean.override.mockito.MockitoBean; @@ -56,7 +56,7 @@ public class DefaultCaseUserRepositoryTest extends WireMockBaseTest { @Autowired private DefaultCaseUserRepository repository; - @Before + @BeforeEach public void setUp() { template = new JdbcTemplate(db); } diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventRepositoryTest.java index d303e9b10d..dcbdbb8166 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventRepositoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventRepositoryTest.java @@ -1,6 +1,6 @@ package uk.gov.hmcts.ccd.data.casedetails; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.junit.jupiter.api.DisplayName; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/DefaultCaseDetailsRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/DefaultCaseDetailsRepositoryTest.java index 192a0870d2..12fe311c0b 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/DefaultCaseDetailsRepositoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/DefaultCaseDetailsRepositoryTest.java @@ -2,9 +2,9 @@ import com.github.tomakehurst.wiremock.client.WireMock; import com.google.common.collect.Maps; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.mock.web.MockHttpServletRequest; @@ -112,7 +112,7 @@ public class DefaultCaseDetailsRepositoryTest extends WireMockBaseTest { @Inject private ApplicationParams applicationParams; - @Before + @BeforeEach public void setUp() { template = new JdbcTemplate(db); @@ -128,7 +128,7 @@ public void setUp() { wireMockServer.resetToDefaultMappings(); } - @After + @AfterEach public void clearDown() { listener.requestDestroyed(new ServletRequestEvent(context, request)); } @@ -310,7 +310,7 @@ public void sanitiseInputMainQuerySortOrderForDirection() { assertThat(byMetaData.size(), is(0)); } - @Test (expected = BadRequestException.class) + @Test public void sanitiseInputMainQuerySortOrderForCaseFieldID() { final String caseFieldId = "insert into case users values(1,2,3)"; @@ -329,10 +329,12 @@ public void sanitiseInputMainQuerySortOrderForCaseFieldID() { .direction("DESC") .build()); - caseDetailsRepository.findByMetaDataAndFieldData(metadata, Maps.newHashMap()); + assertThrows(BadRequestException.class, () -> + caseDetailsRepository.findByMetaDataAndFieldData(metadata, Maps.newHashMap()) + ); } - @Test(expected = IllegalArgumentException.class) + @Test public void validateInputMainQueryMetaDataFieldId() { final String notSoEvil = "[UNKNOWN_FIELD]"; @@ -353,7 +355,8 @@ public void validateInputMainQueryMetaDataFieldId() { // If any input is not correctly validated it will pass the query to jdbc driver creating potential sql // injection vulnerability - caseDetailsRepository.findByMetaDataAndFieldData(metadata, Maps.newHashMap()); + assertThrows(IllegalArgumentException.class, () -> + caseDetailsRepository.findByMetaDataAndFieldData(metadata, Maps.newHashMap())); } @Test diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/CriteraTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/CriteraTest.java index e31b8429fd..dd0a612b17 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/CriteraTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/CriteraTest.java @@ -1,6 +1,6 @@ package uk.gov.hmcts.ccd.data.casedetails.search; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.junit.Assert.assertTrue; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/CriteriaFactoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/CriteriaFactoryTest.java index 64556b7a00..886779b4c3 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/CriteriaFactoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/CriteriaFactoryTest.java @@ -9,8 +9,8 @@ import java.util.Map; import java.util.Optional; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; public class CriteriaFactoryTest { @@ -26,7 +26,7 @@ public class CriteriaFactoryTest { Map params = new HashMap(); private CriterionFactory subject; - @Before + @BeforeEach public void create() { subject = new CriterionFactory(); params.clear(); diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/ParameterSanitiserTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/ParameterSanitiserTest.java index 5884cfbde9..900e439dc3 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/ParameterSanitiserTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/ParameterSanitiserTest.java @@ -1,12 +1,13 @@ package uk.gov.hmcts.ccd.data.casedetails.search; -import org.junit.Test; +import org.junit.jupiter.api.Test; import uk.gov.hmcts.ccd.endpoint.exceptions.BadRequestException; import java.util.HashMap; import java.util.Map; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThrows; public class ParameterSanitiserTest { @@ -16,11 +17,11 @@ public ParameterSanitiserTest() { } - @Test(expected = BadRequestException.class) + @Test public void checkSpaceinFieldName() { Map params = new HashMap(); params.put("case.field.with a space", "anything"); - subject.execute(params); + assertThrows(BadRequestException.class, () -> subject.execute(params)); } @Test diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/SortDirectionTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/SortDirectionTest.java index 19811c0f97..90b3ffef4b 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/SortDirectionTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/search/SortDirectionTest.java @@ -1,29 +1,30 @@ package uk.gov.hmcts.ccd.data.casedetails.search; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.Optional; +import static org.junit.Assert.assertEquals; + public class SortDirectionTest { @Test public void testFromNullString() { - Assert.assertEquals(SortDirection.ASC, SortDirection.fromOptionalString(Optional.empty())); + assertEquals(SortDirection.ASC, SortDirection.fromOptionalString(Optional.empty())); } @Test public void testFromAscCaseInsensitive() { - Assert.assertEquals(SortDirection.ASC, SortDirection.fromOptionalString(Optional.of("AsC"))); + assertEquals(SortDirection.ASC, SortDirection.fromOptionalString(Optional.of("AsC"))); } @Test public void testFromDescCaseInsensitive() { - Assert.assertEquals(SortDirection.DESC, SortDirection.fromOptionalString(Optional.of("dEsC"))); + assertEquals(SortDirection.DESC, SortDirection.fromOptionalString(Optional.of("dEsC"))); } @Test public void testFromDummyString() { - Assert.assertEquals(SortDirection.ASC, SortDirection.fromOptionalString(Optional.of("dummy"))); + assertEquals(SortDirection.ASC, SortDirection.fromOptionalString(Optional.of("dummy"))); } } diff --git a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SetSupplementaryDataQueryBuilderTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SetSupplementaryDataQueryBuilderTest.java index 13d0be0847..38340c600d 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SetSupplementaryDataQueryBuilderTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SetSupplementaryDataQueryBuilderTest.java @@ -3,10 +3,9 @@ import jakarta.inject.Inject; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; - -import org.junit.Ignore; import jakarta.persistence.Query; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.mockito.Mock; import uk.gov.hmcts.ccd.WireMockBaseTest; @@ -98,7 +97,7 @@ void shouldThrowServiceExceptionForJsonNodeToString() { } } - @Ignore("Can only be used for local testing on multithreading") + @Disabled("Can only be used for local testing on multithreading") @Test void shouldReturnValidRequestDataPassed() { Thread t1 = new Thread(() -> { @@ -123,7 +122,7 @@ void shouldReturnValidRequestDataPassed() { t2.start(); } - @Ignore("Can only be used for local testing on multithreading") + @Disabled("Can only be used for local testing on multithreading") @Test void shouldReturnValidRequestDataPassed1() { Thread t1 = new Thread(() -> { diff --git a/src/test/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepositoryIT.java b/src/test/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepositoryIT.java index 5ecec74195..8d693a4a16 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepositoryIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepositoryIT.java @@ -2,7 +2,7 @@ import com.github.tomakehurst.wiremock.client.WireMock; import org.hamcrest.collection.IsCollectionWithSize; -import org.junit.Test; +import org.junit.jupiter.api.Test; import uk.gov.hmcts.ccd.WireMockBaseTest; import uk.gov.hmcts.ccd.domain.model.definition.CaseTypeDefinition; import uk.gov.hmcts.ccd.domain.model.definition.FieldTypeDefinition; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepositoryTest.java index e859abfbd1..f240e4b07a 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepositoryTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepositoryTest.java @@ -21,9 +21,10 @@ import uk.gov.hmcts.ccd.endpoint.exceptions.ResourceNotFoundException; import uk.gov.hmcts.ccd.endpoint.exceptions.ServiceException; -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.Assert; +import org.junit.jupiter.api.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.http.HttpHeaders; @@ -31,7 +32,7 @@ import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.RestTemplate; -@Ignore("for now") +@Disabled("for now") public class DefaultCaseDefinitionRepositoryTest { private static final String JURISDICTION_ID = "Some Jurisdiction"; @@ -49,7 +50,7 @@ public class DefaultCaseDefinitionRepositoryTest { private CaseDefinitionRepository caseDefinitionRepository; - @Before + @BeforeEach public void setup() { MockitoAnnotations.openMocks(this); doReturn(new HttpHeaders()).when(securityUtils).authorizationHeaders(); @@ -58,11 +59,13 @@ public void setup() { caseDefinitionRepository = new DefaultCaseDefinitionRepository(applicationParams, definitionStoreClient); } - @Test(expected = ResourceNotFoundException.class) + @Test public void shouldThrowResourceNotFoundExceptionWhenGetCaseTypesForJurisdictionIsCalledAndResourceIsNotFound() { HttpClientErrorException exception = new HttpClientErrorException(HttpStatus.NOT_FOUND); doThrow(exception).when(restTemplate).exchange(anyString(), any(), any(), any(Class.class)); - caseDefinitionRepository.getCaseTypesForJurisdiction(JURISDICTION_ID); + assertThrows(ResourceNotFoundException.class, () -> + caseDefinitionRepository.getCaseTypesForJurisdiction(JURISDICTION_ID) + ); } @Test @@ -88,11 +91,11 @@ public void shouldThrowServiceExceptionWhenGetCaseTypesForJurisdictionIsCalled() } - @Test(expected = ResourceNotFoundException.class) + @Test public void shouldThrowResourceNotFoundExceptionWhenGetBaseTypesIsCalledAndResourceIsNotFound() { HttpClientErrorException exception = new HttpClientErrorException(HttpStatus.NOT_FOUND); doThrow(exception).when(restTemplate).exchange(anyString(), any(), any(), any(Class.class)); - caseDefinitionRepository.getBaseTypes(); + Assert.assertThrows(ResourceNotFoundException.class, () -> caseDefinitionRepository.getBaseTypes()); } @Test @@ -117,12 +120,11 @@ public void shouldThrowServicedExceptionWhenGetBaseTypesIsCalled() { + " because of")); } - @Test(expected = ResourceNotFoundException.class) + @Test public void shouldReturnFieldTypeListWhenGetBaseTypesIsCalled() { FieldTypeDefinition[] fieldTypeDefinitionArr = {new FieldTypeDefinition(), new FieldTypeDefinition()}; doReturn(fieldTypeDefinitionArr).when(restTemplate).exchange(anyString(), any(), any(), any(Class.class)); - List fieldTypeDefinitions = caseDefinitionRepository.getBaseTypes(); - assertEquals(2, fieldTypeDefinitions.size()); + Assert.assertThrows(ResourceNotFoundException.class, () -> caseDefinitionRepository.getBaseTypes()); } @Test diff --git a/src/test/java/uk/gov/hmcts/ccd/data/definition/DefinitionStoreClientIT.java b/src/test/java/uk/gov/hmcts/ccd/data/definition/DefinitionStoreClientIT.java index 3b1af35382..7ff200efe0 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/definition/DefinitionStoreClientIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/definition/DefinitionStoreClientIT.java @@ -1,20 +1,23 @@ package uk.gov.hmcts.ccd.data.definition; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.ArgumentMatchers; +import org.mockito.MockitoAnnotations; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.cloud.contract.wiremock.AutoConfigureWireMock; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.retry.annotation.EnableRetry; -import org.springframework.test.context.TestPropertySource; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.context.bean.override.mockito.MockitoBean; +import org.springframework.test.util.ReflectionTestUtils; import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.HttpServerErrorException; import org.springframework.web.client.RestTemplate; + import uk.gov.hmcts.ccd.data.SecurityUtils; +import uk.gov.hmcts.ccd.WireMockBaseTest; import java.net.URI; import java.util.Collections; @@ -28,24 +31,29 @@ import static org.mockito.Mockito.when; -@SpringBootTest @EnableRetry -@AutoConfigureWireMock(port = 0) -@TestPropertySource(locations = "classpath:test.properties") -public class DefinitionStoreClientIT { +@DirtiesContext +public class DefinitionStoreClientIT extends WireMockBaseTest { - @MockBean(name = "definitionStoreRestTemplate") + @MockitoBean(name = "definitionStoreRestTemplate") private RestTemplate restTemplate; - @MockBean + @MockitoBean private SecurityUtils securityUtils; @Autowired private DefinitionStoreClient definitionStoreClient; + @BeforeEach + public void setup() { + MockitoAnnotations.openMocks(this); + ReflectionTestUtils.setField(definitionStoreClient, "restTemplate", restTemplate); + ReflectionTestUtils.setField(definitionStoreClient, "securityUtils", securityUtils); + when(securityUtils.authorizationHeaders()).thenReturn(HttpHeaders.EMPTY); + } + @Test public void testShouldInvokeGetRequestWithQueryParamsRetryAfterHttpServerErrorException() { - when(securityUtils.authorizationHeaders()).thenReturn(HttpHeaders.EMPTY); when(restTemplate.exchange(anyString(), any(), any(), ArgumentMatchers.>any(), anyMap())) .thenThrow(HttpServerErrorException.class); @@ -63,7 +71,6 @@ public void testShouldInvokeGetRequestWithQueryParamsRetryAfterHttpServerErrorEx @Test public void testShouldInvokeGetRequestRetryAfterHttpServerErrorException() { - when(securityUtils.authorizationHeaders()).thenReturn(HttpHeaders.EMPTY); when(restTemplate.exchange(anyString(), any(), any(), ArgumentMatchers.>any(), anyMap())) .thenThrow(HttpServerErrorException.class); @@ -81,7 +88,6 @@ public void testShouldInvokeGetRequestRetryAfterHttpServerErrorException() { @Test public void testShouldInvokeGetRequestWithURIRetryAfterHttpServerErrorException() { - when(securityUtils.authorizationHeaders()).thenReturn(HttpHeaders.EMPTY); when(restTemplate.exchange(any(URI.class), any(), any(), ArgumentMatchers.>any())) .thenThrow(HttpServerErrorException.class); @@ -98,7 +104,6 @@ public void testShouldInvokeGetRequestWithURIRetryAfterHttpServerErrorException( @Test public void testShouldInvokeGetRequestWithQueryParamsNotRetryAfterHttpClientErrorException() { - when(securityUtils.authorizationHeaders()).thenReturn(HttpHeaders.EMPTY); when(restTemplate.exchange(anyString(), any(), any(), ArgumentMatchers.>any(), anyMap())) .thenThrow(HttpClientErrorException.class); @@ -116,7 +121,6 @@ public void testShouldInvokeGetRequestWithQueryParamsNotRetryAfterHttpClientErro @Test public void testShouldInvokeGetRequestNotRetryAfterHttpClientErrorException() { - when(securityUtils.authorizationHeaders()).thenReturn(HttpHeaders.EMPTY); when(restTemplate.exchange(anyString(), any(), any(), ArgumentMatchers.>any(), anyMap())) .thenThrow(HttpClientErrorException.class); @@ -134,7 +138,6 @@ public void testShouldInvokeGetRequestNotRetryAfterHttpClientErrorException() { @Test public void testShouldInvokeGetRequestWithURINotRetryAfterHttpClientErrorException() { - when(securityUtils.authorizationHeaders()).thenReturn(HttpHeaders.EMPTY); when(restTemplate.exchange(any(URI.class), any(), any(), ArgumentMatchers.>any())) .thenThrow(HttpClientErrorException.class); diff --git a/src/test/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGatewayServiceExceptionTest.java b/src/test/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGatewayServiceExceptionTest.java index 21059d66b5..631cf0e3a3 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGatewayServiceExceptionTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGatewayServiceExceptionTest.java @@ -1,14 +1,15 @@ package uk.gov.hmcts.ccd.data.definition; import com.google.common.collect.Lists; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.test.util.ReflectionTestUtils; import uk.gov.hmcts.ccd.WireMockBaseTest; import uk.gov.hmcts.ccd.endpoint.exceptions.ServiceException; import jakarta.inject.Inject; import java.util.List; +import static org.junit.jupiter.api.Assertions.assertThrows; public class HttpUIDefinitionGatewayServiceExceptionTest extends WireMockBaseTest { @@ -17,35 +18,44 @@ public class HttpUIDefinitionGatewayServiceExceptionTest extends WireMockBaseTes @Inject private HttpUIDefinitionGateway httpUIDefinitionGateway; - - @Before + @BeforeEach public void setUp() { ReflectionTestUtils.setField(applicationParams, "uiDefinitionHost", "http://localhost:6666"); } - @Test(expected = ServiceException.class) + @Test public void shouldGetServiceExceptionWhenGettingWorkbasketInputDefinitions() { - httpUIDefinitionGateway.getWorkbasketInputFieldsDefinitions(VERSION, "TestAddressBookCase"); + assertThrows(ServiceException.class, () -> { + httpUIDefinitionGateway.getWorkbasketInputFieldsDefinitions(VERSION, "TestAddressBookCase"); + }); } - @Test(expected = ServiceException.class) + @Test public void shouldGetServiceExceptionWhenGettingWorkbasketResults() { - httpUIDefinitionGateway.getWorkBasketResult(VERSION, "TestAddressBookCase"); + assertThrows(ServiceException.class, () -> { + httpUIDefinitionGateway.getWorkBasketResult(VERSION, "TestAddressBookCase"); + }); } - @Test(expected = ServiceException.class) + @Test public void shouldGetServiceExceptionWhenGettingSearchInputs() { - httpUIDefinitionGateway.getWorkbasketInputFieldsDefinitions(VERSION, "TestAddressBookCase"); + assertThrows(ServiceException.class, () -> { + httpUIDefinitionGateway.getWorkbasketInputFieldsDefinitions(VERSION, "TestAddressBookCase"); + }); } - @Test(expected = ServiceException.class) + @Test public void shouldGetServiceExceptionWhenGettingSearchResults() { - httpUIDefinitionGateway.getSearchResult(VERSION, "TestAddressBookCase"); + assertThrows(ServiceException.class, () -> { + httpUIDefinitionGateway.getSearchResult(VERSION, "TestAddressBookCase"); + }); } - @Test(expected = ServiceException.class) + @Test public void shouldGetServiceExceptionWhenGettinBanners() { List jurisdictionIds = Lists.newArrayList("PROBATE", "DIVORCE"); - httpUIDefinitionGateway.getBanners(jurisdictionIds); + assertThrows(ServiceException.class, () -> { + httpUIDefinitionGateway.getBanners(jurisdictionIds); + }); } } diff --git a/src/test/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGatewayTest.java b/src/test/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGatewayTest.java index 48ce5e58c5..e4669416db 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGatewayTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/definition/HttpUIDefinitionGatewayTest.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.data.definition; import com.google.common.collect.Lists; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.junit.jupiter.api.DisplayName; import uk.gov.hmcts.ccd.WireMockBaseTest; import uk.gov.hmcts.ccd.domain.model.definition.BannersResult; diff --git a/src/test/java/uk/gov/hmcts/ccd/data/definition/UIDefinitionRepositoryWireMockNotRunningTest.java b/src/test/java/uk/gov/hmcts/ccd/data/definition/UIDefinitionRepositoryWireMockNotRunningTest.java index a2fb1788ee..314a000977 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/definition/UIDefinitionRepositoryWireMockNotRunningTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/definition/UIDefinitionRepositoryWireMockNotRunningTest.java @@ -1,7 +1,9 @@ package uk.gov.hmcts.ccd.data.definition; -import org.junit.Test; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; + import uk.gov.hmcts.ccd.AbstractBaseIntegrationTest; import uk.gov.hmcts.ccd.endpoint.exceptions.ServiceException; @@ -9,7 +11,7 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertThrows; -@org.junit.Ignore("Fixed by Mario's PR") +@Disabled("Fixed by Mario's PR") public class UIDefinitionRepositoryWireMockNotRunningTest extends AbstractBaseIntegrationTest { @Autowired diff --git a/src/test/java/uk/gov/hmcts/ccd/data/user/UserServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/data/user/UserServiceTest.java index e8a9e89104..86e861f435 100644 --- a/src/test/java/uk/gov/hmcts/ccd/data/user/UserServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/data/user/UserServiceTest.java @@ -2,8 +2,8 @@ import com.google.common.collect.Lists; import java.util.List; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import uk.gov.hmcts.ccd.data.casedetails.JurisdictionMapper; @@ -46,7 +46,7 @@ public class UserServiceTest { private JurisdictionDefinition unknownJurisdictionDefinition; private uk.gov.hmcts.ccd.data.user.UserService userService; - @Before + @BeforeEach public void setup() { MockitoAnnotations.openMocks(this); userService = new uk.gov.hmcts.ccd.data.user.UserService(userRepoMock, caseDefinitionRepoMock, diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/model/casedeletion/TTLTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/model/casedeletion/TTLTest.java index ca3ca5b5c1..422c180667 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/model/casedeletion/TTLTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/model/casedeletion/TTLTest.java @@ -78,7 +78,7 @@ public static Stream ttlSuspendedYesValues() { @DisplayName("isSuspended") @Nested - class IsSuspended { + public class IsSuspended { @ParameterizedTest( name = "isSuspended false: {0}" @@ -102,7 +102,7 @@ void isSuspended_true(String ttlSuspended) { @SuppressWarnings("checkstyle:VariableDeclarationUsageDistance") @DisplayName("Equals") @Nested - class Equals { + public class Equals { @ParameterizedTest( name = "equals Suspended: 'Yes': {0}" @@ -311,7 +311,7 @@ private TTL ttlClone(TTL input) { @DisplayName("hashCode") @Nested - class HashCode { + public class HashCode { @ParameterizedTest( name = "hashCode Suspended: 'Yes': {0}" diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/model/common/HttpErrorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/model/common/HttpErrorTest.java index 4ad825479b..508300168e 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/model/common/HttpErrorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/model/common/HttpErrorTest.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.domain.model.common; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.util.UriUtils; @@ -26,7 +26,7 @@ public class HttpErrorTest { private HttpServletRequest request; - @Before + @BeforeEach public void setUp() { request = mock(HttpServletRequest.class); doReturn(PATH).when(request).getRequestURI(); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/model/search/elasticsearch/ElasticsearchRequestTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/model/search/elasticsearch/ElasticsearchRequestTest.java index 16a7b29f5d..044dbf1b0a 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/model/search/elasticsearch/ElasticsearchRequestTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/model/search/elasticsearch/ElasticsearchRequestTest.java @@ -204,7 +204,7 @@ void shouldSetMetadataFieldsArrayNode() throws Exception { } @Nested - class ToFinalRequestTest { + public class ToFinalRequestTest { @Test void shouldSetSourceFieldsWhenSourceIsProvidedInRequest() throws Exception { diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/model/search/global/GlobalSearchRequestPayloadTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/model/search/global/GlobalSearchRequestPayloadTest.java index 958f628cd5..e2b04af431 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/model/search/global/GlobalSearchRequestPayloadTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/model/search/global/GlobalSearchRequestPayloadTest.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.domain.model.search.global; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import java.util.List; @@ -13,7 +13,7 @@ public class GlobalSearchRequestPayloadTest { private List validFields; - @Before + @BeforeEach public void setUp() { validFields = List.of("ValidEntry", "ValidEntryTwo"); } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/accessprofile/filter/RoleAssignmentsFilteringServiceImplTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/accessprofile/filter/RoleAssignmentsFilteringServiceImplTest.java index a87bb31033..d365f45e63 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/accessprofile/filter/RoleAssignmentsFilteringServiceImplTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/accessprofile/filter/RoleAssignmentsFilteringServiceImplTest.java @@ -8,8 +8,8 @@ import java.util.Arrays; import java.util.List; -import org.junit.Ignore; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; @@ -109,7 +109,7 @@ void shouldFilterBasedOnSecurityClassificationWhenCaseClassificationIsMore() { assertEquals(2, filteredRoleAssignments.size()); } - @Ignore // Test returns 0 neew to investigate + @Disabled // Test returns 0 neew to investigate //@Test void shouldFilterBasedOnSecurityClassificationWhenCaseAccessGroupCaseClassificationIsMore() { RoleAssignments roleAssignments = mockRoleAssignmentsCaseAccessGroupMatching(SecurityClassification.PRIVATE, @@ -130,7 +130,7 @@ void shouldFilterBasedOnSecurityClassificationWhenCaseClassificationIsRestricted assertEquals(1, filteredRoleAssignments.size()); } - @Ignore // Test returns 0 + @Disabled // Test returns 0 //@Test void shouldFilterBasedOnSecurityClassificationWhenCaseAccessGroupCaseClassificationIsRestricted() { RoleAssignments roleAssignments = mockRoleAssignmentsCaseAccessGroupMatching(SecurityClassification.PRIVATE, diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCaseTypeDefinitionOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCaseTypeDefinitionOperationTest.java index 2cdec2fcf8..5e0803fc79 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCaseTypeDefinitionOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/aggregated/AuthorisedGetCaseTypeDefinitionOperationTest.java @@ -264,7 +264,7 @@ void setUp() { Set accessProfiles = createAccessProfiles(USER_ROLES); when(caseDataAccessControl.generateAccessProfilesByCaseTypeId(anyString())) - .thenReturn(accessProfiles);; + .thenReturn(accessProfiles); doReturn(false).when(accessControlService).canAccessCaseTypeWithCriteria(testCaseTypeDefinition1, accessProfiles, diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackInvokerWireMockTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackInvokerWireMockTest.java index 7920a2464f..0c309ee037 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackInvokerWireMockTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackInvokerWireMockTest.java @@ -4,9 +4,9 @@ import com.google.common.collect.Lists; import org.hamcrest.CoreMatchers; import org.hamcrest.MatcherAssert; -import org.junit.Before; +import org.junit.jupiter.api.BeforeEach; import org.junit.FixMethodOrder; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.junit.runners.MethodSorters; import org.springframework.test.context.TestPropertySource; import uk.gov.hmcts.ccd.WireMockBaseTest; @@ -48,13 +48,13 @@ public class CallbackInvokerWireMockTest extends WireMockBaseTest { private final CaseEventDefinition caseEventDefinition = new CaseEventDefinition(); private final CaseTypeDefinition caseTypeDefinition = new CaseTypeDefinition(); - @Before + @BeforeEach public void setUp() throws Exception { // IDAM callbackResponse = aCallbackResponse().build(); caseDetails = newCaseDetails().build(); - String testUrl = "http://localhost:" + wiremockPort + "/test-callbackGrrrr"; + String testUrl = hostUrl + "/test-callbackGrrrr"; caseEventDefinition.setCallBackURLAboutToStartEvent(testUrl); caseEventDefinition.setName("Test"); wireMockServer.resetAll(); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackServiceWireMockTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackServiceWireMockTest.java index bb6ac4cadd..3beff22fa8 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackServiceWireMockTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackServiceWireMockTest.java @@ -6,9 +6,11 @@ import static com.github.tomakehurst.wiremock.client.WireMock.postRequestedFor; import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching; import static com.github.tomakehurst.wiremock.client.WireMock.verify; + import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.Matchers.greaterThan; import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; import static org.junit.jupiter.api.Assertions.assertAll; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -17,15 +19,18 @@ import static org.mockito.ArgumentMatchers.isA; import static org.mockito.BDDMockito.given; import static org.springframework.http.HttpMethod.POST; + import static uk.gov.hmcts.ccd.domain.service.callbacks.CallbackService.CLIENT_CONTEXT; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; + import org.springframework.http.HttpEntity; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.web.client.RestClientException; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; + import uk.gov.hmcts.ccd.appinsights.AppInsights; import uk.gov.hmcts.ccd.ApplicationParams; import uk.gov.hmcts.ccd.data.SecurityUtils; @@ -46,15 +51,18 @@ import jakarta.servlet.http.HttpServletRequest; import com.fasterxml.jackson.databind.ObjectMapper; + import org.hamcrest.Matchers; import org.json.JSONObject; -import org.junit.Test; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import org.mockito.Mockito; import org.skyscreamer.jsonassert.JSONAssert; import org.skyscreamer.jsonassert.JSONCompareMode; import org.springframework.http.ResponseEntity; import org.springframework.test.context.TestPropertySource; import org.springframework.web.client.RestTemplate; + import uk.gov.hmcts.ccd.WireMockBaseTest; import uk.gov.hmcts.ccd.util.ClientContextUtil; @@ -68,7 +76,7 @@ public class CallbackServiceWireMockTest extends WireMockBaseTest { public static final CallbackType TEST_CALLBACK_ABOUT_TO_START = CallbackType.ABOUT_TO_START; public static final CallbackType TEST_CALLBACK_ABOUT_TO_SUBMIT = CallbackType.ABOUT_TO_SUBMIT; public static final CallbackType TEST_CALLBACK_SUBMITTED = CallbackType.SUBMITTED; - public static final JSONObject requestJson1 = new JSONObject(""" + public static final String requestJson1 = """ { "user_task": { "task_data": { @@ -77,8 +85,8 @@ public class CallbackServiceWireMockTest extends WireMockBaseTest { } } } - """); - public static final JSONObject responseJson1 = new JSONObject(""" + """; + public static final String responseJson1 = """ { "user_task": { "task_data": { @@ -88,8 +96,8 @@ public class CallbackServiceWireMockTest extends WireMockBaseTest { }, "complete_task": "false" } - """); - public static final JSONObject responseJson1Merged = new JSONObject(""" + """; + public static final String responseJson1Merged = """ { "user_task": { "task_data": { @@ -99,8 +107,8 @@ public class CallbackServiceWireMockTest extends WireMockBaseTest { }, "complete_task": "false" } - """); - public static final JSONObject requestJson2 = new JSONObject(""" + """; + public static final String requestJson2 = """ { "user_task": { "task_data": { @@ -110,8 +118,8 @@ public class CallbackServiceWireMockTest extends WireMockBaseTest { }, "complete_task": "false" } - """); - public static final JSONObject responseJson2 = new JSONObject(""" + """; + public static final String responseJson2 = """ { "user_task": { "task_data": { @@ -122,8 +130,8 @@ public class CallbackServiceWireMockTest extends WireMockBaseTest { "new_field": "check1", "complete_task": "false" } - """); - public static final JSONObject responseJson2Merged = new JSONObject(""" + """; + public static final String responseJson2Merged = """ { "user_task": { "task_data": { @@ -134,8 +142,8 @@ public class CallbackServiceWireMockTest extends WireMockBaseTest { "new_field": "check1", "complete_task": "false" } - """); - public static final JSONObject requestJson3 = new JSONObject(""" + """; + public static final String requestJson3 = """ { "user_task": { "task_data": { @@ -147,8 +155,8 @@ public class CallbackServiceWireMockTest extends WireMockBaseTest { "new_field2": "check2", "complete_task": "false" } - """); - public static final JSONObject responseJson3 = new JSONObject(""" + """; + public static final String responseJson3 = """ { "user_task": { "task_data": { @@ -159,8 +167,8 @@ public class CallbackServiceWireMockTest extends WireMockBaseTest { "new_field2": "check2ed", "complete_task": "true" } - """); - public static final JSONObject responseJson3Merged = new JSONObject(""" + """; + public static final String responseJson3Merged = """ { "user_task": { "task_data": { @@ -172,11 +180,11 @@ public class CallbackServiceWireMockTest extends WireMockBaseTest { "new_field2": "check2ed", "complete_task": "true" } - """); + """; @Test public void happyPathWithNoErrorsOrWarnings() throws Exception { - final String testUrl = "http://localhost:" + wiremockPort + "/test-callback"; + final String testUrl = hostUrl + "/test-callback"; final CaseDetails caseDetails = new CaseDetails(); caseDetails.setState("test state"); @@ -204,9 +212,9 @@ public void passThruCustomHeadersLikeClientContext() throws Exception { request = new MockHttpServletRequest(); RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(request)); - final String testUrl1 = "http://localhost:" + wiremockPort + "/test-callback101"; - final String testUrl2 = "http://localhost:" + wiremockPort + "/test-callback102"; - final String testUrl3 = "http://localhost:" + wiremockPort + "/test-callback103"; + final String testUrl1 = hostUrl + "/test-callback101"; + final String testUrl2 = hostUrl + "/test-callback102"; + final String testUrl3 = hostUrl + "/test-callback103"; final CaseDetails caseDetails = new CaseDetails(); caseDetails.setState("test state"); @@ -218,43 +226,49 @@ public void passThruCustomHeadersLikeClientContext() throws Exception { final CallbackResponse callbackResponse = new CallbackResponse(); callbackResponse.setData(caseDetails.getData()); - String clientContextValue1 = ClientContextUtil.encodeToBase64(requestJson1.toString()); + String clientContextValue1 = ClientContextUtil.encodeToBase64(new JSONObject(requestJson1).toString()); stubFor(post(urlMatching("/test-callback101.*")) .willReturn(okJson(mapper.writeValueAsString(callbackResponse)) .withStatus(200) - .withHeader(CLIENT_CONTEXT, ClientContextUtil.encodeToBase64(responseJson1.toString())))); + .withHeader(CLIENT_CONTEXT, ClientContextUtil.encodeToBase64( + new JSONObject(responseJson1).toString() + )))); - String clientContextValue2 = ClientContextUtil.encodeToBase64(requestJson2.toString()); + String clientContextValue2 = ClientContextUtil.encodeToBase64(new JSONObject(requestJson2).toString()); stubFor(post(urlMatching("/test-callback102.*")) .willReturn(okJson(mapper.writeValueAsString(callbackResponse)) .withStatus(200) - .withHeader(CLIENT_CONTEXT, ClientContextUtil.encodeToBase64(responseJson2.toString())))); + .withHeader(CLIENT_CONTEXT, ClientContextUtil.encodeToBase64( + new JSONObject(responseJson2).toString() + )))); stubFor(post(urlMatching("/test-callback103.*")) .willReturn(okJson(mapper.writeValueAsString(callbackResponse)) .withStatus(200) - .withHeader(CLIENT_CONTEXT, ClientContextUtil.encodeToBase64((responseJson3.toString()))))); + .withHeader(CLIENT_CONTEXT, ClientContextUtil.encodeToBase64(( + new JSONObject(responseJson3).toString()) + )))); final Optional result1 = callbackService.send(testUrl1, TEST_CALLBACK_ABOUT_TO_START, caseEventDefinition, null, caseDetails, false); final CallbackResponse response1 = result1.orElseThrow(() -> new AssertionError("Missing result")); - assertOnRequestAttribute(responseJson1Merged, CLIENT_CONTEXT); + assertOnRequestAttribute(new JSONObject(responseJson1Merged), CLIENT_CONTEXT); final Optional result2 = callbackService.send(testUrl2, TEST_CALLBACK_ABOUT_TO_SUBMIT, caseEventDefinition, null, caseDetails, false); final CallbackResponse response2 = result2.orElseThrow(() -> new AssertionError("Missing result")); - assertOnRequestAttribute(responseJson2Merged, CLIENT_CONTEXT); + assertOnRequestAttribute(new JSONObject(responseJson2Merged), CLIENT_CONTEXT); final Optional result3 = callbackService.send(testUrl3, TEST_CALLBACK_SUBMITTED, caseEventDefinition, null, caseDetails, false); final CallbackResponse response3 = result3.orElseThrow(() -> new AssertionError("Missing result")); - assertOnRequestAttribute(responseJson3Merged, CLIENT_CONTEXT); + assertOnRequestAttribute(new JSONObject(responseJson3Merged), CLIENT_CONTEXT); } - @org.junit.Ignore // TODO investigating socket issues in Azure + @Disabled // TODO investigating socket issues in Azure @Test public void shouldRetryIfCallbackRespondsLate() throws Exception { - final String testUrl = "http://localhost:" + wiremockPort + "/test-callback"; + final String testUrl = hostUrl + "/test-callback"; final CaseDetails caseDetails = new CaseDetails(); caseDetails.setState("test state"); @@ -280,7 +294,7 @@ public void shouldRetryIfCallbackRespondsLate() throws Exception { @Test public void failurePathWithErrors() throws Exception { - final String testUrl = "http://localhost:" + wiremockPort + "/test-callback"; + final String testUrl = hostUrl + "/test-callback"; final CaseDetails caseDetails = new CaseDetails(); caseDetails.setState("test state"); @@ -302,20 +316,21 @@ public void failurePathWithErrors() throws Exception { assertThat(response.getErrors(), Matchers.contains("Test message")); } - @Test(expected = CallbackException.class) + @Test public void notFoundFailurePath() { final String testUrl = "http://localhost"; final CaseDetails caseDetails = new CaseDetails(); final CaseEventDefinition caseEventDefinition = new CaseEventDefinition(); caseEventDefinition.setId("TEST-EVENT"); - - callbackService.send(testUrl, TEST_CALLBACK_ABOUT_TO_START, caseEventDefinition, null, - caseDetails, false); + assertThrows(CallbackException.class, () -> + callbackService.send(testUrl, TEST_CALLBACK_ABOUT_TO_START, caseEventDefinition, null, + caseDetails, false) + ); } - @Test(expected = CallbackException.class) + @Test public void serverError() throws Exception { - final String testUrl = "http://localhost:" + wiremockPort + "/test-callback"; + final String testUrl = hostUrl + "/test-callback"; final CallbackResponse callbackResponse = new CallbackResponse(); final CaseDetails caseDetails = new CaseDetails(); final CaseEventDefinition caseEventDefinition = new CaseEventDefinition(); @@ -324,13 +339,15 @@ public void serverError() throws Exception { stubFor(post(urlMatching("/test-callback.*")) .willReturn(okJson(mapper.writeValueAsString(callbackResponse)).withStatus(500))); - callbackService.send(testUrl, TEST_CALLBACK_ABOUT_TO_START, caseEventDefinition, null, - caseDetails, false); + assertThrows(CallbackException.class, () -> + callbackService.send(testUrl, TEST_CALLBACK_ABOUT_TO_START, caseEventDefinition, null, + caseDetails, false) + ); } @Test public void retryOnServerError() throws Exception { - final String testUrl = "http://localhost:" + wiremockPort + "/test-callbackGrrrr"; + final String testUrl = hostUrl + "/test-callbackGrrrr"; final CallbackResponse callbackResponse = new CallbackResponse(); final CaseDetails caseDetails = new CaseDetails(); final CaseEventDefinition caseEventDefinition = new CaseEventDefinition(); @@ -351,9 +368,9 @@ public void retryOnServerError() throws Exception { verify(exactly(3), postRequestedFor(urlMatching("/test-callbackGrrrr.*"))); } - @Test(expected = CallbackException.class) + @Test public void authorisationError() throws Exception { - final String testUrl = "http://localhost:" + wiremockPort + "/test-callback"; + final String testUrl = hostUrl + "/test-callback"; final CallbackResponse callbackResponse = new CallbackResponse(); final CaseDetails caseDetails = new CaseDetails(); final CaseEventDefinition caseEventDefinition = new CaseEventDefinition(); @@ -362,8 +379,10 @@ public void authorisationError() throws Exception { stubFor(post(urlMatching("/test-callback.*")) .willReturn(okJson(mapper.writeValueAsString(callbackResponse)).withStatus(401))); - callbackService.send(testUrl, TEST_CALLBACK_ABOUT_TO_START, caseEventDefinition, null, - caseDetails, false); + assertThrows(CallbackException.class, () -> + callbackService.send(testUrl, TEST_CALLBACK_ABOUT_TO_START, caseEventDefinition, null, + caseDetails, false) + ); } @Test @@ -372,7 +391,7 @@ public void validateCallbackErrorsAndWarningsHappyPath() { callbackService.validateCallbackErrorsAndWarnings(callbackResponse, false); } - @Test(expected = ApiException.class) + @Test public void validateCallbackErrorsAndWarningsWithWarnings() { final String testWarning1 = "WARNING 1"; final String testWarning2 = "WARNING 2"; @@ -383,15 +402,20 @@ public void validateCallbackErrorsAndWarningsWithWarnings() { warnings.add(testWarning2); callbackResponse.setWarnings(warnings); - callbackService.validateCallbackErrorsAndWarnings(callbackResponse, false); + assertThrows(ApiException.class, () -> + callbackService.validateCallbackErrorsAndWarnings(callbackResponse, false) + ); + } - @Test(expected = ApiException.class) + @Test public void validateCallbackErrorsAndWarningsWithErrorsAndIgnore() { final CallbackResponse callbackResponse = new CallbackResponse(); callbackResponse.setErrors(Collections.singletonList("an error")); callbackResponse.setWarnings(Collections.singletonList("a warning")); - callbackService.validateCallbackErrorsAndWarnings(callbackResponse, true); + assertThrows(ApiException.class, () -> + callbackService.validateCallbackErrorsAndWarnings(callbackResponse, true) + ); } @Test @@ -406,7 +430,7 @@ public void validateCallbackErrorsAndWarningsWithWarningsAndIgnore() { @Test public void shouldGetBodyInGeneric() throws Exception { - final String testUrl = "http://localhost:" + wiremockPort + "/test-callback-submitted"; + final String testUrl = hostUrl + "/test-callback-submitted"; final CallbackResponse callbackResponse = new CallbackResponse(); final CaseDetails caseDetails = new CaseDetails(); final CaseEventDefinition caseEventDefinition = new CaseEventDefinition(); @@ -430,7 +454,7 @@ public void shouldGetBodyInGeneric() throws Exception { @Test public void shouldRetryOnError() throws Exception { - final String testUrl = "http://localhost:" + wiremockPort + "/test-callback-invaliddd"; + final String testUrl = hostUrl + "/test-callback-invaliddd"; final CallbackResponse callbackResponse = new CallbackResponse(); final CaseDetails caseDetails = new CaseDetails(); final CaseEventDefinition caseEventDefinition = new CaseEventDefinition(); @@ -451,7 +475,7 @@ public void shouldRetryOnError() throws Exception { verify(exactly(3), postRequestedFor(urlMatching("/test-callback-invaliddd.*"))); } - @Test(expected = CallbackException.class) + @Test public void shouldThrowCallbackException_whenSendInvalidUrlGetGenericBody() { final String testUrl = "http://localhost/invalid-test-callback"; final RestTemplate restTemplate = Mockito.mock(RestTemplate.class); @@ -468,14 +492,11 @@ public void shouldThrowCallbackException_whenSendInvalidUrlGetGenericBody() { final CaseEventDefinition caseEventDefinition = new CaseEventDefinition(); caseEventDefinition.setId("TEST-EVENT"); - try { - underTest.send(testUrl, TEST_CALLBACK_ABOUT_TO_START, caseEventDefinition, null, caseDetails, - String.class); - } catch (CallbackException ex) { - assertThat(ex.getMessage(), is("Callback to service has been unsuccessful for event " - + caseEventDefinition.getName())); - throw ex; - } + CallbackException ex = assertThrows(CallbackException.class, () -> + underTest.send(testUrl, TEST_CALLBACK_ABOUT_TO_START, + caseEventDefinition, null, caseDetails, String.class)); + assertThat(ex.getMessage(), is("Callback to service has been unsuccessful for event " + + caseEventDefinition.getName())); } private void assertOnRequestAttribute(JSONObject jsonObject, String customContext) { diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/casedataaccesscontrol/DefaultCaseDataAccessControlTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/casedataaccesscontrol/DefaultCaseDataAccessControlTest.java index 43bd04279e..8f7b6831e8 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/casedataaccesscontrol/DefaultCaseDataAccessControlTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/casedataaccesscontrol/DefaultCaseDataAccessControlTest.java @@ -1158,7 +1158,7 @@ void shouldNotGenerateAccessProfilesWithInvalidRoleAssignmentsForRestrictedCases @Nested - class GenerateAccessMetadata { + public class GenerateAccessMetadata { private CaseDetails caseDetails; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/AccessControlServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/AccessControlServiceTest.java index 854360d4e7..91822656f1 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/AccessControlServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/AccessControlServiceTest.java @@ -10,7 +10,7 @@ import com.fasterxml.jackson.databind.node.MissingNode; import com.fasterxml.jackson.databind.node.ObjectNode; import com.google.common.collect.Sets; -import org.junit.After; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; @@ -4699,7 +4699,7 @@ private Logger setupLogging() { return logger; } - @After + @AfterEach public void tearDown() { if (listAppender != null) { listAppender.stop(); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/UIDServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/UIDServiceTest.java index ca4b374e06..037271ddb4 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/common/UIDServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/common/UIDServiceTest.java @@ -1,6 +1,6 @@ package uk.gov.hmcts.ccd.domain.service.common; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/DocumentIdValidationServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/DocumentIdValidationServiceTest.java index f218e51332..a665bc5f99 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/DocumentIdValidationServiceTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/getcasedocument/DocumentIdValidationServiceTest.java @@ -1,6 +1,6 @@ package uk.gov.hmcts.ccd.domain.service.getcasedocument; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperationIT.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperationIT.java index 0283920e35..3e3b741df4 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperationIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperationIT.java @@ -4,9 +4,9 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.github.tomakehurst.wiremock.client.WireMock; import com.github.tomakehurst.wiremock.stubbing.ServeEvent; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; import org.mockito.ArgumentMatchers; import org.mockito.Mock; @@ -117,7 +117,7 @@ public class AuditCaseRemoteOperationIT extends WireMockBaseTest { private static final ZonedDateTime LOG_TIMESTAMP = ZonedDateTime.of(LocalDateTime.now(fixedClock), ZoneOffset.UTC); - @Before + @BeforeEach public void setUp() throws IOException { MockitoAnnotations.openMocks(this); @@ -129,7 +129,7 @@ public void setUp() throws IOException { auditCaseRemoteConfiguration, auditCaseRemoteOperation); } - @After + @AfterEach public void after() throws IOException { WireMock.reset(); } @@ -212,7 +212,7 @@ public void shouldMakeAuditRequestWhenPerformingCaseAction() throws JsonProcessi .withRequestBody(equalToJson(EXPECTED_CASE_ACTION_LOG_JSON))); } - @Test(expected = Test.None.class) + @Test public void shouldNotThrowExceptionInAuditServiceIfLauIsDown() throws JsonProcessingException, InterruptedException { AuditContext auditContext = AuditContext.auditContextWith() diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/message/additionaldata/PublishableFieldTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/message/additionaldata/PublishableFieldTest.java index 31ac5d8427..9d867f2b3a 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/message/additionaldata/PublishableFieldTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/message/additionaldata/PublishableFieldTest.java @@ -36,7 +36,7 @@ void setUp() { } @Nested - class ConstructorTest { + public class ConstructorTest { private CaseTypeDefinition caseTypeDefinition; private CaseEventFieldDefinition caseEventFieldDefinition; @@ -239,7 +239,7 @@ private FieldTypeDefinition textField() { } @Nested - class IsNestedTest { + public class IsNestedTest { @Test void shouldReturnTrueForNestedField() { @@ -261,7 +261,7 @@ void shouldReturnFalseForTopLevelField() { } @Nested - class GetFieldIdTest { + public class GetFieldIdTest { @Test void shouldGetFieldIdForFieldWithNestedPath() { @@ -284,7 +284,7 @@ void shouldGetFieldIdForFieldWithNonNestedPath() { } @Nested - class SplitPathTest { + public class SplitPathTest { @Test void shouldSplitPathForFieldWithNestedPath() { @@ -314,7 +314,7 @@ void shouldSplitPathForFieldWithNonNestedPath() { } @Nested - class IsSubfieldOfTest { + public class IsSubfieldOfTest { private PublishableField comparisonField; @@ -375,7 +375,7 @@ void shouldReturnFalseWhenFieldIdsAreSimilar() { } @Nested - class FilterDirectChildrenFromTest { + public class FilterDirectChildrenFromTest { @Test void shouldOnlyReturnDirectChildren() { diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeFormatParserTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeFormatParserTest.java index 74964fcc49..759f07a2f5 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeFormatParserTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/processor/date/DateTimeFormatParserTest.java @@ -97,7 +97,7 @@ void shouldConvertIso8601ToDateTimeFormat2() { final String result = dateTimeFormatParser.convertIso8601ToDateTime(dateTimeFormat, value); assertAll( - () -> assertThat(result, is("20 Oct 00 12:30 PM")) + () -> assertThat(result, is("20 Oct 00 12:30 pm")) ); } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/stdapi/DocumentsOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/stdapi/DocumentsOperationTest.java index 7b4ccfa001..3eec54e93d 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/stdapi/DocumentsOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/stdapi/DocumentsOperationTest.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.domain.service.stdapi; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.Mockito; import org.springframework.test.util.ReflectionTestUtils; import uk.gov.hmcts.ccd.WireMockBaseTest; @@ -23,6 +23,7 @@ import static com.github.tomakehurst.wiremock.client.WireMock.post; import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThrows; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.reset; @@ -42,7 +43,7 @@ public class DocumentsOperationTest extends WireMockBaseTest { public static final String TEST_CASE_REFERENCE = "1504259907353537"; public static final String TEST_URL = "/test-document-callback"; - @Before + @BeforeEach public void setUp() { ReflectionTestUtils.setField(documentsOperation, "securityUtils", securityUtils); @@ -56,7 +57,7 @@ public void setUp() { ReflectionTestUtils.setField(documentsOperation, "caseDetailsRepository", mockCaseDetailsRepository); final CaseTypeDefinition caseTypeDefinition = new CaseTypeDefinition(); - caseTypeDefinition.setPrintableDocumentsUrl("http://localhost:" + wiremockPort + TEST_URL); + caseTypeDefinition.setPrintableDocumentsUrl(hostUrl + TEST_URL); final CaseTypeService mockCaseTypeService = Mockito.mock(CaseTypeService.class); Mockito.when(mockCaseTypeService.getCaseTypeForJurisdiction(TEST_CASE_TYPE, TEST_JURISDICTION)) .thenReturn(caseTypeDefinition); @@ -70,11 +71,12 @@ private void setupUIDService() { when(uidService.checkSum(anyString(), anyBoolean())).thenCallRealMethod(); } - @Test(expected = BadRequestException.class) + @Test public void shouldThrowBadRequestExceptionIfCaseReferenceInvalid() { final String testCaseReference = "Invalid"; - - documentsOperation.getPrintableDocumentsForCase(testCaseReference); + assertThrows(BadRequestException.class, () -> + documentsOperation.getPrintableDocumentsForCase(testCaseReference) + ); } @Test diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/CaseDataValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/CaseDataValidatorTest.java index 858a20197c..35b725f297 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/CaseDataValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/CaseDataValidatorTest.java @@ -8,8 +8,8 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.type.TypeFactory; import org.hamcrest.MatcherAssert; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.mockito.Mock; import org.slf4j.LoggerFactory; import uk.gov.hmcts.ccd.TestFixtures; @@ -52,7 +52,7 @@ public class CaseDataValidatorTest extends WireMockBaseTest { @Mock private TextCaseReferenceCaseLinkValidator textCaseReferenceCaseLinkValidator; - @BeforeClass + @BeforeAll public static void setUpClass() throws IOException { caseFields = TestFixtures.getCaseFieldsFromJson(CASE_FIELD_JSON); dynamicCaseFields = TestFixtures.getCaseFieldsFromJson(CASE_FIELD_DYNAMIC_JSON); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/CollectionValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/CollectionValidatorTest.java index 53d0fbb7dd..844376df42 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/CollectionValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/CollectionValidatorTest.java @@ -13,8 +13,8 @@ import static uk.gov.hmcts.ccd.domain.model.definition.FieldTypeDefinition.COLLECTION; import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import uk.gov.hmcts.ccd.domain.model.definition.CaseFieldDefinition; import uk.gov.hmcts.ccd.domain.model.definition.FieldTypeDefinition; @@ -27,7 +27,7 @@ public class CollectionValidatorTest { private CollectionValidator validator; private CaseFieldDefinition caseFieldDefinition; - @Before + @BeforeEach public void setUp() throws Exception { validator = new CollectionValidator(); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/DocumentValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/DocumentValidatorTest.java index 6f6fda0c9b..3c050fc0d9 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/DocumentValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/DocumentValidatorTest.java @@ -3,8 +3,8 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; import com.fasterxml.jackson.databind.node.TextNode; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import uk.gov.hmcts.ccd.ApplicationParams; import uk.gov.hmcts.ccd.data.definition.CaseDefinitionRepository; import uk.gov.hmcts.ccd.domain.model.definition.CaseFieldDefinition; @@ -101,7 +101,7 @@ private DocumentValidator buildDocumentValidator(final String urlBase) { return new DocumentValidator(ap,dateTimeValidator, caseDefinitionRepository); } - @Before + @BeforeEach public void setUp() throws Exception { final FieldTypeDefinition documentFieldTypeDefinition = mock(FieldTypeDefinition.class); final FieldTypeDefinition dateTimeFieldTypeDefinition = mock(FieldTypeDefinition.class); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/CaseSanitiserTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/CaseSanitiserTest.java index 79d4c66f2e..6096f6292f 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/CaseSanitiserTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/CaseSanitiserTest.java @@ -2,8 +2,8 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.JsonNodeFactory; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import uk.gov.hmcts.ccd.domain.model.definition.CaseFieldDefinition; import uk.gov.hmcts.ccd.domain.model.definition.CaseTypeDefinition; import uk.gov.hmcts.ccd.domain.model.definition.FieldTypeDefinition; @@ -46,7 +46,7 @@ public class CaseSanitiserTest { private CaseSanitiser caseSanitiser; private Sanitiser simpleSanitiser; - @Before + @BeforeEach public void setUp() throws Exception { simpleSanitiser = mock(Sanitiser.class); doReturn(TYPE_SIMPLE).when(simpleSanitiser).getType(); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/CollectionSanitiserTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/CollectionSanitiserTest.java index 511d4b757d..211f432f69 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/CollectionSanitiserTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/CollectionSanitiserTest.java @@ -18,8 +18,8 @@ import com.fasterxml.jackson.databind.node.ArrayNode; import com.fasterxml.jackson.databind.node.JsonNodeFactory; import com.fasterxml.jackson.databind.node.ObjectNode; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import uk.gov.hmcts.ccd.domain.model.definition.FieldTypeDefinition; public class CollectionSanitiserTest { @@ -48,7 +48,7 @@ public class CollectionSanitiserTest { private CollectionSanitiser collectionSanitiser; - @Before + @BeforeEach public void setUp() throws Exception { type1Sanitiser = mock(Sanitiser.class); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/ComplexSanitiserTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/ComplexSanitiserTest.java index f68b3d15c3..eacb5dd897 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/ComplexSanitiserTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/ComplexSanitiserTest.java @@ -16,8 +16,8 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.JsonNodeFactory; import com.fasterxml.jackson.databind.node.ObjectNode; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import uk.gov.hmcts.ccd.domain.model.definition.CaseFieldDefinition; import uk.gov.hmcts.ccd.domain.model.definition.FieldTypeDefinition; @@ -60,7 +60,7 @@ public class ComplexSanitiserTest { private ComplexSanitiser complexSanitiser; - @Before + @BeforeEach public void setUp() { type1Sanitiser = mock(Sanitiser.class); doReturn(TYPE_1).when(type1Sanitiser).getType(); diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/client/DocumentManagementRestClientTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/client/DocumentManagementRestClientTest.java index c6018f310a..022762883c 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/client/DocumentManagementRestClientTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/client/DocumentManagementRestClientTest.java @@ -5,14 +5,14 @@ import com.fasterxml.jackson.databind.node.JsonNodeFactory; import com.fasterxml.jackson.databind.node.ObjectNode; import com.xebialabs.restito.semantics.Action; -import com.xebialabs.restito.support.junit.NeedsServer; +import com.xebialabs.restito.server.StubServer; import org.glassfish.grizzly.http.Method; import org.glassfish.grizzly.http.util.HttpStatus; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.converter.HttpMessageConverter; @@ -44,9 +44,10 @@ import static java.lang.String.format; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThrows; import static org.mockito.Mockito.when; -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class DocumentManagementRestClientTest extends StubServerDependent { private static final JsonNodeFactory JSON_FACTORY = new JsonNodeFactory(false); @@ -86,8 +87,9 @@ public class DocumentManagementRestClientTest extends StubServerDependent { DOCUMENT_VALUE_SANITISED.put("document_filename", FILENAME); } - @Before + @BeforeEach public void setUp() { + server = new StubServer().run(); HttpHeaders headers = new HttpHeaders(); headers.add("Authorization", BEARER_TEST_JWT); headers.add("ServiceAuthorization", SERVICE_JWT); @@ -110,7 +112,6 @@ public void setUp() { } @Test - @NeedsServer public void shouldGetDocument() throws Exception { // Document retrieval needs to work, regardless of the Content-Type header sent in Document Management's // response (it's different from the expected type of "application/json"). Therefore, the test mimics the server @@ -134,8 +135,7 @@ public void shouldGetDocument() throws Exception { withHeader("Content-Type", MediaType.APPLICATION_JSON_VALUE)); } - @Test(expected = ApiException.class) - @NeedsServer + @Test public void shouldFailToSanitizeIfUnauthorized() throws Exception { whenHttp(server) @@ -145,12 +145,10 @@ public void shouldFailToSanitizeIfUnauthorized() throws Exception { withHeader("Content-Type", MediaType.APPLICATION_JSON_VALUE)) .then(unauthorized()); - subject.getDocument(DOCUMENT_FIELD_TYPE, formatURL(DOCUMENT_URL)); - + assertThrows(ApiException.class, () -> subject.getDocument(DOCUMENT_FIELD_TYPE, formatURL(DOCUMENT_URL))); } - @Test(expected = ApiException.class) - @NeedsServer + @Test public void shouldFailToSanitizeIfServiceUnavailable() throws Exception { whenHttp(server) @@ -163,11 +161,10 @@ public void shouldFailToSanitizeIfServiceUnavailable() throws Exception { return r; }); - subject.getDocument(DOCUMENT_FIELD_TYPE, formatURL(DOCUMENT_URL)); + assertThrows(ApiException.class, () -> subject.getDocument(DOCUMENT_FIELD_TYPE, formatURL(DOCUMENT_URL))); } - @Test(expected = ApiException.class) - @NeedsServer + @Test public void shouldFailToSanitizeIfBadGateway() throws Exception { whenHttp(server) @@ -180,11 +177,10 @@ public void shouldFailToSanitizeIfBadGateway() throws Exception { return r; }); - subject.getDocument(DOCUMENT_FIELD_TYPE, formatURL(DOCUMENT_URL)); + assertThrows(ApiException.class, () -> subject.getDocument(DOCUMENT_FIELD_TYPE, formatURL(DOCUMENT_URL))); } - @Test(expected = ApiException.class) - @NeedsServer + @Test public void shouldFailToSanitizeIfInternalServerError() throws Exception { whenHttp(server) @@ -196,8 +192,7 @@ public void shouldFailToSanitizeIfInternalServerError() throws Exception { r.setStatus(HttpStatus.INTERNAL_SERVER_ERROR_500); return r; }); - - subject.getDocument(DOCUMENT_FIELD_TYPE, formatURL(DOCUMENT_URL)); + assertThrows(ApiException.class, () -> subject.getDocument(DOCUMENT_FIELD_TYPE, formatURL(DOCUMENT_URL))); } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/client/StubServerDependent.java b/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/client/StubServerDependent.java index a99a809b3d..811efbaff0 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/client/StubServerDependent.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/types/sanitiser/client/StubServerDependent.java @@ -2,8 +2,8 @@ import com.xebialabs.restito.server.StubServer; import com.xebialabs.restito.support.junit.ServerDependencyRule; -import org.junit.After; -import org.junit.Before; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; import org.junit.Rule; public abstract class StubServerDependent { @@ -12,14 +12,14 @@ public abstract class StubServerDependent { @Rule public ServerDependencyRule serverDependency = new ServerDependencyRule(); - @Before + @BeforeEach public void startServer() { if (serverDependency.isServerDependent()) { server = new StubServer().run(); } } - @After + @AfterEach public void stopServer() { if (server != null) { server.stop(); diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/exceptions/RestExceptionHandlerTest.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/exceptions/RestExceptionHandlerTest.java index 9b8e2abf5b..03e9ebd7c4 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/exceptions/RestExceptionHandlerTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/exceptions/RestExceptionHandlerTest.java @@ -4,19 +4,21 @@ import ch.qos.logback.classic.Logger; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.read.ListAppender; + import com.google.common.collect.Lists; import com.microsoft.applicationinsights.telemetry.SeverityLevel; + import feign.FeignException; import feign.Request; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; import org.mockito.Captor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.slf4j.LoggerFactory; -import org.springframework.cloud.contract.wiremock.AutoConfigureWireMock; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.test.annotation.DirtiesContext; @@ -27,6 +29,7 @@ import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.HttpServerErrorException; import org.springframework.web.client.ResourceAccessException; + import uk.gov.hmcts.ccd.appinsights.AppInsights; import uk.gov.hmcts.ccd.domain.model.common.HttpError; import uk.gov.hmcts.ccd.domain.model.std.CaseFieldValidationError; @@ -36,6 +39,7 @@ import jakarta.servlet.http.HttpServletRequest; import jakarta.validation.ConstraintViolationException; + import java.io.Serializable; import java.net.SocketTimeoutException; import java.net.UnknownHostException; @@ -62,9 +66,10 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import uk.gov.hmcts.ccd.WireMockBaseTest; + @DirtiesContext // required for Jenkins agent -@AutoConfigureWireMock(port = 0) -public class RestExceptionHandlerTest { +public class RestExceptionHandlerTest extends WireMockBaseTest { // url to trigger chosen test controller private static final String TEST_URL = "/caseworkers/123/profile"; @@ -88,7 +93,7 @@ public class RestExceptionHandlerTest { @Captor private ArgumentCaptor> customPropertiesCaptor; - @Before + @BeforeEach public void setUp() { MockitoAnnotations.openMocks(this); @@ -111,7 +116,7 @@ public void setUp() { .build(); } - @After + @AfterEach public void tearDown() { listAppender.stop(); logger.detachAppender(listAppender); diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackEndpointIT.java index ef4e3e4b5d..abae7ce5c6 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackEndpointIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackEndpointIT.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.endpoint.std; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.MockitoAnnotations; import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.web.servlet.MockMvc; @@ -39,7 +39,7 @@ public class CallbackEndpointIT extends WireMockBaseTest { @MockitoSpyBean private AuditRepository auditRepository; - @Before + @BeforeEach public void setUp() { MockitoAnnotations.openMocks(this); MockUtils.setSecurityAuthorities(authentication, MockUtils.ROLE_CASEWORKER_PUBLIC); diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackTest.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackTest.java index 09c4f108a8..2df374ba1b 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackTest.java @@ -4,8 +4,8 @@ import com.fasterxml.jackson.databind.JsonNode; import com.github.tomakehurst.wiremock.client.WireMock; import org.hamcrest.Matchers; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.MockitoAnnotations; import org.skyscreamer.jsonassert.JSONAssert; import org.skyscreamer.jsonassert.JSONCompareMode; @@ -190,7 +190,7 @@ public class CallbackTest extends WireMockBaseTest { public CallbackTest() throws IOException { } - @Before + @BeforeEach public void setUp() throws IOException { DATA = mapper.readTree(DATA_JSON_STRING); @@ -209,7 +209,7 @@ public void setUp() throws IOException { + " \"AddressLine2\": \"Address Line 12\"\n" + " },\n" + " \"D8Document\":{" - + " \"document_url\": \"http://localhost:" + getPort() + + " \"document_url\": \"" + hostUrl + "/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d0\",\n" + " \"upload_timestamp\": \"" + UPLOAD_TIMESTAMP + "\"" + " }\n" @@ -222,7 +222,7 @@ public void setUp() throws IOException { + " \"AddressLine2\": \"Address Line 12\"\n" + " },\n" + " \"D8Document\":{" - + " \"document_url\": \"http://localhost:" + getPort() + + " \"document_url\": \"" + hostUrl + "/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d0\",\n" + " \"document_binary_url\": \"http://localhost:[port]/documents/" + "05e7cd7e-7041-4d8a-826a-7bb49dfd83d0/binary\",\n" @@ -239,7 +239,7 @@ public void setUp() throws IOException { + " \"AddressLine2\": \"Address Line 12\"\n" + " },\n" + " \"D8Document\":{" - + " \"document_url\": \"http://localhost:" + getPort() + + " \"document_url\": \"" + hostUrl + "/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d0\",\n" + " \"document_binary_url\": \"http://localhost:[port]/documents/" + "05e7cd7e-7041-4d8a-826a-7bb49dfd83d0/binary\",\n" @@ -255,7 +255,7 @@ public void setUp() throws IOException { + " \"AddressLine2\": \"Address Line 12\"\n" + " },\n" + " \"D8Document\":{" - + " \"document_url\": \"http://localhost:" + getPort() + + " \"document_url\": \"" + hostUrl + "/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d1\",\n" + " \"upload_timestamp\": \"" + UPLOAD_TIMESTAMP + "\"" + " }\n" diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseAccessEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseAccessEndpointIT.java index 9f0e1afee4..baecef28f5 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseAccessEndpointIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseAccessEndpointIT.java @@ -4,8 +4,8 @@ import com.github.tomakehurst.wiremock.client.WireMock; import com.google.common.collect.Lists; import org.hamcrest.MatcherAssert; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; import org.springframework.http.MediaType; import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; @@ -57,7 +57,7 @@ public class CaseAccessEndpointIT extends WireMockBaseTest { @MockitoSpyBean private AuditRepository auditRepository; - @Before + @BeforeEach public void setUp() throws IOException { super.initMock(); MockUtils.setSecurityAuthorities(authentication, MockUtils.ROLE_CASEWORKER_PUBLIC, "caseworker-probate"); diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointIT.java index 25b43c7ce5..470c0412e5 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointIT.java @@ -7,17 +7,17 @@ import com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder; import com.github.tomakehurst.wiremock.client.WireMock; import org.hamcrest.CoreMatchers; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; import org.mockito.MockitoAnnotations; import org.skyscreamer.jsonassert.JSONAssert; import org.skyscreamer.jsonassert.JSONCompareMode; -import org.springframework.boot.test.mock.mockito.SpyBean; import org.springframework.http.MediaType; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.context.jdbc.Sql; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; @@ -159,12 +159,12 @@ public class CaseDetailsEndpointIT extends WireMockBaseTest { private MockMvc mockMvc; private JdbcTemplate template; - @SpyBean + @MockitoSpyBean private AuditRepository auditRepository; private static final String REFERENCE_2 = "1504259907353545"; - @Before + @BeforeEach public void setUp() { MockitoAnnotations.openMocks(this); @@ -394,7 +394,7 @@ public void shouldReturn201WhenPostCreateCaseWithEmptyDataClassificationForCasew " },\n" + " \"Aliases\": [{\"value\": \"x1\", \"id\": \"1\"}, {\"value\": \"x2\", \"id\": \"2\"}]," + " \"D8Document\":{" + - " \"document_url\": \"http://localhost:" + getPort() + " \"document_url\": \"" + hostUrl + "/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d0\",\n" + " \"upload_timestamp\": \"" + UPLOAD_TIMESTAMP + "\"" + "}" + @@ -410,7 +410,7 @@ public void shouldReturn201WhenPostCreateCaseWithEmptyDataClassificationForCasew " },\n" + " \"Aliases\": [{\"value\": \"x1\", \"id\": \"1\"}, {\"value\": \"x2\", \"id\": \"2\"}]," + " \"D8Document\":{\n" + - " \"document_url\": \"http://localhost:" + getPort() + " \"document_url\": \"" + hostUrl + "/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d0\",\n" + " \"document_binary_url\": \"http://localhost:[port]/documents/" + "05e7cd7e-7041-4d8a-826a-7bb49dfd83d0/binary\",\n" + @@ -897,7 +897,7 @@ public void shouldReturn201WhenPostCreateCaseWithEmptyDataClassificationForCitiz + " \"AddressLine2\": \"Address Line 2\"\n" + " },\n" + "\"D8Document\":{" - + "\"document_url\": \"http://localhost:" + getPort() + + "\"document_url\": \"" + hostUrl + "/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d0\",\n" + "\"upload_timestamp\": \"" + UPLOAD_TIMESTAMP + "\"" + "}" @@ -912,7 +912,7 @@ public void shouldReturn201WhenPostCreateCaseWithEmptyDataClassificationForCitiz + " \"AddressLine2\": \"Address Line 2\"\n" + " },\n" + " \"D8Document\":{\n" - + " \"document_url\": \"http://localhost:" + getPort() + + " \"document_url\": \"" + hostUrl + "/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d0\",\n" + " \"document_binary_url\": \"http://localhost:[port]/documents/" + "05e7cd7e-7041-4d8a-826a-7bb49dfd83d0/binary\",\n" @@ -1017,10 +1017,6 @@ public void shouldReturn201WithSearchCriteriaWhenPostCreateCaseForCitizen() thro GlobalSearchTestFixture.assertGlobalSearchData(actualData.getData()); } - private int getPort() { - return super.wiremockPort; - } - @Test public void shouldReturn422WhenPostCreateCaseWithMissingDocumentBinaryLinkForCaseworker() throws Exception { final String URL = "/caseworkers/0/jurisdictions/" + JURISDICTION + "/case-types/" + CASE_TYPE + "/cases"; @@ -1033,7 +1029,7 @@ public void shouldReturn422WhenPostCreateCaseWithMissingDocumentBinaryLinkForCas + " \"AddressLine2\": \"Address Line 2\"\n" + " },\n" + "\"D8Document\":{" - + "\"document_url\": \"http://localhost:" + getPort() + + "\"document_url\": \"" + hostUrl + "/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d1\",\n" + "\"upload_timestamp\": \"" + UPLOAD_TIMESTAMP + "\"" + "}" @@ -1072,7 +1068,7 @@ public void shouldReturn422WhenPostCreateCaseWithMissingDocumentBinaryLinkForCit + " \"AddressLine2\": \"Address Line 2\"\n" + " },\n" + "\"D8Document\":{" - + "\"document_url\": \"http://localhost:" + getPort() + + "\"document_url\": \"" + hostUrl + "/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d1\",\n" + "\"upload_timestamp\": \"" + UPLOAD_TIMESTAMP + "\"" + "}" @@ -4236,7 +4232,7 @@ private void shouldReturn201WhenPostCreateCaseEventWithValidData(String userRole "\"PersonLastName\":\"_ Roof\"," + "\"PersonFirstName\":\"_ George\"," + "\"D8Document\":{" + - " \"document_url\": \"http://localhost:" + getPort() + " \"document_url\": \"" + hostUrl + "/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d0\"," + " \"document_binary_url\": \"http://localhost:[port]/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d0" + "/binary\"," @@ -5273,7 +5269,7 @@ private String exampleDataWithInvalidPostcode() { + "\"PersonLastName\":\"_ Roof\"," + "\"PersonFirstName\":\"_ George\"," + "\"D8Document\":{" - + "\"document_url\": \"http://localhost:" + getPort() + + "\"document_url\": \"" + hostUrl + "/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d0\",\n" + "\"upload_timestamp\": \"" + UPLOAD_TIMESTAMP + "\"" + "}" @@ -5291,7 +5287,7 @@ private String exampleData() { + "\"PersonLastName\":\"_ Roof\"," + "\"PersonFirstName\":\"_ George\"," + "\"D8Document\":{" - + "\"document_url\": \"http://localhost:" + getPort() + + "\"document_url\": \"" + hostUrl + "/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d0\",\n" + "\"upload_timestamp\": \"" + UPLOAD_TIMESTAMP + "\"" + "}" @@ -5621,7 +5617,7 @@ private String requestBodyJsonMultiPage() { + " \"PersonFirstName\" : \"_ George\",\n" + " \"TelephoneNumber\" : \"_ 07865645667\",\n" + " \"D8Document\" : {\n" - + " \"document_url\" : \"http://localhost:" + this.getPort() + + " \"document_url\" : \"" + hostUrl + "/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d0\",\n" + " \"upload_timestamp\": \"" + UPLOAD_TIMESTAMP + "\"" + " }\n" @@ -5645,7 +5641,7 @@ private String requestBodyJson() { + "\"case_type_id\":\"TestAddressBookCaseValidate\",\"created_date\":null,\"last_modified\":null," + "\"last_state_modified_date\":null,\"security_classification\":null," + "\"case_data\":{\"PersonLastName\":\"_ Roof\",\"PersonFirstName\":\"_ George\"," - + "\"D8Document\":{\"document_url\":\"http://localhost:" + getPort() + + "\"D8Document\":{\"document_url\":\"" + hostUrl + "/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d0\",\n" + "\"upload_timestamp\": \"" + UPLOAD_TIMESTAMP + "\"}}," + "\"data_classification\":null,\"supplementary_data\":null,\"after_submit_callback_response\":null," @@ -5684,7 +5680,7 @@ private WizardPage createWizardPage(String pageName, String caseFieldName1, Stri .withOrder(pageOrder) .withField(caseViewField1) .withField(caseViewField2) - .withCallBackURLMidEvent("http://localhost:" + getPort() + eventCallBackURI) + .withCallBackURLMidEvent(hostUrl + eventCallBackURI) .build(); } @@ -5729,7 +5725,7 @@ private String secondPageData() { + "\"CaseNumber\":\"_ 1234567\"," + "\"TelephoneNumber\":\"_ 07865645667\"," + "\"D8Document\":{" - + "\"document_url\": \"http://localhost:" + getPort() + "/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d0\"" + + "\"document_url\": \"" + hostUrl + "/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d0\"" + "}" + "}"; } @@ -5745,7 +5741,7 @@ private String exampleEventDataMultiPages() { + "\"CaseField41\":\"_ Test987\"," + "\"CaseField42\":\"_ Test567\"," + "\"D8Document\":{" - + "\"document_url\": \"http://localhost:" + getPort() + "/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d0\"" + + "\"document_url\": \"" + hostUrl + "/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d0\"" + "}" + "}"; } @@ -5755,7 +5751,7 @@ private String exampleCaseData() { + "\"PersonLastName\":\"Roof\"," + "\"PersonFirstName\":\"George\"," + "\"D8Document\":{" - + "\"document_url\": \"http://localhost:" + getPort() + "/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d0\"" + + "\"document_url\": \"" + hostUrl + "/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d0\"" + "}" + "}"; } @@ -5767,7 +5763,7 @@ private String exampleEventData() { + "\"CaseNumber\":\"_ 1234567\"," + "\"TelephoneNumber\":\"_ 07865645667\"," + "\"D8Document\":{" - + "\"document_url\": \"http://localhost:" + getPort() + "/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d0\"" + + "\"document_url\": \"" + hostUrl + "/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d0\"" + "}" + "}"; } @@ -5779,7 +5775,7 @@ private String exampleEventDataTTL() { + "\"CaseNumber\":\"_ 1234567\"," + "\"TelephoneNumber\":\"_ 07865645667\"," + "\"D8Document\":{" - + "\"document_url\": \"http://localhost:" + getPort() + "/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d0\"" + + "\"document_url\": \"" + hostUrl + "/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d0\"" + "}," + "\"TTL\":{" + "\"Suspended\": \"No\"," diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointPostStateIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointPostStateIT.java index 2d4dad75e1..cc23f50eb8 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointPostStateIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointPostStateIT.java @@ -3,8 +3,8 @@ import com.fasterxml.jackson.databind.JsonNode; import java.util.List; import jakarta.inject.Inject; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.test.context.jdbc.Sql; import org.springframework.test.web.servlet.MockMvc; @@ -37,7 +37,7 @@ public class CaseDetailsEndpointPostStateIT extends WireMockBaseTest { private MockMvc mockMvc; private JdbcTemplate template; - @Before + @BeforeEach public void setUp() { MockUtils.setSecurityAuthorities(authentication, MockUtils.ROLE_CASEWORKER_PUBLIC); mockMvc = MockMvcBuilders.webAppContextSetup(wac).build(); diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointUserRolesIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointUserRolesIT.java index 572ebd2c28..c3027d8c6c 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointUserRolesIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointUserRolesIT.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.endpoint.std; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; @@ -40,7 +40,7 @@ public class CaseDetailsEndpointUserRolesIT extends WireMockBaseTest { private MockMvc mockMvc; private JdbcTemplate template; - @Before + @BeforeEach public void setUp() { MockUtils.setSecurityAuthorities(authentication, MockUtils.ROLE_CASEWORKER_PUBLIC); mockMvc = MockMvcBuilders.webAppContextSetup(wac).build(); diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseSearchEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseSearchEndpointIT.java index a4d0aa5b6d..6daee93b42 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseSearchEndpointIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseSearchEndpointIT.java @@ -5,8 +5,8 @@ import io.searchbox.client.JestClient; import io.searchbox.core.MultiSearchResult; import io.searchbox.core.SearchResult; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; import org.springframework.test.context.bean.override.mockito.MockitoBean; import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; @@ -58,7 +58,7 @@ public class CaseSearchEndpointIT extends WireMockBaseTest { @MockitoSpyBean private AuditRepository auditRepository; - @Before + @BeforeEach public void setUp() { MockUtils.setSecurityAuthorities(authentication, MockUtils.ROLE_CASEWORKER_PUBLIC); diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/DraftsEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/DraftsEndpointIT.java index 568e40c65b..f66b0b5c80 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/DraftsEndpointIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/DraftsEndpointIT.java @@ -1,8 +1,8 @@ package uk.gov.hmcts.ccd.endpoint.std; import com.fasterxml.jackson.databind.JsonNode; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Assertions; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; @@ -57,7 +57,7 @@ public class DraftsEndpointIT extends WireMockBaseTest { private WebApplicationContext wac; private MockMvc mockMvc; - @Before + @BeforeEach public void setUp() throws IOException { mockMvc = MockMvcBuilders.webAppContextSetup(wac).build(); diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/EventsEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/EventsEndpointIT.java index f82b3bb35f..badf20a186 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/EventsEndpointIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/EventsEndpointIT.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.endpoint.std; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.test.context.jdbc.Sql; import org.springframework.test.web.servlet.MockMvc; @@ -36,7 +36,7 @@ public class EventsEndpointIT extends WireMockBaseTest { private MockMvc mockMvc; private JdbcTemplate template; - @Before + @BeforeEach public void setUp() { MockUtils.setSecurityAuthorities(authentication, MockUtils.ROLE_CASEWORKER_PUBLIC); diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/CallbackTest.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/CallbackTest.java index 0c7d8454a9..ff324d1ca8 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/CallbackTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/CallbackTest.java @@ -6,8 +6,8 @@ import org.assertj.core.util.Lists; import org.hamcrest.FeatureMatcher; import org.hamcrest.Matcher; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.test.context.jdbc.Sql; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; @@ -108,7 +108,7 @@ public class CallbackTest extends WireMockBaseTest { public CallbackTest() throws IOException { } - @Before + @BeforeEach public void setUp() throws JsonProcessingException { CALLBACK_DATA = mapper.readTree(CALLBACK_DATA_JSON_STRING); diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/CaseRolesIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/CaseRolesIT.java index d119486864..2fa3c54e25 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/CaseRolesIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/CaseRolesIT.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.endpoint.ui; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; import org.springframework.test.web.servlet.setup.MockMvcBuilders; @@ -31,7 +31,7 @@ public class CaseRolesIT extends WireMockBaseTest { private WebApplicationContext wac; private MockMvc mockMvc; - @Before + @BeforeEach public void setUp() { MockUtils.setSecurityAuthorities(authentication, MockUtils.ROLE_CASEWORKER_PUBLIC); diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/QueryEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/QueryEndpointIT.java index 50b21a00c7..20113cbaaa 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/QueryEndpointIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/QueryEndpointIT.java @@ -2,9 +2,9 @@ import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.node.JsonNodeFactory; -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; @@ -167,7 +167,7 @@ public class QueryEndpointIT extends WireMockBaseTest { private MockMvc mockMvc; private JdbcTemplate template; - @Before + @BeforeEach public void setUp() { MockUtils.setSecurityAuthorities(authentication, MockUtils.ROLE_CASEWORKER_PUBLIC); mockMvc = MockMvcBuilders.webAppContextSetup(wac).build(); @@ -677,7 +677,7 @@ public void validNonBasketSearchAllWithCaseType() throws Exception { } @Test - @Ignore // this should default to Search view, + @Disabled // this should default to Search view, public void missingViewParam() throws Exception { mockMvc.perform(get(GET_CASES) .contentType(JSON_CONTENT_TYPE) diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/SearchInputEndpointTest.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/SearchInputEndpointTest.java index 513772d40d..d2667cb0f2 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/SearchInputEndpointTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/SearchInputEndpointTest.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.endpoint.ui; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.http.MediaType; import org.springframework.test.context.jdbc.Sql; import org.springframework.test.web.servlet.MockMvc; @@ -28,7 +28,7 @@ public class SearchInputEndpointTest extends WireMockBaseTest { private MockMvc mockMvc; - @Before + @BeforeEach public void setUp() { MockUtils.setSecurityAuthorities(authentication, MockUtils.ROLE_CASEWORKER_PUBLIC); mockMvc = MockMvcBuilders.webAppContextSetup(wac).build(); diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/SearchWithSortIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/SearchWithSortIT.java index 014e5c7135..057072c2df 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/SearchWithSortIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/SearchWithSortIT.java @@ -1,8 +1,8 @@ package uk.gov.hmcts.ccd.endpoint.ui; import com.github.tomakehurst.wiremock.client.WireMock; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.test.context.jdbc.Sql; import org.springframework.test.util.ReflectionTestUtils; import org.springframework.test.web.servlet.MockMvc; @@ -49,7 +49,7 @@ public class SearchWithSortIT extends WireMockBaseTest { private ApplicationParams applicationParams; private MockMvc mockMvc; - @Before + @BeforeEach public void setUp() { MockUtils.setSecurityAuthorities(authentication, ROLE_CASEWORKER_PUBLIC, ROLE_CASEWORKER_PRIVATE); diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/UserProfileEndpointTest.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/UserProfileEndpointTest.java index 176168411c..64ad342818 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/UserProfileEndpointTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/UserProfileEndpointTest.java @@ -1,8 +1,8 @@ package uk.gov.hmcts.ccd.endpoint.ui; -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; import org.springframework.test.web.servlet.setup.MockMvcBuilders; @@ -29,13 +29,13 @@ public class UserProfileEndpointTest extends WireMockBaseTest { private WebApplicationContext wac; private MockMvc mockMvc; - @Before + @BeforeEach public void setUp() { MockUtils.setSecurityAuthorities(authentication, MockUtils.ROLE_CASEWORKER_PUBLIC); mockMvc = MockMvcBuilders.webAppContextSetup(wac).build(); } - @Ignore("Temporary for intermittent failure") + @Disabled("Temporary for intermittent failure") @Test public void validUser() throws Exception { final MvcResult result = mockMvc.perform(get(URL) diff --git a/src/test/java/uk/gov/hmcts/ccd/integrations/CaseRoleDefinitionCachingIT.java b/src/test/java/uk/gov/hmcts/ccd/integrations/CaseRoleDefinitionCachingIT.java index 9d78d47319..4b6041fe0d 100644 --- a/src/test/java/uk/gov/hmcts/ccd/integrations/CaseRoleDefinitionCachingIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/integrations/CaseRoleDefinitionCachingIT.java @@ -1,35 +1,26 @@ package uk.gov.hmcts.ccd.integrations; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.junit.jupiter.api.DisplayName; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.contract.wiremock.AutoConfigureWireMock; -import org.springframework.test.context.TestPropertySource; +import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; -import org.springframework.test.context.junit4.SpringRunner; -import uk.gov.hmcts.ccd.ApplicationParams; import uk.gov.hmcts.ccd.data.caseaccess.DefaultCaseRoleRepository; import java.util.HashSet; import java.util.concurrent.TimeUnit; +import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.times; + import static java.util.Collections.singletonList; -@RunWith(SpringRunner.class) -@SpringBootTest -@AutoConfigureWireMock(port = 0) -@TestPropertySource(locations = "classpath:test.properties") -public class CaseRoleDefinitionCachingIT { +import uk.gov.hmcts.ccd.WireMockBaseTest; - @Autowired - private ApplicationParams applicationParams; +@DirtiesContext +public class CaseRoleDefinitionCachingIT extends WireMockBaseTest { @MockitoSpyBean private DefaultCaseRoleRepository caseRoleRepository; @@ -37,7 +28,7 @@ public class CaseRoleDefinitionCachingIT { private final String caseTypeId1 = "caseTypeId1"; private final String caseTypeId2 = "caseTypeId2"; - @Before + @BeforeEach public void setup() { doReturn(new HashSet<>(singletonList("role1"))) .when(this.caseRoleRepository) @@ -56,7 +47,7 @@ public void setup() { @DisplayName("return case roles from cache and repository after cache eviction") public void returnCaseRolesForCaseTypeFromCacheAndRepositoryAfterCacheEviction() throws InterruptedException { - Assert.assertEquals(3, applicationParams.getDefaultCacheTtlSecs()); + assertEquals(3, applicationParams.getDefaultCacheTtlSecs()); verify(caseRoleRepository, times(0)).getCaseRoles(caseTypeId1); caseRoleRepository.getCaseRoles(caseTypeId1); @@ -81,7 +72,7 @@ public void returnCaseRolesForCaseTypeFromCacheAndRepositoryAfterCacheEviction() @DisplayName("return empty case roles but do not cache the result") public void returnEmptyCaseRolesForCaseTypeButDoNotCache() throws InterruptedException { - Assert.assertEquals(3, applicationParams.getDefaultCacheTtlSecs()); + assertEquals(3, applicationParams.getDefaultCacheTtlSecs()); verify(caseRoleRepository, times(0)).getCaseRoles(caseTypeId2); caseRoleRepository.getCaseRoles(caseTypeId2); diff --git a/src/test/java/uk/gov/hmcts/ccd/integrations/DefinitionsCachingIT.java b/src/test/java/uk/gov/hmcts/ccd/integrations/DefinitionsCachingIT.java index f5dc3adc5f..e4e684f0d6 100644 --- a/src/test/java/uk/gov/hmcts/ccd/integrations/DefinitionsCachingIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/integrations/DefinitionsCachingIT.java @@ -1,10 +1,10 @@ package uk.gov.hmcts.ccd.integrations; import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Disabled; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -12,7 +12,7 @@ import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import uk.gov.hmcts.ccd.ApplicationParams; import uk.gov.hmcts.ccd.data.definition.CachedCaseDefinitionRepository; import uk.gov.hmcts.ccd.data.definition.CachedUIDefinitionGateway; @@ -47,7 +47,7 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; -@RunWith(SpringRunner.class) +@ExtendWith(SpringExtension.class) @SpringBootTest @AutoConfigureWireMock(port = 0) @TestPropertySource(locations = "classpath:test.properties") @@ -107,7 +107,7 @@ public class DefinitionsCachingIT { List wizardPageList = new ArrayList<>(); List bannersList = Collections.emptyList(); - @Before + @BeforeEach public void setup() { initiateWizardPageList(wizardPageList); @@ -214,7 +214,7 @@ public void testJurisdictionDefinitionListPreventCacheManipulation() { @Test public void testTtlBasedEvictionOfJurisdictionLists() throws InterruptedException { - Assert.assertEquals(3, applicationParams.getJurisdictionTTLSecs()); + assertEquals(3, applicationParams.getJurisdictionTTLSecs()); verify(caseDefinitionRepository, times(0)).retrieveJurisdictions(Optional.of(List.of(JURISDICTION_ID_2))); caseDefinitionRepository.getJurisdiction(JURISDICTION_ID_2); @@ -244,7 +244,7 @@ public void testTtlBasedEvictionOfJurisdictionLists() throws InterruptedExceptio @Test public void testCaseDefinitionLatestVersionsAreCached() { - Assert.assertEquals(3, applicationParams.getDefaultCacheTtlSecs()); + assertEquals(3, applicationParams.getDefaultCacheTtlSecs()); verify(caseDefinitionRepository, times(0)).getLatestVersion(ID_2); cachedCaseDefinitionRepository.getLatestVersion(ID_2); verify(caseDefinitionRepository, times(1)).getLatestVersion(ID_2); @@ -256,7 +256,7 @@ public void testCaseDefinitionLatestVersionsAreCached() { @Test public void testTtlBasedEvictionOfCaseDefinitionLatestVersion() throws InterruptedException { - Assert.assertEquals(3, applicationParams.getDefaultCacheTtlSecs()); + assertEquals(3, applicationParams.getDefaultCacheTtlSecs()); verify(caseDefinitionRepository, times(0)).getLatestVersion(ID_3); caseDefinitionRepository.getLatestVersion(ID_3); diff --git a/src/test/java/uk/gov/hmcts/ccd/integrations/IdamIT.java b/src/test/java/uk/gov/hmcts/ccd/integrations/IdamIT.java index a5134b9116..95e85cf3e4 100644 --- a/src/test/java/uk/gov/hmcts/ccd/integrations/IdamIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/integrations/IdamIT.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.integrations; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpEntity; @@ -20,7 +20,7 @@ import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.not; -@Ignore +@Disabled // FIXME : RDM-7635 - has to mock opendId jwks responses with proper Key set (RS256 public / private key). public class IdamIT { diff --git a/src/test/java/uk/gov/hmcts/ccd/integrations/IdamRepositoryCachingIT.java b/src/test/java/uk/gov/hmcts/ccd/integrations/IdamRepositoryCachingIT.java index 88f0bbfe6e..cf21900329 100644 --- a/src/test/java/uk/gov/hmcts/ccd/integrations/IdamRepositoryCachingIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/integrations/IdamRepositoryCachingIT.java @@ -1,20 +1,18 @@ package uk.gov.hmcts.ccd.integrations; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.MockitoAnnotations; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.contract.wiremock.AutoConfigureWireMock; -import org.springframework.test.context.TestPropertySource; +import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.bean.override.mockito.MockitoBean; import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; -import org.springframework.test.context.junit4.SpringRunner; + import uk.gov.hmcts.ccd.ApplicationParams; +import uk.gov.hmcts.ccd.WireMockBaseTest; import uk.gov.hmcts.ccd.security.idam.IdamRepository; import uk.gov.hmcts.reform.idam.client.IdamClient; @@ -27,11 +25,8 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -@RunWith(SpringRunner.class) -@SpringBootTest -@AutoConfigureWireMock(port = 0) -@TestPropertySource(locations = "classpath:test.properties") -public class IdamRepositoryCachingIT { +@DirtiesContext +public class IdamRepositoryCachingIT extends WireMockBaseTest { private static final Logger LOG = LoggerFactory.getLogger(IdamRepositoryCachingIT.class); @@ -54,7 +49,7 @@ public class IdamRepositoryCachingIT { private AutoCloseable autoCloseable; - @Before + @BeforeEach public void openMocks() { autoCloseable = MockitoAnnotations.openMocks(this); } @@ -116,7 +111,7 @@ private void checkGetDataStoreUserAccessToken(final int expectedNumInvocations, assertEquals("Unexpected Access Token value", expectedAccessToken, actualAccessToken); } - @After + @AfterEach public void releaseMocks() throws Exception { autoCloseable.close(); } diff --git a/src/test/java/uk/gov/hmcts/ccd/integrations/ServiceToServiceIT.java b/src/test/java/uk/gov/hmcts/ccd/integrations/ServiceToServiceIT.java index 32d9986979..13dedc847a 100644 --- a/src/test/java/uk/gov/hmcts/ccd/integrations/ServiceToServiceIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/integrations/ServiceToServiceIT.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.integrations; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.web.client.TestRestTemplate; import org.springframework.http.HttpEntity; @@ -21,7 +21,7 @@ import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.not; -@Ignore +@Disabled // FIXME : RDM-7635 - has to mock opendId jwks responses with proper Key set (RS256 public / private key). public class ServiceToServiceIT { diff --git a/src/test/java/uk/gov/hmcts/ccd/security/DataStoreHttpStatusRequestRejectedHandlerTest.java b/src/test/java/uk/gov/hmcts/ccd/security/DataStoreHttpStatusRequestRejectedHandlerTest.java index 11dd1638bf..876dd65b9c 100644 --- a/src/test/java/uk/gov/hmcts/ccd/security/DataStoreHttpStatusRequestRejectedHandlerTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/security/DataStoreHttpStatusRequestRejectedHandlerTest.java @@ -4,9 +4,9 @@ import ch.qos.logback.classic.Logger; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.read.ListAppender; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.slf4j.LoggerFactory; @@ -44,7 +44,7 @@ public class DataStoreHttpStatusRequestRejectedHandlerTest { private Logger handlerLogger; private ListAppender handlerLoggerListAppender; - @Before + @BeforeEach public void setUp() { autoCloseable = MockitoAnnotations.openMocks(this); @@ -63,7 +63,7 @@ public void setUp() { handlerLogger.addAppender(handlerLoggerListAppender); } - @After + @AfterEach public void tearDown() throws Exception { autoCloseable.close(); handlerLogger.detachAndStopAllAppenders(); diff --git a/src/test/java/uk/gov/hmcts/ccd/security/filters/ExceptionHandlingFilterTest.java b/src/test/java/uk/gov/hmcts/ccd/security/filters/ExceptionHandlingFilterTest.java index 5877324ec6..8ecf268c2e 100644 --- a/src/test/java/uk/gov/hmcts/ccd/security/filters/ExceptionHandlingFilterTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/security/filters/ExceptionHandlingFilterTest.java @@ -5,13 +5,13 @@ import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.read.ListAppender; import org.apache.catalina.connector.ClientAbortException; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.slf4j.LoggerFactory; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; @@ -24,7 +24,7 @@ import static org.assertj.core.api.AssertionsForClassTypes.assertThat; -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class ExceptionHandlingFilterTest { private MockHttpServletRequest request; @@ -42,7 +42,7 @@ public class ExceptionHandlingFilterTest { private static final String EXCEPTION_MESSAGE = "Exception thrown in the security filter chain"; private static final String EXCEPTION_LOGGER_TYPE = "uk.gov.hmcts.ccd.security.filters.ExceptionHandlingFilter"; - @Before + @BeforeEach public void setUp() { filter = new ExceptionHandlingFilter(); request = new MockHttpServletRequest(); @@ -57,7 +57,7 @@ public void setUp() { logger.addAppender(listAppender); } - @After + @AfterEach public void tearDown() { listAppender.stop(); logger.detachAppender(listAppender); diff --git a/src/test/java/uk/gov/hmcts/ccd/security/filters/V1EndpointsPathParamSecurityFilterTest.java b/src/test/java/uk/gov/hmcts/ccd/security/filters/V1EndpointsPathParamSecurityFilterTest.java index 92feaec447..04900a3f95 100644 --- a/src/test/java/uk/gov/hmcts/ccd/security/filters/V1EndpointsPathParamSecurityFilterTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/security/filters/V1EndpointsPathParamSecurityFilterTest.java @@ -1,11 +1,11 @@ package uk.gov.hmcts.ccd.security.filters; import com.google.common.collect.Lists; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.mock.web.MockFilterChain; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; @@ -22,7 +22,7 @@ import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.when; -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class V1EndpointsPathParamSecurityFilterTest { @Mock @@ -38,7 +38,7 @@ public class V1EndpointsPathParamSecurityFilterTest { private FilterChain filterChain; private AuthCheckerConfiguration authCheckerConfiguration; - @Before + @BeforeEach public void setUp() { AuthCheckerConfiguration config = new AuthCheckerConfiguration(applicationParams); filter = new V1EndpointsPathParamSecurityFilter(config.userIdExtractor(), diff --git a/src/test/java/uk/gov/hmcts/ccd/swagger/SwaggerGeneratorTest.java b/src/test/java/uk/gov/hmcts/ccd/swagger/SwaggerGeneratorTest.java index bf8df8280e..4d1a68456b 100644 --- a/src/test/java/uk/gov/hmcts/ccd/swagger/SwaggerGeneratorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/swagger/SwaggerGeneratorTest.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.swagger; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.junit.jupiter.api.DisplayName; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.web.servlet.MockMvc; @@ -24,7 +24,7 @@ public class SwaggerGeneratorTest extends WireMockBaseTest { @Autowired private WebApplicationContext webAppContext; - @Before + @BeforeEach public void setup() { this.mvc = webAppContextSetup(webAppContext).build(); } diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerDCPIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerDCPIT.java index af630efab9..ed2e1ac567 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerDCPIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerDCPIT.java @@ -2,8 +2,8 @@ import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.JsonNode; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.http.MediaType; @@ -71,7 +71,7 @@ public class CaseControllerDCPIT extends WireMockBaseTest { private JdbcTemplate template; - @Before + @BeforeEach public void setUp() { MockitoAnnotations.openMocks(this); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerEventsIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerEventsIT.java index 52612b4c44..f5d505a6dc 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerEventsIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerEventsIT.java @@ -5,8 +5,8 @@ import java.util.Arrays; import jakarta.inject.Inject; import org.apache.commons.lang3.RandomStringUtils; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.test.context.jdbc.Sql; @@ -55,7 +55,7 @@ public class CaseControllerEventsIT extends WireMockBaseTest { private JdbcTemplate template; - @Before + @BeforeEach public void setUp() throws Exception { mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); if (applicationParams.getEnableAttributeBasedAccessControl()) { diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerTestIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerTestIT.java index 316c4b1134..80c01c3203 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerTestIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerTestIT.java @@ -6,6 +6,8 @@ import com.fasterxml.jackson.databind.JsonNode; import com.github.tomakehurst.wiremock.client.WireMock; import org.apache.commons.lang3.StringUtils; +import org.json.JSONException; +import org.json.JSONObject; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; @@ -90,6 +92,7 @@ class CaseControllerTestIT extends WireMockBaseTest { private static final String REQUEST_ID_VALUE = "1234567898765432"; private static final String ROLE_PROBATE_SOLICITOR = "caseworker-probate-solicitor"; private static String CUSTOM_CONTEXT = ""; + private static JSONObject responseJsonObject1; @Inject private WebApplicationContext wac; @@ -102,11 +105,12 @@ class CaseControllerTestIT extends WireMockBaseTest { private AuditRepository auditRepository; @BeforeEach - public void setUp() { + public void setUp() throws JSONException { MockUtils.setSecurityAuthorities(authentication, MockUtils.ROLE_CASEWORKER_PUBLIC); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); mockMvc = MockMvcBuilders.webAppContextSetup(wac).addFilters(customHeadersFilter).build(); CUSTOM_CONTEXT = applicationParams.getCallbackPassthruHeaderContexts().get(0); + responseJsonObject1 = new JSONObject(responseJson1); } @Test @@ -268,7 +272,7 @@ void shouldReturn201WhenPostCreateCase() throws Exception { final MvcResult mvcResult = mockMvc.perform(post(URL) .header(EXPERIMENTAL_HEADER, "experimental") - .header(CUSTOM_CONTEXT, responseJson1.toString()) + .header(CUSTOM_CONTEXT, responseJsonObject1.toString()) .header(REQUEST_ID, REQUEST_ID_VALUE) .contentType(JSON_CONTENT_TYPE) .content(mapper.writeValueAsString(caseDetailsToSave)) @@ -321,13 +325,14 @@ void shouldReturnCustomHeaderWithAlteredValueFromCallback() throws Exception { .willReturn(okJson(jsonString).withStatus(200))); stubFor(WireMock.post(urlMatching("/callback/document")) - .willReturn(okJson(jsonString).withStatus(200).withHeader(CUSTOM_CONTEXT, responseJson2.toString()))); + .willReturn(okJson(jsonString).withStatus(200) + .withHeader(CUSTOM_CONTEXT, new JSONObject(responseJson2).toString()))); HttpHeaders headers = new HttpHeaders(); headers.add(AUTHORIZATION, "Bearer user1"); headers.add(REQUEST_ID, REQUEST_ID_VALUE); headers.add(V2.EXPERIMENTAL_HEADER, "true"); - headers.add(CUSTOM_CONTEXT, responseJson1.toString()); + headers.add(CUSTOM_CONTEXT, responseJsonObject1.toString()); final MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.post(URL).headers(headers) .contentType(JSON_CONTENT_TYPE) @@ -337,7 +342,7 @@ void shouldReturnCustomHeaderWithAlteredValueFromCallback() throws Exception { assertEquals(201, mvcResult.getResponse().getStatus()); assertTrue(mvcResult.getResponse().getHeaderNames().contains(CUSTOM_CONTEXT)); assertTrue(mvcResult.getResponse().getHeader(CUSTOM_CONTEXT).contains( - ClientContextUtil.encodeToBase64(responseJson2.toString()))); + ClientContextUtil.encodeToBase64(new JSONObject(responseJson2).toString()))); } @Test @@ -373,7 +378,7 @@ void shouldPopulateSearchCriteriaPostCreateCase() throws Exception { final MvcResult mvcResult = mockMvc.perform(post(URL) .header(EXPERIMENTAL_HEADER, "experimental") .header(REQUEST_ID, REQUEST_ID_VALUE) - .header(CUSTOM_CONTEXT, responseJson1.toString()) + .header(CUSTOM_CONTEXT, responseJsonObject1.toString()) .contentType(JSON_CONTENT_TYPE) .content(mapper.writeValueAsString(caseDetailsToSave)) ).andReturn(); @@ -434,7 +439,7 @@ void shouldPopulateMultipleSearchCriteriaAndSearchPartiesPostCreateCase() throws final MvcResult mvcResult = mockMvc.perform(post(URL) .header(EXPERIMENTAL_HEADER, "experimental") - .header(CUSTOM_CONTEXT, responseJson1.toString()) + .header(CUSTOM_CONTEXT, responseJsonObject1.toString()) .header(REQUEST_ID, REQUEST_ID_VALUE) .contentType(JSON_CONTENT_TYPE) .content(mapper.writeValueAsString(caseDetailsToSave)) @@ -492,7 +497,7 @@ void shouldPopulateMultipleSearchCriteriaAndSearchPartiesPostCreateEvent() throw final MvcResult mvcResult = mockMvc.perform(post(URL) .header(EXPERIMENTAL_HEADER, "experimental") .header(REQUEST_ID, REQUEST_ID_VALUE) - .header(CUSTOM_CONTEXT, responseJson1.toString()) + .header(CUSTOM_CONTEXT, responseJsonObject1.toString()) .contentType(JSON_CONTENT_TYPE) .content(mapper.writeValueAsString(caseDetailsToSave)) ).andReturn(); @@ -535,7 +540,7 @@ void shouldReturn201WhenPostCreateCaseAndAboutToSubmitCallbackWithDocument() thr final MvcResult mvcResult = mockMvc.perform(post(URL) .header(EXPERIMENTAL_HEADER, "experimental") .header(REQUEST_ID, REQUEST_ID_VALUE) - .header(CUSTOM_CONTEXT, responseJson1.toString()) + .header(CUSTOM_CONTEXT, responseJsonObject1.toString()) .contentType(JSON_CONTENT_TYPE) .content(mapper.writeValueAsString(caseDetailsToSave)) ).andReturn(); @@ -588,7 +593,7 @@ void shouldReturn201WhenPostCreateCaseV3() throws Exception { final MvcResult mvcResult = mockMvc.perform(post(url) .header(EXPERIMENTAL_HEADER, "experimental") - .header(CUSTOM_CONTEXT, responseJson1.toString()) + .header(CUSTOM_CONTEXT, responseJsonObject1.toString()) .contentType(jsonContentV3CreateCase) .content(mapper.writeValueAsString(caseDetailsToSave)) ).andReturn(); @@ -620,7 +625,7 @@ void shouldReturn201WhenPostCreateCaseWithCreatorRoleWithNoDataForCaseworker() t final MvcResult mvcResult = mockMvc.perform(post(URL) .header(EXPERIMENTAL_HEADER, "experimental") - .header(CUSTOM_CONTEXT, responseJson1.toString()) + .header(CUSTOM_CONTEXT, responseJsonObject1.toString()) .contentType(JSON_CONTENT_TYPE) .content(mapper.writeValueAsString(caseDetailsToSave)) ).andReturn(); @@ -807,7 +812,7 @@ void shouldSaveOnBehalfOfUserAndProxiedByUserId() throws Exception { final MvcResult mvcResult = mockMvc.perform(post(URL) .header(EXPERIMENTAL_HEADER, "experimental") - .header(CUSTOM_CONTEXT, responseJson1.toString()) + .header(CUSTOM_CONTEXT, responseJsonObject1.toString()) .header(REQUEST_ID, REQUEST_ID_VALUE) .contentType(JSON_CONTENT_TYPE) .content(mapper.writeValueAsString(caseDetailsToSave)) diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDataValidatorControllerDCPIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDataValidatorControllerDCPIT.java index 30ed4b4edc..20e12a03bc 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDataValidatorControllerDCPIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDataValidatorControllerDCPIT.java @@ -2,8 +2,8 @@ import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.JsonNode; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.http.MediaType; @@ -61,7 +61,7 @@ public class CaseDataValidatorControllerDCPIT extends WireMockBaseTest { private JdbcTemplate template; - @Before + @BeforeEach public void setUp() { MockitoAnnotations.openMocks(this); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDocumentControllerIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDocumentControllerIT.java index 09260ec33b..5d2a8516fd 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDocumentControllerIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDocumentControllerIT.java @@ -16,8 +16,8 @@ import com.fasterxml.jackson.databind.ObjectMapper; import org.json.JSONObject; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.hateoas.Link; @@ -63,19 +63,8 @@ public class CaseDocumentControllerIT extends WireMockBaseTest { private MockMvc mockMvc; protected static final ObjectMapper mapper = new ObjectMapper(); private static String CUSTOM_CONTEXT = ""; - public static final JSONObject responseJson1 = new JSONObject(""" - { - "user_task": { - "task_data": { - "task_id": "000001", - "task_name": "Task 1 name" - }, - "complete_task": "false" - } - } - """); - - @Before + + @BeforeEach public void setUp() { MockitoAnnotations.openMocks(this); @@ -98,7 +87,7 @@ public void shouldReturn200WhenGetValidCaseDocuments() throws Exception { .perform(get(String.format("http://localhost:%s/cases/1504259907353651/documents/05e7cd7e-7041-4d8a-826a-7bb49dfd83d1", super.wiremockPort)) .contentType(MediaType.APPLICATION_JSON) .header("Accept", V2.MediaType.CASE_DOCUMENT) - .header(CUSTOM_CONTEXT, responseJson1.toString()) + .header(CUSTOM_CONTEXT, new JSONObject(responseJson1).toString()) .header("experimental", true)) .andExpect(status().is(200)) .andReturn(); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseFileViewControllerTestIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseFileViewControllerTestIT.java index 3deec14224..af478462d6 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseFileViewControllerTestIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseFileViewControllerTestIT.java @@ -1,6 +1,8 @@ package uk.gov.hmcts.ccd.v2.external.controller; import com.fasterxml.jackson.databind.DeserializationFeature; + +import org.json.JSONObject; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; @@ -74,7 +76,7 @@ void testShouldGetCategoriesAndDocuments() throws Exception { final MvcResult mvcResult = mockMvc.perform(get(URL) .header(REQUEST_ID, REQUEST_ID_VALUE) - .header(CUSTOM_CONTEXT, responseJson1.toString()) + .header(CUSTOM_CONTEXT, new JSONObject(responseJson1).toString()) .contentType(JSON_CONTENT_TYPE)) .andReturn(); ArgumentCaptor captor = ArgumentCaptor.forClass(AuditEntry.class); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserControllerIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserControllerIT.java index 26051822b6..61d2896275 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserControllerIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseUserControllerIT.java @@ -4,8 +4,8 @@ import com.github.tomakehurst.wiremock.client.WireMock; import com.google.common.collect.Sets; import com.microsoft.applicationinsights.core.dependencies.google.common.collect.Lists; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.context.jdbc.Sql; @@ -41,7 +41,7 @@ public class CaseUserControllerIT extends WireMockBaseTest { @MockitoSpyBean private AuditRepository auditRepository; - @Before + @BeforeEach public void setUp() throws JsonProcessingException { mockMvc = MockMvcBuilders.webAppContextSetup(wac).build(); MockUtils.setSecurityAuthorities(authentication, MockUtils.ROLE_CASEWORKER_PUBLIC, "caseworker-probate"); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerITest.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerITest.java index 516973a9df..3d5d2b4002 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerITest.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerITest.java @@ -2,6 +2,7 @@ import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching; + import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.allOf; import static org.hamcrest.Matchers.hasItems; @@ -10,93 +11,49 @@ import static org.junit.jupiter.api.Assertions.assertAll; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.mockito.ArgumentMatchers.anyBoolean; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.reset; -import static org.mockito.Mockito.when; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import java.sql.SQLException; import java.util.List; -import java.util.Objects; import java.util.Optional; -import java.util.stream.Collectors; - import javax.sql.DataSource; import org.json.JSONObject; -import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.mockito.Mock; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cache.CacheManager; -import org.springframework.cloud.contract.wiremock.AutoConfigureWireMock; -import org.springframework.core.io.ClassPathResource; import org.springframework.hateoas.Link; import org.springframework.hateoas.mediatype.hal.Jackson2HalModule; import org.springframework.http.MediaType; -import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.init.ScriptException; -import org.springframework.jdbc.datasource.init.ScriptUtils; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.context.SecurityContext; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.TestPropertySource; -import org.springframework.test.util.ReflectionTestUtils; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.context.jdbc.Sql; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; import com.fasterxml.jackson.databind.ObjectMapper; -import com.github.tomakehurst.wiremock.WireMockServer; -import com.github.tomakehurst.wiremock.client.MappingBuilder; import com.github.tomakehurst.wiremock.client.WireMock; import jakarta.inject.Inject; import uk.gov.hmcts.ccd.ApplicationParams; import uk.gov.hmcts.ccd.MockUtils; +import uk.gov.hmcts.ccd.WireMockBaseTest; import uk.gov.hmcts.ccd.customheaders.CustomHeadersFilter; import uk.gov.hmcts.ccd.domain.model.definition.Document; -import uk.gov.hmcts.ccd.domain.service.common.UIDService; import uk.gov.hmcts.ccd.util.ClientContextUtil; import uk.gov.hmcts.ccd.v2.V2; import uk.gov.hmcts.ccd.v2.external.resource.DocumentsResource; -@ActiveProfiles("test") -@AutoConfigureWireMock(port = 0) -@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) -@TestPropertySource(locations = "classpath:test.properties") -public class DocumentControllerITest { +@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_CLASS) +public class DocumentControllerITest extends WireMockBaseTest { private static final String PRINTABLE_URL = "http://remote_host/print/cases/1565620330684549?jwt=test"; private static final String CASE_ID = "1504259907353529"; private static final String REQUEST_ID = "request-id"; private static final String REQUEST_ID_VALUE = "1234567898765432"; - @Value("${wiremock.server.port}") - private Integer wiremockPort; - - @Mock - protected SecurityContext securityContext; - - @Mock - protected Authentication authentication; - - @Inject - protected WireMockServer wireMockServer; - - @Inject - protected UIDService uidService; - - @Inject - protected CacheManager cacheManager; - @Inject private WebApplicationContext wac; @@ -110,19 +67,7 @@ public class DocumentControllerITest { protected DataSource db; private MockMvc mockMvc; - private String wiremockUrl; protected static final ObjectMapper mapper = new ObjectMapper(); - public static final JSONObject responseJson1 = new JSONObject(""" - { - "user_task": { - "task_data": { - "task_id": "0001", - "task_name": "Task 1 - description 1" - }, - "complete_task": "false" - } - } - """); private static final String caseTypeResponseString = """ {\n \"id\": \"TestAddressBookCase\",\n @@ -173,47 +118,15 @@ public class DocumentControllerITest { @BeforeEach public void setUp() throws ScriptException, SQLException { - clearDownData(); - doReturn(authentication).when(securityContext).getAuthentication(); - SecurityContextHolder.setContext(securityContext); MockUtils.setSecurityAuthorities(authentication, MockUtils.ROLE_CASEWORKER_PUBLIC); mockMvc = MockMvcBuilders.webAppContextSetup(wac).addFilters(customHeadersFilter).build(); CUSTOM_CONTEXT = applicationParams.getCallbackPassthruHeaderContexts().get(0); mapper.registerModule(new Jackson2HalModule()); - wiremockUrl = "http://localhost:" + wiremockPort; - ReflectionTestUtils.setField(applicationParams, "caseDefinitionHost", wiremockUrl); - - reset(uidService); - when(uidService.validateUID(anyString())).thenCallRealMethod(); - when(uidService.checkSum(anyString())).thenCallRealMethod(); - when(uidService.checkSum(anyString(), anyBoolean())).thenCallRealMethod(); - - ScriptUtils.executeSqlScript(db.getConnection(), new ClassPathResource("sql/insert_cases.sql")); - } - - @AfterEach - public void clearDownData() { - JdbcTemplate jdbcTemplate = new JdbcTemplate(db); - List tables = determineTables(jdbcTemplate); - List sequences = determineSequences(jdbcTemplate); - - String truncateTablesQuery = - "START TRANSACTION;\n" - + tables.stream() - .map(record -> String.format("TRUNCATE TABLE %s CASCADE;", record)) - .collect(Collectors.joining("\n")) - + "\nCOMMIT;"; - jdbcTemplate.execute(truncateTablesQuery); - - sequences.forEach(sequence -> jdbcTemplate.execute("ALTER SEQUENCE " + sequence + " RESTART WITH 1")); - - cacheManager.getCacheNames().forEach( - cacheName -> Objects.requireNonNull(cacheManager.getCache(cacheName)).clear()); } @Test - // @Sql(executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD, scripts = {"classpath:sql/insert_cases.sql"}) + @Sql(executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD, scripts = {"classpath:sql/insert_cases.sql"}) public void shouldReturn200WhenGetValidCaseDocuments() throws Exception { stubFor(WireMock @@ -224,11 +137,11 @@ public void shouldReturn200WhenGetValidCaseDocuments() throws Exception { final MvcResult result = mockMvc .perform( - get(wiremockUrl + "/cases/" + CASE_ID + "/documents") + get(hostUrl + "/cases/" + CASE_ID + "/documents") .contentType(MediaType.APPLICATION_JSON) - .header("Accept", V2.MediaType.CASE_DOCUMENTS) + .header("Accept", V2.MediaType.CASE_DOCUMENTS) .header(REQUEST_ID, REQUEST_ID_VALUE) - .header(CUSTOM_CONTEXT, ClientContextUtil.encodeToBase64(responseJson1.toString())) + .header(CUSTOM_CONTEXT, ClientContextUtil.encodeToBase64(new JSONObject(responseJson1).toString())) .header("experimental", true)) .andExpect(status().is(200)) .andReturn(); @@ -239,11 +152,11 @@ public void shouldReturn200WhenGetValidCaseDocuments() throws Exception { Optional self = documentsResource.getLink("self"); assertTrue(result.getResponse().getHeaderNames().contains(CUSTOM_CONTEXT)); - assertEquals(responseJson1.toString(), + assertEquals(new JSONObject(responseJson1).toString(), ClientContextUtil.decodeFromBase64(result.getResponse().getHeader(CUSTOM_CONTEXT))); assertAll( () -> assertThat(self.get().getHref(), - is(wiremockUrl + "/cases/" + CASE_ID + "/documents")), + is(hostUrl + "/cases/" + CASE_ID + "/documents")), () -> assertThat(documentResources, hasItems(allOf(hasProperty("name", is("Claimant ID")), hasProperty("description", is("Document identifying identity")), @@ -256,28 +169,4 @@ public void shouldReturn200WhenGetValidCaseDocuments() throws Exception { hasProperty("url", is(PRINTABLE_URL)))))); } - public void stubFor(MappingBuilder mappingBuilder) { - wireMockServer.stubFor(mappingBuilder); - } - - private List determineTables(JdbcTemplate jdbcTemplate) { - return jdbcTemplate.queryForList("SELECT * FROM pg_catalog.pg_tables").stream() - .filter(tableInfo -> tableInfo.get("schemaname").equals("public")) - .map(tableInfo -> (String)tableInfo.get("tablename")) - .filter(DocumentControllerITest::notFlyaway) - .collect(Collectors.toList()); - } - - private static boolean notFlyaway(String tableName) { - return !tableName.equals("flyway_schema_history"); - } - - private List determineSequences(JdbcTemplate jdbcTemplate) { - final String sequenceNameKey = "relname"; - String query = "SELECT c.relname FROM pg_class c WHERE c.relkind = 'S'"; - return jdbcTemplate.queryForList(query).stream() - .map(sequenceInfo -> (String) sequenceInfo.get(sequenceNameKey)) - .collect(Collectors.toList()); - } - } diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/StartEventControllerCaseRolesIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/StartEventControllerCaseRolesIT.java index 6203142037..04bdfe37cf 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/StartEventControllerCaseRolesIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/StartEventControllerCaseRolesIT.java @@ -5,8 +5,8 @@ import com.github.tomakehurst.wiremock.client.WireMock; import org.hamcrest.FeatureMatcher; import org.hamcrest.Matcher; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; @@ -62,7 +62,7 @@ public class StartEventControllerCaseRolesIT extends WireMockBaseTest { public StartEventControllerCaseRolesIT() throws IOException { } - @Before + @BeforeEach public void setUp() throws IOException { CALLBACK_DATA = mapper.readTree(CALLBACK_DATA_JSON_STRING); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/StartEventControllerIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/StartEventControllerIT.java index c7373b78d0..5165bffe60 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/StartEventControllerIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/StartEventControllerIT.java @@ -1,9 +1,11 @@ package uk.gov.hmcts.ccd.v2.external.controller; import com.fasterxml.jackson.databind.DeserializationFeature; + +import org.json.JSONException; import org.json.JSONObject; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; import org.springframework.test.context.jdbc.Sql; import org.springframework.test.web.servlet.MockMvc; @@ -27,7 +29,7 @@ public class StartEventControllerIT extends WireMockBaseTest { - private static final JSONObject responseJson1 = new JSONObject(""" + private static final String responseJsonString1 = """ { "user_task": { "task_data": { @@ -37,8 +39,8 @@ public class StartEventControllerIT extends WireMockBaseTest { "complete_task": "false" } } - """); - private static final JSONObject responseJson2 = new JSONObject(""" + """; + private static final String responseJsonString2 = """ { "user_task": { "task_data": { @@ -48,7 +50,15 @@ public class StartEventControllerIT extends WireMockBaseTest { "complete_task": "false" } } - """); + """; + private static final String jsonObjectString = """ + { + "json": "anyData" + } + """; + private static JSONObject jsonObject; + private static JSONObject responseJsonObject1; + private static JSONObject responseJsonObject2; @Inject private WebApplicationContext wac; @@ -57,14 +67,11 @@ public class StartEventControllerIT extends WireMockBaseTest { private MockMvc mockMvc; - private final JSONObject jsonObject = new JSONObject(""" - { - json:anyData - } - """); - - @Before - public void setUp() { + @BeforeEach + public void setUp() throws JSONException { + jsonObject = new JSONObject(jsonObjectString); + responseJsonObject1 = new JSONObject(responseJsonString1); + responseJsonObject2 = new JSONObject(responseJsonString2); MockUtils.setSecurityAuthorities(authentication, MockUtils.ROLE_CASEWORKER_PUBLIC); mockMvc = MockMvcBuilders.webAppContextSetup(wac).addFilters(customHeadersFilter).build(); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); @@ -94,15 +101,15 @@ public void shouldReturnCustomHeaderFromAttribute() throws Exception { HttpHeaders headers = new HttpHeaders(); headers.add(AUTHORIZATION, "Bearer user1"); headers.add(V2.EXPERIMENTAL_HEADER, "true"); - headers.add(customContext, responseJson1.toString()); + headers.add(customContext, responseJsonObject1.toString()); mockMvc.perform(MockMvcRequestBuilders.get( "/case-types/TestAddressBookCreatorCase/event-triggers/NO_PRE_STATES_EVENT") - .requestAttr(customContext, responseJson2) + .requestAttr(customContext, responseJsonObject2) .headers(headers) ) .andExpect(MockMvcResultMatchers.status().isOk()) - .andExpect(MockMvcResultMatchers.header().string(customContext, responseJson2.toString())); + .andExpect(MockMvcResultMatchers.header().string(customContext, responseJsonObject2.toString())); } @Test diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/TestingSupportControllerTestIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/TestingSupportControllerTestIT.java index 95803071ec..b1d078c84c 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/TestingSupportControllerTestIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/TestingSupportControllerTestIT.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.v2.external.controller; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.test.context.jdbc.Sql; import org.springframework.test.web.servlet.MockMvc; @@ -38,7 +38,7 @@ public class TestingSupportControllerTestIT extends WireMockBaseTest { private MockMvc mockMvc; - @Before + @BeforeEach public void setUp() { doReturn(authentication).when(securityContext).getAuthentication(); SecurityContextHolder.setContext(securityContext); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerCaseRolesIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerCaseRolesIT.java index f4384fe4b7..f5d29685f7 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerCaseRolesIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerCaseRolesIT.java @@ -4,8 +4,8 @@ import com.github.tomakehurst.wiremock.client.WireMock; import com.google.common.collect.Lists; import org.apache.commons.lang3.RandomStringUtils; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; import org.springframework.http.HttpHeaders; import org.springframework.jdbc.core.JdbcTemplate; @@ -59,7 +59,7 @@ public class UICaseControllerCaseRolesIT extends WireMockBaseTest { private JdbcTemplate template; - @Before + @BeforeEach public void setUp() { MockUtils.setSecurityAuthorities(RandomStringUtils.randomAlphanumeric(10), authentication, MockUtils.ROLE_CASEWORKER_PUBLIC); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerDCPIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerDCPIT.java index 37a70b55a6..84a5581d13 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerDCPIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerDCPIT.java @@ -1,8 +1,8 @@ package uk.gov.hmcts.ccd.v2.internal.controller; import com.fasterxml.jackson.databind.DeserializationFeature; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.http.MediaType; @@ -68,7 +68,7 @@ public class UICaseControllerDCPIT extends WireMockBaseTest { private JdbcTemplate template; - @Before + @BeforeEach public void setUp() { MockitoAnnotations.openMocks(this); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerGetCaseCallbackIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerGetCaseCallbackIT.java index 1dc562f018..7e55d04712 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerGetCaseCallbackIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerGetCaseCallbackIT.java @@ -3,8 +3,8 @@ import com.fasterxml.jackson.databind.DeserializationFeature; import com.github.tomakehurst.wiremock.client.WireMock; import org.apache.commons.lang3.RandomStringUtils; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; import org.springframework.test.context.jdbc.Sql; import org.springframework.test.web.servlet.MockMvc; @@ -49,7 +49,7 @@ public class UICaseControllerGetCaseCallbackIT extends WireMockBaseTest { HttpHeaders headers = new HttpHeaders(); - @Before + @BeforeEach public void setUp() throws Exception { MockUtils.setSecurityAuthorities(RandomStringUtils.randomAlphanumeric(10), authentication, MockUtils.ROLE_CASEWORKER_PUBLIC); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDefinitionControllerIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDefinitionControllerIT.java index d7f3bfb7b8..3da7ec83a7 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDefinitionControllerIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIDefinitionControllerIT.java @@ -1,8 +1,8 @@ package uk.gov.hmcts.ccd.v2.internal.controller; import com.fasterxml.jackson.databind.DeserializationFeature; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.http.MediaType; import org.springframework.test.context.jdbc.Sql; import org.springframework.test.web.servlet.MockMvc; @@ -31,7 +31,7 @@ public class UIDefinitionControllerIT extends WireMockBaseTest { private MockMvc mockMvc; - @Before + @BeforeEach public void setUp() { MockUtils.setSecurityAuthorities(authentication, MockUtils.ROLE_CASEWORKER_PUBLIC); mockMvc = MockMvcBuilders.webAppContextSetup(wac).build(); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartEventControllerCaseRolesIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartEventControllerCaseRolesIT.java index 74e3310142..6c90161270 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartEventControllerCaseRolesIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartEventControllerCaseRolesIT.java @@ -1,7 +1,7 @@ package uk.gov.hmcts.ccd.v2.internal.controller; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.http.HttpHeaders; import org.springframework.test.context.jdbc.Sql; import org.springframework.test.web.servlet.MockMvc; @@ -42,7 +42,7 @@ public class UIStartEventControllerCaseRolesIT extends WireMockBaseTest { private WebApplicationContext wac; private MockMvc mockMvc; - @Before + @BeforeEach public void setUp() { mockMvc = MockMvcBuilders.webAppContextSetup(wac).build(); } diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartTriggerControllerDCPIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartTriggerControllerDCPIT.java index 0041d2a7b5..89d3898265 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartTriggerControllerDCPIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIStartTriggerControllerDCPIT.java @@ -1,8 +1,8 @@ package uk.gov.hmcts.ccd.v2.internal.controller; import com.fasterxml.jackson.databind.DeserializationFeature; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.http.MediaType; @@ -68,7 +68,7 @@ public class UIStartTriggerControllerDCPIT extends WireMockBaseTest { private JdbcTemplate template; - @Before + @BeforeEach public void setUp() { MockitoAnnotations.openMocks(this); diff --git a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIUserProfileControllerIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIUserProfileControllerIT.java index 54fd346beb..b4d4ff0e64 100644 --- a/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIUserProfileControllerIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UIUserProfileControllerIT.java @@ -2,8 +2,8 @@ import com.fasterxml.jackson.databind.DeserializationFeature; import com.github.tomakehurst.wiremock.client.WireMock; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.http.MediaType; import org.springframework.test.context.jdbc.Sql; import org.springframework.test.web.servlet.MockMvc; @@ -44,7 +44,7 @@ public class UIUserProfileControllerIT extends WireMockBaseTest { private MockMvc mockMvc; - @Before + @BeforeEach public void setUp() { MockUtils.setSecurityAuthorities(authentication, MockUtils.ROLE_CASEWORKER_PUBLIC); mockMvc = MockMvcBuilders.webAppContextSetup(wac).build(); diff --git a/src/test/java/uk/gov/hmcts/ccd/validator/CaseTypeIdValidatorTest.java b/src/test/java/uk/gov/hmcts/ccd/validator/CaseTypeIdValidatorTest.java index 0956fc342b..fc112d817e 100644 --- a/src/test/java/uk/gov/hmcts/ccd/validator/CaseTypeIdValidatorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/validator/CaseTypeIdValidatorTest.java @@ -1,6 +1,6 @@ package uk.gov.hmcts.ccd.validator; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.mockito.Mock; From d18c3e1a2af8e629e00ae69e7e5da21b57f59e5a Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Thu, 3 Apr 2025 16:01:50 +0100 Subject: [PATCH 16/42] Swap to pact broker url --- .../v2/external/controller/CasesControllerProviderTest.java | 6 ++---- .../caseassigned/CaseAssignedUserRolesProviderTest.java | 5 ++--- .../reform/ccd/pactprovider/cases/CasesProviderTest.java | 4 +--- src/contractTest/resources/application.properties | 1 + 4 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/CasesControllerProviderTest.java b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/CasesControllerProviderTest.java index d1d39f93cb..2dc3114d46 100644 --- a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/CasesControllerProviderTest.java +++ b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/CasesControllerProviderTest.java @@ -39,10 +39,8 @@ @ExtendWith(SpringExtension.class) @Provider("ccdDataStoreAPI_Cases") -@PactBroker(scheme = "${PACT_BROKER_SCHEME:http}", - host = "${PACT_BROKER_URL:localhost}", - port = "${PACT_BROKER_PORT:80}", consumerVersionSelectors = { - @VersionSelector(tag = "master")}) +@PactBroker(url = "${PACT_BROKER_FULL_URL:http://localhost:80}", + consumerVersionSelectors = {@VersionSelector(tag = "master")}) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT, properties = { "server.port=8123", "spring.application.name=PACT_TEST", "ccd.document.url.pattern=${CCD_DOCUMENT_URL_PATTERN:https?://(((?:api-gateway.preprod.dm.reform.hmcts.net|" diff --git a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTest.java b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTest.java index 6267ab040f..bcdf413ce7 100644 --- a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTest.java +++ b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTest.java @@ -32,9 +32,8 @@ import static org.mockito.Mockito.when; @Provider("ccdDataStoreAPI_caseAssignedUserRoles") -@PactBroker(scheme = "${PACT_BROKER_SCHEME:http}", - host = "${PACT_BROKER_URL:localhost}", port = "${PACT_BROKER_PORT:80}", consumerVersionSelectors = { - @VersionSelector(tag = "master")}) +@PactBroker(url = "${PACT_BROKER_FULL_URL:http://localhost:80}", + consumerVersionSelectors = {@VersionSelector(tag = "master")}) @TestPropertySource(locations = "/application.properties") @WebMvcTest({CaseAssignedUserRolesController.class}) @AutoConfigureMockMvc(addFilters = false) diff --git a/src/contractTest/java/uk/gov/hmcts/reform/ccd/pactprovider/cases/CasesProviderTest.java b/src/contractTest/java/uk/gov/hmcts/reform/ccd/pactprovider/cases/CasesProviderTest.java index 455fa2490a..f91b747d23 100644 --- a/src/contractTest/java/uk/gov/hmcts/reform/ccd/pactprovider/cases/CasesProviderTest.java +++ b/src/contractTest/java/uk/gov/hmcts/reform/ccd/pactprovider/cases/CasesProviderTest.java @@ -37,9 +37,7 @@ import static org.mockito.Mockito.when; @Provider("ccd_data_store_api_cases") -@PactBroker( - host = "${PACT_BROKER_URL:localhost}", - port = "${PACT_BROKER_PORT:9292}", +@PactBroker(url = "${PACT_BROKER_FULL_URL:http://localhost:80}", consumerVersionSelectors = {@VersionSelector(tag = "master")}) @IgnoreNoPactsToVerify @ExtendWith(SpringExtension.class) diff --git a/src/contractTest/resources/application.properties b/src/contractTest/resources/application.properties index 70d5cd89f4..24b9a22ff0 100644 --- a/src/contractTest/resources/application.properties +++ b/src/contractTest/resources/application.properties @@ -247,6 +247,7 @@ ccd.access-control.citizen-roles=${DATA_STORE_CITIZEN_ROLES:citizen,letter-holde ccd.access-control.caseworker.role.regex=${CASEWORKER_ROLE_REGEX:caseworker.+} ccd.access-control.restricted-roles=${DATA_STORE_RESTRICTED_ROLES:hmcts-admin,hmcts-ctsc,hmcts-judiciary,hmcts-legal-operations} +pact.broker.url=${PACT_BROKER_FULL_URL:http://localhost:80} pact.broker.scheme=${PACT_BROKER_SCHEME:http} pact.broker.baseUrl=${PACT_BROKER_URL:localhost} pact.broker.port=${PACT_BROKER_PORT:80} From 5076da61658e1d825f0eba3bca8d1a58e251bd98 Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Thu, 3 Apr 2025 17:37:38 +0100 Subject: [PATCH 17/42] tweak health endpoint properties --- src/contractTest/resources/application.properties | 6 ++++++ src/main/resources/application.properties | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/contractTest/resources/application.properties b/src/contractTest/resources/application.properties index 24b9a22ff0..da6e8131b4 100644 --- a/src/contractTest/resources/application.properties +++ b/src/contractTest/resources/application.properties @@ -128,9 +128,15 @@ management.endpoint.health.cache.time-to-live=1000ms # Enable default health indicators management.health.defaults.enabled=true +# Enable case doc am health check +management.health.case-document-am-api.enabled=true + # Enable database health check management.health.db.enabled=true +# Disable database health check +management.health.ssl.enabled=false + # Enable disk space health check management.health.diskspace.enabled=true diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 29297d64b9..5412c5cd8a 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -135,11 +135,14 @@ management.endpoint.health.cache.time-to-live=1000ms management.health.defaults.enabled=true # Enable case doc am health check -management.health.case-document-am-api.enabled=true +management.health.case-document-am-api.enabled=true # Enable database health check management.health.db.enabled=true +# Disable database health check +management.health.ssl.enabled=false + # Enable disk space health check management.health.diskspace.enabled=true From 7b51ff5113151a7ba56d0ae908501da1e77059f7 Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Fri, 4 Apr 2025 13:35:07 +0100 Subject: [PATCH 18/42] Try and fix caseDocumentManagement missing --- build.gradle | 2 +- src/main/java/uk/gov/hmcts/ccd/CoreCaseDataApplication.java | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index 2514d1b1af..580f726cf3 100644 --- a/build.gradle +++ b/build.gradle @@ -275,7 +275,7 @@ dependencies { testImplementation group: 'org.openid4java', name: 'openid4java', version: '1.0.0' // for sonar analysis testImplementation group: 'com.github.hmcts', name: 'ccd-test-definitions', version: '7.24.2' testImplementation group: 'com.github.hmcts', name: 'befta-fw', version: '9.2.1' - testImplementation group: 'com.github.hmcts', name: 'fortify-client', version: '1.4.6' + testImplementation group: 'com.github.hmcts', name: 'fortify-client', version: '1.4.6', classifier: 'all' contractTestImplementation group: 'au.com.dius.pact.provider', name: 'junit5', version: pactProviderVersion contractTestImplementation group: 'au.com.dius.pact.provider', name: 'spring', version: pactProviderVersion diff --git a/src/main/java/uk/gov/hmcts/ccd/CoreCaseDataApplication.java b/src/main/java/uk/gov/hmcts/ccd/CoreCaseDataApplication.java index 07c89239c3..b6b0c56ef9 100644 --- a/src/main/java/uk/gov/hmcts/ccd/CoreCaseDataApplication.java +++ b/src/main/java/uk/gov/hmcts/ccd/CoreCaseDataApplication.java @@ -15,11 +15,12 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableRetry @ComponentScan({ - "uk.gov.hmcts.ccd" + "uk.gov.hmcts.ccd", + "uk.gov.hmcts.reform.ccd.document.am" }) @EnableFeignClients(basePackages = { "uk.gov.hmcts.reform.idam", - "uk.gov.hmcts.reform.ccd.document.am.feign" + "uk.gov.hmcts.reform.ccd.document.am" }) @EnableHypermediaSupport(type = { EnableHypermediaSupport.HypermediaType.HAL }) public class CoreCaseDataApplication { From 01f604458985550f7bbe8ea8fa32af32fbc38ba4 Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Fri, 4 Apr 2025 17:07:06 +0100 Subject: [PATCH 19/42] Try tweaking S-544 and S-142 to catch issue --- .../resources/features/F-045 - Grant Access V1/S-544.td.json | 2 +- .../F-142 - Get Linked Case V2 External/S-142.7.td.json | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/aat/resources/features/F-045 - Grant Access V1/S-544.td.json b/src/aat/resources/features/F-045 - Grant Access V1/S-544.td.json index 30d9aee2a2..cb679737c4 100644 --- a/src/aat/resources/features/F-045 - Grant Access V1/S-544.td.json +++ b/src/aat/resources/features/F-045 - Grant Access V1/S-544.td.json @@ -26,6 +26,6 @@ "Content-Type": "[[ANY_STRING_NULLABLE]]", "Vary": "Accept-Encoding" }, - "body": null + "body": "" } } diff --git a/src/aat/resources/features/F-142 - Get Linked Case V2 External/S-142.7.td.json b/src/aat/resources/features/F-142 - Get Linked Case V2 External/S-142.7.td.json index 61c732e8b4..b263a47423 100644 --- a/src/aat/resources/features/F-142 - Get Linked Case V2 External/S-142.7.td.json +++ b/src/aat/resources/features/F-142 - Get Linked Case V2 External/S-142.7.td.json @@ -25,9 +25,6 @@ "expectedResponse": { "_extends_": "Common_404_Response", - "body": { - "message": "No message available", - "path": "/getLinkedCases/" - } + "body": "" } } From 542d159ade9d86956784b24f1963ce7bbb87dede Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Mon, 7 Apr 2025 15:43:41 +0100 Subject: [PATCH 20/42] Fix pact tests --- .../controller/CasesControllerProviderTest.java | 15 +-------------- .../CaseAssignedUserRolesProviderTest.java | 2 ++ 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/CasesControllerProviderTest.java b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/CasesControllerProviderTest.java index c77ad4cab9..821f2b9c2e 100644 --- a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/CasesControllerProviderTest.java +++ b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/CasesControllerProviderTest.java @@ -26,7 +26,6 @@ import uk.gov.hmcts.ccd.WireMockBaseContractTest; import uk.gov.hmcts.ccd.auditlog.AuditService; import uk.gov.hmcts.ccd.data.casedetails.CaseAuditEventRepository; -import uk.gov.hmcts.ccd.data.casedetails.CaseDetailsRepository; import uk.gov.hmcts.ccd.data.casedetails.DefaultCaseDetailsRepository; import uk.gov.hmcts.ccd.data.casedetails.SecurityClassification; import uk.gov.hmcts.ccd.data.casedetails.query.UserAuthorisationSecurity; @@ -141,41 +140,29 @@ public class CasesControllerProviderTest extends WireMockBaseContractTest { CaseDataService caseDataService; @MockitoBean MessageService messageService; - @MockitoBean CaseTypeService caseTypeService; - @MockitoBean CaseAuditEventRepository caseAuditEventRepository; - @MockitoBean CaseDocumentAmApiClient caseDocumentAmApiClient; - @MockitoBean ValidateCaseFieldsOperation validateCaseFieldsOperation; - @MockitoBean SubmitCaseTransaction submitCaseTransaction; - @MockitoBean TimeToLiveService timeToLiveService; - @MockitoBean CasePostStateService casePostStateService; - @MockitoBean CaseLinkService caseLinkService; - @MockitoBean @Qualifier(DefaultCaseDetailsRepository.QUALIFIER) - CaseDetailsRepository caseDetailsRepository; - + DefaultCaseDetailsRepository caseDetailsRepository; @MockitoBean UIDService uidService; - @MockitoBean EventTriggerService eventTriggerService; - @MockitoBean SecurityClassificationServiceImpl securityClassificationService; diff --git a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTest.java b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTest.java index 99025896cd..005b81cf97 100644 --- a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTest.java +++ b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTest.java @@ -17,6 +17,7 @@ import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit.jupiter.SpringExtension; import uk.gov.hmcts.ccd.ApplicationParams; import uk.gov.hmcts.ccd.WireMockBaseContractTest; import uk.gov.hmcts.ccd.data.SecurityUtils; @@ -41,6 +42,7 @@ @ContextConfiguration(classes = {CaseAssignedUserRolesProviderTestContext.class, TestIdamConfiguration.class}) @IgnoreNoPactsToVerify @ActiveProfiles("CASE_ASSIGNED") +@ExtendWith(SpringExtension.class) public class CaseAssignedUserRolesProviderTest extends WireMockBaseContractTest { @Autowired From fdbb64f3f212310dc9ec23e7f7ed5568269e4b5c Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Mon, 7 Apr 2025 16:35:26 +0100 Subject: [PATCH 21/42] Remove autowired applicationParams --- .../caseassigned/CaseAssignedUserRolesProviderTest.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTest.java b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTest.java index 005b81cf97..5ddd96852b 100644 --- a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTest.java +++ b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTest.java @@ -18,7 +18,6 @@ import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit.jupiter.SpringExtension; -import uk.gov.hmcts.ccd.ApplicationParams; import uk.gov.hmcts.ccd.WireMockBaseContractTest; import uk.gov.hmcts.ccd.data.SecurityUtils; import uk.gov.hmcts.ccd.domain.model.std.CaseAssignedUserRole; @@ -45,9 +44,6 @@ @ExtendWith(SpringExtension.class) public class CaseAssignedUserRolesProviderTest extends WireMockBaseContractTest { - @Autowired - ApplicationParams applicationParams; - @Autowired SecurityUtils securityUtils; From 7b69ae98a8059ab7f021f6083b178df34ff00c9e Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Tue, 8 Apr 2025 09:37:28 +0100 Subject: [PATCH 22/42] Mock ApplicationParams in CaseAssignedUserRolesProviderTest --- .../caseassigned/CaseAssignedUserRolesProviderTest.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTest.java b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTest.java index 5ddd96852b..b49241af3e 100644 --- a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTest.java +++ b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTest.java @@ -17,7 +17,10 @@ import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.bean.override.mockito.MockitoBean; import org.springframework.test.context.junit.jupiter.SpringExtension; + +import uk.gov.hmcts.ccd.ApplicationParams; import uk.gov.hmcts.ccd.WireMockBaseContractTest; import uk.gov.hmcts.ccd.data.SecurityUtils; import uk.gov.hmcts.ccd.domain.model.std.CaseAssignedUserRole; @@ -44,6 +47,9 @@ @ExtendWith(SpringExtension.class) public class CaseAssignedUserRolesProviderTest extends WireMockBaseContractTest { + @MockitoBean + ApplicationParams applicationParams; + @Autowired SecurityUtils securityUtils; From 6e2d75ddb031f2fead9648d90a3a651104920a69 Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Tue, 8 Apr 2025 10:10:14 +0100 Subject: [PATCH 23/42] Swap more autowired for mockitobeans --- .../caseassigned/CaseAssignedUserRolesProviderTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTest.java b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTest.java index b49241af3e..d1276dc918 100644 --- a/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTest.java +++ b/src/contractTest/java/uk/gov/hmcts/ccd/v2/external/controller/caseassigned/CaseAssignedUserRolesProviderTest.java @@ -41,22 +41,22 @@ @TestPropertySource(locations = "/application.properties") @WebMvcTest({CaseAssignedUserRolesController.class}) @AutoConfigureMockMvc(addFilters = false) +@ActiveProfiles("CASE_ASSIGNED") @ContextConfiguration(classes = {CaseAssignedUserRolesProviderTestContext.class, TestIdamConfiguration.class}) @IgnoreNoPactsToVerify -@ActiveProfiles("CASE_ASSIGNED") @ExtendWith(SpringExtension.class) public class CaseAssignedUserRolesProviderTest extends WireMockBaseContractTest { @MockitoBean ApplicationParams applicationParams; - @Autowired + @MockitoBean SecurityUtils securityUtils; @Autowired CaseAssignedUserRolesController caseAssignedUserRolesController; - @Autowired + @MockitoBean CaseAccessOperation caseAccessOperation; @TestTemplate From 6a1e88f88131076e6cbe0bb79d5d08bbcc5929ed Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Tue, 8 Apr 2025 13:35:27 +0100 Subject: [PATCH 24/42] Rollback jackson --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 3a9f1c2028..b4465ee559 100644 --- a/build.gradle +++ b/build.gradle @@ -24,7 +24,7 @@ ext { set('spring-framework.version', '6.2.1') set('spring-security.version', '6.4.2') set('log4j2.version', '2.24.3') - set('jackson.version', '2.17.0') + set('jackson.version', '2.16.0') set('snakeyaml.version', '2.2') junit = '5.11.4' junitPlatform = '1.11.4' From e33b6db5ccd9634f62ecd416cd32c326228e27a4 Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Tue, 8 Apr 2025 17:09:08 +0100 Subject: [PATCH 25/42] Undo S-544 & S-142 changes and fix spybean --- .../features/F-045 - Grant Access V1/S-544.td.json | 2 +- .../F-142 - Get Linked Case V2 External/S-142.7.td.json | 5 ++++- .../uk/gov/hmcts/ccd/endpoint/ui/ExternalUserRoleIT.java | 8 ++++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/aat/resources/features/F-045 - Grant Access V1/S-544.td.json b/src/aat/resources/features/F-045 - Grant Access V1/S-544.td.json index cb679737c4..30d9aee2a2 100644 --- a/src/aat/resources/features/F-045 - Grant Access V1/S-544.td.json +++ b/src/aat/resources/features/F-045 - Grant Access V1/S-544.td.json @@ -26,6 +26,6 @@ "Content-Type": "[[ANY_STRING_NULLABLE]]", "Vary": "Accept-Encoding" }, - "body": "" + "body": null } } diff --git a/src/aat/resources/features/F-142 - Get Linked Case V2 External/S-142.7.td.json b/src/aat/resources/features/F-142 - Get Linked Case V2 External/S-142.7.td.json index b263a47423..5408cd0f35 100644 --- a/src/aat/resources/features/F-142 - Get Linked Case V2 External/S-142.7.td.json +++ b/src/aat/resources/features/F-142 - Get Linked Case V2 External/S-142.7.td.json @@ -25,6 +25,9 @@ "expectedResponse": { "_extends_": "Common_404_Response", - "body": "" + "body": { + "message": "No message available", + "path": "/getLinkedCases/" + } } } diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/ExternalUserRoleIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/ExternalUserRoleIT.java index 101bc17c99..33db01448d 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/ExternalUserRoleIT.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/ExternalUserRoleIT.java @@ -1,11 +1,12 @@ package uk.gov.hmcts.ccd.endpoint.ui; import com.github.tomakehurst.wiremock.client.WireMock; + import org.junit.Before; import org.junit.Test; -import org.springframework.boot.test.mock.mockito.SpyBean; import org.springframework.http.HttpStatus; import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.context.jdbc.Sql; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.setup.MockMvcBuilders; @@ -17,14 +18,17 @@ import uk.gov.hmcts.ccd.domain.model.std.AuditEvent; import javax.inject.Inject; + import java.util.List; import static com.github.tomakehurst.wiremock.client.WireMock.okJson; import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching; + import static org.junit.Assert.assertEquals; import static org.springframework.http.HttpHeaders.AUTHORIZATION; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + import static uk.gov.hmcts.ccd.test.RoleAssignmentsHelper.userRoleAssignmentJson; import static uk.gov.hmcts.ccd.test.RoleAssignmentsHelper.GET_ROLE_ASSIGNMENTS_PREFIX; import static uk.gov.hmcts.ccd.test.RoleAssignmentsHelper.roleAssignmentResponseJson; @@ -41,7 +45,7 @@ public class ExternalUserRoleIT extends WireMockBaseTest { @Inject private WebApplicationContext wac; - @SpyBean + @MockitoSpyBean private AuditRepository auditRepository; private MockMvc mockMvc; private JdbcTemplate template; From 08f255bd87ac5e5d830cb054e34a8b9920450b8f Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Fri, 11 Apr 2025 13:15:23 +0100 Subject: [PATCH 26/42] Try fixing tests again --- .../F-045 - Grant Access V1/S-544.td.json | 3 +-- .../S-142.7.td.json | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/aat/resources/features/F-045 - Grant Access V1/S-544.td.json b/src/aat/resources/features/F-045 - Grant Access V1/S-544.td.json index 30d9aee2a2..95379c3bdc 100644 --- a/src/aat/resources/features/F-045 - Grant Access V1/S-544.td.json +++ b/src/aat/resources/features/F-045 - Grant Access V1/S-544.td.json @@ -25,7 +25,6 @@ "Content-Length": "[[ANYTHING_PRESENT]]", "Content-Type": "[[ANY_STRING_NULLABLE]]", "Vary": "Accept-Encoding" - }, - "body": null + } } } diff --git a/src/aat/resources/features/F-142 - Get Linked Case V2 External/S-142.7.td.json b/src/aat/resources/features/F-142 - Get Linked Case V2 External/S-142.7.td.json index 5408cd0f35..d0a7762f73 100644 --- a/src/aat/resources/features/F-142 - Get Linked Case V2 External/S-142.7.td.json +++ b/src/aat/resources/features/F-142 - Get Linked Case V2 External/S-142.7.td.json @@ -24,10 +24,19 @@ }, "expectedResponse": { - "_extends_": "Common_404_Response", + "_extends_": "Common_Response", + + "responseCode": 404, + "responseMessage": "Not Found", + "headers": { + "_extends_": "Common_404_Response_Headers" + }, "body": { - "message": "No message available", - "path": "/getLinkedCases/" + "type": "", + "title": "", + "detail": "", + "instance": "", + "properties": "" } } } From b5081e486e947962b267248377ab57021acd2d02 Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Fri, 11 Apr 2025 14:50:40 +0100 Subject: [PATCH 27/42] Handle getLinkedCases better and change S-544 expected response fields --- .../features/F-045 - Grant Access V1/S-544.td.json | 9 ++++++++- .../hmcts/ccd/v2/external/controller/CaseController.java | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/aat/resources/features/F-045 - Grant Access V1/S-544.td.json b/src/aat/resources/features/F-045 - Grant Access V1/S-544.td.json index 95379c3bdc..0aa44015b7 100644 --- a/src/aat/resources/features/F-045 - Grant Access V1/S-544.td.json +++ b/src/aat/resources/features/F-045 - Grant Access V1/S-544.td.json @@ -20,11 +20,18 @@ }, "expectedResponse": { - "_extends_": "Common_400_Response", "headers": { + "_extends_": "Common_400_Response_Headers", "Content-Length": "[[ANYTHING_PRESENT]]", "Content-Type": "[[ANY_STRING_NULLABLE]]", "Vary": "Accept-Encoding" + }, + "body": { + "type": "", + "title": "", + "detail": "", + "instance": "", + "properties": "" } } } diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseController.java b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseController.java index 7dbe5e7fbf..6ba6f08711 100644 --- a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseController.java +++ b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseController.java @@ -446,7 +446,7 @@ private ResponseEntity getCaseResourceResponseEntity(String caseTy } @GetMapping( - path = "getLinkedCases/{caseReference}", + path = {"getLinkedCases/{caseReference}","getLinkedCases"}, produces = MediaType.APPLICATION_JSON_VALUE ) @Operation(summary = "Retrieve Linked Cases") From a5f937850fa3983a1e7fa7d4d750ae38e027e8ba Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Fri, 11 Apr 2025 15:33:21 +0100 Subject: [PATCH 28/42] Try tweaking resonses and endpoint matching --- .../F-045 - Grant Access V1/S-544.td.json | 67 ++++++++++--------- .../external/controller/CaseController.java | 2 +- 2 files changed, 36 insertions(+), 33 deletions(-) diff --git a/src/aat/resources/features/F-045 - Grant Access V1/S-544.td.json b/src/aat/resources/features/F-045 - Grant Access V1/S-544.td.json index 0aa44015b7..7956420c22 100644 --- a/src/aat/resources/features/F-045 - Grant Access V1/S-544.td.json +++ b/src/aat/resources/features/F-045 - Grant Access V1/S-544.td.json @@ -1,37 +1,40 @@ { - "_guid_": "S-544", - "_extends_": "F-045_Test_Data_Base", - "title": "must return negative response when request body doesn't provide a mandatory field", + "_guid_": "S-544", + "_extends_": "F-045_Test_Data_Base", + "title": "must return negative response when request body doesn't provide a mandatory field", - "specs": [ - "an active profile in CCD", - "testUser - with an active profile in CCD", - "does not provide a mandatory field for the operation", - "has the 400 return code" - ], + "specs": [ + "an active profile in CCD", + "testUser - with an active profile in CCD", + "does not provide a mandatory field for the operation", + "has the 400 return code" + ], - "request": { - "pathVariables": { - "cid": "157375164884070312" - }, - "body": { - "id_wrong_filed_name": "Test User" - } - }, + "request": { + "pathVariables": { + "cid": "157375164884070312" + }, + "body": { + "id_wrong_filed_name": "Test User" + } + }, - "expectedResponse": { - "headers": { - "_extends_": "Common_400_Response_Headers", - "Content-Length": "[[ANYTHING_PRESENT]]", - "Content-Type": "[[ANY_STRING_NULLABLE]]", - "Vary": "Accept-Encoding" - }, - "body": { - "type": "", - "title": "", - "detail": "", - "instance": "", - "properties": "" - } - } + "expectedResponse": { + "_extends_": "Common_Response", + "responseCode": 400, + "responseMessage": "Bad Request", + "headers": { + "_extends_": "Common_400_Response_Headers", + "Content-Length": "[[ANYTHING_PRESENT]]", + "Content-Type": "[[ANY_STRING_NULLABLE]]", + "Vary": "Accept-Encoding" + }, + "body": { + "type": "[[ANYTHING_PRESENT]]", + "title": "Bad Request", + "detail": "Failed to read request", + "instance": "[[ANYTHING_PRESENT]]", + "properties": "[[ANY_STRING_NULLABLE]]" + } + } } diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseController.java b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseController.java index 6ba6f08711..e6fafd511e 100644 --- a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseController.java +++ b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseController.java @@ -446,7 +446,7 @@ private ResponseEntity getCaseResourceResponseEntity(String caseTy } @GetMapping( - path = {"getLinkedCases/{caseReference}","getLinkedCases"}, + path = {"getLinkedCases/{caseReference}","getLinkedCases/"}, produces = MediaType.APPLICATION_JSON_VALUE ) @Operation(summary = "Retrieve Linked Cases") From 63dc59eef2687ad4c26c62f6a838ef37a3ac7726 Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Fri, 11 Apr 2025 16:09:43 +0100 Subject: [PATCH 29/42] Update to add status to expectedResponse.body --- src/aat/resources/features/F-045 - Grant Access V1/S-544.td.json | 1 + .../features/F-142 - Get Linked Case V2 External/S-142.7.td.json | 1 + 2 files changed, 2 insertions(+) diff --git a/src/aat/resources/features/F-045 - Grant Access V1/S-544.td.json b/src/aat/resources/features/F-045 - Grant Access V1/S-544.td.json index 7956420c22..dd9fc1f406 100644 --- a/src/aat/resources/features/F-045 - Grant Access V1/S-544.td.json +++ b/src/aat/resources/features/F-045 - Grant Access V1/S-544.td.json @@ -30,6 +30,7 @@ "Vary": "Accept-Encoding" }, "body": { + "status": 400, "type": "[[ANYTHING_PRESENT]]", "title": "Bad Request", "detail": "Failed to read request", diff --git a/src/aat/resources/features/F-142 - Get Linked Case V2 External/S-142.7.td.json b/src/aat/resources/features/F-142 - Get Linked Case V2 External/S-142.7.td.json index d0a7762f73..95cf803496 100644 --- a/src/aat/resources/features/F-142 - Get Linked Case V2 External/S-142.7.td.json +++ b/src/aat/resources/features/F-142 - Get Linked Case V2 External/S-142.7.td.json @@ -32,6 +32,7 @@ "_extends_": "Common_404_Response_Headers" }, "body": { + "status": 404, "type": "", "title": "", "detail": "", From a2f21a807aa3e944efb5fe7dd443c8018f80a93a Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Fri, 11 Apr 2025 17:05:11 +0100 Subject: [PATCH 30/42] Undo get matcher change --- .../uk/gov/hmcts/ccd/v2/external/controller/CaseController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseController.java b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseController.java index e6fafd511e..7dbe5e7fbf 100644 --- a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseController.java +++ b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/CaseController.java @@ -446,7 +446,7 @@ private ResponseEntity getCaseResourceResponseEntity(String caseTy } @GetMapping( - path = {"getLinkedCases/{caseReference}","getLinkedCases/"}, + path = "getLinkedCases/{caseReference}", produces = MediaType.APPLICATION_JSON_VALUE ) @Operation(summary = "Retrieve Linked Cases") From 4aa98c06466a872f3ad90f046a511e4e7b83dc60 Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Fri, 11 Apr 2025 17:40:19 +0100 Subject: [PATCH 31/42] Fix final functional test --- .../S-142.7.td.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/aat/resources/features/F-142 - Get Linked Case V2 External/S-142.7.td.json b/src/aat/resources/features/F-142 - Get Linked Case V2 External/S-142.7.td.json index 95cf803496..8c807d2202 100644 --- a/src/aat/resources/features/F-142 - Get Linked Case V2 External/S-142.7.td.json +++ b/src/aat/resources/features/F-142 - Get Linked Case V2 External/S-142.7.td.json @@ -33,11 +33,11 @@ }, "body": { "status": 404, - "type": "", - "title": "", - "detail": "", - "instance": "", - "properties": "" + "type": "[[ANYTHING_PRESENT]]", + "title": "Not Found", + "detail": "[[ANYTHING_PRESENT]]", + "instance": "[[ANYTHING_PRESENT]]", + "properties": "[[ANY_STRING_NULLABLE]]" } } } From f7133087f718e753f38b83d00002dfad4b40bd43 Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Mon, 14 Apr 2025 13:05:17 +0100 Subject: [PATCH 32/42] Whitespace change to rebuild --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index b4465ee559..504c57e21a 100644 --- a/build.gradle +++ b/build.gradle @@ -367,8 +367,8 @@ pitest { detectInlinedCode = true } -project.tasks['pitest'].group = "Verification" +project.tasks['pitest'].group = "Verification" task projectVersion { description 'Prints the version of this project; used for publishing JAR file' From 50d00974c833e6c8f4bf1653bc60507a33fa934e Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Tue, 15 Apr 2025 15:28:47 +0100 Subject: [PATCH 33/42] Ignore tests with no steps F-1002 & F-1003 --- .../F-1002 - Case Update With Documents/F-1002.feature | 6 +++--- .../F-1003 - Case Creation With Documents/F-1003.feature | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/aat/resources/features/F-1002 - Case Update With Documents/F-1002.feature b/src/aat/resources/features/F-1002 - Case Update With Documents/F-1002.feature index 531d172b41..1359ca4700 100644 --- a/src/aat/resources/features/F-1002 - Case Update With Documents/F-1002.feature +++ b/src/aat/resources/features/F-1002 - Case Update With Documents/F-1002.feature @@ -120,11 +120,11 @@ Feature: F-1002: Submit Event for an Existing Case Then a negative response is received, And the response has all the details as expected. - @S-1019 + @S-1019 @Ignore Scenario: generic scenario for Unauthorised - @S-1020 + @S-1020 @Ignore Scenario: generic scenario for Forbidden - @S-1021 + @S-1021 @Ignore Scenario: generic scenario for Unsupported Media Type diff --git a/src/aat/resources/features/F-1003 - Case Creation With Documents/F-1003.feature b/src/aat/resources/features/F-1003 - Case Creation With Documents/F-1003.feature index 409380ba10..224a9d9563 100644 --- a/src/aat/resources/features/F-1003 - Case Creation With Documents/F-1003.feature +++ b/src/aat/resources/features/F-1003 - Case Creation With Documents/F-1003.feature @@ -108,13 +108,13 @@ Feature: F-1003: Submit Case Creation Then a negative response is received And the response has all the details as expected - @S-1038 + @S-1038 @Ignore Scenario: generic scenario for Unauthorized - @S-1039 + @S-1039 @Ignore Scenario: generic scenario for Forbidden - @S-1040 + @S-1040 @Ignore Scenario: generic scenario for Unsupported Media Type @S-1041 From 79dc2abf49c637e4f3993bf7313b3e5b3216c7f9 Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Mon, 9 Jun 2025 12:36:50 +0100 Subject: [PATCH 34/42] Bump test def version and ordering issue on tests --- build.gradle | 2 +- .../features/F-026 - Get Cases V1 Internal/S-587.td.json | 3 +++ .../features/F-026 - Get Cases V1 Internal/S-589.td.json | 3 +++ .../S-121.1.td.json | 3 +++ .../S-121.2.td.json | 3 +++ .../S-121.3.td.json | 3 +++ .../S-121.5.td.json | 3 +++ .../features/F-123 - Retain Hidden Value/S-123.2.td.json | 2 ++ .../features/F-123 - Retain Hidden Value/S-123.3.td.json | 3 +++ .../F-140 - CategoriesAndDocument endpoint/S-140.3.td.json | 3 +++ .../F-140 - CategoriesAndDocument endpoint/S-140.4.td.json | 3 +++ .../F-140 - CategoriesAndDocument endpoint/S-140.5.td.json | 3 +++ .../F-140 - CategoriesAndDocument endpoint/S-140.6.td.json | 3 +++ .../F-140 - CategoriesAndDocument endpoint/S-140.7.td.json | 6 +++++- .../F-140 - CategoriesAndDocument endpoint/S-140.8.td.json | 3 +++ .../features/F-141 - documentData endpoint/S-141.10.td.json | 2 ++ .../features/F-141 - documentData endpoint/S-141.11.td.json | 2 ++ .../features/F-141 - documentData endpoint/S-141.12.td.json | 2 ++ .../features/F-141 - documentData endpoint/S-141.8.td.json | 2 ++ .../features/F-141 - documentData endpoint/S-141.9.td.json | 2 ++ 20 files changed, 54 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 7efdaec31e..61c5a3498c 100644 --- a/build.gradle +++ b/build.gradle @@ -37,7 +37,7 @@ ext { testContainersVersion = '1.20.4' cucumber = '6.6.1' beftaFwVersion = '9.2.3' - ccdTestDefinitionVersion = '7.25.2' + ccdTestDefinitionVersion = '7.25.3' limits = [ 'instruction': 90, 'branch' : 85, diff --git a/src/aat/resources/features/F-026 - Get Cases V1 Internal/S-587.td.json b/src/aat/resources/features/F-026 - Get Cases V1 Internal/S-587.td.json index b9ad921165..448ff461f7 100644 --- a/src/aat/resources/features/F-026 - Get Cases V1 Internal/S-587.td.json +++ b/src/aat/resources/features/F-026 - Get Cases V1 Internal/S-587.td.json @@ -29,6 +29,9 @@ }, "body": { "columns": [ + { + "__ordering__": "UNORDERED" + }, { "_extends_": "SearchResultViewColumnMetadataTrue", "label": "Last State Modified Date", diff --git a/src/aat/resources/features/F-026 - Get Cases V1 Internal/S-589.td.json b/src/aat/resources/features/F-026 - Get Cases V1 Internal/S-589.td.json index 628a6ad23b..e2ce4d5440 100644 --- a/src/aat/resources/features/F-026 - Get Cases V1 Internal/S-589.td.json +++ b/src/aat/resources/features/F-026 - Get Cases V1 Internal/S-589.td.json @@ -33,6 +33,9 @@ }, "body": { "columns": [ + { + "__ordering__": "UNORDERED" + }, { "_extends_": "SearchResultViewColumnMetadataTrue", "label": "Last State Modified Date", diff --git a/src/aat/resources/features/F-121 - Start Event - Complex Fields Display Ordering/S-121.1.td.json b/src/aat/resources/features/F-121 - Start Event - Complex Fields Display Ordering/S-121.1.td.json index d7c7c49457..ff4d92562d 100644 --- a/src/aat/resources/features/F-121 - Start Event - Complex Fields Display Ordering/S-121.1.td.json +++ b/src/aat/resources/features/F-121 - Start Event - Complex Fields Display Ordering/S-121.1.td.json @@ -596,6 +596,9 @@ "label": "First page", "order": 1, "wizard_page_fields": [ + { + "__ordering__": "UNORDERED" + }, { "case_field_id": "Address1", "order": 2, diff --git a/src/aat/resources/features/F-121 - Start Event - Complex Fields Display Ordering/S-121.2.td.json b/src/aat/resources/features/F-121 - Start Event - Complex Fields Display Ordering/S-121.2.td.json index ba6ea4c984..5dabe1ab00 100644 --- a/src/aat/resources/features/F-121 - Start Event - Complex Fields Display Ordering/S-121.2.td.json +++ b/src/aat/resources/features/F-121 - Start Event - Complex Fields Display Ordering/S-121.2.td.json @@ -593,6 +593,9 @@ "label": "First page", "order": 1, "wizard_page_fields": [ + { + "__ordering__": "UNORDERED" + }, { "case_field_id": "Address1", "order": 1, diff --git a/src/aat/resources/features/F-121 - Start Event - Complex Fields Display Ordering/S-121.3.td.json b/src/aat/resources/features/F-121 - Start Event - Complex Fields Display Ordering/S-121.3.td.json index a7db36125b..779857e309 100644 --- a/src/aat/resources/features/F-121 - Start Event - Complex Fields Display Ordering/S-121.3.td.json +++ b/src/aat/resources/features/F-121 - Start Event - Complex Fields Display Ordering/S-121.3.td.json @@ -597,6 +597,9 @@ "label": "First page", "order": 1, "wizard_page_fields": [ + { + "__ordering__": "UNORDERED" + }, { "case_field_id": "Address1", "order": null, diff --git a/src/aat/resources/features/F-121 - Start Event - Complex Fields Display Ordering/S-121.5.td.json b/src/aat/resources/features/F-121 - Start Event - Complex Fields Display Ordering/S-121.5.td.json index 94b53f4f22..e8cdabb22e 100644 --- a/src/aat/resources/features/F-121 - Start Event - Complex Fields Display Ordering/S-121.5.td.json +++ b/src/aat/resources/features/F-121 - Start Event - Complex Fields Display Ordering/S-121.5.td.json @@ -631,6 +631,9 @@ "label": "First page", "order": 1, "wizard_page_fields": [ + { + "__ordering__": "UNORDERED" + }, { "case_field_id": "Address1", "order": null, diff --git a/src/aat/resources/features/F-123 - Retain Hidden Value/S-123.2.td.json b/src/aat/resources/features/F-123 - Retain Hidden Value/S-123.2.td.json index 65373d5b5a..16726860bd 100644 --- a/src/aat/resources/features/F-123 - Retain Hidden Value/S-123.2.td.json +++ b/src/aat/resources/features/F-123 - Retain Hidden Value/S-123.2.td.json @@ -1361,6 +1361,8 @@ "label" : "Retain Hidden Value Page", "order" : 1, "wizard_page_fields" : [ { + "__ordering__": "UNORDERED" + },{ "case_field_id" : "NumberField", "order" : 1, "page_column_no" : null, diff --git a/src/aat/resources/features/F-123 - Retain Hidden Value/S-123.3.td.json b/src/aat/resources/features/F-123 - Retain Hidden Value/S-123.3.td.json index 77810783ce..7fdfa5ae46 100644 --- a/src/aat/resources/features/F-123 - Retain Hidden Value/S-123.3.td.json +++ b/src/aat/resources/features/F-123 - Retain Hidden Value/S-123.3.td.json @@ -988,6 +988,9 @@ "label": "Retain Hidden Value Page", "order": 1, "wizard_page_fields": [ + { + "__ordering__": "UNORDERED" + }, { "case_field_id": "FamilyDetails", "order": 1, diff --git a/src/aat/resources/features/F-140 - CategoriesAndDocument endpoint/S-140.3.td.json b/src/aat/resources/features/F-140 - CategoriesAndDocument endpoint/S-140.3.td.json index c1ceee6b08..0b22a9cac9 100644 --- a/src/aat/resources/features/F-140 - CategoriesAndDocument endpoint/S-140.3.td.json +++ b/src/aat/resources/features/F-140 - CategoriesAndDocument endpoint/S-140.3.td.json @@ -37,6 +37,9 @@ "body" : { "case_version": "[[ANYTHING_PRESENT]]", "categories": [ + { + "__ordering__": "UNORDERED" + }, { "category_id": "CategoryID1", "category_name": "Evidences", diff --git a/src/aat/resources/features/F-140 - CategoriesAndDocument endpoint/S-140.4.td.json b/src/aat/resources/features/F-140 - CategoriesAndDocument endpoint/S-140.4.td.json index 2bf34c767a..721436abbf 100644 --- a/src/aat/resources/features/F-140 - CategoriesAndDocument endpoint/S-140.4.td.json +++ b/src/aat/resources/features/F-140 - CategoriesAndDocument endpoint/S-140.4.td.json @@ -37,6 +37,9 @@ "body" : { "case_version": "[[ANYTHING_PRESENT]]", "categories": [ + { + "__ordering__": "UNORDERED" + }, { "category_id": "CategoryID1", "category_name": "Evidences", diff --git a/src/aat/resources/features/F-140 - CategoriesAndDocument endpoint/S-140.5.td.json b/src/aat/resources/features/F-140 - CategoriesAndDocument endpoint/S-140.5.td.json index d24a10905f..56ed8ab043 100644 --- a/src/aat/resources/features/F-140 - CategoriesAndDocument endpoint/S-140.5.td.json +++ b/src/aat/resources/features/F-140 - CategoriesAndDocument endpoint/S-140.5.td.json @@ -37,6 +37,9 @@ "body" : { "case_version": "[[ANYTHING_PRESENT]]", "categories": [ + { + "__ordering__": "UNORDERED" + }, { "category_id": "CategoryID1", "category_name": "Evidences", diff --git a/src/aat/resources/features/F-140 - CategoriesAndDocument endpoint/S-140.6.td.json b/src/aat/resources/features/F-140 - CategoriesAndDocument endpoint/S-140.6.td.json index 9e666a3346..28297628d2 100644 --- a/src/aat/resources/features/F-140 - CategoriesAndDocument endpoint/S-140.6.td.json +++ b/src/aat/resources/features/F-140 - CategoriesAndDocument endpoint/S-140.6.td.json @@ -37,6 +37,9 @@ "body" : { "case_version": "[[ANYTHING_PRESENT]]", "categories": [ + { + "__ordering__": "UNORDERED" + }, { "category_id": "CategoryID1", "category_name": "Evidences", diff --git a/src/aat/resources/features/F-140 - CategoriesAndDocument endpoint/S-140.7.td.json b/src/aat/resources/features/F-140 - CategoriesAndDocument endpoint/S-140.7.td.json index 757be90a87..1e57da059c 100644 --- a/src/aat/resources/features/F-140 - CategoriesAndDocument endpoint/S-140.7.td.json +++ b/src/aat/resources/features/F-140 - CategoriesAndDocument endpoint/S-140.7.td.json @@ -37,13 +37,17 @@ "body" : { "case_version": "[[ANYTHING_PRESENT]]", "categories": [ + { + "__ordering__": "UNORDERED" + }, { "category_id": "CategoryID1", "category_name": "Evidences", "category_order": 100, "documents": [ { - "__elementId__": "attribute_path" + "__elementId__": "attribute_path", + "__ordering__": "UNORDERED" }, { "document_url": "${[scenarioContext][childContexts][F-140_Document_Upload][testData][actualResponse][body][documents][0][_links][self][href]}", diff --git a/src/aat/resources/features/F-140 - CategoriesAndDocument endpoint/S-140.8.td.json b/src/aat/resources/features/F-140 - CategoriesAndDocument endpoint/S-140.8.td.json index fcc222d97c..977cf7ae30 100644 --- a/src/aat/resources/features/F-140 - CategoriesAndDocument endpoint/S-140.8.td.json +++ b/src/aat/resources/features/F-140 - CategoriesAndDocument endpoint/S-140.8.td.json @@ -34,6 +34,9 @@ "body": { "case_version": "[[ANYTHING_PRESENT]]", "categories": [ + { + "__ordering__": "UNORDERED" + }, { "category_id": "CategoryID1", "category_name": "Evidences", diff --git a/src/aat/resources/features/F-141 - documentData endpoint/S-141.10.td.json b/src/aat/resources/features/F-141 - documentData endpoint/S-141.10.td.json index d491ad7410..71c205a5c5 100644 --- a/src/aat/resources/features/F-141 - documentData endpoint/S-141.10.td.json +++ b/src/aat/resources/features/F-141 - documentData endpoint/S-141.10.td.json @@ -41,6 +41,8 @@ "body" : { "case_version" : 1, "categories" : [ { + "__ordering__": "UNORDERED" + }, { "category_id" : "CategoryID1", "category_name" : "Evidences", "category_order" : 100, diff --git a/src/aat/resources/features/F-141 - documentData endpoint/S-141.11.td.json b/src/aat/resources/features/F-141 - documentData endpoint/S-141.11.td.json index 77cfaff3f9..1d6104aa64 100644 --- a/src/aat/resources/features/F-141 - documentData endpoint/S-141.11.td.json +++ b/src/aat/resources/features/F-141 - documentData endpoint/S-141.11.td.json @@ -41,6 +41,8 @@ "body" : { "case_version" : 1, "categories" : [ { + "__ordering__": "UNORDERED" + }, { "category_id" : "CategoryID1", "category_name" : "Evidences", "category_order" : 100, diff --git a/src/aat/resources/features/F-141 - documentData endpoint/S-141.12.td.json b/src/aat/resources/features/F-141 - documentData endpoint/S-141.12.td.json index 2b7c7ebb75..8cf7eea4aa 100644 --- a/src/aat/resources/features/F-141 - documentData endpoint/S-141.12.td.json +++ b/src/aat/resources/features/F-141 - documentData endpoint/S-141.12.td.json @@ -41,6 +41,8 @@ "body" : { "case_version" : 1, "categories" : [ { + "__ordering__": "UNORDERED" + }, { "category_id" : "CategoryID4", "category_name" : "Residence Proof", "category_order" : 100, diff --git a/src/aat/resources/features/F-141 - documentData endpoint/S-141.8.td.json b/src/aat/resources/features/F-141 - documentData endpoint/S-141.8.td.json index 919ca6a54d..e5fbbb78d5 100644 --- a/src/aat/resources/features/F-141 - documentData endpoint/S-141.8.td.json +++ b/src/aat/resources/features/F-141 - documentData endpoint/S-141.8.td.json @@ -41,6 +41,8 @@ "body" : { "case_version" : 1, "categories" : [ { + "__ordering__": "UNORDERED" + }, { "category_id" : "CategoryID1", "category_name" : "Evidences", "category_order" : 100, diff --git a/src/aat/resources/features/F-141 - documentData endpoint/S-141.9.td.json b/src/aat/resources/features/F-141 - documentData endpoint/S-141.9.td.json index 7dfe7a66fb..80821149dc 100644 --- a/src/aat/resources/features/F-141 - documentData endpoint/S-141.9.td.json +++ b/src/aat/resources/features/F-141 - documentData endpoint/S-141.9.td.json @@ -41,6 +41,8 @@ "body" : { "case_version" : 1, "categories" : [ { + "__ordering__": "UNORDERED" + }, { "category_id" : "CategoryID1", "category_name" : "Evidences", "category_order" : 100, From d78b92a4b5f6dd92dfd0e175eefbcc9bb64aff9f Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Wed, 11 Jun 2025 10:52:04 +0100 Subject: [PATCH 35/42] Latest test definitions --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 61c5a3498c..46455ec5e0 100644 --- a/build.gradle +++ b/build.gradle @@ -37,7 +37,7 @@ ext { testContainersVersion = '1.20.4' cucumber = '6.6.1' beftaFwVersion = '9.2.3' - ccdTestDefinitionVersion = '7.25.3' + ccdTestDefinitionVersion = '7.25.4' limits = [ 'instruction': 90, 'branch' : 85, From c9a4b87a5389329dff8794e9a751a7cd9e127049 Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Wed, 11 Jun 2025 16:58:15 +0100 Subject: [PATCH 36/42] regress befta and test def versions --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 46455ec5e0..bb8ab08c1a 100644 --- a/build.gradle +++ b/build.gradle @@ -36,8 +36,8 @@ ext { elasticVersion = '8.16.2' testContainersVersion = '1.20.4' cucumber = '6.6.1' - beftaFwVersion = '9.2.3' - ccdTestDefinitionVersion = '7.25.4' + beftaFwVersion = '9.2.0' + ccdTestDefinitionVersion = '7.25.1' limits = [ 'instruction': 90, 'branch' : 85, From 68e610904ced37a28ff04255cfbc05f90094d295 Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Wed, 11 Jun 2025 18:45:15 +0100 Subject: [PATCH 37/42] tweaking befta/test-def versions again --- build.gradle | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index bb8ab08c1a..6ecc7cf723 100644 --- a/build.gradle +++ b/build.gradle @@ -36,8 +36,8 @@ ext { elasticVersion = '8.16.2' testContainersVersion = '1.20.4' cucumber = '6.6.1' - beftaFwVersion = '9.2.0' - ccdTestDefinitionVersion = '7.25.1' + beftaFwVersion = '9.2.3' + ccdTestDefinitionVersion = '7.25.2' limits = [ 'instruction': 90, 'branch' : 85, @@ -274,8 +274,8 @@ dependencies { testImplementation group: 'org.testcontainers', name: 'elasticsearch', version: testContainersVersion testImplementation group: 'org.testcontainers', name: 'junit-jupiter', version: testContainersVersion testImplementation group: 'org.openid4java', name: 'openid4java', version: '1.0.0' // for sonar analysis - testImplementation group: 'com.github.hmcts', name: 'ccd-test-definitions', version: '7.24.2' - testImplementation group: 'com.github.hmcts', name: 'befta-fw', version: '9.2.1' + testImplementation group: 'com.github.hmcts', name: 'ccd-test-definitions', version: ccdTestDefinitionVersion + testImplementation group: 'com.github.hmcts', name: 'befta-fw', version: beftaFwVersion testImplementation group: 'com.github.hmcts', name: 'fortify-client', version: '1.4.6', classifier: 'all' contractTestImplementation group: 'au.com.dius.pact.provider', name: 'junit5', version: pactProviderVersion From eee5c3326cf2fa515d726b187119838cb90e510e Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Thu, 12 Jun 2025 14:11:24 +0100 Subject: [PATCH 38/42] Whitespace to trigger build --- build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/build.gradle b/build.gradle index 6ecc7cf723..3e3473db5b 100644 --- a/build.gradle +++ b/build.gradle @@ -19,6 +19,7 @@ plugins { apply from: './gradle/suppress.gradle' + ext { set('springCloudVersion', '2024.0.0') set('spring-framework.version', '6.2.1') From a6a553dfc6f2b065cab1dc33ebd9f18502598137 Mon Sep 17 00:00:00 2001 From: Ben Lang <132359359+lang-ben@users.noreply.github.com> Date: Thu, 26 Jun 2025 16:15:54 +0100 Subject: [PATCH 39/42] Update GeneratedValue to SEQUENCE to resolve locking issue --- .../hmcts/ccd/data/SignificantItemEntity.java | 6 +++++- .../data/caseaccess/CaseUserAuditEntity.java | 13 +++++++++---- .../data/casedetails/CaseAuditEventEntity.java | 13 +++++++++---- .../data/casedetails/CaseDetailsEntity.java | 13 +++++++++---- .../message/MessageQueueCandidateEntity.java | 18 ++++++++++++------ 5 files changed, 44 insertions(+), 19 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/ccd/data/SignificantItemEntity.java b/src/main/java/uk/gov/hmcts/ccd/data/SignificantItemEntity.java index 4081c93c03..eace9f2652 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/SignificantItemEntity.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/SignificantItemEntity.java @@ -13,6 +13,7 @@ import jakarta.persistence.Id; import jakarta.persistence.JoinColumn; import jakarta.persistence.OneToOne; +import jakarta.persistence.SequenceGenerator; import jakarta.persistence.Table; @Table(name = "case_event_significant_items") @@ -21,7 +22,10 @@ public class SignificantItemEntity { @Id @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) + @GeneratedValue(strategy = GenerationType.SEQUENCE, + generator = "case_event_significant_items_id_seq_generator") + @SequenceGenerator(name = "case_event_significant_items_id_seq_generator", + sequenceName = "case_event_significant_items_id_seq", allocationSize = 1) private Long id; @Column(name = "type", nullable = false) diff --git a/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/CaseUserAuditEntity.java b/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/CaseUserAuditEntity.java index cffd5469e1..ce06000d5c 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/CaseUserAuditEntity.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/caseaccess/CaseUserAuditEntity.java @@ -1,6 +1,6 @@ package uk.gov.hmcts.ccd.data.caseaccess; -import org.hibernate.annotations.CreationTimestamp; +import java.time.LocalDateTime; import jakarta.persistence.Column; import jakarta.persistence.Entity; @@ -9,8 +9,10 @@ import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; +import jakarta.persistence.SequenceGenerator; import jakarta.persistence.Table; -import java.time.LocalDateTime; +import org.hibernate.annotations.CreationTimestamp; +import org.hibernate.annotations.SourceType; @Entity @Table(name = "case_users_audit") @@ -21,7 +23,10 @@ public enum Action { } @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) + @GeneratedValue(strategy = GenerationType.SEQUENCE, + generator = "case_users_audit_id_seq_generator") + @SequenceGenerator(name = "case_users_audit_id_seq_generator", + sequenceName = "case_users_audit_id_seq", allocationSize = 1) private Long id; @Column(name = "case_data_id") private long caseDataId; @@ -32,7 +37,7 @@ public enum Action { @Column(name = "changed_by_id") private String changedById; @Column(name = "changed_at") - @CreationTimestamp + @CreationTimestamp(source = SourceType.DB) private LocalDateTime changedAt; @Enumerated(EnumType.STRING) private Action action; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventEntity.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventEntity.java index 3fad67e2ce..59ae3158fe 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventEntity.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseAuditEventEntity.java @@ -1,10 +1,11 @@ package uk.gov.hmcts.ccd.data.casedetails; -import com.fasterxml.jackson.databind.JsonNode; -import lombok.Data; import uk.gov.hmcts.ccd.data.JsonDataConverter; import uk.gov.hmcts.ccd.data.SignificantItemEntity; +import java.time.LocalDateTime; + +import com.fasterxml.jackson.databind.JsonNode; import jakarta.persistence.CascadeType; import jakarta.persistence.Column; import jakarta.persistence.Convert; @@ -17,8 +18,9 @@ import jakarta.persistence.NamedQueries; import jakarta.persistence.NamedQuery; import jakarta.persistence.OneToOne; +import jakarta.persistence.SequenceGenerator; import jakarta.persistence.Table; -import java.time.LocalDateTime; +import lombok.Data; import static uk.gov.hmcts.ccd.data.casedetails.CaseAuditEventEntity.FIND_BY_CASE_DATA_ID_HQL; import static uk.gov.hmcts.ccd.data.casedetails.CaseAuditEventEntity.FIND_BY_CASE_DATA_ID_HQL_EXCLUDE_DATA; @@ -73,7 +75,10 @@ public class CaseAuditEventEntity { @Id @Column(name = "id") - @GeneratedValue(strategy = GenerationType.IDENTITY) + @GeneratedValue(strategy = GenerationType.SEQUENCE, + generator = "case_event_id_seq_generator") + @SequenceGenerator(name = "case_event_id_seq_generator", + sequenceName = "case_event_id_seq", allocationSize = 1) private Long id; @Column(name = "user_id") private String userId; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseDetailsEntity.java b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseDetailsEntity.java index 8d5d8b43d5..77523e89cf 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseDetailsEntity.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/CaseDetailsEntity.java @@ -1,8 +1,11 @@ package uk.gov.hmcts.ccd.data.casedetails; -import com.fasterxml.jackson.databind.JsonNode; import uk.gov.hmcts.ccd.data.JsonDataConverter; +import java.time.LocalDate; +import java.time.LocalDateTime; + +import com.fasterxml.jackson.databind.JsonNode; import jakarta.persistence.Column; import jakarta.persistence.Convert; import jakarta.persistence.Entity; @@ -13,10 +16,9 @@ import jakarta.persistence.Id; import jakarta.persistence.NamedQueries; import jakarta.persistence.NamedQuery; +import jakarta.persistence.SequenceGenerator; import jakarta.persistence.Table; import jakarta.persistence.Version; -import java.time.LocalDate; -import java.time.LocalDateTime; @SuppressWarnings("checkstyle:OperatorWrap") // too many legacy OperatorWrap occurrences on JSON strings so suppress until move to Java12+ @@ -99,7 +101,10 @@ public class CaseDetailsEntity { @Id @Column(name = ID_FIELD_COL) - @GeneratedValue(strategy = GenerationType.IDENTITY) + @GeneratedValue(strategy = GenerationType.SEQUENCE, + generator = "case_data_id_seq_generator") + @SequenceGenerator(name = "case_data_id_seq_generator", + sequenceName = "case_data_id_seq", allocationSize = 1) private Long id; @Column(name = REFERENCE_FIELD_COL, nullable = false) private Long reference; diff --git a/src/main/java/uk/gov/hmcts/ccd/data/message/MessageQueueCandidateEntity.java b/src/main/java/uk/gov/hmcts/ccd/data/message/MessageQueueCandidateEntity.java index a32acd1ae1..a7a5b051ae 100644 --- a/src/main/java/uk/gov/hmcts/ccd/data/message/MessageQueueCandidateEntity.java +++ b/src/main/java/uk/gov/hmcts/ccd/data/message/MessageQueueCandidateEntity.java @@ -1,27 +1,33 @@ package uk.gov.hmcts.ccd.data.message; -import com.fasterxml.jackson.databind.JsonNode; -import lombok.Data; -import org.hibernate.annotations.CreationTimestamp; import uk.gov.hmcts.ccd.data.JsonDataConverter; +import java.time.LocalDateTime; + +import com.fasterxml.jackson.databind.JsonNode; import jakarta.persistence.Convert; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; +import jakarta.persistence.SequenceGenerator; import jakarta.persistence.Table; -import java.time.LocalDateTime; +import lombok.Data; +import org.hibernate.annotations.CreationTimestamp; +import org.hibernate.annotations.SourceType; @Table(name = "message_queue_candidates") @Entity @Data public class MessageQueueCandidateEntity { @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) + @GeneratedValue(strategy = GenerationType.SEQUENCE, + generator = "message_queue_candidates_id_seq_generator") + @SequenceGenerator(name = "message_queue_candidates_id_seq_generator", + sequenceName = "message_queue_candidates_id_seq", allocationSize = 1) private Long id; private String messageType; - @CreationTimestamp + @CreationTimestamp(source = SourceType.DB) private LocalDateTime timeStamp; private LocalDateTime published; @Convert(converter = JsonDataConverter.class) From 2751f2eabbf806d31695e3b182e26006555b27f8 Mon Sep 17 00:00:00 2001 From: "Kiran.Yenigala" Date: Tue, 18 Nov 2025 16:40:46 +0000 Subject: [PATCH 40/42] CCD-6942: Enable Virtual Threads on CCD Data Store --- .../config/VirtualThreadConfiguration.java | 17 ++++++++++ .../service/lau/AuditCaseRemoteOperation.java | 14 ++++++-- src/main/resources/application.properties | 2 ++ .../ccd/RestTemplateConfigurationTest.java | 33 ++++++++++--------- .../lau/AuditCaseRemoteOperationTest.java | 16 ++++++++- .../hmcts/ccd/endpoint/std/CallbackTest.java | 17 +++++----- 6 files changed, 71 insertions(+), 28 deletions(-) create mode 100644 src/main/java/uk/gov/hmcts/ccd/config/VirtualThreadConfiguration.java diff --git a/src/main/java/uk/gov/hmcts/ccd/config/VirtualThreadConfiguration.java b/src/main/java/uk/gov/hmcts/ccd/config/VirtualThreadConfiguration.java new file mode 100644 index 0000000000..abb0ec63dd --- /dev/null +++ b/src/main/java/uk/gov/hmcts/ccd/config/VirtualThreadConfiguration.java @@ -0,0 +1,17 @@ +package uk.gov.hmcts.ccd.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +@Configuration +public class VirtualThreadConfiguration { + + @Bean(name = "virtualThreadPerTaskExecutor", destroyMethod = "close") + public ExecutorService virtualThreadPerTaskExecutor() { + return Executors.newVirtualThreadPerTaskExecutor(); + } +} + diff --git a/src/main/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperation.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperation.java index 502a056582..bca3ec9bc3 100644 --- a/src/main/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperation.java +++ b/src/main/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperation.java @@ -23,6 +23,7 @@ import java.util.Map; import java.util.UUID; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutorService; @Service @Slf4j @@ -44,13 +45,18 @@ public class AuditCaseRemoteOperation implements AuditRemoteOperation { private final AuditCaseRemoteConfiguration auditCaseRemoteConfiguration; + private final ExecutorService virtualThreadPerTaskExecutor; + @Autowired public AuditCaseRemoteOperation(@Lazy final SecurityUtils securityUtils, LogAndAuditFeignClient logAndAuditFeignClient, - final AuditCaseRemoteConfiguration auditCaseRemoteConfiguration) { + final AuditCaseRemoteConfiguration auditCaseRemoteConfiguration, + @Qualifier("virtualThreadPerTaskExecutor") + ExecutorService virtualThreadPerTaskExecutor) { this.securityUtils = securityUtils; this.logAndAuditFeignClient = logAndAuditFeignClient; this.auditCaseRemoteConfiguration = auditCaseRemoteConfiguration; + this.virtualThreadPerTaskExecutor = virtualThreadPerTaskExecutor; } @Override @@ -120,12 +126,14 @@ public void postAsyncAuditRequestAndHandleResponse( if (LAU_CASE_ACTION_CREATE.equals(activity) || LAU_CASE_ACTION_UPDATE.equals(activity) || LAU_CASE_ACTION_VIEW.equals(activity)) { CompletableFuture> future = CompletableFuture.supplyAsync(() -> - logAndAuditFeignClient.postCaseAction(securityUtils.getServiceAuthorization(), capr)); + logAndAuditFeignClient.postCaseAction(securityUtils.getServiceAuthorization(), capr), + virtualThreadPerTaskExecutor); future.whenComplete((response, error) -> handleAuditResponse(response, error, entry.getRequestId(), activity, url, auditLogId)); } else if ("SEARCH".equals(activity)) { CompletableFuture> future = CompletableFuture.supplyAsync(() -> - logAndAuditFeignClient.postCaseSearch(securityUtils.getServiceAuthorization(), cspr)); + logAndAuditFeignClient.postCaseSearch(securityUtils.getServiceAuthorization(), cspr), + virtualThreadPerTaskExecutor); future.whenComplete((response, error) -> handleAuditResponse(response, error, entry.getRequestId(), activity, url, auditLogId)); } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index ed4e4c7bd5..a1035bcb96 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -302,6 +302,8 @@ spring.flyway.ignore-missing-migrations=true spring.flyway.baseline-on-migrate=true spring.flyway.baseline-version=0001 +spring.threads.virtual.enabled=${ENABLE_VIRTUAL_THREADS:true} + reference.data.api.url=${RD_LOCATION_REF_API_BASE_URL:http://localhost:5555} reference.data.cache.ttl.in.days=5 # Refresh cache once everyday at 4am diff --git a/src/test/java/uk/gov/hmcts/ccd/RestTemplateConfigurationTest.java b/src/test/java/uk/gov/hmcts/ccd/RestTemplateConfigurationTest.java index 21ffee5cce..08a878a081 100644 --- a/src/test/java/uk/gov/hmcts/ccd/RestTemplateConfigurationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/RestTemplateConfigurationTest.java @@ -82,24 +82,25 @@ public void shouldTimeOut() { public void shouldBeAbleToUseMultipleTimes() throws Exception { stubResponse(); final List> futures = new ArrayList<>(); - final ExecutorService executorService = Executors.newFixedThreadPool(25); final int totalNumberOfCalls = 200; - for (int i = 0; i < totalNumberOfCalls; i++) { - futures.add(executorService.submit(() -> { - final RequestEntity - request = - new RequestEntity<>(PUT, URI.create(hostUrl + URL)); - final ResponseEntity response = restTemplate.exchange(request, JsonNode.class); - assertResponse(response); - return response.getStatusCode().value(); - })); - } - - assertThat(futures, hasSize(totalNumberOfCalls)); - - for (Future future: futures) { - assertThat(future.get(), is(SC_OK)); + try (ExecutorService executorService = Executors.newVirtualThreadPerTaskExecutor()) { + for (int i = 0; i < totalNumberOfCalls; i++) { + futures.add(executorService.submit(() -> { + final RequestEntity + request = + new RequestEntity<>(PUT, URI.create(hostUrl + URL)); + final ResponseEntity response = restTemplate.exchange(request, JsonNode.class); + assertResponse(response); + return response.getStatusCode().value(); + })); + } + + assertThat(futures, hasSize(totalNumberOfCalls)); + + for (Future future: futures) { + assertThat(future.get(), is(SC_OK)); + } } } diff --git a/src/test/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperationTest.java index a4b33a8ffe..b9b8b7685c 100644 --- a/src/test/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/domain/service/lau/AuditCaseRemoteOperationTest.java @@ -19,6 +19,7 @@ import java.util.Arrays; import java.util.List; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -28,6 +29,9 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + import static java.time.format.DateTimeFormatter.ISO_LOCAL_DATE_TIME; import static java.util.concurrent.TimeUnit.MILLISECONDS; import static org.awaitility.Awaitility.await; @@ -66,6 +70,8 @@ class AuditCaseRemoteOperationTest { @Mock private AuditCaseRemoteConfiguration auditCaseRemoteConfiguration; + private ExecutorService virtualThreadPerTaskExecutor; + @Captor ArgumentCaptor captor; @@ -91,11 +97,19 @@ class AuditCaseRemoteOperationTest { @BeforeEach void setUp() throws JsonProcessingException { MockitoAnnotations.openMocks(this); + virtualThreadPerTaskExecutor = Executors.newVirtualThreadPerTaskExecutor(); doReturn("Bearer 1234").when(securityUtils).getServiceAuthorization(); doReturn("http://localhost/caseAction").when(auditCaseRemoteConfiguration).getCaseActionAuditUrl(); doReturn("http://localhost/caseSearch").when(auditCaseRemoteConfiguration).getCaseSearchAuditUrl(); auditCaseRemoteOperation = new AuditCaseRemoteOperation(securityUtils, feignClient, - auditCaseRemoteConfiguration); + auditCaseRemoteConfiguration, virtualThreadPerTaskExecutor); + } + + @AfterEach + void tearDown() { + if (virtualThreadPerTaskExecutor != null) { + virtualThreadPerTaskExecutor.close(); + } } @Test diff --git a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackTest.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackTest.java index 6d19ad1090..2052e754c0 100644 --- a/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CallbackTest.java @@ -1448,14 +1448,15 @@ public void shouldCommitUpdatedCaseDetailsImmediatelyBeforeSendToPostCallback() assertEquals(mvcResult.getResponse().getContentAsString(), 201, mvcResult.getResponse().getStatus()); // read from db using another thread / transaction - ExecutorService es = Executors.newSingleThreadExecutor(); - Future future = es.submit(() -> { - List caseDetailsList = jdbcTemplate.query("SELECT * FROM case_data", this::mapCaseData); - CaseDetails savedCaseDetails = caseDetailsList.get(0); - assertEquals("CaseUpdated", savedCaseDetails.getState()); - return null; - }); - future.get(); // This will rethrow Exceptions and Errors as ExecutionException + try (ExecutorService es = Executors.newVirtualThreadPerTaskExecutor()) { + Future future = es.submit(() -> { + List caseDetailsList = jdbcTemplate.query("SELECT * FROM case_data", this::mapCaseData); + CaseDetails savedCaseDetails = caseDetailsList.get(0); + assertEquals("CaseUpdated", savedCaseDetails.getState()); + return null; + }); + future.get(); // This will rethrow Exceptions and Errors as ExecutionException + } } private void stubForErrorCallbackResponse(final String url) throws JsonProcessingException { From 16f2f3e30609dfb905ec734cb4395d8bca5b2d7c Mon Sep 17 00:00:00 2001 From: "Kiran.Yenigala" Date: Fri, 21 Nov 2025 09:56:22 +0000 Subject: [PATCH 41/42] CCD-6942: Enable Virtual Threads, check threads usage --- .../controller/ThreadProbeController.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/main/java/uk/gov/hmcts/ccd/v2/external/controller/ThreadProbeController.java diff --git a/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/ThreadProbeController.java b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/ThreadProbeController.java new file mode 100644 index 0000000000..9e647efeb8 --- /dev/null +++ b/src/main/java/uk/gov/hmcts/ccd/v2/external/controller/ThreadProbeController.java @@ -0,0 +1,17 @@ +package uk.gov.hmcts.ccd.v2.external.controller; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +@Slf4j +@RestController +class ThreadProbeController { + + @GetMapping("/thread-info") + String threadInfo() { + Thread t = Thread.currentThread(); + log.info("Handling request on {}", t); + return t.toString(); + } +} From 467777307315bc661ec6a5c470e0d91cbaed9d86 Mon Sep 17 00:00:00 2001 From: "Kiran.Yenigala" Date: Fri, 21 Nov 2025 10:48:33 +0000 Subject: [PATCH 42/42] CCD-6942: Enable Virtual Threads, check threads usage --- src/main/java/uk/gov/hmcts/ccd/SecurityConfiguration.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/uk/gov/hmcts/ccd/SecurityConfiguration.java b/src/main/java/uk/gov/hmcts/ccd/SecurityConfiguration.java index 3754275e36..e013592bce 100644 --- a/src/main/java/uk/gov/hmcts/ccd/SecurityConfiguration.java +++ b/src/main/java/uk/gov/hmcts/ccd/SecurityConfiguration.java @@ -58,6 +58,7 @@ public class SecurityConfiguration { "/health/liveness", "/health/readiness", "/health", + "/thread-info", "/loggers/**", "/", "/status/health", @@ -103,7 +104,7 @@ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Excepti .csrf(csrf -> csrf.disable()) // NOSONAR - CSRF is disabled purposely .formLogin(fl -> fl.disable()) .logout(logout -> logout.disable()) - .authorizeHttpRequests(auth -> + .authorizeHttpRequests(auth -> auth.requestMatchers("/error") .permitAll() .anyRequest()