Skip to content

Commit 8cc1caa

Browse files
authored
Merge pull request #91 from navikt/bugfix/inntektsid-not-present
Kan ikke markere inntekt som brukt hvis ikke inntektsid er med i subs…
2 parents a90232c + 35b5721 commit 8cc1caa

File tree

2 files changed

+35
-1
lines changed

2 files changed

+35
-1
lines changed

src/main/kotlin/no/nav/dagpenger/inntekt/subsumsjonbrukt/KafkaSubsumsjonBruktDataConsumer.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,11 @@ internal class KafkaSubsumsjonBruktDataConsumer(
7676
val records = consumer.poll(Duration.ofMillis(100))
7777
val ids = records.asSequence()
7878
.map { record -> record.value() }
79-
.map { packet -> InntektId(packet.getMapValue("faktum")["inntektsId"] as String) }
79+
.filter { packet -> packet.hasField("faktum") }
80+
.map { packet -> packet.getMapValue("faktum") }
81+
.onEach { faktum -> if (faktum["inntektsId"] == null) { logger.info { "Subsumsjon do not contain inntekts id. Is it manuelt grunnlag? ${faktum["manueltGrunnlag"] != null}" } } }
82+
.filter { faktum -> faktum["inntektsId"] != null }
83+
.map { faktum -> InntektId(faktum["inntektsId"] as String) }
8084
.toList()
8185

8286
try {

src/test/kotlin/no/nav/dagpenger/inntekt/subsumsjonbrukt/KafkaSubsumsjonBruktDataConsumerTest.kt

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,36 @@ class KafkaSubsumsjonBruktDataConsumerTest {
7373
}
7474
}
7575

76+
@Test
77+
fun `Cannot mark inntekt id as used if not present in faktum`() {
78+
runBlocking {
79+
val storeMock = mockk<InntektStore>(relaxed = false).apply {
80+
every { this@apply.markerInntektBrukt(any()) } returns 1
81+
}
82+
val config = Configuration().run {
83+
copy(kafka = kafka.copy(brokers = Kafka.instance.bootstrapServers, user = null, password = null))
84+
}
85+
86+
val consumer = KafkaSubsumsjonBruktDataConsumer(config, storeMock).apply {
87+
listen()
88+
}
89+
90+
val bruktSubsumsjonData = mapOf("faktum" to mapOf("manueltGrunnlag" to "122212"))
91+
92+
val metaData = producer.send(ProducerRecord(config.subsumsjonBruktDataTopic, "test", adapter.toJson(bruktSubsumsjonData)))
93+
.get(5, TimeUnit.SECONDS)
94+
LOGGER.info("Producer produced $bruktSubsumsjonData with meta $metaData")
95+
96+
TimeUnit.MILLISECONDS.sleep(500)
97+
98+
verify(exactly = 0) {
99+
storeMock.markerInntektBrukt(any())
100+
}
101+
102+
consumer.status() shouldBe HealthStatus.UP
103+
}
104+
}
105+
76106
@Test
77107
fun `Should have grace period on health status when job is no longer active`() {
78108
runBlocking {

0 commit comments

Comments
 (0)