From 8fa24b63b8a09c64de6d74e48bcdfc2310a99515 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Geir=20Andr=C3=A9=20Lund?= Date: Fri, 12 Feb 2021 12:33:07 +0100 Subject: [PATCH 1/2] Oppdatere 3.parts biblioteker --- buildSrc/src/main/kotlin/Constants.kt | 27 ++++++++++--------- dp-inntekt-api/build.gradle.kts | 3 ++- .../inntekt/db/PostgresInntektStore.kt | 3 ++- .../enhetsregister/EnhetsregisterClient.kt | 2 +- .../oppslag/pdl/PdlGraphQLRepository.kt | 5 ++-- .../inntekt/v1/EnhetsregistrerRoute.kt | 4 +-- .../inntekt/v1/UklassifisertInntektRoute.kt | 12 ++++----- .../no/nav/dagpenger/inntekt/DummyConfigs.kt | 2 +- .../nav/dagpenger/inntekt/db/PostgresTest.kt | 7 ++--- .../v1/InntektskomponentHttpClientTest.kt | 10 +++---- .../mapping/MapToFromGUIInntektTest.kt | 18 ++++++++----- .../mapping/MapToSpesifisertInntektTest.kt | 2 +- .../oppslag/pdl/PdlGraphQLRepositoryTest.kt | 2 +- 13 files changed, 52 insertions(+), 45 deletions(-) diff --git a/buildSrc/src/main/kotlin/Constants.kt b/buildSrc/src/main/kotlin/Constants.kt index 38735ea5..0d8af726 100644 --- a/buildSrc/src/main/kotlin/Constants.kt +++ b/buildSrc/src/main/kotlin/Constants.kt @@ -24,7 +24,7 @@ object Cucumber { object Dagpenger { object Biblioteker { - const val version = "2020.07.30-12.21.8857eb1469bf" + const val version = "2020.11.24-08.15.86482b2eead8" const val stsKlient = "com.github.navikt.dp-biblioteker:sts-klient:$version" const val grunnbeløp = "com.github.navikt.dp-biblioteker:grunnbelop:$version" const val ktorUtils = "com.github.navikt.dp-biblioteker:ktor-utils:$version" @@ -45,8 +45,8 @@ object Dagpenger { } } - const val Streams = "com.github.navikt:dagpenger-streams:2020.05.15-23.03.e0ab571caee4" - const val Events = "com.github.navikt:dagpenger-events:2020.05.15-21.57.e4685fc2a371" + const val Streams = "com.github.navikt:dagpenger-streams:2020.08.19-13.32.0fd360f3ef11" + const val Events = "com.github.navikt:dagpenger-events:2020.08.19-10.57.d2fe892352eb" } object Database { @@ -81,6 +81,7 @@ object Junit5 { const val params = "org.junit.jupiter:junit-jupiter-params:$version" const val engine = "org.junit.jupiter:junit-jupiter-engine:$version" const val vintageEngine = "org.junit.vintage:junit-vintage-engine:$version" + const val kotlinRunner = "io.kotlintest:kotlintest-runner-junit5:3.4.2" fun library(name: String) = "org.junit.jupiter:junit-jupiter-$name:$version" } @@ -121,7 +122,7 @@ object Konfig { } object Kotlin { - const val version = "1.3.72" + const val version = "1.4.0" const val stdlib = "org.jetbrains.kotlin:kotlin-stdlib:$version" object Coroutines { @@ -130,13 +131,13 @@ object Kotlin { } object Logging { - const val version = "1.7.9" + const val version = "2.0.4" const val kotlinLogging = "io.github.microutils:kotlin-logging:$version" } } object KoTest { - const val version = "4.0.3" + const val version = "4.2.0.RC2" // for kotest framework const val runner = "io.kotest:kotest-runner-junit5-jvm:$version" @@ -156,7 +157,7 @@ object Kotlinx { } object Ktor { - const val version = "1.3.2" + const val version = "1.4.0" const val server = "io.ktor:ktor-server:$version" const val serverNetty = "io.ktor:ktor-server-netty:$version" const val auth = "io.ktor:ktor-auth:$version" @@ -220,7 +221,7 @@ object Prometheus { } } -const val RapidAndRivers = "com.github.navikt:rapids-and-rivers:1.74ae9cb" +const val RapidAndRivers = "com.github.navikt:rapids-and-rivers:1.6d6256d" object Slf4j { const val version = "1.7.25" @@ -228,11 +229,11 @@ object Slf4j { } object Ktlint { - const val version = "0.37.2" + const val version = "0.38.1" } object Spotless { - const val version = "5.1.0" + const val version = "5.10.1" const val spotless = "com.diffplug.spotless" } @@ -242,7 +243,7 @@ object Shadow { } object TestContainers { - const val version = "1.15.0-rc2" + const val version = "1.15.1" const val postgresql = "org.testcontainers:postgresql:$version" const val kafka = "org.testcontainers:kafka:$version" } @@ -257,12 +258,12 @@ object Vault { } object Wiremock { - const val version = "2.21.0" + const val version = "2.27.2" const val standalone = "com.github.tomakehurst:wiremock-standalone:$version" } object Graphql { - const val version = "3.1.1" + const val version = "4.0.0-alpha.12" const val graphql = "com.expediagroup.graphql" val client = library("client") fun library(name: String) = "com.expediagroup:graphql-kotlin-$name:$version" diff --git a/dp-inntekt-api/build.gradle.kts b/dp-inntekt-api/build.gradle.kts index 7be0cfa9..66871833 100644 --- a/dp-inntekt-api/build.gradle.kts +++ b/dp-inntekt-api/build.gradle.kts @@ -12,6 +12,7 @@ buildscript { } repositories { + mavenCentral() maven("https://packages.confluent.io/maven/") } @@ -36,6 +37,7 @@ dependencies { implementation(Micrometer.prometheusRegistry) implementation(Graphql.client) + implementation(Graphql.library("ktor-client")) implementation(Ktor.library("client-logging-jvm")) implementation(Ktor.library("client-apache")) @@ -93,7 +95,6 @@ dependencies { testImplementation(Junit5.api) testImplementation(Junit5.params) testRuntimeOnly(Junit5.engine) - testRuntimeOnly(Junit5.vintageEngine) testImplementation(Wiremock.standalone) testImplementation(KoTest.assertions) testImplementation(KoTest.runner) diff --git a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/db/PostgresInntektStore.kt b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/db/PostgresInntektStore.kt index 87acc29c..acac9589 100644 --- a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/db/PostgresInntektStore.kt +++ b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/db/PostgresInntektStore.kt @@ -100,7 +100,8 @@ internal class PostgresInntektStore(private val dataSource: DataSource) : Inntek return using(sessionOf(dataSource)) { session -> session.run( queryOf( - statement, mapOf("inntektId" to inntektId.id) + statement, + mapOf("inntektId" to inntektId.id) ).map { row -> row.localDateOrNull("beregningsdato") }.asSingle diff --git a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/oppslag/enhetsregister/EnhetsregisterClient.kt b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/oppslag/enhetsregister/EnhetsregisterClient.kt index b6ddce5e..ddba58a6 100644 --- a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/oppslag/enhetsregister/EnhetsregisterClient.kt +++ b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/oppslag/enhetsregister/EnhetsregisterClient.kt @@ -25,7 +25,7 @@ class EnhetsregisterClient( try { httpClient.get("$baseUrl/api/enheter/$orgnummer") } catch (e: ClientRequestException) { - when (e.response.status.value) { + when (e.response?.status?.value) { 404 -> httpClient.get("$baseUrl/api/underenheter/$orgnummer") else -> throw e } diff --git a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/oppslag/pdl/PdlGraphQLRepository.kt b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/oppslag/pdl/PdlGraphQLRepository.kt index 4892b6f6..15bb05fa 100644 --- a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/oppslag/pdl/PdlGraphQLRepository.kt +++ b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/oppslag/pdl/PdlGraphQLRepository.kt @@ -1,6 +1,7 @@ package no.nav.dagpenger.inntekt.oppslag.pdl import com.expediagroup.graphql.client.GraphQLClient +import com.expediagroup.graphql.client.ktor.GraphQLKtorClient import com.expediagroup.graphql.types.GraphQLResponse import io.ktor.client.features.defaultRequest import io.ktor.client.features.logging.LogLevel @@ -21,7 +22,7 @@ private val sikkerlogg = KotlinLogging.logger("tjenestekall") @KtorExperimentalAPI class PdlGraphQLRepository constructor( - client: GraphQLClient<*> + client: GraphQLClient ) : PersonOppslag { private val query = HentPerson(client) @@ -56,7 +57,7 @@ class PdlGraphQLRepository constructor( fun PdlGraphQLClientFactory( url: String, oidcProvider: () -> String -) = GraphQLClient(url = URL(url)) { +) = GraphQLKtorClient(url = URL(url)) { install(Logging) { logger = object : Logger { override fun log(message: String) = sikkerlogg.info { message } diff --git a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/v1/EnhetsregistrerRoute.kt b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/v1/EnhetsregistrerRoute.kt index 3ccb74b9..f5e3468f 100644 --- a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/v1/EnhetsregistrerRoute.kt +++ b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/v1/EnhetsregistrerRoute.kt @@ -25,8 +25,8 @@ fun Route.enhetsregisteret(client: EnhetsregisterClient) { call.respondText(result, ContentType.Application.Json) } catch (e: Exception) { when (e) { - is ClientRequestException -> when (e.response.status.value) { - in 400..499 -> call.response.status(e.response.status) + is ClientRequestException -> when (e.response?.status?.value) { + in 400..499 -> call.response.status(e.response!!.status) } else -> call.response.status(HttpStatusCode.BadGateway) } } diff --git a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/v1/UklassifisertInntektRoute.kt b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/v1/UklassifisertInntektRoute.kt index e4c0e3ad..fa575f77 100644 --- a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/v1/UklassifisertInntektRoute.kt +++ b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/v1/UklassifisertInntektRoute.kt @@ -69,12 +69,12 @@ fun Route.uklassifisertInntekt( ?.let { inntektStore.getInntekt(it) }?.let { - val person = personOppslag.hentPerson(this.aktørId) - val inntektsmottaker = Inntektsmottaker(person?.fødselsnummer, person?.sammensattNavn()) - mapToGUIInntekt(it, Opptjeningsperiode(this.beregningsDato), inntektsmottaker) - }?.let { - call.respond(HttpStatusCode.OK, it) - } ?: throw InntektNotFoundException("Inntekt with for $this not found.") + val person = personOppslag.hentPerson(this.aktørId) + val inntektsmottaker = Inntektsmottaker(person?.fødselsnummer, person?.sammensattNavn()) + mapToGUIInntekt(it, Opptjeningsperiode(this.beregningsDato), inntektsmottaker) + }?.let { + call.respond(HttpStatusCode.OK, it) + } ?: throw InntektNotFoundException("Inntekt with for $this not found.") } } post { diff --git a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/DummyConfigs.kt b/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/DummyConfigs.kt index 4ed43814..7725fe76 100644 --- a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/DummyConfigs.kt +++ b/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/DummyConfigs.kt @@ -13,7 +13,7 @@ private val mockedConfigs = listOf( "jwks.issuer" ) -val dummyConfigs = mockedConfigs.associate { it to "test" } +val dummyConfigs = mockedConfigs.associateWith { "test" } fun withProps(props: Map, test: () -> Unit) { for ((k, v) in props) { diff --git a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/db/PostgresTest.kt b/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/db/PostgresTest.kt index ab5f0663..86024a48 100644 --- a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/db/PostgresTest.kt +++ b/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/db/PostgresTest.kt @@ -6,7 +6,7 @@ import io.kotest.matchers.shouldBe import io.kotest.matchers.shouldNotBe import io.kotest.property.Arb import io.kotest.property.arbitrary.arb -import io.kotest.property.arbitrary.localDate +import io.kotest.property.arbitrary.localDateTime import io.kotest.property.arbitrary.next import io.kotest.property.arbitrary.string import io.kotest.property.checkAll @@ -23,6 +23,7 @@ import org.junit.jupiter.api.Test import java.time.LocalDate import kotlin.test.assertEquals import kotlin.test.assertFalse +import kotlin.test.assertNotEquals import kotlin.test.assertNotNull import kotlin.test.assertNull import kotlin.test.assertTrue @@ -130,7 +131,7 @@ internal class PostgresInntektStoreTest { assertSoftly { getInntektId(aktør1) shouldNotBe null getInntektId(aktør2) shouldNotBe null - getInntektId(aktør2) shouldNotBe getInntektId(aktør1) + assertNotEquals(getInntektId(aktør2), getInntektId(aktør1)) getInntektId(Inntektparametre(aktørId = aktørId2, vedtakId = "464664", beregningsdato = LocalDate.now())) shouldBe null getInntektId(Inntektparametre(aktørId = "3535535335", vedtakId = "1234", beregningsdato = LocalDate.now())) shouldBe null } @@ -362,7 +363,7 @@ internal class InntektsStorePropertyTest : StringSpec() { aktørId = stringArb.next(it), vedtakId = stringArb.next(it), fødselnummer = stringArb.next(it), - beregningsdato = Arb.localDate(minYear = 2010, maxYear = LocalDate.now().year).next(it) + beregningsdato = Arb.localDateTime(minYear = 2010, maxYear = LocalDate.now().year).next(it).toLocalDate() ), inntekt = InntektkomponentResponse( arbeidsInntektMaaned = emptyList(), diff --git a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/inntektskomponenten/v1/InntektskomponentHttpClientTest.kt b/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/inntektskomponenten/v1/InntektskomponentHttpClientTest.kt index 0d168e87..327eb4cd 100644 --- a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/inntektskomponenten/v1/InntektskomponentHttpClientTest.kt +++ b/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/inntektskomponenten/v1/InntektskomponentHttpClientTest.kt @@ -2,8 +2,8 @@ package no.nav.dagpenger.inntekt.inntektskomponenten.v1 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.configureFor +import com.github.tomakehurst.wiremock.client.WireMock.okForContentType import com.github.tomakehurst.wiremock.client.WireMock.post import com.github.tomakehurst.wiremock.client.WireMock.stubFor import com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo @@ -66,9 +66,7 @@ internal class InntektskomponentHttpClientTest { .withHeader("Nav-Consumer-Id", EqualToPattern("dp-inntekt-api")) .withHeader("Nav-Call-Id", AnythingPattern()) .willReturn( - aResponse() - .withHeader("Content-Type", "application/json") - .withBody(body) + okForContentType("application/json", body) ) ) @@ -103,9 +101,7 @@ internal class InntektskomponentHttpClientTest { .withHeader("Nav-Consumer-Id", EqualToPattern("dp-inntekt-api")) .withHeader("Nav-Call-Id", AnythingPattern()) .willReturn( - WireMock.aResponse() - .withHeader("Content-Type", "application/json") - .withBody(body) + okForContentType("application/json", body) ) ) diff --git a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/mapping/MapToFromGUIInntektTest.kt b/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/mapping/MapToFromGUIInntektTest.kt index 11e87ef7..2acdc71a 100644 --- a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/mapping/MapToFromGUIInntektTest.kt +++ b/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/mapping/MapToFromGUIInntektTest.kt @@ -174,7 +174,8 @@ internal class KategoriseringTest { val mappedJson = moshiInstance.adapter(GUIInntektsKomponentResponse::class.java).toJson(guiInntekt.inntekt) JSONAssert.assertEquals( - mappedJson, beforeJson, + mappedJson, + beforeJson, AttributeIgnoringComparator( JSONCompareMode.STRICT, setOf("verdikode", "fraDato", "tilDato"), @@ -186,7 +187,8 @@ internal class KategoriseringTest { @Test fun `mapFromGUIInntekt removes verdikode and updates to beskrivelse, type and tilleggsinformasjon correctly`() { val guiInntekt = GUIInntekt( - InntektId(ULID().nextULID()), LocalDateTime.now(), + InntektId(ULID().nextULID()), + LocalDateTime.now(), GUIInntektsKomponentResponse( YearMonth.now(), YearMonth.now(), @@ -199,7 +201,8 @@ internal class KategoriseringTest { ), Aktoer(AktoerType.AKTOER_ID, "3333333333") ), - false, false + false, + false ) val mappedInntekt = mapToStoredInntekt(guiInntekt) @@ -215,7 +218,8 @@ internal class KategoriseringTest { @Test fun `mapFromGUIInntekt does not modify other fields than beskrivelse, type and tilleggsinformasjon`() { val guiInntekt = GUIInntekt( - InntektId(ULID().nextULID()), LocalDateTime.now(), + InntektId(ULID().nextULID()), + LocalDateTime.now(), GUIInntektsKomponentResponse( YearMonth.now(), YearMonth.now(), @@ -228,7 +232,8 @@ internal class KategoriseringTest { ), Aktoer(AktoerType.AKTOER_ID, "3333333333") ), - false, false + false, + false ) val mappedInntekt = mapToStoredInntekt(guiInntekt) @@ -237,7 +242,8 @@ internal class KategoriseringTest { val mappedJson = moshiInstance.adapter(InntektkomponentResponse::class.java).toJson(mappedInntekt.inntekt) JSONAssert.assertEquals( - beforeJson, mappedJson, + beforeJson, + mappedJson, AttributeIgnoringComparator( JSONCompareMode.LENIENT, setOf("verdikode", "fraDato", "tilDato"), diff --git a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/mapping/MapToSpesifisertInntektTest.kt b/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/mapping/MapToSpesifisertInntektTest.kt index 7c6fc8b0..f371b975 100644 --- a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/mapping/MapToSpesifisertInntektTest.kt +++ b/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/mapping/MapToSpesifisertInntektTest.kt @@ -20,7 +20,7 @@ import no.nav.dagpenger.inntekt.inntektskomponenten.v1.Periode import no.nav.dagpenger.inntekt.inntektskomponenten.v1.SpesielleInntjeningsforhold import no.nav.dagpenger.inntekt.inntektskomponenten.v1.TilleggInformasjon import no.nav.dagpenger.inntekt.inntektskomponenten.v1.TilleggInformasjonsDetaljer -import org.junit.Test +import org.junit.jupiter.api.Test import java.math.BigDecimal import java.time.LocalDate import java.time.LocalDateTime diff --git a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/oppslag/pdl/PdlGraphQLRepositoryTest.kt b/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/oppslag/pdl/PdlGraphQLRepositoryTest.kt index 8c9159d4..42e12760 100644 --- a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/oppslag/pdl/PdlGraphQLRepositoryTest.kt +++ b/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/oppslag/pdl/PdlGraphQLRepositoryTest.kt @@ -103,7 +103,7 @@ internal class PdlGraphQLRepositoryTest { this.addStubMapping( WireMock.post(WireMock.urlEqualTo("/graphql")) .withHeader(HttpHeaders.CONTENT_TYPE, WireMock.equalTo("application/json")) - .withHeader(HttpHeaders.ACCEPT, WireMock.equalTo("application/json;application/json")) + .withHeader(HttpHeaders.ACCEPT, WireMock.equalTo("application/json")) .withHeader(HttpHeaders.AUTHORIZATION, WireMock.equalTo("Bearer $TOKEN")) .withHeader("TEMA", WireMock.equalTo("DAG")) .withHeader("Nav-Consumer-Token", WireMock.equalTo("Bearer $TOKEN")) From bbb8c8eae457ceb0dce63721ca9f52acbbe92951 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Geir=20Andr=C3=A9=20Lund?= Date: Tue, 16 Feb 2021 08:26:57 +0100 Subject: [PATCH 2/2] Oppdatere 3.parts biblioteker --- buildSrc/src/main/kotlin/Constants.kt | 18 +++++++++--------- dp-inntekt-api/build.gradle.kts | 3 ++- .../no/nav/dagpenger/inntekt/Application.kt | 2 +- .../enhetsregister/EnhetsregisterClient.kt | 4 ++-- .../v1/UklassifisertInntektRouteTest.kt | 5 ++--- dp-inntekt-grpc/build.gradle.kts | 2 +- 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/buildSrc/src/main/kotlin/Constants.kt b/buildSrc/src/main/kotlin/Constants.kt index 0d8af726..beabdba2 100644 --- a/buildSrc/src/main/kotlin/Constants.kt +++ b/buildSrc/src/main/kotlin/Constants.kt @@ -69,14 +69,14 @@ object GradleWrapper { } object Jackson { - const val version = "2.10.3" + const val version = "2.12.1" const val core = "com.fasterxml.jackson.core:jackson-core:$version" const val kotlin = "com.fasterxml.jackson.module:jackson-module-kotlin:$version" const val jsr310 = "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:$version" } object Junit5 { - const val version = "5.6.1" + const val version = "5.7.1" const val api = "org.junit.jupiter:junit-jupiter-api:$version" const val params = "org.junit.jupiter:junit-jupiter-params:$version" const val engine = "org.junit.jupiter:junit-jupiter-engine:$version" @@ -122,11 +122,11 @@ object Konfig { } object Kotlin { - const val version = "1.4.0" + const val version = "1.4.30" const val stdlib = "org.jetbrains.kotlin:kotlin-stdlib:$version" object Coroutines { - const val version = "1.3.7" + const val version = "1.4.2" fun module(name: String) = "org.jetbrains.kotlinx:kotlinx-coroutines-$name:$version" } @@ -137,7 +137,7 @@ object Kotlin { } object KoTest { - const val version = "4.2.0.RC2" + const val version = "4.4.1" // for kotest framework const val runner = "io.kotest:kotest-runner-junit5-jvm:$version" @@ -157,7 +157,7 @@ object Kotlinx { } object Ktor { - const val version = "1.4.0" + const val version = "1.5.1" const val server = "io.ktor:ktor-server:$version" const val serverNetty = "io.ktor:ktor-server-netty:$version" const val auth = "io.ktor:ktor-auth:$version" @@ -169,7 +169,7 @@ object Ktor { } object Log4j2 { - const val version = "2.13.1" + const val version = "2.14.0" const val api = "org.apache.logging.log4j:log4j-api:$version" const val core = "org.apache.logging.log4j:log4j-core:$version" const val slf4j = "org.apache.logging.log4j:log4j-slf4j-impl:$version" @@ -177,7 +177,7 @@ object Log4j2 { fun library(name: String) = "org.apache.logging.log4j:log4j-$name:$version" object Logstash { - private const val version = "1.0.2" + private const val version = "1.0.5" const val logstashLayout = "com.vlkan.log4j2:log4j2-logstash-layout:$version" } } @@ -199,7 +199,7 @@ object Moshi { } object Mockk { - const val version = "1.10.0" + const val version = "1.10.6" const val mockk = "io.mockk:mockk:$version" } diff --git a/dp-inntekt-api/build.gradle.kts b/dp-inntekt-api/build.gradle.kts index 66871833..a9a38704 100644 --- a/dp-inntekt-api/build.gradle.kts +++ b/dp-inntekt-api/build.gradle.kts @@ -21,7 +21,7 @@ application { mainClassName = "no.nav.dagpenger.inntekt.ApplicationKt" } -val grpcVersion = "1.29.0" +val grpcVersion = "1.35.0" dependencies { implementation(project(":dp-inntekt-grpc")) @@ -92,6 +92,7 @@ dependencies { testImplementation(kotlin("test")) testImplementation(Ktor.ktorTest) + testImplementation(Ktor.library("client-mock")) testImplementation(Junit5.api) testImplementation(Junit5.params) testRuntimeOnly(Junit5.engine) diff --git a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/Application.kt b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/Application.kt index 7b873e86..4888b46b 100644 --- a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/Application.kt +++ b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/Application.kt @@ -50,7 +50,7 @@ fun main() { val pdlPersonOppslag = PdlGraphQLRepository( client = PdlGraphQLClientFactory( url = config.pdl.url, - oidcProvider = { stsOidcClient.oidcToken().access_token } + oidcProvider = { runBlocking { stsOidcClient.oidcToken().access_token } } ) ) val enhetsregisterClient = EnhetsregisterClient( diff --git a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/oppslag/enhetsregister/EnhetsregisterClient.kt b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/oppslag/enhetsregister/EnhetsregisterClient.kt index ddba58a6..57052d67 100644 --- a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/oppslag/enhetsregister/EnhetsregisterClient.kt +++ b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/oppslag/enhetsregister/EnhetsregisterClient.kt @@ -23,9 +23,9 @@ class EnhetsregisterClient( suspend fun hentEnhet(orgnummer: String): String { return withContext(Dispatchers.IO) { try { - httpClient.get("$baseUrl/api/enheter/$orgnummer") + httpClient.get("$baseUrl/api/enheter/$orgnummer") } catch (e: ClientRequestException) { - when (e.response?.status?.value) { + when (e.response.status.value) { 404 -> httpClient.get("$baseUrl/api/underenheter/$orgnummer") else -> throw e } diff --git a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/v1/UklassifisertInntektRouteTest.kt b/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/v1/UklassifisertInntektRouteTest.kt index 4069f17a..c8ac9e84 100644 --- a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/v1/UklassifisertInntektRouteTest.kt +++ b/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/v1/UklassifisertInntektRouteTest.kt @@ -137,9 +137,8 @@ internal class UklassifisertInntektApiTest { ) { addHeader(HttpHeaders.Cookie, "ID_token=$token") }.apply { - assertTrue(requestHandled) - Assertions.assertEquals(HttpStatusCode.NotFound, response.status()) - val problem = moshiInstance.adapter(Problem::class.java).fromJson(response.content!!) + assertEquals(HttpStatusCode.NotFound, response.status()) + val problem = moshiInstance.adapter(Problem::class.java).fromJson(response.content!!) assertEquals("Kunne ikke finne inntekt i databasen", problem?.title) assertEquals("urn:dp:error:inntekt", problem?.type.toString()) assertEquals(404, problem?.status) diff --git a/dp-inntekt-grpc/build.gradle.kts b/dp-inntekt-grpc/build.gradle.kts index f27b4c42..4110c639 100644 --- a/dp-inntekt-grpc/build.gradle.kts +++ b/dp-inntekt-grpc/build.gradle.kts @@ -1,6 +1,6 @@ import com.google.protobuf.gradle.* // ktlint-disable no-wildcard-imports -val grpcVersion = "1.29.0" +val grpcVersion = "1.35.0" val grpcKotlinVersion = "0.1.1" val protbufVersion = "3.11.1" val protobufGradleVersion = "0.8.12"