diff --git a/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ProbationIntegrationEPFGateway.kt b/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ProbationIntegrationEPFGateway.kt index 08ca7038b..8f9c85991 100644 --- a/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ProbationIntegrationEPFGateway.kt +++ b/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ProbationIntegrationEPFGateway.kt @@ -29,7 +29,7 @@ class ProbationIntegrationEPFGateway( HttpMethod.GET, "/case-details/$id/$eventNumber", authenticationHeader(), - UpstreamApi.NDELIUS, + UpstreamApi.EFFECTIVE_PROPOSAL_FRAMEWORK, ) return when (result) { diff --git a/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/models/hmpps/UpstreamApi.kt b/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/models/hmpps/UpstreamApi.kt index 4ec6b7541..e9dce8ba6 100644 --- a/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/models/hmpps/UpstreamApi.kt +++ b/src/main/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/models/hmpps/UpstreamApi.kt @@ -6,6 +6,7 @@ enum class UpstreamApi { PROBATION_OFFENDER_SEARCH, NDELIUS, ASSESS_RISKS_AND_NEEDS, + EFFECTIVE_PROPOSAL_FRAMEWORK, ADJUDICATIONS, CVL, CASE_NOTES, diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/extensions/WebClientWrapperTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/extensions/WebClientWrapperTest.kt index 5015e4556..c2fbf06ae 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/extensions/WebClientWrapperTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/extensions/WebClientWrapperTest.kt @@ -8,7 +8,7 @@ import org.springframework.http.HttpMethod import org.springframework.http.HttpStatus import org.springframework.web.reactive.function.client.WebClientResponseException import uk.gov.justice.digital.hmpps.hmppsintegrationapi.extensions.WebClientWrapper.WebClientWrapperResponse -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.GenericApiMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.TestApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError import java.io.File @@ -35,7 +35,7 @@ data class TestDomainModel( class WebClientWrapperTest : DescribeSpec({ - val mockServer = GenericApiMockServer() + val mockServer = TestApiMockServer() val id = "ABC1234" val headers = mapOf("foo" to "bar") @@ -125,7 +125,7 @@ class WebClientWrapperTest : { "sourceName": "Paul" }, - { + { "sourceName": "Paul" } ] @@ -154,7 +154,7 @@ class WebClientWrapperTest : { "sourceName": "Paul" }, - { + { "sourceName": "Paul" } ] diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/adjudications/AdjudicationsGatewayTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/adjudications/AdjudicationsGatewayTest.kt index 0acb25151..7ff84eefd 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/adjudications/AdjudicationsGatewayTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/adjudications/AdjudicationsGatewayTest.kt @@ -15,8 +15,9 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean import org.springframework.web.reactive.function.client.WebClientResponseException import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.AdjudicationsGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.AdjudicationsApiMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi @ActiveProfiles("test") @ContextConfiguration( @@ -28,7 +29,9 @@ class AdjudicationsGatewayTest( val adjudicationsGateway: AdjudicationsGateway, ) : DescribeSpec( { - val adjudicationsApiMockServer = AdjudicationsApiMockServer() + val id = "123" + val path = "/reported-adjudications/prisoner/$id" + val adjudicationsApiMockServer = ApiMockServer.create(UpstreamApi.ADJUDICATIONS) beforeEach { adjudicationsApiMockServer.start() @@ -48,7 +51,7 @@ class AdjudicationsGatewayTest( } it("upstream API returns an error, throw exception") { - adjudicationsApiMockServer.stubGetReportedAdjudicationsForPerson("123", "", HttpStatus.BAD_REQUEST) + adjudicationsApiMockServer.stubForGet(path, "", HttpStatus.BAD_REQUEST) val response = shouldThrow { adjudicationsGateway.getReportedAdjudicationsForPerson(id = "123") @@ -57,8 +60,8 @@ class AdjudicationsGatewayTest( } it("returns adjudicationResponse") { - adjudicationsApiMockServer.stubGetReportedAdjudicationsForPerson( - "123", + adjudicationsApiMockServer.stubForGet( + path, """ [ { diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/assessrisksandneeds/GetNeedsForPersonTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/assessrisksandneeds/GetNeedsForPersonTest.kt index aabc13fd4..d89890c78 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/assessrisksandneeds/GetNeedsForPersonTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/assessrisksandneeds/GetNeedsForPersonTest.kt @@ -14,10 +14,11 @@ import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.AssessRisksAndNeedsGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.AssessRisksAndNeedsApiMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.Need import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.Needs +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError import java.time.LocalDateTime @@ -31,14 +32,15 @@ class GetNeedsForPersonTest( val assessRisksAndNeedsGateway: AssessRisksAndNeedsGateway, ) : DescribeSpec( { - val assessRisksAndNeedsApiMockServer = AssessRisksAndNeedsApiMockServer() val deliusCrn = "X777776" + val path = "/needs/crn/$deliusCrn" + val assessRisksAndNeedsApiMockServer = ApiMockServer.create(UpstreamApi.ASSESS_RISKS_AND_NEEDS) beforeEach { assessRisksAndNeedsApiMockServer.start() Mockito.reset(hmppsAuthGateway) - assessRisksAndNeedsApiMockServer.stubGetNeedsForPerson( - deliusCrn, + assessRisksAndNeedsApiMockServer.stubForGet( + path, """ { "assessedOn": "2023-02-13T12:43:38", @@ -110,8 +112,8 @@ class GetNeedsForPersonTest( } it("returns an empty list when a needs section has no data") { - assessRisksAndNeedsApiMockServer.stubGetNeedsForPerson( - deliusCrn, + assessRisksAndNeedsApiMockServer.stubForGet( + path, """ { "assessedOn": "2023-02-13T12:43:38", @@ -146,7 +148,7 @@ class GetNeedsForPersonTest( } it("returns an error when 404 NOT FOUND is returned because no person is found") { - assessRisksAndNeedsApiMockServer.stubGetNeedsForPerson(deliusCrn, "", HttpStatus.NOT_FOUND) + assessRisksAndNeedsApiMockServer.stubForGet(path, "", HttpStatus.NOT_FOUND) val response = assessRisksAndNeedsGateway.getNeedsForPerson(deliusCrn) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/assessrisksandneeds/GetRiskPredictorScoresForPersonTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/assessrisksandneeds/GetRiskPredictorScoresForPersonTest.kt index 0c86a2449..0588fe4d6 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/assessrisksandneeds/GetRiskPredictorScoresForPersonTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/assessrisksandneeds/GetRiskPredictorScoresForPersonTest.kt @@ -14,13 +14,14 @@ import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.AssessRisksAndNeedsGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.AssessRisksAndNeedsApiMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.GeneralPredictor import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.GroupReconviction import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.RiskOfSeriousRecidivism import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.RiskPredictorScore import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.SexualPredictor +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.ViolencePredictor import java.time.LocalDateTime @@ -35,14 +36,15 @@ class GetRiskPredictorScoresForPersonTest( val assessRisksAndNeedsGateway: AssessRisksAndNeedsGateway, ) : DescribeSpec( { - val assessRisksAndNeedsApiMockServer = AssessRisksAndNeedsApiMockServer() val deliusCrn = "X777776" + val path = "/risks/crn/$deliusCrn/predictors/all" + val assessRisksAndNeedsApiMockServer = ApiMockServer.create(UpstreamApi.ASSESS_RISKS_AND_NEEDS) beforeEach { assessRisksAndNeedsApiMockServer.start() Mockito.reset(hmppsAuthGateway) - assessRisksAndNeedsApiMockServer.stubGetRiskPredictorScoresForPerson( - deliusCrn, + assessRisksAndNeedsApiMockServer.stubForGet( + path, """ [ { @@ -101,7 +103,7 @@ class GetRiskPredictorScoresForPersonTest( } it("returns an empty list when no risk predictor scores are found") { - assessRisksAndNeedsApiMockServer.stubGetRiskPredictorScoresForPerson(deliusCrn, "[]") + assessRisksAndNeedsApiMockServer.stubForGet(path, "[]") val response = assessRisksAndNeedsGateway.getRiskPredictorScoresForPerson(deliusCrn) @@ -109,7 +111,7 @@ class GetRiskPredictorScoresForPersonTest( } it("returns a 404 NOT FOUND status code when no person is found") { - assessRisksAndNeedsApiMockServer.stubGetRiskPredictorScoresForPerson(deliusCrn, "", HttpStatus.NOT_FOUND) + assessRisksAndNeedsApiMockServer.stubForGet(path, "", HttpStatus.NOT_FOUND) val response = assessRisksAndNeedsGateway.getRiskPredictorScoresForPerson(deliusCrn) @@ -117,7 +119,7 @@ class GetRiskPredictorScoresForPersonTest( } it("returns a 403 FORBIDDEN status code when forbidden") { - assessRisksAndNeedsApiMockServer.stubGetRiskPredictorScoresForPerson(deliusCrn, "", HttpStatus.FORBIDDEN) + assessRisksAndNeedsApiMockServer.stubForGet(path, "", HttpStatus.FORBIDDEN) val response = assessRisksAndNeedsGateway.getRiskPredictorScoresForPerson(deliusCrn) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/assessrisksandneeds/GetRisksForPersonTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/assessrisksandneeds/GetRisksForPersonTest.kt index 0b1613a22..b909f848b 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/assessrisksandneeds/GetRisksForPersonTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/assessrisksandneeds/GetRisksForPersonTest.kt @@ -14,13 +14,14 @@ import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.AssessRisksAndNeedsGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.AssessRisksAndNeedsApiMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.OtherRisks import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.Risk import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.RiskSummary import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.RiskToSelf import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.Risks +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError import java.io.File import java.time.LocalDateTime @@ -35,14 +36,15 @@ class GetRisksForPersonTest( val assessRisksAndNeedsGateway: AssessRisksAndNeedsGateway, ) : DescribeSpec( { - val assessRisksAndNeedsApiMockServer = AssessRisksAndNeedsApiMockServer() val deliusCrn = "X777776" + val path = "/risks/crn/$deliusCrn" + val assessRisksAndNeedsApiMockServer = ApiMockServer.create(UpstreamApi.ASSESS_RISKS_AND_NEEDS) beforeEach { assessRisksAndNeedsApiMockServer.start() Mockito.reset(hmppsAuthGateway) - assessRisksAndNeedsApiMockServer.stubGetRisksForPerson( - deliusCrn, + assessRisksAndNeedsApiMockServer.stubForGet( + path, File( "src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/assessrisksandneeds/fixtures/GetRisksResponse.json", ).readText(), @@ -148,7 +150,7 @@ class GetRisksForPersonTest( } it("returns a 404 NOT FOUND status code when no person is found") { - assessRisksAndNeedsApiMockServer.stubGetRisksForPerson(deliusCrn, "", HttpStatus.NOT_FOUND) + assessRisksAndNeedsApiMockServer.stubForGet(path, "", HttpStatus.NOT_FOUND) val response = assessRisksAndNeedsGateway.getRiskSeriousHarmForPerson(deliusCrn) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/caseNotes/CaseNotesGatewayTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/caseNotes/CaseNotesGatewayTest.kt index eacfd0733..611375f58 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/caseNotes/CaseNotesGatewayTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/caseNotes/CaseNotesGatewayTest.kt @@ -17,7 +17,7 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean import org.springframework.web.reactive.function.client.WebClientResponseException import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.CaseNotesGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.CaseNotesApiMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.filters.CaseNoteFilter import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi @@ -34,8 +34,10 @@ class CaseNotesGatewayTest( private val caseNotesGateway: CaseNotesGateway, ) : DescribeSpec( { + val id = "123" + val pathNoParams = "/case-notes/$id" + val caseNotesApiMockServer = ApiMockServer.create(UpstreamApi.CASE_NOTES) - val caseNotesApiMockServer = CaseNotesApiMockServer() beforeEach { caseNotesApiMockServer.start() @@ -57,7 +59,7 @@ class CaseNotesGatewayTest( } it("upstream API returns an error, throw exception") { - caseNotesApiMockServer.stubGetCaseNotes("123", "", "", HttpStatus.BAD_REQUEST) + caseNotesApiMockServer.stubForGet(pathNoParams, "", HttpStatus.BAD_REQUEST) val response = shouldThrow { caseNotesGateway.getCaseNotesForPerson(id = "123", CaseNoteFilter(hmppsId = "")) @@ -66,7 +68,7 @@ class CaseNotesGatewayTest( } it("upstream API returns an forbidden error, throw forbidden exception") { - caseNotesApiMockServer.stubGetCaseNotes("123", "", "", HttpStatus.FORBIDDEN) + caseNotesApiMockServer.stubForGet(pathNoParams, "", HttpStatus.FORBIDDEN) val response = caseNotesGateway.getCaseNotesForPerson(id = "123", CaseNoteFilter(hmppsId = "")) response.errors.shouldHaveSize(1) response.errors @@ -144,7 +146,7 @@ class CaseNotesGatewayTest( "empty": false } """ - caseNotesApiMockServer.stubGetCaseNotes("123", "", responseJson, HttpStatus.OK) + caseNotesApiMockServer.stubForGet(pathNoParams, responseJson, HttpStatus.OK) val response = caseNotesGateway.getCaseNotesForPerson(id = "123", CaseNoteFilter(hmppsId = "")) response.data.count().shouldBe(2) response.data.shouldExist { it -> it.caseNoteId == "131231" } @@ -217,8 +219,8 @@ class CaseNotesGatewayTest( "empty": false } """ - val params = "?locationId=mockLocation&startDate=2024-01-02&endDate=2024-01-03" - caseNotesApiMockServer.stubGetCaseNotes("123", params, responseJson, HttpStatus.OK) + val pathWithParams = "/case-notes/$id?locationId=mockLocation&startDate=2024-01-02&endDate=2024-01-03" + caseNotesApiMockServer.stubForGet(pathWithParams, responseJson, HttpStatus.OK) val response = caseNotesGateway.getCaseNotesForPerson(id = "123", filter) response.data.count().shouldBe(2) response.data.shouldExist { it -> it.caseNoteId == "131231" } diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/contacts/GetContactsGatewayTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/contacts/GetContactsGatewayTest.kt index 051f0560d..413e3f749 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/contacts/GetContactsGatewayTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/contacts/GetContactsGatewayTest.kt @@ -15,8 +15,8 @@ import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.PersonalRelationshipsGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.PersonalRelationshipsApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError @@ -35,7 +35,7 @@ class GetContactsGatewayTest( val page = 1 val size = 10 val pathWithQueryParams = "$getContactsPath?page=$page&size=$size" - val personalRelationshipsApiMockServer = PersonalRelationshipsApiMockServer() + val personalRelationshipsApiMockServer = ApiMockServer.create(UpstreamApi.PERSONAL_RELATIONSHIPS) beforeEach { personalRelationshipsApiMockServer.start() @@ -124,7 +124,7 @@ class GetContactsGatewayTest( } """.trimIndent() - personalRelationshipsApiMockServer.stubPersonalRelationshipsApiResponse(pathWithQueryParams, body = exampleData, HttpStatus.OK) + personalRelationshipsApiMockServer.stubForGet(pathWithQueryParams, body = exampleData, HttpStatus.OK) val response = personalRelationshipsGateway.getContacts(prisonerId, page, size) response.data.shouldNotBeNull() @@ -137,7 +137,7 @@ class GetContactsGatewayTest( } it("returns a 404 when visit is not found") { - personalRelationshipsApiMockServer.stubPersonalRelationshipsApiResponse(pathWithQueryParams, body = "", HttpStatus.NOT_FOUND) + personalRelationshipsApiMockServer.stubForGet(pathWithQueryParams, body = "", HttpStatus.NOT_FOUND) val response = personalRelationshipsGateway.getContacts(prisonerId, page, size) response.errors.shouldHaveSize(1) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/createAndVaryLicence/GetLicenceConditionsTests.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/createAndVaryLicence/GetLicenceConditionsTests.kt index f6ca84a2b..2cf13a8df 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/createAndVaryLicence/GetLicenceConditionsTests.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/createAndVaryLicence/GetLicenceConditionsTests.kt @@ -14,8 +14,9 @@ import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.CreateAndVaryLicenceGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.CreateAndVaryLicenceApiMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError @ActiveProfiles("test") @@ -28,13 +29,14 @@ class GetLicenceConditionsTests( private val createAndVaryLicenceGateway: CreateAndVaryLicenceGateway, ) : DescribeSpec( { - val createAndVaryLicenceApiMockServer = CreateAndVaryLicenceApiMockServer() val conditionId = 12345 + val path = "/public/licences/id/$conditionId" + val createAndVaryLicenceApiMockServer = ApiMockServer.create(UpstreamApi.CVL) beforeEach { createAndVaryLicenceApiMockServer.start() - createAndVaryLicenceApiMockServer.stubGetLicenceConditions( - conditionId, + createAndVaryLicenceApiMockServer.stubForGet( + path, """ { "conditions": @@ -77,8 +79,8 @@ class GetLicenceConditionsTests( } it("returns an error when 404 NOT FOUND is returned") { - createAndVaryLicenceApiMockServer.stubGetLicenceConditions( - conditionId, + createAndVaryLicenceApiMockServer.stubForGet( + path, """ [{ "developerMessage": "cannot find person" diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/createAndVaryLicence/GetLicenceSummariesTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/createAndVaryLicence/GetLicenceSummariesTest.kt index d8a816135..9456032cb 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/createAndVaryLicence/GetLicenceSummariesTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/createAndVaryLicence/GetLicenceSummariesTest.kt @@ -14,8 +14,9 @@ import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.CreateAndVaryLicenceGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.CreateAndVaryLicenceApiMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError @ActiveProfiles("test") @@ -28,13 +29,15 @@ class GetLicenceSummariesTest( private val createAndVaryLicenceGateway: CreateAndVaryLicenceGateway, ) : DescribeSpec( { - val createAndVaryLicenceApiMockServer = CreateAndVaryLicenceApiMockServer() + val deliusCrn = "X777776" + val path = "/public/licence-summaries/crn/$deliusCrn" + val createAndVaryLicenceApiMockServer = ApiMockServer.create(UpstreamApi.CVL) beforeEach { createAndVaryLicenceApiMockServer.start() - createAndVaryLicenceApiMockServer.stubGetLicenceSummaries( - deliusCrn, + createAndVaryLicenceApiMockServer.stubForGet( + path, """ [{ "id":"A1234AA", @@ -67,8 +70,8 @@ class GetLicenceSummariesTest( } it("returns an error when 404 NOT FOUND is returned") { - createAndVaryLicenceApiMockServer.stubGetLicenceSummaries( - deliusCrn, + createAndVaryLicenceApiMockServer.stubForGet( + path, """ [{ "developerMessage": "cannot find person" diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/incentives/GetIEPReviewHistoryTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/incentives/GetIEPReviewHistoryTest.kt index 2d68a0fe4..9d8091d33 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/incentives/GetIEPReviewHistoryTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/incentives/GetIEPReviewHistoryTest.kt @@ -15,8 +15,8 @@ import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.IncentivesGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.IncentivesApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError @@ -31,7 +31,7 @@ class GetIEPReviewHistoryTest( ) : DescribeSpec({ val hmppsId = "A1234AA" val path = "/incentive-reviews/prisoner/$hmppsId" - val incentivesApiMockServer = IncentivesApiMockServer() + val incentivesApiMockServer = ApiMockServer.create(UpstreamApi.INCENTIVES) beforeEach { incentivesApiMockServer.start() @@ -51,7 +51,7 @@ class GetIEPReviewHistoryTest( } it("gets the data from the gateway") { - incentivesApiMockServer.stubIncentivesApiResponse( + incentivesApiMockServer.stubForGet( path = path, body = """ @@ -95,7 +95,7 @@ class GetIEPReviewHistoryTest( } it("should return error when bad request is returned") { - incentivesApiMockServer.stubIncentivesApiResponse(path, "", HttpStatus.BAD_REQUEST) + incentivesApiMockServer.stubForGet(path, "", HttpStatus.BAD_REQUEST) val response = incentivesGateway.getIEPReviewHistory(hmppsId) response.errors.shouldBe(listOf(UpstreamApiError(UpstreamApi.INCENTIVES, UpstreamApiError.Type.BAD_REQUEST))) } diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/managePOMcase/ManagePOMCaseGatewayTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/managePOMcase/ManagePOMCaseGatewayTest.kt index 226cdeaf0..dbf35cb65 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/managePOMcase/ManagePOMCaseGatewayTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/managePOMcase/ManagePOMCaseGatewayTest.kt @@ -15,8 +15,9 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean import org.springframework.web.reactive.function.client.WebClientResponseException import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.ManagePOMCaseGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ManagePOMCaseApiMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi @ActiveProfiles("test") @ContextConfiguration( @@ -28,7 +29,9 @@ class ManagePOMCaseGatewayTest( val managePOMCaseGateway: ManagePOMCaseGateway, ) : DescribeSpec( { - val managePOMCaseApiMockServer = ManagePOMCaseApiMockServer() + val id = "X1234YZ" + val path = "/api/allocation/$id/primary_pom" + val managePOMCaseApiMockServer = ApiMockServer.create(UpstreamApi.MANAGE_POM_CASE) beforeEach { managePOMCaseApiMockServer.start() @@ -42,23 +45,23 @@ class ManagePOMCaseGatewayTest( } it("authenticates using HMPPS Auth with credentials") { - managePOMCaseGateway.getPrimaryPOMForNomisNumber(id = "X1234YZ") + managePOMCaseGateway.getPrimaryPOMForNomisNumber(id = id) verify(hmppsAuthGateway, VerificationModeFactory.times(1)).getClientToken("ManagePOMCase") } it("upstream API returns an error, throw exception") { - managePOMCaseApiMockServer.stubGetPrimaryPOMForNomisNumber("X1234YZ", "", HttpStatus.BAD_REQUEST) + managePOMCaseApiMockServer.stubForGet(path, "", HttpStatus.BAD_REQUEST) val response = shouldThrow { - managePOMCaseGateway.getPrimaryPOMForNomisNumber(id = "X1234YZ") + managePOMCaseGateway.getPrimaryPOMForNomisNumber(id = id) } response.statusCode.shouldBe(HttpStatus.BAD_REQUEST) } it("returns primary offender officer") { - managePOMCaseApiMockServer.stubGetPrimaryPOMForNomisNumber( - "X1234YZ", + managePOMCaseApiMockServer.stubForGet( + path, """ { "manager": { @@ -74,7 +77,7 @@ class ManagePOMCaseGatewayTest( HttpStatus.OK, ) - val response = managePOMCaseGateway.getPrimaryPOMForNomisNumber(id = "X1234YZ") + val response = managePOMCaseGateway.getPrimaryPOMForNomisNumber(id = id) response.data.forename.shouldBe("string") response.data.surname.shouldBe("string") } diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/GetCommunityOffenderManagerForPersonTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/GetCommunityOffenderManagerForPersonTest.kt index 7ec586a76..fdce654f7 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/GetCommunityOffenderManagerForPersonTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/GetCommunityOffenderManagerForPersonTest.kt @@ -14,8 +14,8 @@ import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.NDeliusGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NDeliusApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.CommunityOffenderManager import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.PersonResponsibleOfficerName import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.PersonResponsibleOfficerTeam @@ -34,13 +34,14 @@ class GetCommunityOffenderManagerForPersonTest( val nDeliusGateway: NDeliusGateway, ) : DescribeSpec( { - val nDeliusApiMockServer = NDeliusApiMockServer() val deliusCrn = "X777776" + val path = "/case/$deliusCrn/supervisions" + val nDeliusApiMockServer = ApiMockServer.create(UpstreamApi.NDELIUS) beforeEach { nDeliusApiMockServer.start() - nDeliusApiMockServer.stubGetSupervisionsForPerson( - deliusCrn, + nDeliusApiMockServer.stubForGet( + path, File( "src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/fixtures/GetSupervisionsResponse.json", ).readText(), @@ -80,8 +81,8 @@ class GetCommunityOffenderManagerForPersonTest( } it("returns an empty object if no community offender manager is found") { - nDeliusApiMockServer.stubGetSupervisionsForPerson( - deliusCrn, + nDeliusApiMockServer.stubForGet( + path, """ { "communityManager": {}, @@ -99,7 +100,7 @@ class GetCommunityOffenderManagerForPersonTest( } it("returns an error when 404 Not Found is returned because no person is found") { - nDeliusApiMockServer.stubGetSupervisionsForPerson(deliusCrn, "", HttpStatus.NOT_FOUND) + nDeliusApiMockServer.stubForGet(path, "", HttpStatus.NOT_FOUND) val response = nDeliusGateway.getCommunityOffenderManagerForPerson(deliusCrn) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/GetDynamicRisksForPersonTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/GetDynamicRisksForPersonTest.kt index d63efd6f3..81c44049f 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/GetDynamicRisksForPersonTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/GetDynamicRisksForPersonTest.kt @@ -14,8 +14,8 @@ import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.NDeliusGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NDeliusApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.DynamicRisk import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError @@ -31,13 +31,14 @@ class GetDynamicRisksForPersonTest( val nDeliusGateway: NDeliusGateway, ) : DescribeSpec( { - val nDeliusApiMockServer = NDeliusApiMockServer() val deliusCrn = "X777776" + val path = "/case/$deliusCrn/supervisions" + val nDeliusApiMockServer = ApiMockServer.create(UpstreamApi.NDELIUS) beforeEach { nDeliusApiMockServer.start() - nDeliusApiMockServer.stubGetSupervisionsForPerson( - deliusCrn, + nDeliusApiMockServer.stubForGet( + path, File( "src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/fixtures/GetSupervisionsResponse.json", ).readText(), @@ -74,8 +75,8 @@ class GetDynamicRisksForPersonTest( } it("returns an empty list if no dynamic risks are found") { - nDeliusApiMockServer.stubGetSupervisionsForPerson( - deliusCrn, + nDeliusApiMockServer.stubForGet( + path, """ { "communityManager": {}, @@ -93,7 +94,7 @@ class GetDynamicRisksForPersonTest( } it("returns an error when 404 Not Found is returned because no person is found") { - nDeliusApiMockServer.stubGetSupervisionsForPerson(deliusCrn, "", HttpStatus.NOT_FOUND) + nDeliusApiMockServer.stubForGet(path, "", HttpStatus.NOT_FOUND) val response = nDeliusGateway.getDynamicRisksForPerson(deliusCrn) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/GetMappaDetailForPersonTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/GetMappaDetailForPersonTest.kt index c3d2c2c63..62b12609e 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/GetMappaDetailForPersonTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/GetMappaDetailForPersonTest.kt @@ -14,8 +14,8 @@ import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.NDeliusGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NDeliusApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.MappaDetail import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError @@ -31,13 +31,14 @@ class GetMappaDetailForPersonTest( val nDeliusGateway: NDeliusGateway, ) : DescribeSpec( { - val nDeliusApiMockServer = NDeliusApiMockServer() val deliusCrn = "X777776" + val path = "/case/$deliusCrn/supervisions" + val nDeliusApiMockServer = ApiMockServer.create(UpstreamApi.NDELIUS) beforeEach { nDeliusApiMockServer.start() - nDeliusApiMockServer.stubGetSupervisionsForPerson( - deliusCrn, + nDeliusApiMockServer.stubForGet( + path, File( "src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/fixtures/GetSupervisionsResponse.json", ).readText(), @@ -74,8 +75,8 @@ class GetMappaDetailForPersonTest( } it("returns an empty list if no mappa detail is found") { - nDeliusApiMockServer.stubGetSupervisionsForPerson( - deliusCrn, + nDeliusApiMockServer.stubForGet( + path, """ { "communityManager": {}, @@ -93,7 +94,7 @@ class GetMappaDetailForPersonTest( } it("returns an error when 404 Not Found is returned because no person is found") { - nDeliusApiMockServer.stubGetSupervisionsForPerson(deliusCrn, "", HttpStatus.NOT_FOUND) + nDeliusApiMockServer.stubForGet(path, "", HttpStatus.NOT_FOUND) val response = nDeliusGateway.getMappaDetailForPerson(deliusCrn) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/GetOffencesForPersonTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/GetOffencesForPersonTest.kt index 8dee08c5e..27bde965d 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/GetOffencesForPersonTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/GetOffencesForPersonTest.kt @@ -16,8 +16,8 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.NDeliusGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.helpers.generateTestOffence +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NDeliusApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError import java.io.File @@ -33,13 +33,14 @@ class GetOffencesForPersonTest( val nDeliusGateway: NDeliusGateway, ) : DescribeSpec( { - val nDeliusApiMockServer = NDeliusApiMockServer() val deliusCrn = "X777776" + val path = "/case/$deliusCrn/supervisions" + val nDeliusApiMockServer = ApiMockServer.create(UpstreamApi.NDELIUS) beforeEach { nDeliusApiMockServer.start() - nDeliusApiMockServer.stubGetSupervisionsForPerson( - deliusCrn, + nDeliusApiMockServer.stubForGet( + path, File( "src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/fixtures/GetSupervisionsResponse.json", ).readText(), @@ -139,8 +140,8 @@ class GetOffencesForPersonTest( } it("returns an empty list if no offences are found") { - nDeliusApiMockServer.stubGetSupervisionsForPerson( - deliusCrn, + nDeliusApiMockServer.stubForGet( + path, """ { "communityManager": {}, @@ -158,7 +159,7 @@ class GetOffencesForPersonTest( } it("returns an error when 404 Not Found is returned because no person is found") { - nDeliusApiMockServer.stubGetSupervisionsForPerson(deliusCrn, "", HttpStatus.NOT_FOUND) + nDeliusApiMockServer.stubForGet(path, "", HttpStatus.NOT_FOUND) val response = nDeliusGateway.getOffencesForPerson(deliusCrn) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/GetSentencesForPersonTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/GetSentencesForPersonTest.kt index e4f99e86e..76421fe85 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/GetSentencesForPersonTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/GetSentencesForPersonTest.kt @@ -16,8 +16,8 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.NDeliusGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.helpers.generateTestSentence +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NDeliusApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.SentenceLength import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.SystemSource import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi @@ -35,13 +35,14 @@ class GetSentencesForPersonTest( val nDeliusGateway: NDeliusGateway, ) : DescribeSpec( { - val nDeliusApiMockServer = NDeliusApiMockServer() val deliusCrn = "X777776" + val path = "/case/$deliusCrn/supervisions" + val nDeliusApiMockServer = ApiMockServer.create(UpstreamApi.NDELIUS) beforeEach { nDeliusApiMockServer.start() - nDeliusApiMockServer.stubGetSupervisionsForPerson( - deliusCrn, + nDeliusApiMockServer.stubForGet( + path, File( "src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/fixtures/GetSupervisionsResponse.json", ).readText(), @@ -99,8 +100,8 @@ class GetSentencesForPersonTest( } it("returns an empty list if no sentences are found") { - nDeliusApiMockServer.stubGetSupervisionsForPerson( - deliusCrn, + nDeliusApiMockServer.stubForGet( + path, """ { "communityManager": {}, @@ -118,7 +119,7 @@ class GetSentencesForPersonTest( } it("returns an error when 404 Not Found is returned because no person is found") { - nDeliusApiMockServer.stubGetSupervisionsForPerson(deliusCrn, "", HttpStatus.NOT_FOUND) + nDeliusApiMockServer.stubForGet(path, "", HttpStatus.NOT_FOUND) val response = nDeliusGateway.getSentencesForPerson(deliusCrn) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/GetStatusInformationForPersonTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/GetStatusInformationForPersonTest.kt index bee4d2a2a..b6f88863f 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/GetStatusInformationForPersonTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/GetStatusInformationForPersonTest.kt @@ -14,8 +14,8 @@ import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.NDeliusGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NDeliusApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.StatusInformation import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError @@ -31,13 +31,14 @@ class GetStatusInformationForPersonTest( val nDeliusGateway: NDeliusGateway, ) : DescribeSpec( { - val nDeliusApiMockServer = NDeliusApiMockServer() val deliusCrn = "X777776" + val path = "/case/$deliusCrn/supervisions" + val nDeliusApiMockServer = ApiMockServer.create(UpstreamApi.NDELIUS) beforeEach { nDeliusApiMockServer.start() - nDeliusApiMockServer.stubGetSupervisionsForPerson( - deliusCrn, + nDeliusApiMockServer.stubForGet( + path, File( "src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/ndelius/fixtures/GetSupervisionsResponse.json", ).readText(), @@ -74,8 +75,8 @@ class GetStatusInformationForPersonTest( } it("returns an empty list if no status information is found") { - nDeliusApiMockServer.stubGetSupervisionsForPerson( - deliusCrn, + nDeliusApiMockServer.stubForGet( + path, """ { "communityManager": {}, @@ -93,7 +94,7 @@ class GetStatusInformationForPersonTest( } it("returns an error when 404 Not Found is returned because no person is found") { - nDeliusApiMockServer.stubGetSupervisionsForPerson(deliusCrn, "", HttpStatus.NOT_FOUND) + nDeliusApiMockServer.stubForGet(path, "", HttpStatus.NOT_FOUND) val response = nDeliusGateway.getStatusInformationForPerson(deliusCrn) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetAccountsForPersonTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetAccountsForPersonTest.kt index e9cfb0a90..7bc327f80 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetAccountsForPersonTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetAccountsForPersonTest.kt @@ -16,8 +16,8 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.extensions.removeWhitespaceAndNewlines import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.NomisGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NomisApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError @@ -31,14 +31,14 @@ class GetAccountsForPersonTest( val nomisGateway: NomisGateway, ) : DescribeSpec( { - val nomisApiMockServer = NomisApiMockServer() + val nomisApiMockServer = ApiMockServer.create(UpstreamApi.NOMIS) val nomisNumber = "AA1234Z" val prisonId = "XYZ" val accountsPath = "/api/v1/prison/$prisonId/offenders/$nomisNumber/accounts" beforeEach { nomisApiMockServer.start() - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( accountsPath, """ { @@ -73,7 +73,7 @@ class GetAccountsForPersonTest( } it("returns an error when 404 Not Found is returned because no person is found") { - nomisApiMockServer.stubNomisApiResponse(accountsPath, "", HttpStatus.NOT_FOUND) + nomisApiMockServer.stubForGet(accountsPath, "", HttpStatus.NOT_FOUND) val response = nomisGateway.getAccountsForPerson(prisonId, nomisNumber) @@ -89,7 +89,7 @@ class GetAccountsForPersonTest( } it("returns an error when 400 Bad Request is returned because of invalid ID") { - nomisApiMockServer.stubNomisApiResponse(accountsPath, "", HttpStatus.BAD_REQUEST) + nomisApiMockServer.stubForGet(accountsPath, "", HttpStatus.BAD_REQUEST) val response = nomisGateway.getAccountsForPerson(prisonId, nomisNumber) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetAddressesForPersonTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetAddressesForPersonTest.kt index c334b30fd..87b807991 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetAddressesForPersonTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetAddressesForPersonTest.kt @@ -15,8 +15,9 @@ import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.NomisGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NomisApiMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError @ActiveProfiles("test") @@ -29,12 +30,12 @@ class GetAddressesForPersonTest( private val nomisGateway: NomisGateway, ) : DescribeSpec( { - val nomisApiMockServer = NomisApiMockServer() + val nomisApiMockServer = ApiMockServer.create(UpstreamApi.NOMIS) val offenderNo = "abc123" val addressPath = "/api/offenders/$offenderNo/addresses" beforeEach { nomisApiMockServer.start() - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( addressPath, """ [ @@ -95,7 +96,7 @@ class GetAddressesForPersonTest( } it("returns an empty list when no addresses are found") { - nomisApiMockServer.stubNomisApiResponse(addressPath, "[]") + nomisApiMockServer.stubForGet(addressPath, "[]") val response = nomisGateway.getAddressesForPerson(offenderNo) @@ -103,7 +104,7 @@ class GetAddressesForPersonTest( } it("returns an error when 404 NOT FOUND is returned") { - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( addressPath, """ { diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetAlertsForPersonTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetAlertsForPersonTest.kt index 75ff98ec0..5372823c9 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetAlertsForPersonTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetAlertsForPersonTest.kt @@ -17,8 +17,8 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.extensions.removeWhitespaceAndNewlines import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.NomisGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NomisApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError @@ -32,12 +32,12 @@ class GetAlertsForPersonTest( val nomisGateway: NomisGateway, ) : DescribeSpec( { - val nomisApiMockServer = NomisApiMockServer() + val nomisApiMockServer = ApiMockServer.create(UpstreamApi.NOMIS) val offenderNo = "zyx987" val alertsPath = "/api/offenders/$offenderNo/alerts/v2" beforeEach { nomisApiMockServer.start() - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( alertsPath, """ [ @@ -81,7 +81,7 @@ class GetAlertsForPersonTest( } it("returns a person with an empty list of alerts when no alerts are found") { - nomisApiMockServer.stubNomisApiResponse(alertsPath, "[]") + nomisApiMockServer.stubForGet(alertsPath, "[]") val response = nomisGateway.getAlertsForPerson(offenderNo) @@ -89,7 +89,7 @@ class GetAlertsForPersonTest( } it("returns an error when 404 Not Found is returned because no person is found") { - nomisApiMockServer.stubNomisApiResponse(alertsPath, "", HttpStatus.NOT_FOUND) + nomisApiMockServer.stubForGet(alertsPath, "", HttpStatus.NOT_FOUND) val response = nomisGateway.getAlertsForPerson(offenderNo) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetImageDataTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetImageDataTest.kt index 50e443a40..6c918e61e 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetImageDataTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetImageDataTest.kt @@ -14,8 +14,8 @@ import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.NomisGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NomisApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError import java.io.File @@ -29,12 +29,12 @@ class GetImageDataTest( @MockitoBean val hmppsAuthGateway: HmppsAuthGateway, private val nomisGateway: NomisGateway, ) : DescribeSpec({ - val nomisApiMockServer = NomisApiMockServer() + val nomisApiMockServer = ApiMockServer.create(UpstreamApi.NOMIS) val imageId = 5678 beforeEach { nomisApiMockServer.start() - nomisApiMockServer.stubGetImageData(imageId) + nomisApiMockServer.stubForImageData(imageId) Mockito.reset(hmppsAuthGateway) whenever(hmppsAuthGateway.getClientToken("NOMIS")).thenReturn(HmppsAuthMockServer.TOKEN) @@ -59,7 +59,7 @@ class GetImageDataTest( } it("returns an error when 404 Not Found is returned") { - nomisApiMockServer.stubGetImageData(imageId, HttpStatus.NOT_FOUND) + nomisApiMockServer.stubForImageData(imageId, HttpStatus.NOT_FOUND) val response = nomisGateway.getImageData(imageId) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetImageMetadataForPersonTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetImageMetadataForPersonTest.kt index ecbd11dff..e88eb3587 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetImageMetadataForPersonTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetImageMetadataForPersonTest.kt @@ -15,8 +15,8 @@ import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.NomisGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NomisApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError import java.time.LocalDateTime @@ -30,12 +30,12 @@ class GetImageMetadataForPersonTest( @MockitoBean val hmppsAuthGateway: HmppsAuthGateway, private val nomisGateway: NomisGateway, ) : DescribeSpec({ - val nomisApiMockServer = NomisApiMockServer() + val nomisApiMockServer = ApiMockServer.create(UpstreamApi.NOMIS) val offenderNo = "abc123" val imagePath = "/api/images/offenders/$offenderNo" beforeEach { nomisApiMockServer.start() - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( imagePath, """ [ @@ -99,7 +99,7 @@ class GetImageMetadataForPersonTest( } it("returns a person without image metadata when no images are found") { - nomisApiMockServer.stubNomisApiResponse(imagePath, "[]") + nomisApiMockServer.stubForGet(imagePath, "[]") val response = nomisGateway.getImageMetadataForPerson(offenderNo) @@ -107,7 +107,7 @@ class GetImageMetadataForPersonTest( } it("returns an error when 404 Not Found is returned") { - nomisApiMockServer.stubNomisApiResponse(imagePath, "", HttpStatus.NOT_FOUND) + nomisApiMockServer.stubForGet(imagePath, "", HttpStatus.NOT_FOUND) val response = nomisGateway.getImageMetadataForPerson(offenderNo) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetLatestSentenceAdjustmentsForPersonTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetLatestSentenceAdjustmentsForPersonTest.kt index 0f459616c..4cd54af43 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetLatestSentenceAdjustmentsForPersonTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetLatestSentenceAdjustmentsForPersonTest.kt @@ -14,8 +14,9 @@ import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.NomisGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NomisApiMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError @ActiveProfiles("test") @@ -28,12 +29,12 @@ class GetLatestSentenceAdjustmentsForPersonTest( private val nomisGateway: NomisGateway, ) : DescribeSpec( { - val nomisApiMockServer = NomisApiMockServer() + val nomisApiMockServer = ApiMockServer.create(UpstreamApi.NOMIS) val offenderNo = "abc123" val sentenceSummaryPath = "/api/offenders/$offenderNo/booking/latest/sentence-summary" beforeEach { nomisApiMockServer.start() - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( sentenceSummaryPath, """ { @@ -86,7 +87,7 @@ class GetLatestSentenceAdjustmentsForPersonTest( } it("returns an error when 404 NOT FOUND is returned") { - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( sentenceSummaryPath, """ { diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetLatestSentenceKeyDatesForPersonTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetLatestSentenceKeyDatesForPersonTest.kt index 0aa08a5e7..57f0f758e 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetLatestSentenceKeyDatesForPersonTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetLatestSentenceKeyDatesForPersonTest.kt @@ -14,8 +14,9 @@ import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.NomisGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NomisApiMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError import java.time.LocalDate @@ -29,12 +30,12 @@ class GetLatestSentenceKeyDatesForPersonTest( private val nomisGateway: NomisGateway, ) : DescribeSpec( { - val nomisApiMockServer = NomisApiMockServer() + val nomisApiMockServer = ApiMockServer.create(UpstreamApi.NOMIS) val offenderNo = "A1234AB" val sentencePath = "/api/offenders/$offenderNo/sentences" beforeEach { nomisApiMockServer.start() - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( sentencePath, """ { @@ -304,7 +305,7 @@ class GetLatestSentenceKeyDatesForPersonTest( } it("returns an error when 404 NOT FOUND is returned") { - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( sentencePath, """ { diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetOffencesForPersonTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetOffencesForPersonTest.kt index 7ecb5cc96..647e599f5 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetOffencesForPersonTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetOffencesForPersonTest.kt @@ -17,8 +17,8 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.extensions.removeWhitespaceAndNewlines import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.NomisGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NomisApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError @@ -32,12 +32,12 @@ class GetOffencesForPersonTest( val nomisGateway: NomisGateway, ) : DescribeSpec( { - val nomisApiMockServer = NomisApiMockServer() + val nomisApiMockServer = ApiMockServer.create(UpstreamApi.NOMIS) val offenderNo = "zyx987" val offenceHistoryPath = "/api/bookings/offenderNo/$offenderNo/offenceHistory" beforeEach { nomisApiMockServer.start() - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( offenceHistoryPath, """ [ @@ -83,7 +83,7 @@ class GetOffencesForPersonTest( } it("returns a person with an empty list of offences when no offences are found") { - nomisApiMockServer.stubNomisApiResponse(offenceHistoryPath, "[]") + nomisApiMockServer.stubForGet(offenceHistoryPath, "[]") val response = nomisGateway.getOffencesForPerson(offenderNo) @@ -91,7 +91,7 @@ class GetOffencesForPersonTest( } it("returns an error when 404 Not Found is returned because no person is found") { - nomisApiMockServer.stubNomisApiResponse(offenceHistoryPath, "", HttpStatus.NOT_FOUND) + nomisApiMockServer.stubForGet(offenceHistoryPath, "", HttpStatus.NOT_FOUND) val response = nomisGateway.getOffencesForPerson(offenderNo) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetOffenderVisitRestrictionsTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetOffenderVisitRestrictionsTest.kt index 24c9629cb..99fa672e9 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetOffenderVisitRestrictionsTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetOffenderVisitRestrictionsTest.kt @@ -18,8 +18,8 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.extensions.removeWhitespaceAndNewlines import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.NomisGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NomisApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError @@ -33,13 +33,13 @@ class GetOffenderVisitRestrictionsTest( val nomisGateway: NomisGateway, ) : DescribeSpec( { - val nomisApiMockServer = NomisApiMockServer() + val nomisApiMockServer = ApiMockServer.create(UpstreamApi.NOMIS) val offenderNo = "zyx987" val offenderRestrictionsPath = "/api/offenders/$offenderNo/offender-restrictions" beforeEach { nomisApiMockServer.start() - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( offenderRestrictionsPath, """ { @@ -81,7 +81,7 @@ class GetOffenderVisitRestrictionsTest( } it("returns a person with an empty list of restrictions when no restrictions are found") { - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( offenderRestrictionsPath, """ { @@ -97,7 +97,7 @@ class GetOffenderVisitRestrictionsTest( } it("returns an error when 404 Not Found is returned because no person is found") { - nomisApiMockServer.stubNomisApiResponse(offenderRestrictionsPath, "", HttpStatus.NOT_FOUND) + nomisApiMockServer.stubForGet(offenderRestrictionsPath, "", HttpStatus.NOT_FOUND) val response = nomisGateway.getOffenderVisitRestrictions(offenderNo) @@ -113,7 +113,7 @@ class GetOffenderVisitRestrictionsTest( } it("returns an error when 400 Bad Request is returned because of an invalid request") { - nomisApiMockServer.stubNomisApiResponse(offenderRestrictionsPath, "", HttpStatus.BAD_REQUEST) + nomisApiMockServer.stubForGet(offenderRestrictionsPath, "", HttpStatus.BAD_REQUEST) val response = nomisGateway.getOffenderVisitRestrictions(offenderNo) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetReasonableAdjustmentTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetReasonableAdjustmentTest.kt index 2691a3efd..2bada18f7 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetReasonableAdjustmentTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetReasonableAdjustmentTest.kt @@ -15,8 +15,9 @@ import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.NomisGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NomisApiMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError import java.time.LocalDate @@ -30,13 +31,13 @@ class GetReasonableAdjustmentTest( private val nomisGateway: NomisGateway, ) : DescribeSpec( { - val nomisApiMockServer = NomisApiMockServer() + val nomisApiMockServer = ApiMockServer.create(UpstreamApi.NOMIS) val bookingId = "mockBooking" val domainPath = "/api/reference-domains/domains/HEALTH_TREAT/codes" var reasonableAdjustmentPath = "/api/bookings/$bookingId/reasonable-adjustments?type=a&type=b&type=c" beforeEach { nomisApiMockServer.start() - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( domainPath, """ [ @@ -47,7 +48,7 @@ class GetReasonableAdjustmentTest( """, ) - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( reasonableAdjustmentPath, """ { "reasonableAdjustments":[ @@ -104,7 +105,7 @@ class GetReasonableAdjustmentTest( } it("returns an empty list when no reasonable adjustment are found") { - nomisApiMockServer.stubNomisApiResponse(domainPath, "[]") + nomisApiMockServer.stubForGet(domainPath, "[]") val response = nomisGateway.getReasonableAdjustments(bookingId) @@ -112,7 +113,7 @@ class GetReasonableAdjustmentTest( } it("returns an error when 404 NOT FOUND is returned") { - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( domainPath, """ { diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetReferenceDomainsTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetReferenceDomainsTest.kt index b6838fbdd..81503cdf1 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetReferenceDomainsTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetReferenceDomainsTest.kt @@ -15,8 +15,9 @@ import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.NomisGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NomisApiMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError @ActiveProfiles("test") @@ -29,12 +30,12 @@ class GetReferenceDomainsTest( private val nomisGateway: NomisGateway, ) : DescribeSpec( { - val nomisApiMockServer = NomisApiMockServer() + val nomisApiMockServer = ApiMockServer.create(UpstreamApi.NOMIS) val testDomain = "abc" val domainPath = "/api/reference-domains/domains/$testDomain/codes" beforeEach { nomisApiMockServer.start() - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( domainPath, """ [ @@ -69,7 +70,7 @@ class GetReferenceDomainsTest( } it("returns an empty list when no domains are found") { - nomisApiMockServer.stubNomisApiResponse(domainPath, "[]") + nomisApiMockServer.stubForGet(domainPath, "[]") val response = nomisGateway.getReferenceDomains(testDomain) @@ -77,7 +78,7 @@ class GetReferenceDomainsTest( } it("returns an error when 404 NOT FOUND is returned") { - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( domainPath, """ { diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetRiskCategoriesForPersonTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetRiskCategoriesForPersonTest.kt index aa2216739..d8918ef49 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetRiskCategoriesForPersonTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetRiskCategoriesForPersonTest.kt @@ -15,8 +15,8 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.extensions.removeWhitespaceAndNewlines import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.NomisGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NomisApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError @@ -30,12 +30,12 @@ class GetRiskCategoriesForPersonTest( val nomisGateway: NomisGateway, ) : DescribeSpec( { - val nomisApiMockServer = NomisApiMockServer() + val nomisApiMockServer = ApiMockServer.create(UpstreamApi.NOMIS) val offenderNo = "A7796DY" val offenderPath = "/api/offenders/$offenderNo" beforeEach { nomisApiMockServer.start() - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( offenderPath, """ { @@ -64,7 +64,7 @@ class GetRiskCategoriesForPersonTest( } it("returns an error when 404 Not Found is returned because no person is found") { - nomisApiMockServer.stubNomisApiResponse(offenderPath, "", HttpStatus.NOT_FOUND) + nomisApiMockServer.stubForGet(offenderPath, "", HttpStatus.NOT_FOUND) val response = nomisGateway.getRiskCategoriesForPerson(offenderNo) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetSentencesForPersonTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetSentencesForPersonTest.kt index f46d8b60a..a5a7422b6 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetSentencesForPersonTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetSentencesForPersonTest.kt @@ -17,8 +17,8 @@ import uk.gov.justice.digital.hmpps.hmppsintegrationapi.extensions.removeWhitesp import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.NomisGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.helpers.generateTestSentence +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NomisApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.SentenceLength import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.SentenceTerm import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi @@ -35,14 +35,14 @@ class GetSentencesForPersonTest( val nomisGateway: NomisGateway, ) : DescribeSpec( { - val nomisApiMockServer = NomisApiMockServer() + val nomisApiMockServer = ApiMockServer.create(UpstreamApi.NOMIS) val offenderNo = "zyx987" val someBookingId = 1 val sentecesAndOffencesPath = "/api/offender-sentences/booking/$someBookingId/sentences-and-offences" var sentencesPath = "/api/offender-sentences?offenderNo=$offenderNo" beforeEach { nomisApiMockServer.start() - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( sentencesPath, """ [ @@ -56,7 +56,7 @@ class GetSentencesForPersonTest( """.removeWhitespaceAndNewlines(), ) - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( sentecesAndOffencesPath, """ { @@ -119,7 +119,7 @@ class GetSentencesForPersonTest( } it("returns an error when 404 Not Found is returned because no person is found") { - nomisApiMockServer.stubNomisApiResponse(sentencesPath, "", HttpStatus.NOT_FOUND) + nomisApiMockServer.stubForGet(sentencesPath, "", HttpStatus.NOT_FOUND) val response = nomisGateway.getBookingIdsForPerson(offenderNo) @@ -135,7 +135,7 @@ class GetSentencesForPersonTest( } it("returns an error when no sentence is found") { - nomisApiMockServer.stubNomisApiResponse(sentecesAndOffencesPath, "", HttpStatus.NOT_FOUND) + nomisApiMockServer.stubForGet(sentecesAndOffencesPath, "", HttpStatus.NOT_FOUND) val response = nomisGateway.getSentencesForBooking(someBookingId) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetTransactionForPersonTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetTransactionForPersonTest.kt index 431d16604..86be28b9d 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetTransactionForPersonTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetTransactionForPersonTest.kt @@ -16,8 +16,8 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.extensions.removeWhitespaceAndNewlines import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.NomisGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NomisApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError @@ -31,7 +31,7 @@ class GetTransactionForPersonTest( val nomisGateway: NomisGateway, ) : DescribeSpec( { - val nomisApiMockServer = NomisApiMockServer() + val nomisApiMockServer = ApiMockServer.create(UpstreamApi.NOMIS) val nomisNumber = "AA1234Z" val prisonId = "XYZ" val clientUniqueRef = "client_unique_ref" @@ -39,7 +39,7 @@ class GetTransactionForPersonTest( beforeEach { nomisApiMockServer.start() - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( transactionPath, """ { @@ -105,7 +105,7 @@ class GetTransactionForPersonTest( } it("returns an error when 404 Not Found is returned because no person is found") { - nomisApiMockServer.stubNomisApiResponse(transactionPath, "", HttpStatus.NOT_FOUND) + nomisApiMockServer.stubForGet(transactionPath, "", HttpStatus.NOT_FOUND) val response = nomisGateway.getAccountsForPerson(prisonId, nomisNumber) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetTransactionsForPersonTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetTransactionsForPersonTest.kt index 09e31bfa8..14c2ea765 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetTransactionsForPersonTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetTransactionsForPersonTest.kt @@ -16,8 +16,8 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.extensions.removeWhitespaceAndNewlines import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.NomisGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NomisApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError @@ -31,7 +31,7 @@ class GetTransactionsForPersonTest( val nomisGateway: NomisGateway, ) : DescribeSpec( { - val nomisApiMockServer = NomisApiMockServer() + val nomisApiMockServer = ApiMockServer.create(UpstreamApi.NOMIS) val nomisNumber = "AA1234Z" val prisonId = "XYZ" val accountCode = "spends" @@ -41,7 +41,7 @@ class GetTransactionsForPersonTest( beforeEach { nomisApiMockServer.start() - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( transactionsPath, """ { @@ -128,7 +128,7 @@ class GetTransactionsForPersonTest( } it("returns an error when 404 Not Found is returned because no person is found") { - nomisApiMockServer.stubNomisApiResponse(transactionsPath, "", HttpStatus.NOT_FOUND) + nomisApiMockServer.stubForGet(transactionsPath, "", HttpStatus.NOT_FOUND) val response = nomisGateway.getAccountsForPerson(prisonId, nomisNumber) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetVisitBalancesForPersonTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetVisitBalancesForPersonTest.kt index 24f25d8b6..d9f372e73 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetVisitBalancesForPersonTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/GetVisitBalancesForPersonTest.kt @@ -16,8 +16,8 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.extensions.removeWhitespaceAndNewlines import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.NomisGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NomisApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError @@ -30,13 +30,13 @@ class GetVisitBalancesForPersonTest( @MockitoBean val hmppsAuthGateway: HmppsAuthGateway, val nomisGateway: NomisGateway, ) : DescribeSpec({ - val nomisApiMockServer = NomisApiMockServer() + val nomisApiMockServer = ApiMockServer.create(UpstreamApi.NOMIS) val offenderNumber = "A7777ZZ" val visitBalancesPath = "/api/bookings/offenderNo/$offenderNumber/visit/balances" beforeEach { nomisApiMockServer.start() - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( visitBalancesPath, """ { @@ -70,7 +70,7 @@ class GetVisitBalancesForPersonTest( } it("returns an error when 400 Bad Request is returned because of an invalid request") { - nomisApiMockServer.stubNomisApiResponse(visitBalancesPath, "", HttpStatus.BAD_REQUEST) + nomisApiMockServer.stubForGet(visitBalancesPath, "", HttpStatus.BAD_REQUEST) val response = nomisGateway.getVisitBalances(offenderNumber) @@ -86,7 +86,7 @@ class GetVisitBalancesForPersonTest( } it("returns an error when 404 Not Found is returned because no person is found") { - nomisApiMockServer.stubNomisApiResponse(visitBalancesPath, "", HttpStatus.NOT_FOUND) + nomisApiMockServer.stubForGet(visitBalancesPath, "", HttpStatus.NOT_FOUND) val response = nomisGateway.getVisitBalances(offenderNumber) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/PostTransactionForPersonTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/PostTransactionForPersonTest.kt index 163889e42..6cc068fa2 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/PostTransactionForPersonTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/PostTransactionForPersonTest.kt @@ -17,8 +17,8 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.extensions.removeWhitespaceAndNewlines import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.NomisGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NomisApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.TransactionRequest import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError @@ -32,7 +32,7 @@ class PostTransactionForPersonTest( @MockitoBean val hmppsAuthGateway: HmppsAuthGateway, val nomisGateway: NomisGateway, ) : DescribeSpec({ - val nomisApiMockServer = NomisApiMockServer() + val nomisApiMockServer = ApiMockServer.create(UpstreamApi.NOMIS) val prisonId = "XYZ" val nomisNumber = "AA1234Z" val path = "/api/v1/prison/$prisonId/offenders/$nomisNumber/transactions" @@ -54,7 +54,7 @@ class PostTransactionForPersonTest( } it("authenticates using HMPPS Auth with credentials") { - nomisApiMockServer.stubNomisApiResponseForPost( + nomisApiMockServer.stubForPost( path, asJsonString(exampleTransaction.toApiConformingMap()), """ @@ -74,7 +74,7 @@ class PostTransactionForPersonTest( } it("returns expected response with transaction id and description when a valid request body is provided") { - nomisApiMockServer.stubNomisApiResponseForPost( + nomisApiMockServer.stubForPost( path, asJsonString(exampleTransaction.toApiConformingMap()), """ @@ -100,7 +100,7 @@ class PostTransactionForPersonTest( it("return a 400 error response") { val invalidTransactionRequest = TransactionRequest("invalid", "", 0, "", "") - nomisApiMockServer.stubNomisApiResponseForPost(path, asJsonString(invalidTransactionRequest.toApiConformingMap()), "", HttpStatus.BAD_REQUEST) + nomisApiMockServer.stubForPost(path, asJsonString(invalidTransactionRequest.toApiConformingMap()), "", HttpStatus.BAD_REQUEST) val response = nomisGateway.postTransactionForPerson(prisonId, nomisNumber, invalidTransactionRequest) @@ -109,7 +109,7 @@ class PostTransactionForPersonTest( it("return a 404 error response") { val invalidTransactionRequest = TransactionRequest("invalid", "", 0, "", "") - nomisApiMockServer.stubNomisApiResponseForPost(path, asJsonString(invalidTransactionRequest.toApiConformingMap()), "", HttpStatus.NOT_FOUND) + nomisApiMockServer.stubForPost(path, asJsonString(invalidTransactionRequest.toApiConformingMap()), "", HttpStatus.NOT_FOUND) val response = nomisGateway.postTransactionForPerson(prisonId, nomisNumber, invalidTransactionRequest) @@ -117,7 +117,7 @@ class PostTransactionForPersonTest( } it("return a 409 error response") { - nomisApiMockServer.stubNomisApiResponseForPost( + nomisApiMockServer.stubForPost( path, asJsonString(exampleTransaction.toApiConformingMap()), """ diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/PostTransactionTransferForPersonTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/PostTransactionTransferForPersonTest.kt index 944c6ed84..fe43c871d 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/PostTransactionTransferForPersonTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nomis/PostTransactionTransferForPersonTest.kt @@ -17,8 +17,8 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.extensions.removeWhitespaceAndNewlines import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.NomisGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NomisApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.TransactionTransferRequest import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError @@ -32,7 +32,7 @@ class PostTransactionTransferForPersonTest( @MockitoBean val hmppsAuthGateway: HmppsAuthGateway, val nomisGateway: NomisGateway, ) : DescribeSpec({ - val nomisApiMockServer = NomisApiMockServer() + val nomisApiMockServer = ApiMockServer.create(UpstreamApi.NOMIS) val prisonId = "XYZ" val nomisNumber = "AA1234Z" val path = "/api/finance/prison/$prisonId/offenders/$nomisNumber/transfer-to-savings" @@ -55,7 +55,7 @@ class PostTransactionTransferForPersonTest( } it("authenticates using HMPPS Auth with credentials") { - nomisApiMockServer.stubNomisApiResponseForPost( + nomisApiMockServer.stubForPost( path, asJsonString(exampleTransfer.toApiConformingMap()), """ @@ -81,7 +81,7 @@ class PostTransactionTransferForPersonTest( } it("returns expected response with transaction id and debit and credit transactions when a valid request body is provided") { - nomisApiMockServer.stubNomisApiResponseForPost( + nomisApiMockServer.stubForPost( path, asJsonString(exampleTransfer.toApiConformingMap()), """ @@ -119,7 +119,7 @@ class PostTransactionTransferForPersonTest( it("return a 400 error response") { val invalidTransferRequest = TransactionTransferRequest("", 0, "", "", "", "") - nomisApiMockServer.stubNomisApiResponseForPost( + nomisApiMockServer.stubForPost( path, asJsonString(invalidTransferRequest.toApiConformingMap()), "", @@ -140,7 +140,7 @@ class PostTransactionTransferForPersonTest( it("return a 404 error response") { val invalidTransferRequest = TransactionTransferRequest("", 0, "", "", "", "") - nomisApiMockServer.stubNomisApiResponseForPost( + nomisApiMockServer.stubForPost( path, asJsonString(invalidTransferRequest.toApiConformingMap()), "", @@ -160,7 +160,7 @@ class PostTransactionTransferForPersonTest( } it("return a 409 error response") { - nomisApiMockServer.stubNomisApiResponseForPost( + nomisApiMockServer.stubForPost( path, asJsonString(exampleTransfer.toApiConformingMap()), """ diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nonAssociations/NonAssociationsGatewayTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nonAssociations/NonAssociationsGatewayTest.kt index 202e2675d..0c1deac38 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nonAssociations/NonAssociationsGatewayTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/nonAssociations/NonAssociationsGatewayTest.kt @@ -13,8 +13,9 @@ import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.NonAssociationsGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NonAssociationsApiMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi @ActiveProfiles("test") @ContextConfiguration( @@ -26,7 +27,8 @@ class NonAssociationsGatewayTest( private val nonAssociationsGateway: NonAssociationsGateway, ) : DescribeSpec({ val prisonerNumber = "ASDP211" - val nonAssociationsApiMockServer = NonAssociationsApiMockServer() + val path = "/prisoner/$prisonerNumber/non-associations?includeOpen=true&includeClosed=false" + val nonAssociationsApiMockServer = ApiMockServer.create(UpstreamApi.NON_ASSOCIATIONS) beforeEach { nonAssociationsApiMockServer.start() @@ -46,8 +48,8 @@ class NonAssociationsGatewayTest( } it("get non associates when quering with a valid hmppsId") { - nonAssociationsApiMockServer.stubNonAssociationsGet( - prisonerNumber = prisonerNumber, + nonAssociationsApiMockServer.stubForGet( + path, body = """ { diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/personalRelationships/PersonalRelationshipsGatewayTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/personalRelationships/PersonalRelationshipsGatewayTest.kt index 8404b0898..bb1a80069 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/personalRelationships/PersonalRelationshipsGatewayTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/personalRelationships/PersonalRelationshipsGatewayTest.kt @@ -14,8 +14,9 @@ import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.PersonalRelationshipsGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.PersonalRelationshipsApiMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi @ActiveProfiles("test") @ContextConfiguration( @@ -29,7 +30,7 @@ class PersonalRelationshipsGatewayTest( val contactId: Long = 123456 val prisonerContactId: Long = 234561 - val personalRelationshipsApiMockServer = PersonalRelationshipsApiMockServer() + val personalRelationshipsApiMockServer = ApiMockServer.create(UpstreamApi.PERSONAL_RELATIONSHIPS) beforeEach { personalRelationshipsApiMockServer.start() @@ -56,7 +57,7 @@ class PersonalRelationshipsGatewayTest( it("gets a list of prisoner contact ids") { val path = "/contact/$contactId/linked-prisoners" - personalRelationshipsApiMockServer.stubPersonalRelationshipsApiResponse( + personalRelationshipsApiMockServer.stubForGet( path, body = """ @@ -94,7 +95,7 @@ class PersonalRelationshipsGatewayTest( it("Get the restrictions that apply for a particular relationship") { val path = "/prisoner-contact/$prisonerContactId/restriction" - personalRelationshipsApiMockServer.stubPersonalRelationshipsApiResponse( + personalRelationshipsApiMockServer.stubForGet( path, body = """ @@ -160,7 +161,7 @@ class PersonalRelationshipsGatewayTest( it("Gets a contact by id successfully") { val path = "/contact/$contactId" - personalRelationshipsApiMockServer.stubPersonalRelationshipsApiResponse( + personalRelationshipsApiMockServer.stubForGet( path, body = """ diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/prisonVisits/GetVisitsGatewayTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/prisonVisits/GetVisitsGatewayTest.kt index 2dedf66dd..b0ca77730 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/prisonVisits/GetVisitsGatewayTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/prisonVisits/GetVisitsGatewayTest.kt @@ -14,8 +14,9 @@ import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.PrisonVisitsGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.PrisonVisitsApiMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi @ActiveProfiles("test") @ContextConfiguration( @@ -37,7 +38,7 @@ class GetVisitsGatewayTest( val page = 1 val size = 10 val pathWithQueryParams = "$path?prisonId=$prisonId&visitStatus=$visitStatus&page=$page&size=$size&prisonerId=$hmppsId&visitStartDate=$fromDate&visitEndDate=$toDate" - val prisonVisitsApiMockServer = PrisonVisitsApiMockServer() + val prisonVisitsApiMockServer = ApiMockServer.create(UpstreamApi.MANAGE_PRISON_VISITS) beforeEach { prisonVisitsApiMockServer.start() @@ -128,7 +129,7 @@ class GetVisitsGatewayTest( } """.trimIndent() - prisonVisitsApiMockServer.stubPrisonVisitsApiResponse(pathWithQueryParams, body = exampleData, HttpStatus.OK) + prisonVisitsApiMockServer.stubForGet(pathWithQueryParams, body = exampleData, HttpStatus.OK) val response = prisonVisitsGateway.getVisits(prisonId, hmppsId, fromDate, toDate, visitStatus, page, size) response.data.shouldNotBeNull() response.data!! @@ -248,7 +249,7 @@ class GetVisitsGatewayTest( } """.trimIndent() - prisonVisitsApiMockServer.stubPrisonVisitsApiResponse(pathWithQueryParams, body = exampleData, HttpStatus.OK) + prisonVisitsApiMockServer.stubForGet(pathWithQueryParams, body = exampleData, HttpStatus.OK) val response = prisonVisitsGateway.getVisits(prisonId, hmppsId, fromDate, toDate, visitStatus, page, size) response.data.shouldNotBeNull() diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/prisonVisits/PrisonVisitsGatewayTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/prisonVisits/PrisonVisitsGatewayTest.kt index 6821cf925..695beb4f7 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/prisonVisits/PrisonVisitsGatewayTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/prisonVisits/PrisonVisitsGatewayTest.kt @@ -15,8 +15,8 @@ import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.PrisonVisitsGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.PrisonVisitsApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError @@ -36,7 +36,7 @@ class PrisonVisitsGatewayTest( val prisonerId = "AF34567G" val futuresPath = "/visits/search/future/$prisonerId" - val prisonVisitsApiMockServer = PrisonVisitsApiMockServer() + val prisonVisitsApiMockServer = ApiMockServer.create(UpstreamApi.MANAGE_PRISON_VISITS) beforeEach { prisonVisitsApiMockServer.start() @@ -56,7 +56,7 @@ class PrisonVisitsGatewayTest( } it("returns a 404 when visit is not found") { - prisonVisitsApiMockServer.stubPrisonVisitsApiResponse(path, body = "", HttpStatus.NOT_FOUND) + prisonVisitsApiMockServer.stubForGet(path, body = "", HttpStatus.NOT_FOUND) val response = prisonVisitsGateway.getVisitByReference(visitReference) response.errors.shouldHaveSize(1) @@ -111,7 +111,7 @@ class PrisonVisitsGatewayTest( } """.trimIndent() - prisonVisitsApiMockServer.stubPrisonVisitsApiResponse(path, body = exampleData, HttpStatus.OK) + prisonVisitsApiMockServer.stubForGet(path, body = exampleData, HttpStatus.OK) val response = prisonVisitsGateway.getVisitByReference(visitReference) response.data.shouldNotBeNull() @@ -170,7 +170,7 @@ class PrisonVisitsGatewayTest( ] """.trimIndent() - prisonVisitsApiMockServer.stubPrisonVisitsApiResponse(futuresPath, body = exampleData, HttpStatus.OK) + prisonVisitsApiMockServer.stubForGet(futuresPath, body = exampleData, HttpStatus.OK) val response = prisonVisitsGateway.getFutureVisits(prisonerId) response.data.shouldNotBeNull() @@ -182,7 +182,7 @@ class PrisonVisitsGatewayTest( } it("returns an empty list when no future visits found") { - prisonVisitsApiMockServer.stubPrisonVisitsApiResponse(futuresPath, body = "[]", HttpStatus.OK) + prisonVisitsApiMockServer.stubForGet(futuresPath, body = "[]", HttpStatus.OK) val response = prisonVisitsGateway.getFutureVisits(prisonerId) response.data.shouldNotBeNull() @@ -190,7 +190,7 @@ class PrisonVisitsGatewayTest( } it("returns a 400 response when prisoner Id is invalid") { - prisonVisitsApiMockServer.stubPrisonVisitsApiResponse(futuresPath, body = "", HttpStatus.BAD_REQUEST) + prisonVisitsApiMockServer.stubForGet(futuresPath, body = "", HttpStatus.BAD_REQUEST) val response = prisonVisitsGateway.getFutureVisits(prisonerId) response.data.shouldBe(null) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/prisoneroffendersearch/PrisonerOffenderSearchGatewayTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/prisoneroffendersearch/PrisonerOffenderSearchGatewayTest.kt index e5dc0198b..2d221461d 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/prisoneroffendersearch/PrisonerOffenderSearchGatewayTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/prisoneroffendersearch/PrisonerOffenderSearchGatewayTest.kt @@ -17,8 +17,9 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.extensions.removeWhitespaceAndNewlines import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.PrisonerOffenderSearchGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.PrisonerOffenderSearchApiMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError import java.io.File import java.time.LocalDate @@ -31,28 +32,33 @@ import java.time.LocalDate class PrisonerOffenderSearchGatewayTest( @MockitoBean val hmppsAuthGateway: HmppsAuthGateway, private val prisonerOffenderSearchGateway: PrisonerOffenderSearchGateway, -) : DescribeSpec({ - val prisonerOffenderSearchApiMockServer = PrisonerOffenderSearchApiMockServer() +) : DescribeSpec( + { + val nomsNumber = "mockNomsNumber" + val postPath = "/global-search?size=9999" + val getPath = "/prisoner/$nomsNumber" + val prisonerOffenderSearchApiMockServer = ApiMockServer.create(UpstreamApi.PRISONER_OFFENDER_SEARCH) - beforeEach { - prisonerOffenderSearchApiMockServer.start() - Mockito.reset(hmppsAuthGateway) + beforeEach { + prisonerOffenderSearchApiMockServer.start() + Mockito.reset(hmppsAuthGateway) - whenever(hmppsAuthGateway.getClientToken("Prisoner Offender Search")).thenReturn(HmppsAuthMockServer.TOKEN) - } + whenever(hmppsAuthGateway.getClientToken("Prisoner Offender Search")).thenReturn(HmppsAuthMockServer.TOKEN) + } - afterTest { - prisonerOffenderSearchApiMockServer.stop() - } + afterTest { + prisonerOffenderSearchApiMockServer.stop() + } - describe("#getPersons") { - val firstName = "JAMES" - val lastName = "HOWLETT" - val dateOfBirth = "1975-02-28" + describe("#getPersons") { + val firstName = "JAMES" + val lastName = "HOWLETT" + val dateOfBirth = "1975-02-28" - beforeEach { - prisonerOffenderSearchApiMockServer.stubPostPrisonerSearch( - """ + beforeEach { + prisonerOffenderSearchApiMockServer.stubForPost( + postPath, + """ { "firstName": "$firstName", "lastName": "$lastName", @@ -60,267 +66,272 @@ class PrisonerOffenderSearchGatewayTest( "includeAliases": false } """.removeWhitespaceAndNewlines(), - File( - "src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/prisoneroffendersearch/fixtures/GetPrisonersResponse.json", - ).readText(), - ) - } + File( + "src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/prisoneroffendersearch/fixtures/GetPrisonersResponse.json", + ).readText(), + ) + } - it("authenticates using HMPPS Auth with credentials") { - prisonerOffenderSearchGateway.getPersons(firstName, lastName, dateOfBirth) + it("authenticates using HMPPS Auth with credentials") { + prisonerOffenderSearchGateway.getPersons(firstName, lastName, dateOfBirth) - verify(hmppsAuthGateway, VerificationModeFactory.times(1)).getClientToken("Prisoner Offender Search") - } + verify(hmppsAuthGateway, VerificationModeFactory.times(1)).getClientToken("Prisoner Offender Search") + } - it("returns person(s) when searching on first name, last name and date of birth, in a descending order according to date of birth") { - val response = prisonerOffenderSearchGateway.getPersons(firstName, lastName, dateOfBirth) + it("returns person(s) when searching on first name, last name and date of birth, in a descending order according to date of birth") { + val response = prisonerOffenderSearchGateway.getPersons(firstName, lastName, dateOfBirth) - response.data.count().shouldBe(4) - response.data.forEach { - it.firstName.shouldBe(firstName) - it.lastName.shouldBe(lastName) + response.data.count().shouldBe(4) + response.data.forEach { + it.firstName.shouldBe(firstName) + it.lastName.shouldBe(lastName) + } + response.data[0] + .prisonerNumber + .shouldBe("A5043DY") + response.data[1] + .prisonerNumber + .shouldBe("A5083DY") + response.data[2] + .prisonerNumber + .shouldBe("G9347GV") + response.data[3] + .prisonerNumber + .shouldBe("A7796DY") + + response.data[0].pncNumber.shouldBeNull() + response.data[1].pncNumber.shouldBe("03/11985X") + response.data[2].pncNumber.shouldBe("95/289622B") + response.data[3].pncNumber.shouldBeNull() } - response.data[0] - .prisonerNumber - .shouldBe("A5043DY") - response.data[1] - .prisonerNumber - .shouldBe("A5083DY") - response.data[2] - .prisonerNumber - .shouldBe("G9347GV") - response.data[3] - .prisonerNumber - .shouldBe("A7796DY") - - response.data[0].pncNumber.shouldBeNull() - response.data[1].pncNumber.shouldBe("03/11985X") - response.data[2].pncNumber.shouldBe("95/289622B") - response.data[3].pncNumber.shouldBeNull() - } - it("returns person(s) when searching on first name only") { - prisonerOffenderSearchApiMockServer.stubPostPrisonerSearch( - """ + it("returns person(s) when searching on first name only") { + prisonerOffenderSearchApiMockServer.stubForPost( + postPath, + """ { "firstName": "Obi-Wan", "includeAliases": false } """.removeWhitespaceAndNewlines(), - """ - { - "content": [ - { - "firstName": "Obi-Wan", - "lastName": "Kenobi" - } - ] - } - """.trimIndent(), - ) - - val response = prisonerOffenderSearchGateway.getPersons("Obi-Wan", null, null) - - response.data.count().shouldBe(1) - response.data - .first() - .firstName - .shouldBe("Obi-Wan") - response.data - .first() - .lastName - .shouldBe("Kenobi") - } + """ + { + "content": [ + { + "firstName": "Obi-Wan", + "lastName": "Kenobi" + } + ] + } + """.trimIndent(), + ) + + val response = prisonerOffenderSearchGateway.getPersons("Obi-Wan", null, null) + + response.data.count().shouldBe(1) + response.data + .first() + .firstName + .shouldBe("Obi-Wan") + response.data + .first() + .lastName + .shouldBe("Kenobi") + } - it("returns person(s) when searching on last name only") { - prisonerOffenderSearchApiMockServer.stubPostPrisonerSearch( - """ + it("returns person(s) when searching on last name only") { + prisonerOffenderSearchApiMockServer.stubForPost( + postPath, + """ { "lastName": "Binks", "includeAliases": false } """.removeWhitespaceAndNewlines(), - """ - { - "content": [ - { - "firstName": "Jar Jar", - "lastName": "Binks" - } - ] - } - """.trimIndent(), - ) - - val response = prisonerOffenderSearchGateway.getPersons(null, "Binks", null) - - response.data.count().shouldBe(1) - response.data - .first() - .firstName - .shouldBe("Jar Jar") - response.data - .first() - .lastName - .shouldBe("Binks") - } + """ + { + "content": [ + { + "firstName": "Jar Jar", + "lastName": "Binks" + } + ] + } + """.trimIndent(), + ) + + val response = prisonerOffenderSearchGateway.getPersons(null, "Binks", null) + + response.data.count().shouldBe(1) + response.data + .first() + .firstName + .shouldBe("Jar Jar") + response.data + .first() + .lastName + .shouldBe("Binks") + } - it("returns person(s) when searching on date of birth only") { - prisonerOffenderSearchApiMockServer.stubPostPrisonerSearch( - """ + it("returns person(s) when searching on date of birth only") { + prisonerOffenderSearchApiMockServer.stubForPost( + postPath, + """ { "includeAliases": false, "dateOfBirth": "1975-02-28" } """.removeWhitespaceAndNewlines(), - """ - { - "content": [ - { - "firstName": "Jar Jar", - "lastName": "Binks", - "dateOfBirth": "1975-02-28" - } - ] - } - """.trimIndent(), - ) - - val response = prisonerOffenderSearchGateway.getPersons(null, null, dateOfBirth) - - response.data.count().shouldBe(1) - response.data - .first() - .firstName - .shouldBe("Jar Jar") - response.data - .first() - .lastName - .shouldBe("Binks") - response.data - .first() - .dateOfBirth - .shouldBe(LocalDate.parse(dateOfBirth)) - } + """ + { + "content": [ + { + "firstName": "Jar Jar", + "lastName": "Binks", + "dateOfBirth": "1975-02-28" + } + ] + } + """.trimIndent(), + ) + + val response = prisonerOffenderSearchGateway.getPersons(null, null, dateOfBirth) + + response.data.count().shouldBe(1) + response.data + .first() + .firstName + .shouldBe("Jar Jar") + response.data + .first() + .lastName + .shouldBe("Binks") + response.data + .first() + .dateOfBirth + .shouldBe(LocalDate.parse(dateOfBirth)) + } - it("returns person(s) when searching within aliases") { - prisonerOffenderSearchApiMockServer.stubPostPrisonerSearch( - """ + it("returns person(s) when searching within aliases") { + prisonerOffenderSearchApiMockServer.stubForPost( + postPath, + """ { "firstName": "Geralt", "includeAliases": true } """.removeWhitespaceAndNewlines(), - """ - { - "content": [ - { - "firstName": "Rich", - "lastName": "Roger", - "aliases": [ - { - "firstName": "Geralt", - "lastName": "Eric du Haute-Bellegarde" - } - ] - } - ] - } - """.trimIndent(), - ) - - val response = prisonerOffenderSearchGateway.getPersons("Geralt", null, null, true) - - response.data.count().shouldBe(1) - response.data - .first() - .aliases - .first() - .firstName - .shouldBe("Geralt") - response.data - .first() - .aliases - .first() - .lastName - .shouldBe("Eric du Haute-Bellegarde") - } + """ + { + "content": [ + { + "firstName": "Rich", + "lastName": "Roger", + "aliases": [ + { + "firstName": "Geralt", + "lastName": "Eric du Haute-Bellegarde" + } + ] + } + ] + } + """.trimIndent(), + ) + + val response = prisonerOffenderSearchGateway.getPersons("Geralt", null, null, true) + + response.data.count().shouldBe(1) + response.data + .first() + .aliases + .first() + .firstName + .shouldBe("Geralt") + response.data + .first() + .aliases + .first() + .lastName + .shouldBe("Eric du Haute-Bellegarde") + } - it("returns an empty list of Person if no matching person") { - val firstNameThatDoesNotExist = "ZYX321" - val lastNameThatDoesNotExist = "GHJ345" + it("returns an empty list of Person if no matching person") { + val firstNameThatDoesNotExist = "ZYX321" + val lastNameThatDoesNotExist = "GHJ345" - prisonerOffenderSearchApiMockServer.stubPostPrisonerSearch( - """ + prisonerOffenderSearchApiMockServer.stubForPost( + postPath, + """ { "firstName": "$firstNameThatDoesNotExist", "lastName": "$lastNameThatDoesNotExist", "includeAliases": false } """.removeWhitespaceAndNewlines(), - """ + """ { "content": [] } """, - ) + ) - val response = prisonerOffenderSearchGateway.getPersons(firstNameThatDoesNotExist, lastNameThatDoesNotExist, null) + val response = prisonerOffenderSearchGateway.getPersons(firstNameThatDoesNotExist, lastNameThatDoesNotExist, null) - response.data.shouldBeEmpty() + response.data.shouldBeEmpty() + } } - } - - describe("#getPrisonOffender") { - val nomsNumber = "mockNomsNumber" - beforeEach { - prisonerOffenderSearchApiMockServer.stubGetPrisoner( - nomsNumber, - """ - { - "prisonerNumber": "A7796DY", - "bookingId": "599877", - "firstName": "JAMES", - "middleNames": "MARTIN", - "lastName": "HOWLETT", - "maritalStatus": "Widowed" - } - """.trimIndent(), - ) - } + describe("#getPrisonOffender") { + + beforeEach { + prisonerOffenderSearchApiMockServer.stubForGet( + getPath, + """ + { + "prisonerNumber": "A7796DY", + "bookingId": "599877", + "firstName": "JAMES", + "middleNames": "MARTIN", + "lastName": "HOWLETT", + "maritalStatus": "Widowed" + } + """.trimIndent(), + ) + } - it("authenticates using HMPPS Auth with credentials") { - prisonerOffenderSearchGateway.getPrisonOffender(nomsNumber) + it("authenticates using HMPPS Auth with credentials") { + prisonerOffenderSearchGateway.getPrisonOffender(nomsNumber) - verify(hmppsAuthGateway, VerificationModeFactory.times(1)).getClientToken("Prisoner Offender Search") - } + verify(hmppsAuthGateway, VerificationModeFactory.times(1)).getClientToken("Prisoner Offender Search") + } - it("returns reasonable adjustment for a person with the matching ID") { - val response = prisonerOffenderSearchGateway.getPrisonOffender(nomsNumber) + it("returns reasonable adjustment for a person with the matching ID") { + val response = prisonerOffenderSearchGateway.getPrisonOffender(nomsNumber) - response.data?.prisonerNumber.shouldBe("A7796DY") - response.data?.bookingId.shouldBe("599877") - response.data?.firstName.shouldBe("JAMES") - response.data?.middleNames.shouldBe("MARTIN") - response.data?.lastName.shouldBe("HOWLETT") - response.data?.maritalStatus.shouldBe("Widowed") - } + response.data?.prisonerNumber.shouldBe("A7796DY") + response.data?.bookingId.shouldBe("599877") + response.data?.firstName.shouldBe("JAMES") + response.data?.middleNames.shouldBe("MARTIN") + response.data?.lastName.shouldBe("HOWLETT") + response.data?.maritalStatus.shouldBe("Widowed") + } - it("returns an error when 404 NOT FOUND is returned") { - prisonerOffenderSearchApiMockServer.stubGetPrisoner( - nomsNumber, - """ + it("returns an error when 404 NOT FOUND is returned") { + prisonerOffenderSearchApiMockServer.stubForGet( + getPath, + """ { "developerMessage": "cannot find person" } """, - HttpStatus.NOT_FOUND, - ) + HttpStatus.NOT_FOUND, + ) - val response = prisonerOffenderSearchGateway.getPrisonOffender(nomsNumber) + val response = prisonerOffenderSearchGateway.getPrisonOffender(nomsNumber) - response.hasError(UpstreamApiError.Type.ENTITY_NOT_FOUND).shouldBeTrue() + response.hasError(UpstreamApiError.Type.ENTITY_NOT_FOUND).shouldBeTrue() + } } - } - }) + }, + ) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/probationintegrationEPF/GetEPFPersonDetailsTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/probationintegrationEPF/GetEPFPersonDetailsTest.kt index e4589d43a..0a610551d 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/probationintegrationEPF/GetEPFPersonDetailsTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/probationintegrationEPF/GetEPFPersonDetailsTest.kt @@ -13,8 +13,9 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.ProbationIntegrationEPFGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.helpers.generateCaseDetail -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.EffectiveProposalFrameworkAndDeliusMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import java.io.File @ActiveProfiles("test") @@ -27,15 +28,15 @@ class GetEPFPersonDetailsTest( val probationIntegrationEPFGateway: ProbationIntegrationEPFGateway, ) : DescribeSpec( { - val effectiveProposalFrameworkAndDeliusMockServer = EffectiveProposalFrameworkAndDeliusMockServer() + val effectiveProposalFrameworkAndDeliusMockServer = ApiMockServer.create(UpstreamApi.EFFECTIVE_PROPOSAL_FRAMEWORK) val hmppsId = "X777776" val eventNumber = 1234 + val path = "/case-details/$hmppsId/$eventNumber" beforeEach { effectiveProposalFrameworkAndDeliusMockServer.start() - effectiveProposalFrameworkAndDeliusMockServer.stubGetCaseDetailForPerson( - hmppsId, - 1234, + effectiveProposalFrameworkAndDeliusMockServer.stubForGet( + path, File( "src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/probationintegrationEPF/fixtures/GetEPFPersonDetailsResponse.json", ).readText(), diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/probationoffendersearch/GetAddressesForPersonTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/probationoffendersearch/GetAddressesForPersonTest.kt index fc715f00c..829f8a099 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/probationoffendersearch/GetAddressesForPersonTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/probationoffendersearch/GetAddressesForPersonTest.kt @@ -14,9 +14,10 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.ProbationOffenderSearchGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.helpers.generateTestAddress +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ProbationOffenderSearchApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.Address +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi @ActiveProfiles("test") @ContextConfiguration( @@ -28,12 +29,14 @@ class GetAddressesForPersonTest( private val probationOffenderSearchGateway: ProbationOffenderSearchGateway, ) : DescribeSpec( { - val probationOffenderSearchApiMockServer = ProbationOffenderSearchApiMockServer() + val probationOffenderSearchApiMockServer = ApiMockServer.create(UpstreamApi.PROBATION_OFFENDER_SEARCH) + val path = "/search" val hmppsId = "X777776" beforeEach { probationOffenderSearchApiMockServer.start() - probationOffenderSearchApiMockServer.stubPostOffenderSearch( + probationOffenderSearchApiMockServer.stubForPost( + path, "{\"crn\": \"$hmppsId\"}", """ [ @@ -99,7 +102,8 @@ class GetAddressesForPersonTest( } it("returns an empty list when no addresses are found") { - probationOffenderSearchApiMockServer.stubPostOffenderSearch( + probationOffenderSearchApiMockServer.stubForPost( + path, "{\"crn\": \"$hmppsId\"}", """ [ @@ -120,7 +124,8 @@ class GetAddressesForPersonTest( } it("returns an error when no results are returned") { - probationOffenderSearchApiMockServer.stubPostOffenderSearch( + probationOffenderSearchApiMockServer.stubForPost( + path, "{\"crn\": \"$hmppsId\"}", "[]", ) @@ -131,7 +136,8 @@ class GetAddressesForPersonTest( } it("returns an empty list when there is no contactDetails field") { - probationOffenderSearchApiMockServer.stubPostOffenderSearch( + probationOffenderSearchApiMockServer.stubForPost( + path, "{\"crn\": \"$hmppsId\"}", """ [ @@ -149,7 +155,8 @@ class GetAddressesForPersonTest( } it("returns an empty list when contactDetails field is null") { - probationOffenderSearchApiMockServer.stubPostOffenderSearch( + probationOffenderSearchApiMockServer.stubForPost( + path, "{\"crn\": \"$hmppsId\"}", """ [ @@ -168,7 +175,8 @@ class GetAddressesForPersonTest( } it("returns an empty list when contactDetails.addresses field is null") { - probationOffenderSearchApiMockServer.stubPostOffenderSearch( + probationOffenderSearchApiMockServer.stubForPost( + path, "{\"crn\": \"$hmppsId\"}", """ [ @@ -189,7 +197,8 @@ class GetAddressesForPersonTest( } it("returns an empty list when the type is an empty object") { - probationOffenderSearchApiMockServer.stubPostOffenderSearch( + probationOffenderSearchApiMockServer.stubForPost( + path, "{\"crn\": \"$hmppsId\"}", """ [ diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/probationoffendersearch/ProbationOffenderSearchGatewayTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/probationoffendersearch/ProbationOffenderSearchGatewayTest.kt index ffcf6bd02..efd980621 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/probationoffendersearch/ProbationOffenderSearchGatewayTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/probationoffendersearch/ProbationOffenderSearchGatewayTest.kt @@ -18,8 +18,9 @@ import org.springframework.web.reactive.function.client.WebClientResponseExcepti import uk.gov.justice.digital.hmpps.hmppsintegrationapi.extensions.removeWhitespaceAndNewlines import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.ProbationOffenderSearchGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ProbationOffenderSearchApiMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import java.io.File import java.time.LocalDate import java.time.format.DateTimeFormatter @@ -33,7 +34,8 @@ class ProbationOffenderSearchGatewayTest( @MockitoBean val hmppsAuthGateway: HmppsAuthGateway, private val probationOffenderSearchGateway: ProbationOffenderSearchGateway, ) : DescribeSpec({ - val probationOffenderSearchApiMockServer = ProbationOffenderSearchApiMockServer() + val probationOffenderSearchApiMockServer = ApiMockServer.create(UpstreamApi.PROBATION_OFFENDER_SEARCH) + val path = "/search" beforeEach { probationOffenderSearchApiMockServer.start() @@ -54,7 +56,8 @@ class ProbationOffenderSearchGatewayTest( val dateOfBirthString = dateOfBirth.format(DateTimeFormatter.ISO_DATE) beforeEach { - probationOffenderSearchApiMockServer.stubPostOffenderSearch( + probationOffenderSearchApiMockServer.stubForPost( + path, """ { "firstName": "$firstName", @@ -98,7 +101,8 @@ class ProbationOffenderSearchGatewayTest( } it("returns person(s) when searching on first name and last name") { - probationOffenderSearchApiMockServer.stubPostOffenderSearch( + probationOffenderSearchApiMockServer.stubForPost( + path, """ { "firstName": "Ahsoka", @@ -132,7 +136,8 @@ class ProbationOffenderSearchGatewayTest( } it("returns person(s) when searching on first name and last name") { - probationOffenderSearchApiMockServer.stubPostOffenderSearch( + probationOffenderSearchApiMockServer.stubForPost( + path, """ { "firstName": "Ahsoka", @@ -166,7 +171,8 @@ class ProbationOffenderSearchGatewayTest( } it("returns person(s) when searching on first name only") { - probationOffenderSearchApiMockServer.stubPostOffenderSearch( + probationOffenderSearchApiMockServer.stubForPost( + path, """ { "firstName": "Ahsoka", @@ -197,7 +203,8 @@ class ProbationOffenderSearchGatewayTest( } it("returns person(s) when searching on last name only") { - probationOffenderSearchApiMockServer.stubPostOffenderSearch( + probationOffenderSearchApiMockServer.stubForPost( + path, """ { "surname": "Tano", @@ -228,7 +235,8 @@ class ProbationOffenderSearchGatewayTest( } it("returns person(s) when searching on pnc number only") { - probationOffenderSearchApiMockServer.stubPostOffenderSearch( + probationOffenderSearchApiMockServer.stubForPost( + path, """ { "pncNumber": "2018/0123456X", @@ -259,7 +267,8 @@ class ProbationOffenderSearchGatewayTest( } it("returns person(s) when searching on date of birth only") { - probationOffenderSearchApiMockServer.stubPostOffenderSearch( + probationOffenderSearchApiMockServer.stubForPost( + path, """ { "dateOfBirth": "1966-10-25", @@ -290,7 +299,8 @@ class ProbationOffenderSearchGatewayTest( } it("returns person(s) when searching within aliases") { - probationOffenderSearchApiMockServer.stubPostOffenderSearch( + probationOffenderSearchApiMockServer.stubForPost( + path, """ { "firstName": "Fulcrum", @@ -335,7 +345,8 @@ class ProbationOffenderSearchGatewayTest( describe("when PNC id is used to make requests") { val hmppsId = "2002/1121M" beforeEach { - probationOffenderSearchApiMockServer.stubPostOffenderSearch( + probationOffenderSearchApiMockServer.stubForPost( + path, "{\"pncNumber\": \"$hmppsId\"}", """ [ @@ -399,7 +410,8 @@ class ProbationOffenderSearchGatewayTest( } it("returns a person without aliases when no aliases are found") { - probationOffenderSearchApiMockServer.stubPostOffenderSearch( + probationOffenderSearchApiMockServer.stubForPost( + path, "{\"pncNumber\": \"$hmppsId\"}", """ [ @@ -419,7 +431,8 @@ class ProbationOffenderSearchGatewayTest( } it("returns null when 400 Bad Request is returned") { - probationOffenderSearchApiMockServer.stubPostOffenderSearch( + probationOffenderSearchApiMockServer.stubForPost( + path, "{\"pncNumber\": \"$hmppsId\"}", """ { @@ -436,7 +449,8 @@ class ProbationOffenderSearchGatewayTest( } it("returns null when no offenders are returned") { - probationOffenderSearchApiMockServer.stubPostOffenderSearch( + probationOffenderSearchApiMockServer.stubForPost( + path, "{\"pncNumber\": \"$hmppsId\"}", "[]", ) @@ -451,7 +465,8 @@ class ProbationOffenderSearchGatewayTest( val hmppsId = "X777776" beforeEach { - probationOffenderSearchApiMockServer.stubPostOffenderSearch( + probationOffenderSearchApiMockServer.stubForPost( + path, "{\"crn\": \"$hmppsId\"}", """ [ @@ -470,7 +485,8 @@ class ProbationOffenderSearchGatewayTest( } it("calls the Probation API service with a Delius CRN") { - probationOffenderSearchApiMockServer.stubPostOffenderSearch( + probationOffenderSearchApiMockServer.stubForPost( + path, "{\"crn\": \"$hmppsId\"}", """ [ @@ -492,7 +508,8 @@ class ProbationOffenderSearchGatewayTest( val hmppsId = "A7777ZZ" it("calls the Probation API service with a Nomis number") { - probationOffenderSearchApiMockServer.stubPostOffenderSearch( + probationOffenderSearchApiMockServer.stubForPost( + path, "{\"nomsNumber\": \"$hmppsId\"}", """ [ diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/riskManagement/RiskManagementGatewayTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/riskManagement/RiskManagementGatewayTest.kt index 6e0bdd3bd..ef1c8bebd 100755 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/riskManagement/RiskManagementGatewayTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/riskManagement/RiskManagementGatewayTest.kt @@ -13,8 +13,9 @@ import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.RiskManagementGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.RiskManagementApiMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApiError import java.io.File @@ -28,7 +29,7 @@ class RiskManagementGatewayTest( private val riskManagementGateway: RiskManagementGateway, ) : DescribeSpec({ - val riskManagementMockServer = RiskManagementApiMockServer() + val riskManagementMockServer = ApiMockServer.create(UpstreamApi.RISK_MANAGEMENT_PLAN) beforeEach { riskManagementMockServer.start() @@ -43,10 +44,11 @@ class RiskManagementGatewayTest( describe("Get risks for given CRN") { val crn = "D1974X" + val path = "/risks/crn/$crn/risk-management-plan" beforeEach { - riskManagementMockServer.stubGetRiskManagementPlan( - crn, + riskManagementMockServer.stubForGet( + path, File( "src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/gateways/riskManagement/fixtures/GetRiskManagementPlanResponse.json", ).readText(), @@ -75,8 +77,8 @@ class RiskManagementGatewayTest( } it("returns an error response when upstream service returns 403") { - riskManagementMockServer.stubGetRiskManagementPlan( - crn, + riskManagementMockServer.stubForGet( + path, "{}", HttpStatus.FORBIDDEN, ) diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/AdjudicationsApiMockServer.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/AdjudicationsApiMockServer.kt deleted file mode 100644 index 767d54ad5..000000000 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/AdjudicationsApiMockServer.kt +++ /dev/null @@ -1,32 +0,0 @@ -package uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers - -import com.github.tomakehurst.wiremock.WireMockServer -import com.github.tomakehurst.wiremock.client.WireMock -import org.springframework.http.HttpStatus - -class AdjudicationsApiMockServer : WireMockServer(WIREMOCK_PORT) { - companion object { - private const val WIREMOCK_PORT = 4006 - } - - fun stubGetReportedAdjudicationsForPerson( - id: String, - body: String, - status: HttpStatus = HttpStatus.OK, - ) { - stubFor( - WireMock - .get("/reported-adjudications/prisoner/$id") - .withHeader( - "Authorization", - WireMock.matching("Bearer ${HmppsAuthMockServer.TOKEN}"), - ).willReturn( - WireMock - .aResponse() - .withHeader("Content-Type", "application/json") - .withStatus(status.value()) - .withBody(body.trimIndent()), - ), - ) - } -} diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/NomisApiMockServer.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/ApiMockServer.kt similarity index 57% rename from src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/NomisApiMockServer.kt rename to src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/ApiMockServer.kt index 2fb7c6334..b2f5a0245 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/NomisApiMockServer.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/ApiMockServer.kt @@ -7,13 +7,36 @@ import com.github.tomakehurst.wiremock.client.WireMock.get import com.github.tomakehurst.wiremock.client.WireMock.matching import com.github.tomakehurst.wiremock.client.WireMock.post import org.springframework.http.HttpStatus +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi -class NomisApiMockServer : WireMockServer(WIREMOCK_PORT) { +class ApiMockServer( + private val port: Int, +) : WireMockServer(port) { companion object { - private const val WIREMOCK_PORT = 4000 + // These ports must match the config in the yaml files + fun create(upstreamApi: UpstreamApi): ApiMockServer = + when (upstreamApi) { + UpstreamApi.NOMIS -> ApiMockServer(4000) + UpstreamApi.PRISONER_OFFENDER_SEARCH -> ApiMockServer(4001) + UpstreamApi.PROBATION_OFFENDER_SEARCH -> ApiMockServer(4002) + UpstreamApi.NDELIUS -> ApiMockServer(4003) + UpstreamApi.ASSESS_RISKS_AND_NEEDS -> ApiMockServer(4004) + UpstreamApi.EFFECTIVE_PROPOSAL_FRAMEWORK -> ApiMockServer(4005) + UpstreamApi.ADJUDICATIONS -> ApiMockServer(4006) + UpstreamApi.CVL -> ApiMockServer(4007) + UpstreamApi.CASE_NOTES -> ApiMockServer(4008) + UpstreamApi.MANAGE_POM_CASE -> ApiMockServer(4009) + UpstreamApi.RISK_MANAGEMENT_PLAN -> ApiMockServer(4004) + UpstreamApi.TEST -> TODO() + UpstreamApi.PLP -> ApiMockServer(4004) + UpstreamApi.NON_ASSOCIATIONS -> ApiMockServer(4005) + UpstreamApi.PERSONAL_RELATIONSHIPS -> ApiMockServer(4006) + UpstreamApi.MANAGE_PRISON_VISITS -> ApiMockServer(4007) + UpstreamApi.INCENTIVES -> ApiMockServer(4008) + } } - fun stubNomisApiResponse( + fun stubForGet( path: String, body: String, status: HttpStatus = HttpStatus.OK, @@ -32,7 +55,7 @@ class NomisApiMockServer : WireMockServer(WIREMOCK_PORT) { ) } - fun stubNomisApiResponseForPost( + fun stubForPost( path: String, reqBody: String, resBody: String, @@ -53,7 +76,7 @@ class NomisApiMockServer : WireMockServer(WIREMOCK_PORT) { ) } - fun stubGetImageData( + fun stubForImageData( imageId: Int, status: HttpStatus = HttpStatus.OK, ) { diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/AssessRisksAndNeedsApiMockServer.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/AssessRisksAndNeedsApiMockServer.kt deleted file mode 100644 index 39d9107d8..000000000 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/AssessRisksAndNeedsApiMockServer.kt +++ /dev/null @@ -1,70 +0,0 @@ -package uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers - -import com.github.tomakehurst.wiremock.WireMockServer -import com.github.tomakehurst.wiremock.client.WireMock.aResponse -import com.github.tomakehurst.wiremock.client.WireMock.get -import com.github.tomakehurst.wiremock.client.WireMock.matching -import org.springframework.http.HttpStatus - -class AssessRisksAndNeedsApiMockServer : WireMockServer(WIREMOCK_PORT) { - companion object { - private const val WIREMOCK_PORT = 4004 - } - - fun stubGetRiskPredictorScoresForPerson( - crn: String, - body: String, - status: HttpStatus = HttpStatus.OK, - ) { - stubFor( - get("/risks/crn/$crn/predictors/all") - .withHeader( - "Authorization", - matching("Bearer ${HmppsAuthMockServer.TOKEN}"), - ).willReturn( - aResponse() - .withHeader("Content-Type", "application/json") - .withStatus(status.value()) - .withBody(body.trimIndent()), - ), - ) - } - - fun stubGetRisksForPerson( - crn: String, - body: String, - status: HttpStatus = HttpStatus.OK, - ) { - stubFor( - get("/risks/crn/$crn") - .withHeader( - "Authorization", - matching("Bearer ${HmppsAuthMockServer.TOKEN}"), - ).willReturn( - aResponse() - .withHeader("Content-Type", "application/json") - .withStatus(status.value()) - .withBody(body.trimIndent()), - ), - ) - } - - fun stubGetNeedsForPerson( - crn: String, - body: String, - status: HttpStatus = HttpStatus.OK, - ) { - stubFor( - get("/needs/crn/$crn") - .withHeader( - "Authorization", - matching("Bearer ${HmppsAuthMockServer.TOKEN}"), - ).willReturn( - aResponse() - .withHeader("Content-Type", "application/json") - .withStatus(status.value()) - .withBody(body.trimIndent()), - ), - ) - } -} diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/CaseNotesApiMockServer.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/CaseNotesApiMockServer.kt deleted file mode 100644 index 4f196671a..000000000 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/CaseNotesApiMockServer.kt +++ /dev/null @@ -1,33 +0,0 @@ -package uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers - -import com.github.tomakehurst.wiremock.WireMockServer -import com.github.tomakehurst.wiremock.client.WireMock -import org.springframework.http.HttpStatus - -class CaseNotesApiMockServer : WireMockServer(WIREMOCK_PORT) { - companion object { - private const val WIREMOCK_PORT = 4008 - } - - fun stubGetCaseNotes( - id: String, - param: String, - body: String, - status: HttpStatus = HttpStatus.OK, - ) { - stubFor( - WireMock - .get("/case-notes/$id$param") - .withHeader( - "Authorization", - WireMock.matching("Bearer ${HmppsAuthMockServer.TOKEN}"), - ).willReturn( - WireMock - .aResponse() - .withHeader("Content-Type", "application/json") - .withStatus(status.value()) - .withBody(body.trimIndent()), - ), - ) - } -} diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/CreateAndVaryLicenceApiMockServer.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/CreateAndVaryLicenceApiMockServer.kt deleted file mode 100644 index 5415b5806..000000000 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/CreateAndVaryLicenceApiMockServer.kt +++ /dev/null @@ -1,53 +0,0 @@ -package uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers - -import com.github.tomakehurst.wiremock.WireMockServer -import com.github.tomakehurst.wiremock.client.WireMock -import org.springframework.http.HttpStatus - -class CreateAndVaryLicenceApiMockServer : WireMockServer(WIREMOCK_PORT) { - companion object { - private const val WIREMOCK_PORT = 4007 - } - - fun stubGetLicenceSummaries( - id: String, - body: String, - status: HttpStatus = HttpStatus.OK, - ) { - stubFor( - WireMock - .get("/public/licence-summaries/crn/$id") - .withHeader( - "Authorization", - WireMock.matching("Bearer ${HmppsAuthMockServer.TOKEN}"), - ).willReturn( - WireMock - .aResponse() - .withHeader("Content-Type", "application/json") - .withStatus(status.value()) - .withBody(body.trimIndent()), - ), - ) - } - - fun stubGetLicenceConditions( - id: Int, - body: String, - status: HttpStatus = HttpStatus.OK, - ) { - stubFor( - WireMock - .get("/public/licences/id/$id") - .withHeader( - "Authorization", - WireMock.matching("Bearer ${HmppsAuthMockServer.TOKEN}"), - ).willReturn( - WireMock - .aResponse() - .withHeader("Content-Type", "application/json") - .withStatus(status.value()) - .withBody(body.trimIndent()), - ), - ) - } -} diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/EffectiveProposalFrameworkAndDeliusMockServer.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/EffectiveProposalFrameworkAndDeliusMockServer.kt deleted file mode 100644 index 60b0e3f1a..000000000 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/EffectiveProposalFrameworkAndDeliusMockServer.kt +++ /dev/null @@ -1,33 +0,0 @@ -package uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers - -import com.github.tomakehurst.wiremock.WireMockServer -import com.github.tomakehurst.wiremock.client.WireMock.aResponse -import com.github.tomakehurst.wiremock.client.WireMock.get -import com.github.tomakehurst.wiremock.client.WireMock.matching -import org.springframework.http.HttpStatus - -class EffectiveProposalFrameworkAndDeliusMockServer : WireMockServer(WIREMOCK_PORT) { - companion object { - private const val WIREMOCK_PORT = 4005 - } - - fun stubGetCaseDetailForPerson( - id: String, - eventNumber: Int, - body: String, - status: HttpStatus = HttpStatus.OK, - ) { - stubFor( - get("/case-details/$id/$eventNumber") - .withHeader( - "Authorization", - matching("Bearer ${HmppsAuthMockServer.TOKEN}"), - ).willReturn( - aResponse() - .withHeader("Content-Type", "application/json") - .withStatus(status.value()) - .withBody(body.trimIndent()), - ), - ) - } -} diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/IncentivesApiMockServer.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/IncentivesApiMockServer.kt deleted file mode 100644 index 2c2c81fa2..000000000 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/IncentivesApiMockServer.kt +++ /dev/null @@ -1,32 +0,0 @@ -package uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers - -import com.github.tomakehurst.wiremock.WireMockServer -import com.github.tomakehurst.wiremock.client.WireMock.aResponse -import com.github.tomakehurst.wiremock.client.WireMock.get -import com.github.tomakehurst.wiremock.client.WireMock.matching -import org.springframework.http.HttpStatus - -class IncentivesApiMockServer : WireMockServer(WIREMOCK_PORT) { - companion object { - private const val WIREMOCK_PORT = 4008 - } - - fun stubIncentivesApiResponse( - path: String, - body: String, - status: HttpStatus = HttpStatus.OK, - ) { - stubFor( - get(path) - .withHeader( - "Authorization", - matching("Bearer ${HmppsAuthMockServer.TOKEN}"), - ).willReturn( - aResponse() - .withHeader("Content-Type", "application/json") - .withStatus(status.value()) - .withBody(body.trimIndent()), - ), - ) - } -} diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/ManagePOMCaseApiMockServer.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/ManagePOMCaseApiMockServer.kt deleted file mode 100644 index 62f3fd732..000000000 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/ManagePOMCaseApiMockServer.kt +++ /dev/null @@ -1,32 +0,0 @@ -package uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers - -import com.github.tomakehurst.wiremock.WireMockServer -import com.github.tomakehurst.wiremock.client.WireMock -import org.springframework.http.HttpStatus - -class ManagePOMCaseApiMockServer : WireMockServer(WIREMOCK_PORT) { - companion object { - private const val WIREMOCK_PORT = 4009 - } - - fun stubGetPrimaryPOMForNomisNumber( - id: String, - body: String, - status: HttpStatus = HttpStatus.OK, - ) { - stubFor( - WireMock - .get("/api/allocation/$id/primary_pom") - .withHeader( - "Authorization", - WireMock.matching("Bearer ${HmppsAuthMockServer.TOKEN}"), - ).willReturn( - WireMock - .aResponse() - .withHeader("Content-Type", "application/json") - .withStatus(status.value()) - .withBody(body.trimIndent()), - ), - ) - } -} diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/NDeliusApiMockServer.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/NDeliusApiMockServer.kt deleted file mode 100644 index 9be6bee43..000000000 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/NDeliusApiMockServer.kt +++ /dev/null @@ -1,51 +0,0 @@ -package uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers - -import com.github.tomakehurst.wiremock.WireMockServer -import com.github.tomakehurst.wiremock.client.WireMock.aResponse -import com.github.tomakehurst.wiremock.client.WireMock.get -import com.github.tomakehurst.wiremock.client.WireMock.matching -import org.springframework.http.HttpStatus - -class NDeliusApiMockServer : WireMockServer(WIREMOCK_PORT) { - companion object { - private const val WIREMOCK_PORT = 4003 - } - - fun stubDeliusApiResponse( - path: String, - body: String, - status: HttpStatus = HttpStatus.OK, - ) { - stubFor( - get(path) - .withHeader( - "Authorization", - matching("Bearer ${HmppsAuthMockServer.TOKEN}"), - ).willReturn( - aResponse() - .withHeader("Content-Type", "application/json") - .withStatus(status.value()) - .withBody(body.trimIndent()), - ), - ) - } - - fun stubGetSupervisionsForPerson( - crn: String, - body: String, - status: HttpStatus = HttpStatus.OK, - ) { - stubFor( - get("/case/$crn/supervisions") - .withHeader( - "Authorization", - matching("Bearer ${HmppsAuthMockServer.TOKEN}"), - ).willReturn( - aResponse() - .withHeader("Content-Type", "application/json") - .withStatus(status.value()) - .withBody(body.trimIndent()), - ), - ) - } -} diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/NonAssociationsApiMockServer.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/NonAssociationsApiMockServer.kt deleted file mode 100644 index a41b295c7..000000000 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/NonAssociationsApiMockServer.kt +++ /dev/null @@ -1,35 +0,0 @@ -package uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers - -import com.github.tomakehurst.wiremock.WireMockServer -import com.github.tomakehurst.wiremock.client.WireMock.aResponse -import com.github.tomakehurst.wiremock.client.WireMock.get -import com.github.tomakehurst.wiremock.client.WireMock.matching -import org.springframework.http.HttpStatus - -class NonAssociationsApiMockServer : WireMockServer(WIREMOCK_PORT) { - companion object { - // check this port is valid in the case of other tests using it - private const val WIREMOCK_PORT = 4005 - } - - fun stubNonAssociationsGet( - prisonerNumber: String, - includeOpen: String? = "true", - includeClosed: String? = "false", - body: String, - status: HttpStatus = HttpStatus.OK, - ) { - stubFor( - get("/prisoner/$prisonerNumber/non-associations?includeOpen=$includeOpen&includeClosed=$includeClosed") - .withHeader( - "Authorization", - matching("Bearer ${HmppsAuthMockServer.TOKEN}"), - ).willReturn( - aResponse() - .withHeader("Content-Type", "application/json") - .withStatus(status.value()) - .withBody(body.trimIndent()), - ), - ) - } -} diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/PersonalRelationshipsApiMockServer.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/PersonalRelationshipsApiMockServer.kt deleted file mode 100644 index 8ba5952fc..000000000 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/PersonalRelationshipsApiMockServer.kt +++ /dev/null @@ -1,32 +0,0 @@ -package uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers - -import com.github.tomakehurst.wiremock.WireMockServer -import com.github.tomakehurst.wiremock.client.WireMock.aResponse -import com.github.tomakehurst.wiremock.client.WireMock.get -import com.github.tomakehurst.wiremock.client.WireMock.matching -import org.springframework.http.HttpStatus - -class PersonalRelationshipsApiMockServer : WireMockServer(WIREMOCK_PORT) { - companion object { - private const val WIREMOCK_PORT = 4006 - } - - fun stubPersonalRelationshipsApiResponse( - path: String, - body: String, - status: HttpStatus = HttpStatus.OK, - ) { - stubFor( - get(path) - .withHeader( - "Authorization", - matching("Bearer ${HmppsAuthMockServer.TOKEN}"), - ).willReturn( - aResponse() - .withHeader("Content-Type", "application/json") - .withStatus(status.value()) - .withBody(body.trimIndent()), - ), - ) - } -} diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/PrisonVisitsApiMockServer.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/PrisonVisitsApiMockServer.kt deleted file mode 100644 index b4ce9a56f..000000000 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/PrisonVisitsApiMockServer.kt +++ /dev/null @@ -1,32 +0,0 @@ -package uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers - -import com.github.tomakehurst.wiremock.WireMockServer -import com.github.tomakehurst.wiremock.client.WireMock.aResponse -import com.github.tomakehurst.wiremock.client.WireMock.get -import com.github.tomakehurst.wiremock.client.WireMock.matching -import org.springframework.http.HttpStatus - -class PrisonVisitsApiMockServer : WireMockServer(WIREMOCK_PORT) { - companion object { - private const val WIREMOCK_PORT = 4007 - } - - fun stubPrisonVisitsApiResponse( - path: String, - body: String, - status: HttpStatus = HttpStatus.OK, - ) { - stubFor( - get(path) - .withHeader( - "Authorization", - matching("Bearer ${HmppsAuthMockServer.TOKEN}"), - ).willReturn( - aResponse() - .withHeader("Content-Type", "application/json") - .withStatus(status.value()) - .withBody(body.trimIndent()), - ), - ) - } -} diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/PrisonerOffenderSearchApiMockServer.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/PrisonerOffenderSearchApiMockServer.kt deleted file mode 100644 index c39ade947..000000000 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/PrisonerOffenderSearchApiMockServer.kt +++ /dev/null @@ -1,50 +0,0 @@ -package uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers - -import com.github.tomakehurst.wiremock.WireMockServer -import com.github.tomakehurst.wiremock.client.WireMock -import com.github.tomakehurst.wiremock.client.WireMock.aResponse -import com.github.tomakehurst.wiremock.client.WireMock.get -import com.github.tomakehurst.wiremock.client.WireMock.matching -import com.github.tomakehurst.wiremock.client.WireMock.post -import org.springframework.http.HttpStatus - -class PrisonerOffenderSearchApiMockServer : WireMockServer(WIREMOCK_PORT) { - companion object { - private const val WIREMOCK_PORT = 4001 - } - - fun stubGetPrisoner( - nomisNumber: String, - responseBody: String, - status: HttpStatus = HttpStatus.OK, - ) { - stubFor( - get("/prisoner/$nomisNumber") - .withHeader("Authorization", matching("Bearer ${HmppsAuthMockServer.TOKEN}")) - .willReturn( - aResponse() - .withHeader("Content-Type", "application/json") - .withStatus(status.value()) - .withBody(responseBody.trimIndent()), - ), - ) - } - - fun stubPostPrisonerSearch( - requestBody: String, - responseBody: String, - status: HttpStatus = HttpStatus.OK, - ) { - stubFor( - post("/global-search?size=9999") - .withHeader("Authorization", matching("Bearer ${HmppsAuthMockServer.TOKEN}")) - .withRequestBody(WireMock.equalToJson(requestBody)) - .willReturn( - aResponse() - .withHeader("Content-Type", "application/json") - .withStatus(status.value()) - .withBody(responseBody.trimIndent()), - ), - ) - } -} diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/ProbationOffenderSearchApiMockServer.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/ProbationOffenderSearchApiMockServer.kt deleted file mode 100644 index 84932530a..000000000 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/ProbationOffenderSearchApiMockServer.kt +++ /dev/null @@ -1,32 +0,0 @@ -package uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers - -import com.github.tomakehurst.wiremock.WireMockServer -import com.github.tomakehurst.wiremock.client.WireMock.aResponse -import com.github.tomakehurst.wiremock.client.WireMock.equalToJson -import com.github.tomakehurst.wiremock.client.WireMock.matching -import com.github.tomakehurst.wiremock.client.WireMock.post -import org.springframework.http.HttpStatus - -class ProbationOffenderSearchApiMockServer : WireMockServer(WIREMOCK_PORT) { - companion object { - private const val WIREMOCK_PORT = 4002 - } - - fun stubPostOffenderSearch( - requestBody: String, - responseBody: String, - status: HttpStatus = HttpStatus.OK, - ) { - stubFor( - post("/search") - .withHeader("Authorization", matching("Bearer ${HmppsAuthMockServer.TOKEN}")) - .withRequestBody(equalToJson(requestBody)) - .willReturn( - aResponse() - .withHeader("Content-Type", "application/json") - .withStatus(status.value()) - .withBody(responseBody.trimIndent()), - ), - ) - } -} diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/RiskManagementApiMockServer.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/RiskManagementApiMockServer.kt deleted file mode 100755 index d61a07d14..000000000 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/RiskManagementApiMockServer.kt +++ /dev/null @@ -1,30 +0,0 @@ -package uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers - -import com.github.tomakehurst.wiremock.WireMockServer -import com.github.tomakehurst.wiremock.client.WireMock.aResponse -import com.github.tomakehurst.wiremock.client.WireMock.get -import com.github.tomakehurst.wiremock.client.WireMock.matching -import org.springframework.http.HttpStatus - -class RiskManagementApiMockServer : WireMockServer(WIREMOCK_PORT) { - companion object { - private const val WIREMOCK_PORT = 4004 - } - - fun stubGetRiskManagementPlan( - crn: String, - responseBody: String, - status: HttpStatus = HttpStatus.OK, - ) { - stubFor( - get("/risks/crn/$crn/risk-management-plan") - .withHeader("Authorization", matching("Bearer ${HmppsAuthMockServer.TOKEN}")) - .willReturn( - aResponse() - .withHeader("Content-Type", "application/json") - .withStatus(status.value()) - .withBody(responseBody.trimIndent()), - ), - ) - } -} diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/GenericApiMockServer.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/TestApiMockServer.kt similarity index 95% rename from src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/GenericApiMockServer.kt rename to src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/TestApiMockServer.kt index 9d6fa39c3..eafa9b3c8 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/GenericApiMockServer.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/mockservers/TestApiMockServer.kt @@ -4,7 +4,7 @@ import com.github.tomakehurst.wiremock.WireMockServer import com.github.tomakehurst.wiremock.client.WireMock import org.springframework.http.HttpStatus -class GenericApiMockServer : WireMockServer(WIREMOCK_PORT) { +class TestApiMockServer : WireMockServer(WIREMOCK_PORT) { companion object { private const val WIREMOCK_PORT = 4000 } diff --git a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/services/ReferenceDataServiceTest.kt b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/services/ReferenceDataServiceTest.kt index 39f1897b6..d2772cd4b 100644 --- a/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/services/ReferenceDataServiceTest.kt +++ b/src/test/kotlin/uk/gov/justice/digital/hmpps/hmppsintegrationapi/services/ReferenceDataServiceTest.kt @@ -13,9 +13,9 @@ import org.springframework.test.context.ActiveProfiles import org.springframework.test.context.ContextConfiguration import org.springframework.test.context.bean.override.mockito.MockitoBean import uk.gov.justice.digital.hmpps.hmppsintegrationapi.gateways.HmppsAuthGateway +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.ApiMockServer import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.HmppsAuthMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NDeliusApiMockServer -import uk.gov.justice.digital.hmpps.hmppsintegrationapi.mockservers.NomisApiMockServer +import uk.gov.justice.digital.hmpps.hmppsintegrationapi.models.hmpps.UpstreamApi @ActiveProfiles("test") @ContextConfiguration( @@ -28,13 +28,13 @@ class ReferenceDataServiceTest( private val objectMapper: ObjectMapper = ObjectMapper().registerKotlinModule(), ) : DescribeSpec( { - val nomisApiMockServer = NomisApiMockServer() - val ndeliusApiMockServer = NDeliusApiMockServer() + val nomisApiMockServer = ApiMockServer.create(UpstreamApi.NOMIS) + val ndeliusApiMockServer = ApiMockServer.create(UpstreamApi.NDELIUS) beforeEach { // Delius endpoint ndeliusApiMockServer.start() - ndeliusApiMockServer.stubDeliusApiResponse( + ndeliusApiMockServer.stubForGet( "/reference-data", """ { @@ -57,7 +57,7 @@ class ReferenceDataServiceTest( // Nomis endpoints // PHONE_USAGE("PHONE_TYPE"), ALERT("ALERT_TYPE"), ETHNICITY("ETHNICITY"), SEX("GENDER") nomisApiMockServer.start() - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( "/api/reference-domains/domains/PHONE_USAGE", """ [ @@ -68,7 +68,7 @@ class ReferenceDataServiceTest( """, ) - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( "/api/reference-domains/domains/ALERT", """ [ @@ -79,7 +79,7 @@ class ReferenceDataServiceTest( """, ) - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( "/api/reference-domains/domains/ETHNICITY", """ [ @@ -90,7 +90,7 @@ class ReferenceDataServiceTest( """, ) - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( "/api/reference-domains/domains/SEX", """ [ @@ -112,7 +112,7 @@ class ReferenceDataServiceTest( } it("returns from function with errors on NDelius 404") { - ndeliusApiMockServer.stubDeliusApiResponse( + ndeliusApiMockServer.stubForGet( "/reference-data", """ {"message":"There is an error"} @@ -131,7 +131,7 @@ class ReferenceDataServiceTest( } it("returns from function with errors on NOMIS 404") { - nomisApiMockServer.stubNomisApiResponse( + nomisApiMockServer.stubForGet( "/api/reference-domains/domains/SEX", """ {"message":"There is an error"}