Skip to content

Commit

Permalink
Fjern unødvendig abstraksjon (#345)
Browse files Browse the repository at this point in the history
* Fjern unødvendig abstraksjon

* Fiks mergefeil
  • Loading branch information
bjerga authored Nov 20, 2023
1 parent 160b5a2 commit c94fb88
Show file tree
Hide file tree
Showing 24 changed files with 142 additions and 300 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,16 @@ import no.nav.helsearbeidsgiver.felles.DataFelt
import no.nav.helsearbeidsgiver.felles.EventName
import no.nav.helsearbeidsgiver.felles.Key
import no.nav.helsearbeidsgiver.felles.json.toJson
import no.nav.helsearbeidsgiver.felles.json.toMap
import no.nav.helsearbeidsgiver.felles.rapidsrivers.model.Data
import no.nav.helsearbeidsgiver.felles.rapidsrivers.model.Fail
import no.nav.helsearbeidsgiver.felles.test.json.toDomeneMessage
import no.nav.helsearbeidsgiver.felles.rapidsrivers.toJsonMap
import no.nav.helsearbeidsgiver.felles.test.json.readFail
import no.nav.helsearbeidsgiver.felles.test.rapidsrivers.firstMessage
import no.nav.helsearbeidsgiver.felles.test.rapidsrivers.sendJson
import no.nav.helsearbeidsgiver.inntektsmelding.aareg.ArbeidsforholdLoeser
import no.nav.helsearbeidsgiver.inntektsmelding.aareg.tilArbeidsforhold
import no.nav.helsearbeidsgiver.utils.json.fromJson
import no.nav.helsearbeidsgiver.utils.json.serializer.UuidSerializer
import no.nav.helsearbeidsgiver.utils.json.toJson
import java.util.UUID
Expand All @@ -41,39 +44,36 @@ class ArbeidsforholdLoeserTest : FunSpec({
}

test("ved innkommende behov så hentes og publiseres arbeidsforhold fra aareg") {
val expectedUuid = UUID.randomUUID()

val expected = Data.create(
EventName.INSENDING_STARTED,
UUID.randomUUID(),
mapOf(
event = EventName.INSENDING_STARTED,
uuid = expectedUuid,
map = mapOf(
DataFelt.ARBEIDSFORHOLD to no.nav.helsearbeidsgiver.felles.Data(
mockKlientArbeidsforhold().tilArbeidsforhold().let(::listOf)
)
)
).toJsonMessage()
.also {
Data.packetValidator.validate(it)
it.interestedIn(DataFelt.ARBEIDSFORHOLD.str)
}.let {
Data.create(it)
}
)
.jsonMessage
.toJsonMap()

coEvery { mockAaregClient.hentArbeidsforhold(any(), any()) } returns mockKlientArbeidsforhold().let(::listOf)

testRapid.sendJson(
Key.EVENT_NAME to expected.event.toJson(),
Key.EVENT_NAME to EventName.INSENDING_STARTED.toJson(),
Key.BEHOV to BehovType.ARBEIDSFORHOLD.toJson(),
Key.IDENTITETSNUMMER to Mock.FNR.toJson(),
Key.UUID to expected.uuid().toJson()
Key.UUID to expectedUuid.toJson()
)

val actual = testRapid.firstMessage().toDomeneMessage<Data>() {
it.interestedIn(DataFelt.ARBEIDSFORHOLD.str)
}
val actual = testRapid.firstMessage().toMap()

coVerifySequence { mockAaregClient.hentArbeidsforhold(Mock.FNR, expected.uuid()) }
coVerifySequence { mockAaregClient.hentArbeidsforhold(Mock.FNR, expectedUuid.toString()) }
testRapid.inspektør.size shouldBeExactly 1
actual.uuid() shouldBe expected.uuid()
actual.event shouldBe expected.event

actual[Key.UUID]?.fromJson(UuidSerializer) shouldBe expectedUuid
actual[Key.EVENT_NAME]?.fromJson(EventName.serializer()) shouldBe EventName.INSENDING_STARTED
actual[DataFelt.ARBEIDSFORHOLD] shouldBe expected[DataFelt.ARBEIDSFORHOLD]
}

Expand All @@ -95,7 +95,7 @@ class ArbeidsforholdLoeserTest : FunSpec({
Key.UUID to expected.uuid!!.toJson()
)

val actual = testRapid.firstMessage().toDomeneMessage<Fail>()
val actual = testRapid.firstMessage().readFail()

coVerifySequence { mockAaregClient.hentArbeidsforhold(Mock.FNR, expected.uuid.toString()) }
testRapid.inspektør.size shouldBeExactly 1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,13 @@ import no.nav.helsearbeidsgiver.felles.DataFelt
import no.nav.helsearbeidsgiver.felles.EksternInntektsmelding
import no.nav.helsearbeidsgiver.felles.EventName
import no.nav.helsearbeidsgiver.felles.Key
import no.nav.helsearbeidsgiver.felles.json.lesOrNull
import no.nav.helsearbeidsgiver.felles.json.toJson
import no.nav.helsearbeidsgiver.felles.rapidsrivers.model.Data
import no.nav.helsearbeidsgiver.felles.rapidsrivers.model.Fail
import no.nav.helsearbeidsgiver.felles.test.json.toDomeneMessage
import no.nav.helsearbeidsgiver.felles.json.toMap
import no.nav.helsearbeidsgiver.felles.test.json.readFail
import no.nav.helsearbeidsgiver.felles.test.rapidsrivers.firstMessage
import no.nav.helsearbeidsgiver.felles.test.rapidsrivers.sendJson
import no.nav.helsearbeidsgiver.felles.utils.randomUuid
import no.nav.helsearbeidsgiver.utils.json.fromJson
import no.nav.helsearbeidsgiver.utils.json.toJson
import no.nav.helsearbeidsgiver.utils.test.date.januar
import no.nav.helsearbeidsgiver.utils.test.mock.mockStatic
Expand Down Expand Up @@ -58,7 +57,7 @@ class EksternInntektsmeldingLoeserTest : FunSpec({
)
}

val actual = testRapid.firstMessage().toDomeneMessage<Fail>()
val actual = testRapid.firstMessage().readFail()

testRapid.inspektør.size shouldBeExactly 1
actual.behov shouldBe BehovType.HENT_EKSTERN_INNTEKTSMELDING
Expand All @@ -79,7 +78,7 @@ class EksternInntektsmeldingLoeserTest : FunSpec({
)
}

val actual = testRapid.firstMessage().toDomeneMessage<Fail>()
val actual = testRapid.firstMessage().readFail()

testRapid.inspektør.size shouldBeExactly 1
actual.behov shouldBe BehovType.HENT_EKSTERN_INNTEKTSMELDING
Expand All @@ -99,14 +98,12 @@ class EksternInntektsmeldingLoeserTest : FunSpec({
)
}

val actual = testRapid.firstMessage().toDomeneMessage<Data>() {
it.interestedIn(DataFelt.EKSTERN_INNTEKTSMELDING.str)
}
val actual = testRapid.firstMessage().toMap()

testRapid.inspektør.size shouldBeExactly 1
actual.event shouldBe EventName.FORESPOERSEL_BESVART

actual[DataFelt.EKSTERN_INNTEKTSMELDING].toString().fromJson(EksternInntektsmelding.serializer()) shouldBe eksternInntektsmelding
Key.EVENT_NAME.lesOrNull(EventName.serializer(), actual) shouldBe EventName.FORESPOERSEL_BESVART
DataFelt.EKSTERN_INNTEKTSMELDING.lesOrNull(EksternInntektsmelding.serializer(), actual) shouldBe eksternInntektsmelding
}

test("Hvis request timer ut blir feil publisert") {
Expand All @@ -122,7 +119,7 @@ class EksternInntektsmeldingLoeserTest : FunSpec({
)
}

val actual = testRapid.firstMessage().toDomeneMessage<Fail>()
val actual = testRapid.firstMessage().readFail()

testRapid.inspektør.size shouldBeExactly 1
actual.behov shouldBe BehovType.HENT_EKSTERN_INNTEKTSMELDING
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@ import no.nav.helsearbeidsgiver.felles.EventName
import no.nav.helsearbeidsgiver.felles.Key
import no.nav.helsearbeidsgiver.felles.json.toJson
import no.nav.helsearbeidsgiver.felles.json.toMap
import no.nav.helsearbeidsgiver.felles.rapidsrivers.model.Fail
import no.nav.helsearbeidsgiver.felles.test.json.toDomeneMessage
import no.nav.helsearbeidsgiver.felles.test.json.readFail
import no.nav.helsearbeidsgiver.felles.test.rapidsrivers.firstMessage
import no.nav.helsearbeidsgiver.felles.test.rapidsrivers.sendJson
import no.nav.helsearbeidsgiver.utils.json.fromJson
Expand Down Expand Up @@ -57,7 +56,7 @@ class VirksomhetLoeserTest {

val publisert = testRapid.firstMessage()

publisert.toDomeneMessage<Fail>().feilmelding.shouldBe("Fant ikke virksomhet")
publisert.readFail().feilmelding.shouldBe("Fant ikke virksomhet")
}

@Test
Expand Down Expand Up @@ -90,6 +89,6 @@ class VirksomhetLoeserTest {

val publisert = testRapid.firstMessage()

publisert.toDomeneMessage<Fail>().feilmelding.shouldBe("Klarte ikke hente virksomhet")
publisert.readFail().feilmelding.shouldBe("Klarte ikke hente virksomhet")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class LagreEksternInntektsmeldingLoeser(
Log.behov(behov.behov)
) {
logger.info("Mottok behov ${BehovType.LAGRE_EKSTERN_INNTEKTSMELDING.name}")
sikkerLogger.info("Mottok behov:\n${behov.toJsonMessage().toPretty()}")
sikkerLogger.info("Mottok behov:\n${behov.jsonMessage.toPretty()}")
val eksternInntektsmelding = behov[DataFelt.EKSTERN_INNTEKTSMELDING].toString().fromJson(EksternInntektsmelding.serializer())
if (eksternInntektsmelding == null) {
logger.error("Fant ingen EksternInntektsmelding")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import no.nav.helsearbeidsgiver.felles.EksternInntektsmelding
import no.nav.helsearbeidsgiver.felles.EventName
import no.nav.helsearbeidsgiver.felles.Key
import no.nav.helsearbeidsgiver.felles.json.toJson
import no.nav.helsearbeidsgiver.felles.test.json.toDomeneMessage
import no.nav.helsearbeidsgiver.felles.test.json.readFail
import no.nav.helsearbeidsgiver.felles.test.rapidsrivers.firstMessage
import no.nav.helsearbeidsgiver.felles.test.rapidsrivers.sendJson
import no.nav.helsearbeidsgiver.inntektsmelding.db.EKSTERN_INNTEKTSMELDING_DOKUMENT
Expand Down Expand Up @@ -120,7 +120,7 @@ class HentPersistertLoeserTest {
private fun sendMeldingMedFeil(vararg melding: Pair<Key, JsonElement>): no.nav.helsearbeidsgiver.felles.rapidsrivers.model.Fail {
rapid.reset()
rapid.sendJson(*melding.toList().toTypedArray())
return rapid.firstMessage().toDomeneMessage()
return rapid.firstMessage().readFail()
// TODO - serialisering med Feilmelding.serializer() funker ikke:
// .toJsonElement()
// .fromJson(Feilmelding.serializer())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@ import no.nav.helsearbeidsgiver.felles.BehovType
import no.nav.helsearbeidsgiver.felles.EventName
import no.nav.helsearbeidsgiver.felles.Key
import no.nav.helsearbeidsgiver.felles.json.toJsonElement
import no.nav.helsearbeidsgiver.felles.rapidsrivers.model.Fail
import no.nav.helsearbeidsgiver.felles.test.json.toDomeneMessage
import no.nav.helsearbeidsgiver.felles.test.json.readFail
import no.nav.helsearbeidsgiver.felles.test.rapidsrivers.sendJson
import no.nav.helsearbeidsgiver.inntektsmelding.db.INNTEKTSMELDING_DOKUMENT
import no.nav.helsearbeidsgiver.inntektsmelding.db.InntektsmeldingRepository
Expand Down Expand Up @@ -84,7 +83,7 @@ class LagreJournalpostIdLoeserTest {
assertNotNull(feilmelding)
}

private fun getFeil(index: Int) = testRapid.inspektør.message(index).toJsonElement().toDomeneMessage<Fail>().feilmelding
private fun getFeil(index: Int) = testRapid.inspektør.message(index).toJsonElement().readFail().feilmelding

private fun journalpostLagretFraRapid(index: Int): JsonNode {
val message = testRapid.inspektør.message(index)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ import no.nav.helsearbeidsgiver.felles.BehovType
import no.nav.helsearbeidsgiver.felles.DataFelt
import no.nav.helsearbeidsgiver.felles.EventName
import no.nav.helsearbeidsgiver.felles.Key
import no.nav.helsearbeidsgiver.felles.json.lesOrNull
import no.nav.helsearbeidsgiver.felles.json.toJson
import no.nav.helsearbeidsgiver.felles.json.toMap
import no.nav.helsearbeidsgiver.felles.rapidsrivers.interestedIn
import no.nav.helsearbeidsgiver.felles.rapidsrivers.model.Behov
import no.nav.helsearbeidsgiver.felles.rapidsrivers.model.Event
import no.nav.helsearbeidsgiver.felles.test.json.toDomeneMessage
import no.nav.helsearbeidsgiver.felles.test.rapidsrivers.firstMessage
import no.nav.helsearbeidsgiver.felles.test.rapidsrivers.sendJson
import no.nav.helsearbeidsgiver.inntektsmelding.db.ForespoerselRepository
Expand Down Expand Up @@ -64,9 +64,9 @@ class NotifikasjonHentIdLoeserTest : FunSpec({

testRapid.inspektør.size shouldBeExactly 1

val actual = testRapid.firstMessage().toDomeneMessage<Event>()
val actual = testRapid.firstMessage().toMap()

actual.forespoerselId shouldBe expected.forespoerselId
Key.FORESPOERSEL_ID.lesOrNull(UuidSerializer, actual)?.toString() shouldBe expected.forespoerselId

verifySequence {
mockForespoerselRepo.hentSakId(any())
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package no.nav.helsearbeidsgiver.felles.test.json

import kotlinx.serialization.json.JsonElement
import no.nav.helse.rapids_rivers.JsonMessage
import no.nav.helse.rapids_rivers.MessageProblems
import no.nav.helse.rapids_rivers.isMissingOrNull
import no.nav.helsearbeidsgiver.felles.Key
import no.nav.helsearbeidsgiver.felles.rapidsrivers.interestedIn
import no.nav.helsearbeidsgiver.felles.rapidsrivers.model.Fail

fun JsonElement.readFail(): Fail {
val json = toString()
val jsonMessage = JsonMessage(json, MessageProblems(json)).also {
it.interestedIn(Key.EVENT_NAME, Key.BEHOV, Key.DATA, Key.FAIL)
}
return if (!jsonMessage[Key.FAIL.str].isMissingOrNull()) {
Fail.packetValidator.validate(jsonMessage)
Fail.create(jsonMessage)
} else {
throw RuntimeException("Message må være EVENT, DATA, BEHOV eller FAIL ${jsonMessage.toJson()}")
}
}

This file was deleted.

Loading

0 comments on commit c94fb88

Please sign in to comment.