From ca897eca9b6d50ad5f339f3135209bd9272f0c40 Mon Sep 17 00:00:00 2001 From: Emil Albrektsson <61695840+albrektsson@users.noreply.github.com> Date: Thu, 14 Sep 2023 14:05:42 +0200 Subject: [PATCH] =?UTF-8?q?Lagt=20til=20test=20p=C3=A5=20historiske=20arbe?= =?UTF-8?q?idsgivere=20fra=20aareg=20(#997)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Lagt til test på historiske arbeidsgivere fra aareg * Kun siste 6 månader (default) i arbeidsgiverroutes --- .../arbeidsgivere/ArbeidsgivereRoutesTest.kt | 40 +++++++ .../no/nav/k9punsj/wiremock/AaregMocks.kt | 111 ++++++++++++++++-- .../no/nav/k9punsj/wiremock/EregMocks.kt | 47 +++++++- 3 files changed, 181 insertions(+), 17 deletions(-) diff --git a/src/test/kotlin/no/nav/k9punsj/integrasjoner/arbeidsgivere/ArbeidsgivereRoutesTest.kt b/src/test/kotlin/no/nav/k9punsj/integrasjoner/arbeidsgivere/ArbeidsgivereRoutesTest.kt index 0feb542dc..db419fb6b 100644 --- a/src/test/kotlin/no/nav/k9punsj/integrasjoner/arbeidsgivere/ArbeidsgivereRoutesTest.kt +++ b/src/test/kotlin/no/nav/k9punsj/integrasjoner/arbeidsgivere/ArbeidsgivereRoutesTest.kt @@ -17,6 +17,7 @@ import org.springframework.http.MediaType import org.springframework.test.context.junit.jupiter.SpringExtension import org.springframework.web.reactive.function.client.awaitBodyOrNull import org.springframework.web.reactive.function.client.awaitExchange +import java.time.LocalDate @ExtendWith(SpringExtension::class, MockKExtension::class) internal class ArbeidsgivereRoutesTest { @@ -66,6 +67,31 @@ internal class ArbeidsgivereRoutesTest { assertEquals(HttpStatus.NOT_FOUND, httpStatus) } + @Test + fun `henter historiske arbeidsgivere fra siste 6 mån, tar kun med de som har orgnr`() { + val (status, body) = getArbeidsgiverListeMedHistoriske("22053826656") + assertEquals(HttpStatus.OK, status) + val forventetResponse = """ + { + "organisasjoner": [ + { + "organisasjonsnummer": "27500", + "navn": "QuakeWorld AS" + }, + { + "organisasjonsnummer": "27015", + "navn": "CounterStrike AS" + }, + { + "organisasjonsnummer": "5001", + "navn": "Ultima Online AS" + }, + ] + } + """.trimIndent() + JSONAssert.assertEquals(forventetResponse, body, true) + } + private fun getArbeidsgivere( identitetsnummer: String ): Pair = runBlocking { @@ -82,4 +108,18 @@ internal class ArbeidsgivereRoutesTest { .uri { it.path("/api/arbeidsgiver").queryParam("organisasjonsnummer", organisasjonsnummer).build() } .awaitExchange { it.statusCode() to it.awaitBodyOrNull() } } + + private fun getArbeidsgiverListeMedHistoriske( + identitetsnummer: String + ): Pair = runBlocking { + client.get() + .uri { it.path("/api/arbeidsgivere-historikk") + .queryParam("historikk", "true") + .build() + } + .accept(MediaType.APPLICATION_JSON) + .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader) + .header("X-Nav-NorskIdent", identitetsnummer) + .awaitExchange { it.statusCode() to it.awaitBodyOrNull() } + } } diff --git a/src/test/kotlin/no/nav/k9punsj/wiremock/AaregMocks.kt b/src/test/kotlin/no/nav/k9punsj/wiremock/AaregMocks.kt index ed868f284..5709a0be4 100644 --- a/src/test/kotlin/no/nav/k9punsj/wiremock/AaregMocks.kt +++ b/src/test/kotlin/no/nav/k9punsj/wiremock/AaregMocks.kt @@ -10,9 +10,17 @@ import java.time.ZoneId private const val path = "/aareg-mock" +fun WireMockServer.stubAareg() : WireMockServer = + stubHentArbeidsforhold(identitetsnummer = AnythingPattern(), response = defaultResponse) + .stubHentArbeidsforhold(identitetsnummer = WireMock.equalTo("22222222222"), response = "[]") + .stubHentArbeidsforhold(identitetsnummer = WireMock.equalTo("22053826656"), response = flereArbeidsforholdIar, historikk = true) + +fun WireMockServer.getAaregBaseUrl() = baseUrl() + path + private fun WireMockServer.stubHentArbeidsforhold( identitetsnummer: StringValuePattern, - response: String + response: String, + historikk: Boolean = false ): WireMockServer { WireMock.stubFor( WireMock.get(WireMock.urlPathMatching(".*$path/arbeidstaker/arbeidsforhold.*")) @@ -20,7 +28,7 @@ private fun WireMockServer.stubHentArbeidsforhold( .withHeader("Nav-Call-Id", AnythingPattern()) .withHeader("Accept", WireMock.equalTo("application/json")) .withHeader("Nav-Personident", identitetsnummer) - .withQueryParam("historikk", WireMock.equalTo("false")) + .withQueryParam("historikk", WireMock.equalTo(historikk.toString())) .withQueryParam("sporingsinformasjon", WireMock.equalTo("false")) .withQueryParam("rapporteringsordning", WireMock.equalTo("A_ORDNINGEN")) .willReturn( @@ -33,17 +41,12 @@ private fun WireMockServer.stubHentArbeidsforhold( return this } -fun WireMockServer.stubAareg() : WireMockServer = - stubHentArbeidsforhold(identitetsnummer = AnythingPattern(), response = DefaultResponse) - .stubHentArbeidsforhold(identitetsnummer = WireMock.equalTo("22222222222"), response = "[]") - -fun WireMockServer.getAaregBaseUrl() = baseUrl() + path - -val fom = LocalDate.now(ZoneId.of("Europe/Oslo")).minusMonths(6) -val tom = LocalDate.now(ZoneId.of("Europe/Oslo")).plusMonths(6) +private val fom = LocalDate.now(ZoneId.of("Europe/Oslo")).minusMonths(6) +private val tom = LocalDate.now(ZoneId.of("Europe/Oslo")).plusMonths(6) +private val idag = LocalDate.now(ZoneId.of("Europe/Oslo")) @Language("JSON") -private val DefaultResponse = """ +private val defaultResponse = """ [ { "id": "979312059-arbf-1", @@ -95,3 +98,89 @@ private val DefaultResponse = """ } ] """.trimIndent() + +@Language("JSON") +private val flereArbeidsforholdIar = """ +[ + { + "id": "QuakeWorld", + "arbeidssted": { + "type": "Organisasjon", + "identer": [ + { + "ident": "27500", + "type": "ORGANISASJONSNUMMER" + } + ] + }, + "ansettelsesperiode": { + "startdato": "$idag", + "sluttdato": null + } + }, + { + "id": "CounterStrike", + "arbeidssted": { + "type": "Organisasjon", + "identer": [ + { + "ident": "27015", + "type": "ORGANISASJONSNUMMER" + } + ] + }, + "ansettelsesperiode": { + "startdato": "${idag.minusMonths(2)}", + "sluttdato": "${idag.minusMonths(1)}" + } + }, + { + "id": "Ultima Online", + "arbeidssted": { + "type": "Organisasjon", + "identer": [ + { + "ident": "5001", + "type": "ORGANISASJONSNUMMER" + } + ] + }, + "ansettelsesperiode": { + "startdato": "${idag.minusMonths(4)}", + "sluttdato": "${idag.minusMonths(3)}" + } + }, + { + "id": "Ultima Online 2", + "arbeidssted": { + "type": "Organisasjon", + "identer": [ + { + "ident": "5002", + "type": "AKTORID" + } + ] + }, + "ansettelsesperiode": { + "startdato": "${idag.minusMonths(4)}", + "sluttdato": "${idag.minusMonths(3)}" + } + }, + { + "id": "Valheim", + "arbeidssted": { + "type": "Organisasjon", + "identer": [ + { + "ident": "2456", + "type": "ORGANISASJONSNUMMER" + } + ] + }, + "ansettelsesperiode": { + "startdato": "${idag.minusMonths(8)}", + "sluttdato": "${idag.minusMonths(7)}" + } + } +] +""".trimIndent() \ No newline at end of file diff --git a/src/test/kotlin/no/nav/k9punsj/wiremock/EregMocks.kt b/src/test/kotlin/no/nav/k9punsj/wiremock/EregMocks.kt index 73a666374..bde03746c 100644 --- a/src/test/kotlin/no/nav/k9punsj/wiremock/EregMocks.kt +++ b/src/test/kotlin/no/nav/k9punsj/wiremock/EregMocks.kt @@ -7,6 +7,16 @@ import org.intellij.lang.annotations.Language private const val path = "/ereg-mock" +fun WireMockServer.getEregBaseUrl() = baseUrl() + path +fun WireMockServer.stubEreg(): WireMockServer = + stubHentOrganisasjonNøkkelinformasjon() + .stubHentOrganisasjonNøkkelinformasjonIkkeFunnet("993110469") + .stubHentOrganisasjonMedNavn("27500", "QuakeWorld") + .stubHentOrganisasjonMedNavn("27015", "CounterStrike") + .stubHentOrganisasjonMedNavn("5001", "Ultima Online") + .stubHentOrganisasjonMedNavn("2456", "Valheim") + + private fun WireMockServer.stubHentOrganisasjonNøkkelinformasjon(): WireMockServer { WireMock.stubFor( WireMock.get(WireMock.urlPathMatching(".*$path/organisasjon/.*/noekkelinfo")) @@ -22,6 +32,37 @@ private fun WireMockServer.stubHentOrganisasjonNøkkelinformasjon(): WireMockSer ) return this } + +private fun WireMockServer.stubHentOrganisasjonMedNavn( + orgNr: String, + orgNavn: String +): WireMockServer { + val navnRespons = """ + { + "navn": { + "navnelinje1": "$orgNavn", + "navnelinje2": "", + "navnelinje3": null, + "navnelinje5": "AS" + } + } + """.trimIndent() + + WireMock.stubFor( + WireMock.get(WireMock.urlPathMatching(".*$path/organisasjon/$orgNr/noekkelinfo")) + .withHeader("Nav-Consumer-Id", WireMock.equalTo("k9-punsj")) + .withHeader("Nav-Call-Id", AnythingPattern()) + .withHeader("Accept", WireMock.equalTo("application/json")) + .willReturn( + WireMock.aResponse() + .withHeader("Content-Type", "application/json") + .withStatus(200) + .withBody(navnRespons) + ) + ) + return this +} + private fun WireMockServer.stubHentOrganisasjonNøkkelinformasjonIkkeFunnet( organisasjonsnummer: String ): WireMockServer { @@ -38,12 +79,6 @@ private fun WireMockServer.stubHentOrganisasjonNøkkelinformasjonIkkeFunnet( return this } -fun WireMockServer.stubEreg() : WireMockServer = - stubHentOrganisasjonNøkkelinformasjon() - .stubHentOrganisasjonNøkkelinformasjonIkkeFunnet("993110469") - -fun WireMockServer.getEregBaseUrl() = baseUrl() + path - @Language("JSON") private val DefaultResponse = """ {