diff --git a/build.gradle b/build.gradle index 3d15376874..44904427b6 100644 --- a/build.gradle +++ b/build.gradle @@ -1,44 +1,47 @@ -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.18' + 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 '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' -def versions = [ - pact_version : '4.3.4', -] - -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', '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, + 'line' : 90, + 'complexity' : 88, + 'method' : 90, + 'class' : 98 + ] } dependencyUpdates.resolutionStrategy = { @@ -96,25 +99,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(21) @@ -143,6 +127,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 @@ -162,219 +150,130 @@ 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' - } - } + // 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 + - 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' - } - } + configurations.all { + exclude group: 'com.vaadin.external.google', module: 'android-json' - implementation('commons-io:commons-io') { - version { - strictly '2.16.1' + // Group versions + resolutionStrategy.eachDependency { + // if (requested.group == 'org.apache.lucene') useVersion '10.1.0' } } - - - 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.34' - annotationProcessor 'org.mapstruct:mapstruct-processor:1.3.1.Final', 'org.projectlombok:lombok:1.18.34', 'org.projectlombok:lombok-mapstruct-binding:0.2.0' - testAnnotationProcessor 'org.mapstruct:mapstruct-processor:1.3.1.Final', 'org.projectlombok:lombok:1.18.34', 'org.projectlombok:lombok-mapstruct-binding:0.2.0' - - testCompileOnly 'org.projectlombok:lombok:1.18.34' - testAnnotationProcessor 'org.projectlombok:lombok:1.18.34' - - 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') - + // 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: 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: lombokBindingVersion + + // 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' + 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.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.8' - - 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.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 "io.github.openfeign:feign-httpclient:11.0" - - implementation group: 'net.minidev', name: 'json-smart', version: '2.4.11' - - implementation group: 'com.nimbusds', name: 'nimbus-jose-jwt', version: '9.37.2' - 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: '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: 'org.awaitility', name: 'awaitility', version: '3.1.6' - - // 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: 'org.springdoc', name: 'springdoc-openapi-starter-webmvc-ui', version: '2.8.1' - 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' + // 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' -// 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' - } - 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') - 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.20.2") - testImplementation ('com.github.tomakehurst:wiremock-jre8:2.25.1') - testImplementation ('org.springframework.cloud:spring-cloud-contract-wiremock:2.2.4.RELEASE') - // 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.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: '4.3.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.20.2' - testImplementation group: 'org.testcontainers', name: 'junit-jupiter', version: '1.20.2' - 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.13' - implementation group: 'ch.qos.logback', name: 'logback-core', version: '1.2.13' - - //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.24.0' - testImplementation group: 'com.github.hmcts', name: 'befta-fw', version: '9.2.0' - - 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: '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.34' - contractTestImplementation 'org.springframework.boot:spring-boot-starter-cache' - contractTestImplementation 'com.github.ben-manes.caffeine:caffeine:3.1.8' - 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.34' - aatAnnotationProcessor group: 'org.projectlombok', name: 'lombok', version: '1.18.34' + implementation group: 'com.github.ben-manes.caffeine', name: 'caffeine', version: '3.1.8' + 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.sun.mail', name: 'mailapi', version: '2.0.1' + implementation group: 'com.vladmihalcea', name: 'hibernate-types-60', version: '2.21.1' + 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.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.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' + + 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.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 + contractTestAnnotationProcessor group: 'org.projectlombok', name: 'lombok', version: lombokVersion + aatAnnotationProcessor group: 'org.projectlombok', name: 'lombok', version: lombokVersion } // end::dependencies[] @@ -382,36 +281,6 @@ dependencyManagement { imports { mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" } - - 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.91') { - 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') { - entry 'groovy' - entry 'groovy-xml' - entry 'groovy-json' - } - } } pitest { @@ -673,12 +542,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/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/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 } }, diff --git a/src/contractTest/java/uk/gov/hmcts/ccd/WireMockBaseTest.java b/src/contractTest/java/uk/gov/hmcts/ccd/WireMockBaseContractTest.java similarity index 95% rename from src/contractTest/java/uk/gov/hmcts/ccd/WireMockBaseTest.java rename to src/contractTest/java/uk/gov/hmcts/ccd/WireMockBaseContractTest.java index c2ac093995..5b890af954 100644 --- a/src/contractTest/java/uk/gov/hmcts/ccd/WireMockBaseTest.java +++ b/src/contractTest/java/uk/gov/hmcts/ccd/WireMockBaseContractTest.java @@ -18,13 +18,13 @@ 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); + private static final Logger LOG = LoggerFactory.getLogger(WireMockBaseContractTest.class); @Value("${wiremock.server.port}") protected Integer wiremockPort; 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..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,11 +15,11 @@ 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.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"; @@ -66,58 +66,41 @@ public class CasesControllerProviderTest extends WireMockBaseTest { @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/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..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 @@ -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(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/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/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/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/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/ApplicationParams.java b/src/main/java/uk/gov/hmcts/ccd/ApplicationParams.java index 847b92fc62..535caaf9e1 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.nio.charset.StandardCharsets; 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..318cd204a0 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.ofMilliseconds(timeout)) + .setSocketTimeout(Timeout.ofMilliseconds(timeout)) + .setValidateAfterInactivity(TimeValue.ofMilliseconds(validateAfterInactivity)) + .build(); + } + }; + cm.setConnectionConfigResolver(connectionConfigResolver); + Resolver socketConfigResolver = new Resolver() { + @Override + public SocketConfig resolve(HttpRoute route) { + return SocketConfig.custom() + .setSoTimeout(Timeout.ofMilliseconds(timeout)) + .build(); + } + }; + cm.setSocketConfigResolver(socketConfigResolver); + final RequestConfig config = RequestConfig.custom() - .setConnectTimeout(timeout) - .setConnectionRequestTimeout(timeout) - .setSocketTimeout(timeout) + .setConnectionRequestTimeout(timeout, TimeUnit.MILLISECONDS) .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 6f96e3b9e3..3754275e36 100644 --- a/src/main/java/uk/gov/hmcts/ccd/SecurityConfiguration.java +++ b/src/main/java/uk/gov/hmcts/ccd/SecurityConfiguration.java @@ -3,10 +3,10 @@ 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.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 +16,8 @@ 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.customheaders.CustomHeadersFilter; import uk.gov.hmcts.ccd.data.SecurityUtils; import uk.gov.hmcts.ccd.security.JwtGrantedAuthoritiesConverter; @@ -25,8 +26,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; @@ -35,7 +36,7 @@ @Configuration @EnableWebSecurity -public class SecurityConfiguration extends WebSecurityConfigurerAdapter { +public class SecurityConfiguration { @Value("${spring.security.oauth2.client.provider.oidc.issuer-uri}") private String issuerUri; @@ -52,6 +53,7 @@ public class SecurityConfiguration extends WebSecurityConfigurerAdapter { private ApplicationParams applicationParams; private static final String[] AUTH_WHITELIST = { + "/v3/api-docs", "/v2/**", "/health/liveness", "/health/readiness", @@ -84,36 +86,31 @@ 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(customHeadersFilter, BearerTokenAuthenticationFilter.class) .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() - .oauth2Client(); - + .sessionManagement(sm -> sm.sessionCreationPolicy(STATELESS)) + .csrf(csrf -> csrf.disable()) // NOSONAR - CSRF is disabled purposely + .formLogin(fl -> fl.disable()) + .logout(logout -> logout.disable()) + .authorizeHttpRequests(auth -> + auth.requestMatchers("/error") + .permitAll() + .anyRequest() + .authenticated()) + .oauth2ResourceServer(oauth -> oauth.jwt(jwt -> jwt.jwtAuthenticationConverter(jwtAuthenticationConverter))) + .oauth2Client(Customizer.withDefaults()); + 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/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 359053fd06..27994b2973 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,7 @@ 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; import org.springframework.boot.actuate.autoconfigure.web.server.ManagementPortType; @@ -9,31 +11,17 @@ 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; 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,98 +29,44 @@ 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, //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, @@ -140,12 +74,12 @@ 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, 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/customheaders/CustomHeadersFilter.java b/src/main/java/uk/gov/hmcts/ccd/customheaders/CustomHeadersFilter.java index 72ad3bfa67..b12d73fb59 100644 --- a/src/main/java/uk/gov/hmcts/ccd/customheaders/CustomHeadersFilter.java +++ b/src/main/java/uk/gov/hmcts/ccd/customheaders/CustomHeadersFilter.java @@ -7,13 +7,13 @@ import uk.gov.hmcts.ccd.endpoint.exceptions.ServiceException; import uk.gov.hmcts.ccd.util.ClientContextUtil; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.Filter; +import jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; public class CustomHeadersFilter implements Filter { 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..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,12 +17,7 @@ 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 javax.inject.Inject; - -import static org.springframework.http.HttpMethod.GET; +import jakarta.inject.Inject; @Service @Qualifier(DefaultCaseRoleRepository.QUALIFIER) 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/casedataaccesscontrol/DefaultRoleAssignmentRepository.java b/src/main/java/uk/gov/hmcts/ccd/data/casedataaccesscontrol/DefaultRoleAssignmentRepository.java index 7ca3440947..e86ae5e9c7 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/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..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 @@ -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; @@ -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/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..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 @@ -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", 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 113f0438d8..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 @@ -1,9 +1,8 @@ package uk.gov.hmcts.ccd.data.casedetails.supplementarydata; -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; @@ -13,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, '{}'), :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 " - + " THEN jsonb_set(COALESCE(supplementary_data, '{}'), :leaf_node_key," - + " (jsonb_extract_path_text(supplementary_data, :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"; @@ -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); 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 05eaa09c2e..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,9 +1,8 @@ package uk.gov.hmcts.ccd.data.casedetails.supplementarydata; -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; @@ -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 e1326c84c9..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 @@ -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", 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 new file mode 100644 index 0000000000..365c502614 --- /dev/null +++ b/src/main/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserType.java @@ -0,0 +1,112 @@ +package uk.gov.hmcts.ccd.data.casedetails.supplementarydata; + +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); + } + + @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 { + 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); + } + } + + @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); + } + } + + @Override + public JsonNode deepCopy(JsonNode value) { + if (value == null) { + return null; + } + return value.deepCopy(); + } + + @Override + public boolean isMutable() { + return true; + } + + @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; + } + + @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/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/DefaultCaseDefinitionRepository.java b/src/main/java/uk/gov/hmcts/ccd/data/definition/DefaultCaseDefinitionRepository.java index 6722535671..e0b63d816d 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 { @@ -119,7 +119,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 { @@ -139,7 +139,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 { @@ -186,7 +186,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 { @@ -257,7 +257,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/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..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 @@ -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; @@ -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/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/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/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..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 @@ -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,12 @@ 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..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 @@ -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,13 @@ 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; @@ -281,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(); } } @@ -300,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/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..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 @@ -2,15 +2,15 @@ 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; import lombok.Data; import lombok.NoArgsConstructor; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.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..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 @@ -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,13 @@ 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..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 @@ -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,8 +30,10 @@ 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 " - + "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/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/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/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/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/callbacks/CallbackService.java b/src/main/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackService.java index 6d5979ea49..dc9da473ee 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 @@ -29,7 +29,7 @@ import uk.gov.hmcts.ccd.endpoint.exceptions.CallbackException; import uk.gov.hmcts.ccd.util.ClientContextUtil; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.time.Duration; import java.time.Instant; import java.util.Objects; @@ -155,14 +155,14 @@ private Optional> sendRequest(final String url, storePassThroughHeadersAsRequestAttributes(responseEntity, requestEntity, request); responseEntity = replaceResponseEntityWithUpdatedHeaders(responseEntity, CLIENT_CONTEXT); - 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/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/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/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/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/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/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 c6bbc011c8..25fb311e1e 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 @@ -41,7 +41,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/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/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/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/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/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/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..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; @@ -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..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 @@ -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; @@ -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) { 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/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/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/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/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..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 @@ -3,10 +3,10 @@ import com.fasterxml.jackson.databind.JsonNode; import uk.gov.hmcts.ccd.domain.model.definition.CaseFieldDefinition; -import javax.inject.Named; -import javax.inject.Singleton; -import javax.mail.internet.AddressException; -import javax.mail.internet.InternetAddress; +import jakarta.inject.Named; +import jakarta.inject.Singleton; +import jakarta.mail.internet.AddressException; +import jakarta.mail.internet.InternetAddress; import java.util.Collections; import java.util.List; 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..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 @@ -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) @@ -171,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/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..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 @@ -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,102 @@ 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 " - + "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(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 " - + "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(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. " - + "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(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 +264,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" - + " `startCaseForCaseworker`." + @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 +292,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" - + " `startCaseForCitizen`." + @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 +321,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 +351,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" - + " `startEventForCaseworker`." + @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 +379,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" - + " `startEventForCitizen`." + @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 +406,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 +424,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 +437,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 +461,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 +473,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..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 @@ -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 " - + "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, - @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..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 @@ -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,15 @@ 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 +229,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 +246,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 +263,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 +280,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 +296,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..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 @@ -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 " - + "removed case roles." + @Operation( + 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", + 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 ) - @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 - ) - }) @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 142889f742..592bbe6a2e 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,13 +1,9 @@ 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 lombok.extern.slf4j.Slf4j; 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; @@ -16,11 +12,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; @@ -55,15 +55,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) { log.info("Invoked for changeId {} and caseTypeIds {} ", changeId, caseTypeIds); var caseIdList = Arrays.stream(caseTypeIds.split(",")).toList(); @@ -91,7 +89,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/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/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..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 @@ -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,10 @@ 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 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 +65,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 +90,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 +113,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 +132,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..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 @@ -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,6 +8,12 @@ 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; @@ -49,26 +52,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 +93,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 +140,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 " - + "for case field or missing user roles" + 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/main/resources/application.properties b/src/main/resources/application.properties index ae01f5e8b2..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} @@ -134,12 +134,18 @@ 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 # 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} @@ -151,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 28faffc041..a35c272788 100644 --- a/src/test/java/uk/gov/hmcts/ccd/AbstractBaseIntegrationTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/AbstractBaseIntegrationTest.java @@ -59,8 +59,8 @@ import uk.gov.hmcts.ccd.domain.types.BaseType; import uk.gov.hmcts.ccd.domain.types.sanitiser.client.DocumentManagementRestClient; -import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; +import jakarta.inject.Inject; +import jakarta.servlet.http.HttpServletRequest; import javax.sql.DataSource; import java.io.IOException; import java.nio.charset.Charset; @@ -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; @@ -145,7 +145,7 @@ public abstract class AbstractBaseIntegrationTest { @Before @BeforeEach public void initMock() throws IOException { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); MockHttpServletRequest request = new MockHttpServletRequest(); RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(request)); diff --git a/src/test/java/uk/gov/hmcts/ccd/AuthCheckingConfigurationTest.java b/src/test/java/uk/gov/hmcts/ccd/AuthCheckingConfigurationTest.java index f1ce4b7e10..1b428b7645 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; @@ -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 283b6e7799..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; @@ -56,7 +58,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,8 +1848,7 @@ void shouldNotReturnCaseFieldsFilteredByPostFilteringAuthRules() throws Exceptio } @ParameterizedTest(name = "Pagination: should apply Pagination: {0}") - @MethodSource("uk.gov.hmcts.ccd.ElasticsearchIT#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("uk.gov.hmcts.ccd.ElasticsearchIT#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/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/RestTemplateConfigurationTest.java b/src/test/java/uk/gov/hmcts/ccd/RestTemplateConfigurationTest.java index 8ef6d5faad..cdad321aaa 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; @@ -26,10 +26,9 @@ 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 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 5d88508928..e41e3b4773 100644 --- a/src/test/java/uk/gov/hmcts/ccd/WireMockBaseTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/WireMockBaseTest.java @@ -30,7 +30,7 @@ import java.util.UUID; import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.inject.Inject; +import jakarta.inject.Inject; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; 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/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/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/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/caseaccess/DefaultCaseUserRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/caseaccess/DefaultCaseUserRepositoryTest.java index 014e9a169f..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,16 +4,16 @@ 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; 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; @@ -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/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 fb942f4013..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 @@ -11,7 +11,7 @@ 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; 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..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; @@ -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; @@ -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/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 b3dbe1893b..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 @@ -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; @@ -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 212499bd2e..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 @@ -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; @@ -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..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; @@ -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 dc8250b856..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 @@ -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; @@ -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/DefaultSupplementaryDataRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/DefaultSupplementaryDataRepositoryTest.java index 3c86e7416a..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 @@ -1,6 +1,7 @@ package uk.gov.hmcts.ccd.data.casedetails.supplementarydata; import com.google.common.collect.Sets; + import java.util.List; import java.util.Map; 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..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 @@ -1,9 +1,9 @@ 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; 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..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 @@ -1,9 +1,9 @@ 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; 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..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 @@ -1,11 +1,11 @@ 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; 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..1966255ef2 --- /dev/null +++ b/src/test/java/uk/gov/hmcts/ccd/data/casedetails/supplementarydata/SupplementaryDataUserTypeTest.java @@ -0,0 +1,73 @@ +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.sql.PreparedStatement; +import java.sql.ResultSet; +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 Exception { + 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)); + assertThrows(AssertionError.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); + verify(psMock).setNull(anyInt(), anyInt()); + + supplementaryDataUserType.nullSafeSet(psMock, jsonNode, 0, null); + verify(psMock).setObject(anyInt(), anyString(), anyInt()); + + doThrow(RuntimeException.class).when(psMock).setObject(anyInt(), anyString(), anyInt()); + 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); + 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 + 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/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/CachedCaseDefinitionRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/data/definition/CachedCaseDefinitionRepositoryTest.java index 2f90b17561..da8d2e7076 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 @@ -56,7 +56,6 @@ class CachedCaseDefinitionRepositoryTest { @BeforeEach void setUp() { openMocks = MockitoAnnotations.openMocks(this); - doReturn(List.of("GrantOfRepresentation")).when(appParams).getRequestScopeCachedCaseTypes(); cachedCaseDefinitionRepository = new CachedCaseDefinitionRepository(caseDefinitionRepository); } 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..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; @@ -11,7 +10,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; @@ -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..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 @@ -3,10 +3,10 @@ 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; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doThrow; @@ -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 6dd3859427..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 @@ -7,7 +7,7 @@ import uk.gov.hmcts.ccd.WireMockBaseTest; 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 { 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..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 @@ -9,7 +9,7 @@ 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; 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..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; @@ -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/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/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 c27d5d51ff..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 @@ -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; @@ -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/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/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/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..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 @@ -26,10 +26,10 @@ 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; +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; @@ -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/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/CallbackServiceTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/callbacks/CallbackServiceTest.java index 12fc1aa09c..76847e97d1 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 @@ -33,7 +33,7 @@ import uk.gov.hmcts.ccd.endpoint.exceptions.CallbackException; import uk.gov.hmcts.ccd.util.ClientContextUtil; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import java.time.Duration; import java.util.ArrayList; import java.util.List; @@ -131,7 +131,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 cdd56e2550..bb6ac4cadd 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 @@ -8,7 +8,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.junit.jupiter.api.Assertions.assertEquals; @@ -43,7 +43,7 @@ import java.util.List; import java.util.Optional; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; import com.fasterxml.jackson.databind.ObjectMapper; import org.hamcrest.Matchers; @@ -419,7 +419,7 @@ public void shouldGetBodyInGeneric() throws Exception { caseEventDefinition, 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..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; @@ -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..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; @@ -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 668c9207a1..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 @@ -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; @@ -19,6 +18,7 @@ import java.util.Optional; 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; @@ -41,7 +41,7 @@ class SecurityValidationServiceTest { @BeforeEach public void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); securityValidationService = new SecurityValidationService(authorisedGetCaseOperation); } @@ -90,7 +90,7 @@ void shouldIncreaseSecurityIfValidClassificationLevelForCase() { securityValidationService.setClassificationFromCallbackIfValid(callbackResponse, caseDetails, defaultDataClassification); - Assert.assertThat(caseDetails.getSecurityClassification(), is(PRIVATE)); + assertThat(caseDetails.getSecurityClassification(), is(PRIVATE)); } } @@ -121,8 +121,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"))) ); } @@ -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"))) ); } @@ -368,13 +368,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"))) ); } @@ -773,15 +773,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..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; @@ -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 3029a02afe..43a0377f39 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 @@ -14,6 +14,7 @@ import org.mockito.MockitoAnnotations; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import uk.gov.hmcts.ccd.ApplicationParams; @@ -58,14 +59,13 @@ import java.util.Map; import static org.hamcrest.core.Is.is; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; +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.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyMap; -import static org.mockito.ArgumentMatchers.anyObject; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.isNull; @@ -77,7 +77,7 @@ import static org.mockito.Mockito.never; 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; @@ -160,7 +160,7 @@ class DefaultCreateCaseOperationTest { @BeforeEach void setup() throws Exception { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); timeToLiveService = new TimeToLiveService(objectMapper, applicationParams, caseDataService); defaultCreateCaseOperation = new DefaultCreateCaseOperation(userRepository, caseDefinitionRepository, @@ -189,7 +189,7 @@ void setup() throws Exception { CASE_TYPE = buildCaseType(); SupplementaryData supplementaryData = new SupplementaryData(); - when(supplementaryDataUpdateOperation.updateSupplementaryData(anyString(), anyObject())) + when(supplementaryDataUpdateOperation.updateSupplementaryData(anyString(), any())) .thenReturn(supplementaryData); } @@ -505,7 +505,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)) ); @@ -564,7 +564,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) @@ -588,7 +588,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(HttpStatus.valueOf(200)); given(savedCaseType.getCaseTypeId()).willReturn(mockCaseTypeId); given(validateCaseFieldsOperation.validateCaseDetails(CASE_TYPE_ID, eventData)) .willReturn(data); @@ -628,7 +628,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) @@ -654,7 +654,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(HttpStatus.valueOf(200)); given(savedCaseType.getCaseTypeId()).willReturn(CASE_TYPE_ID); given(savedCaseType.getId()).willReturn(CASE_ID); given(savedCaseType.getData()).willReturn(data); @@ -695,7 +695,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..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 @@ -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; @@ -51,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; @@ -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..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; @@ -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 685483c756..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 @@ -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; @@ -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..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; @@ -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/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..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,8 +32,8 @@ 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.Mockito.anyListOf; +import static org.mockito.ArgumentMatchers.any; +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 93b4335788..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; @@ -30,7 +31,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; @@ -83,7 +84,7 @@ public class AuditCaseRemoteOperationIT extends WireMockBaseTest { @Mock private AuditRepository auditRepository; - @SpyBean + @MockitoSpyBean private AuditCaseRemoteOperation auditCaseRemoteOperation; @Inject @@ -118,7 +119,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..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; @@ -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..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; @@ -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/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/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..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,11 +46,11 @@ 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.anyMapOf; +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.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..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; @@ -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/stdapi/DocumentsOperationTest.java b/src/test/java/uk/gov/hmcts/ccd/domain/service/stdapi/DocumentsOperationTest.java index 01bb50133d..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 @@ -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; @@ -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/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 5b64557333..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 @@ -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; @@ -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..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; @@ -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 14ef5627de..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 @@ -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; @@ -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 d0b7f69fa1..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; @@ -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; @@ -36,12 +36,12 @@ public class CallbackEndpointIT extends WireMockBaseTest { private WebApplicationContext wac; private MockMvc mockMvc; - @SpyBean + @MockitoSpyBean private AuditRepository auditRepository; @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 a289fea297..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 @@ -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; @@ -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/CaseAccessEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseAccessEndpointIT.java index 6dd5a759b9..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; @@ -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; @@ -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 8f39f546f3..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 @@ -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,17 +64,17 @@ 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.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.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); @@ -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(); @@ -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()); @@ -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( "{" + @@ -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()); @@ -950,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\":{" + @@ -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)) @@ -3673,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) @@ -3705,7 +3704,7 @@ private void shouldReturn201WithEmptyBodyWhenPostCreateCaseEventWithNoCaseTypeRe .andReturn(); String response = mvcResult.getResponse().getContentAsString(); - assertThat(response, CoreMatchers.is(isEmptyString())); + assertThat(response, CoreMatchers.is(emptyString())); } @@ -4285,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 @@ -4371,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/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/CaseDetailsEndpointTest.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/CaseDetailsEndpointTest.java index 7e1f829b84..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; @@ -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/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..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; @@ -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; @@ -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/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/DraftsEndpointTest.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/DraftsEndpointTest.java index 2cef55fc7b..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; @@ -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/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/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/std/GlobalSearchEndpointIT.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/std/GlobalSearchEndpointIT.java index e10c82684d..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; @@ -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; @@ -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 3b89a13de4..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; @@ -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; @@ -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/CallbackTest.java b/src/test/java/uk/gov/hmcts/ccd/endpoint/ui/CallbackTest.java index f509d91689..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 @@ -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; @@ -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/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..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; @@ -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; @@ -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/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/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/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/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/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/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/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/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..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 @@ -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/security/idam/IdamRepositoryTest.java b/src/test/java/uk/gov/hmcts/ccd/security/idam/IdamRepositoryTest.java index 2dda3d2edd..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; @@ -42,8 +43,8 @@ class IdamRepositoryTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); - Whitebox.setInternalState(idamRepository, "selfInstance", idamRepository); + MockitoAnnotations.openMocks(this); + ReflectionTestUtils.setField(idamRepository, "selfInstance", idamRepository); } @Test 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..bf8df8280e 100644 --- a/src/test/java/uk/gov/hmcts/ccd/swagger/SwaggerGeneratorTest.java +++ b/src/test/java/uk/gov/hmcts/ccd/swagger/SwaggerGeneratorTest.java @@ -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/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..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; @@ -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; @@ -96,7 +96,7 @@ class BaseCaseAssignedUserRolesControllerIT extends WireMockBaseTest { @Inject protected ApplicationParams applicationParams; - @SpyBean @Inject + @MockitoSpyBean @Inject protected AuditRepository auditRepository; @Mock @@ -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 b356710425..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 @@ -21,12 +21,12 @@ 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; 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/CaseControllerEventsIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerEventsIT.java index 16f4109dc3..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 @@ -3,8 +3,8 @@ import com.fasterxml.jackson.databind.DeserializationFeature; import com.github.tomakehurst.wiremock.client.WireMock; import java.util.Arrays; -import javax.inject.Inject; -import org.apache.commons.lang.RandomStringUtils; +import jakarta.inject.Inject; +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/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/CaseControllerTestIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseControllerTestIT.java index f80b0cb42b..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; @@ -43,7 +43,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; @@ -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/CaseDataValidatorControllerDCPIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseDataValidatorControllerDCPIT.java index aacfaf0316..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 @@ -23,11 +23,11 @@ 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; -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 78b02fd1f5..09260ec33b 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 @@ -11,7 +11,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; @@ -77,7 +77,7 @@ public class CaseDocumentControllerIT 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/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/CaseFileViewControllerTestIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/CaseFileViewControllerTestIT.java index 4d6ac5d732..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; @@ -20,7 +20,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.junit.jupiter.api.Assertions.assertTrue; @@ -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 5571890e2f..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; @@ -21,13 +21,13 @@ 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; 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; @@ -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 156d9309e4..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; @@ -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/DocumentControllerITest.java b/src/test/java/uk/gov/hmcts/ccd/v2/external/controller/DocumentControllerITest.java index bea5214e31..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 @@ -1,52 +1,102 @@ package uk.gov.hmcts.ccd.v2.external.controller; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Before; -import org.junit.Test; +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.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.test.context.jdbc.Sql; +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.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; -import javax.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 { +@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; @@ -60,76 +110,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:%s/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(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(com.github.tomakehurst.wiremock.client.WireMock + 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(String.format("http://localhost:%s/cases/" + CASE_ID + "/documents", super.wiremockPort)) + get(wiremockUrl + "/cases/" + CASE_ID + "/documents") .contentType(MediaType.APPLICATION_JSON) .header("Accept", V2.MediaType.CASE_DOCUMENTS) .header(REQUEST_ID, REQUEST_ID_VALUE) @@ -148,7 +243,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(wiremockUrl + "/cases/" + CASE_ID + "/documents")), () -> assertThat(documentResources, hasItems(allOf(hasProperty("name", is("Claimant ID")), hasProperty("description", is("Document identifying identity")), @@ -161,4 +256,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/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/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 44cb29f7aa..c7373b78d0 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 @@ -18,7 +18,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/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/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); 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/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/UICaseControllerCaseRolesIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerCaseRolesIT.java index ffe2db8efa..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; @@ -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; @@ -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/UICaseControllerDCPIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerDCPIT.java index 9dd3c0b792..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 @@ -23,14 +23,14 @@ 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; 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/UICaseControllerGetCaseCallbackIT.java b/src/test/java/uk/gov/hmcts/ccd/v2/internal/controller/UICaseControllerGetCaseCallbackIT.java index 9541849921..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; @@ -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/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 41ee76aa30..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 @@ -15,11 +15,11 @@ 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; -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/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/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 d9d574fc9a..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 @@ -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; @@ -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/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/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 f0b11ce670..0b26a7da08 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 @@ -40,7 +40,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 37cadc3127..e1d10dcd3c 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 @@ -45,7 +45,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 0b9846dbf3..04dce5bc2f 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 @@ -25,7 +25,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 dde4bb3dce..0b715c2770 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 @@ -48,7 +48,7 @@ class UserProfileViewResourceTest { @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + MockitoAnnotations.openMocks(this); channels = new String[]{channel1, channel2}; jurisdictionDisplayProperties = 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;