Skip to content

Commit

Permalink
Lagt til test på historiske arbeidsgivere fra aareg (#997)
Browse files Browse the repository at this point in the history
* Lagt til test på historiske arbeidsgivere fra aareg

* Kun siste 6 månader (default) i arbeidsgiverroutes
  • Loading branch information
albrektsson authored Sep 14, 2023
1 parent 0802364 commit ca897ec
Show file tree
Hide file tree
Showing 3 changed files with 181 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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<HttpStatusCode, String?> = runBlocking {
Expand All @@ -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<HttpStatusCode, String?> = 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() }
}
}
111 changes: 100 additions & 11 deletions src/test/kotlin/no/nav/k9punsj/wiremock/AaregMocks.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,25 @@ 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.*"))
.withHeader("Authorization", WireMock.matching("Bearer ey.*"))
.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(
Expand All @@ -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",
Expand Down Expand Up @@ -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()
47 changes: 41 additions & 6 deletions src/test/kotlin/no/nav/k9punsj/wiremock/EregMocks.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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"))
Expand All @@ -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 {
Expand All @@ -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 = """
{
Expand Down

0 comments on commit ca897ec

Please sign in to comment.