From b4913530eb05c5826028a3205a97323ccc9f7298 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingrid=20Foss=C3=A5?= Date: Wed, 18 Dec 2024 11:44:08 +0100 Subject: [PATCH 1/9] =?UTF-8?q?Presiser=20kategori=20n=C3=A5r=20vi=20oppre?= =?UTF-8?q?tter=20testdata=20for=20Utg=C3=A5tt=20varsel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Legg til rette for å ta i mot nye kategoriar --- .../HendelseIntegrationTest.kt | 18 +++++++++-------- .../HendelsesfilterTestUtil.kt | 20 ++++++++++++++++--- .../OpensearchServiceIntegrationTest.java | 19 +++++++++--------- 3 files changed, 37 insertions(+), 20 deletions(-) diff --git a/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseIntegrationTest.kt b/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseIntegrationTest.kt index 7b3b724c4..7a4396d6f 100644 --- a/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseIntegrationTest.kt +++ b/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseIntegrationTest.kt @@ -42,7 +42,7 @@ class HendelseIntegrationTest( val brukerFnr = randomFnr() val brukerNorskIdent = NorskIdent.of(brukerFnr.get()) val brukerOppfolgingsEnhet = randomNavKontor() - val hendelse = genererRandomHendelse(personIdent = brukerNorskIdent) + val hendelse = genererRandomHendelse(personIdent = brukerNorskIdent, kategori = Kategori.UTGATT_VARSEL) testDataClient.lagreBrukerUnderOppfolging(brukerAktorId, brukerFnr, brukerOppfolgingsEnhet.value, null) hendelseRepository.insert(hendelse) @@ -106,7 +106,7 @@ class HendelseIntegrationTest( // When val hendelseId = UUID.randomUUID().toString() val hendelseRecordValue = - genererRandomHendelseRecordValue(operasjon = Operasjon.START, personID = brukerNorskIdent) + genererRandomHendelseRecordValue(operasjon = Operasjon.START, personID = brukerNorskIdent, kategori = Kategori.UTGATT_VARSEL) val hendelseConsumerRecord = genererRandomHendelseConsumerRecord(recordValue = hendelseRecordValue, key = hendelseId) hendelseService.behandleKafkaRecord(hendelseConsumerRecord) @@ -141,7 +141,7 @@ class HendelseIntegrationTest( opensearchIndexer.indekser(brukerAktorId) val hendelseId = UUID.randomUUID().toString() val hendelseRecordValue = - genererRandomHendelseRecordValue(operasjon = Operasjon.START, personID = brukerNorskIdent) + genererRandomHendelseRecordValue(operasjon = Operasjon.START, personID = brukerNorskIdent, kategori = Kategori.UTGATT_VARSEL) val hendelseConsumerRecord = genererRandomHendelseConsumerRecord(recordValue = hendelseRecordValue, key = hendelseId) hendelseService.behandleKafkaRecord(hendelseConsumerRecord) @@ -187,7 +187,7 @@ class HendelseIntegrationTest( opensearchIndexer.indekser(brukerAktorId) val hendelseId = UUID.randomUUID().toString() val hendelseRecordValue = - genererRandomHendelseRecordValue(operasjon = Operasjon.START, personID = brukerNorskIdent) + genererRandomHendelseRecordValue(operasjon = Operasjon.START, personID = brukerNorskIdent, kategori = Kategori.UTGATT_VARSEL) val hendelseConsumerRecord = genererRandomHendelseConsumerRecord(recordValue = hendelseRecordValue, key = hendelseId) hendelseService.behandleKafkaRecord(hendelseConsumerRecord) @@ -226,7 +226,7 @@ class HendelseIntegrationTest( opensearchIndexer.indekser(brukerAktorId) val yngreHendelseId = "1d5cb509-1fa3-4b92-a552-f91c00c3aba7" val yngreHendelseRecordValue = - genererRandomHendelseRecordValue(operasjon = Operasjon.START, personID = brukerNorskIdent) + genererRandomHendelseRecordValue(operasjon = Operasjon.START, personID = brukerNorskIdent, kategori = Kategori.UTGATT_VARSEL) val yngreHendelseConsumerRecord = genererRandomHendelseConsumerRecord(recordValue = yngreHendelseRecordValue, key = yngreHendelseId) hendelseService.behandleKafkaRecord(yngreHendelseConsumerRecord) @@ -237,7 +237,8 @@ class HendelseIntegrationTest( genererRandomHendelseRecordValue( operasjon = Operasjon.START, personID = brukerNorskIdent, - hendelseDato = yngreHendelseRecordValue.hendelse.dato.minusDays(10) + hendelseDato = yngreHendelseRecordValue.hendelse.dato.minusDays(10), + kategori = Kategori.UTGATT_VARSEL ) val eldreHendelseConsumerRecord = genererRandomHendelseConsumerRecord(recordValue = eldreHendelseRecordValue, key = eldreHendelseId) @@ -273,7 +274,7 @@ class HendelseIntegrationTest( opensearchIndexer.indekser(brukerAktorId) val yngreHendelseId = "1d5cb509-1fa3-4b92-a552-f91c00c3aba7" val yngreHendelseRecordValue = - genererRandomHendelseRecordValue(operasjon = Operasjon.START, personID = brukerNorskIdent) + genererRandomHendelseRecordValue(operasjon = Operasjon.START, personID = brukerNorskIdent, kategori = Kategori.UTGATT_VARSEL) val yngreHendelseConsumerRecord = genererRandomHendelseConsumerRecord(recordValue = yngreHendelseRecordValue, key = yngreHendelseId) hendelseService.behandleKafkaRecord(yngreHendelseConsumerRecord) @@ -282,7 +283,8 @@ class HendelseIntegrationTest( genererRandomHendelseRecordValue( operasjon = Operasjon.START, personID = brukerNorskIdent, - hendelseDato = yngreHendelseRecordValue.hendelse.dato.minusDays(10) + hendelseDato = yngreHendelseRecordValue.hendelse.dato.minusDays(10), + kategori = Kategori.UTGATT_VARSEL ) val eldreHendelseConsumerRecordStart = genererRandomHendelseConsumerRecord(recordValue = eldreHendelseRecordValueStart, key = eldreHendelseId) diff --git a/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelsesfilterTestUtil.kt b/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelsesfilterTestUtil.kt index 75ddea032..e89c3ccf8 100644 --- a/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelsesfilterTestUtil.kt +++ b/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelsesfilterTestUtil.kt @@ -25,13 +25,27 @@ fun genererRandomHendelse(): Hendelse { ) } -// For å kunne kalle funksjonen fra Java og bare sende inn hendelsedato -fun genererRandomHendelse(hendelseDato: ZonedDateTime): Hendelse { +// For å kunne kalle funksjonen fra Java og bare sende inn kategori +fun genererRandomHendelse(kategori: Kategori): Hendelse { return genererRandomHendelse( UUID.randomUUID(), randomNorskIdent(), randomAvsender(), - randomKategori(), + kategori, + randomBeskrivelse(), + randomZonedDate(), + randomUrl(), + randomDetaljer(), + ) +} + +// For å kunne kalle funksjonen fra Java og sende inn hendelsedato og kategori +fun genererRandomHendelse(kategori: Kategori, hendelseDato: ZonedDateTime): Hendelse { + return genererRandomHendelse( + UUID.randomUUID(), + randomNorskIdent(), + randomAvsender(), + kategori, randomBeskrivelse(), hendelseDato, randomUrl(), diff --git a/src/test/java/no/nav/pto/veilarbportefolje/opensearch/OpensearchServiceIntegrationTest.java b/src/test/java/no/nav/pto/veilarbportefolje/opensearch/OpensearchServiceIntegrationTest.java index afd4c2be0..26e151d88 100644 --- a/src/test/java/no/nav/pto/veilarbportefolje/opensearch/OpensearchServiceIntegrationTest.java +++ b/src/test/java/no/nav/pto/veilarbportefolje/opensearch/OpensearchServiceIntegrationTest.java @@ -18,6 +18,7 @@ import no.nav.pto.veilarbportefolje.domene.value.VeilederId; import no.nav.pto.veilarbportefolje.fargekategori.FargekategoriVerdi; import no.nav.pto.veilarbportefolje.hendelsesfilter.Hendelse; +import no.nav.pto.veilarbportefolje.hendelsesfilter.Kategori; import no.nav.pto.veilarbportefolje.opensearch.domene.OpensearchResponse; import no.nav.pto.veilarbportefolje.opensearch.domene.OppfolgingsBruker; import no.nav.pto.veilarbportefolje.persononinfo.barnUnder18Aar.BarnUnder18AarData; @@ -3402,7 +3403,7 @@ public void test_filtrering_og_statustall_utgatte_varsel() { Fnr oppfolgingsBruker2Fnr = Fnr.of("02020222222"); - Hendelse.HendelseInnhold utgattVarselBruker2 = genererRandomHendelse().getHendelse(); + Hendelse.HendelseInnhold utgattVarselBruker2 = genererRandomHendelse(Kategori.UTGATT_VARSEL).getHendelse(); OppfolgingsBruker oppfolgingsBruker2 = new OppfolgingsBruker() .setFnr(oppfolgingsBruker2Fnr.toString()) @@ -3415,7 +3416,7 @@ public void test_filtrering_og_statustall_utgatte_varsel() { Fnr oppfolgingsBruker3Fnr = Fnr.of("03030333333"); - Hendelse.HendelseInnhold utgattVarselBruker3 = genererRandomHendelse().getHendelse(); + Hendelse.HendelseInnhold utgattVarselBruker3 = genererRandomHendelse(Kategori.UTGATT_VARSEL).getHendelse(); OppfolgingsBruker bruker3 = new OppfolgingsBruker() .setFnr(oppfolgingsBruker3Fnr.toString()) @@ -3467,9 +3468,9 @@ void skal_sortere_pa_hendelsesdato_som_standard_ved_filtrering_pa_utgatt_varsel( ZonedDateTime hendelsedatoBruker2 = ZonedDateTime.of(2024, 1, 1, 12, 0, 0, 0, ZoneId.systemDefault()); ZonedDateTime hendelsedatoBruker3 = ZonedDateTime.of(2020, 1, 1, 12, 0, 0, 0, ZoneId.systemDefault()); - Hendelse.HendelseInnhold utgattVarselBruker1 = genererRandomHendelse(hendelsedatoBruker1).getHendelse(); - Hendelse.HendelseInnhold utgattVarselBruker2 = genererRandomHendelse(hendelsedatoBruker2).getHendelse(); - Hendelse.HendelseInnhold utgattVarselBruker3 = genererRandomHendelse(hendelsedatoBruker3).getHendelse(); + Hendelse.HendelseInnhold utgattVarselBruker1 = genererRandomHendelse(Kategori.UTGATT_VARSEL, hendelsedatoBruker1).getHendelse(); + Hendelse.HendelseInnhold utgattVarselBruker2 = genererRandomHendelse(Kategori.UTGATT_VARSEL, hendelsedatoBruker2).getHendelse(); + Hendelse.HendelseInnhold utgattVarselBruker3 = genererRandomHendelse(Kategori.UTGATT_VARSEL, hendelsedatoBruker3).getHendelse(); OppfolgingsBruker bruker1 = new OppfolgingsBruker() .setFnr(randomFnr().toString()) @@ -3533,9 +3534,9 @@ void skal_kunne_sortere_pa_hendelsesdato_pa_utgatt_varsel() { ZonedDateTime hendelsedatoBruker2 = ZonedDateTime.of(2024, 1, 1, 12, 0, 0, 0, ZoneId.systemDefault()); ZonedDateTime hendelsedatoBruker3 = ZonedDateTime.of(2020, 1, 1, 12, 0, 0, 0, ZoneId.systemDefault()); - Hendelse.HendelseInnhold utgattVarselBruker1 = genererRandomHendelse(hendelsedatoBruker1).getHendelse(); - Hendelse.HendelseInnhold utgattVarselBruker2 = genererRandomHendelse(hendelsedatoBruker2).getHendelse(); - Hendelse.HendelseInnhold utgattVarselBruker3 = genererRandomHendelse(hendelsedatoBruker3).getHendelse(); + Hendelse.HendelseInnhold utgattVarselBruker1 = genererRandomHendelse(Kategori.UTGATT_VARSEL, hendelsedatoBruker1).getHendelse(); + Hendelse.HendelseInnhold utgattVarselBruker2 = genererRandomHendelse(Kategori.UTGATT_VARSEL, hendelsedatoBruker2).getHendelse(); + Hendelse.HendelseInnhold utgattVarselBruker3 = genererRandomHendelse(Kategori.UTGATT_VARSEL, hendelsedatoBruker3).getHendelse(); OppfolgingsBruker bruker1 = new OppfolgingsBruker() .setFnr(randomFnr().toString()) @@ -5084,7 +5085,7 @@ public void skal_kunne_sortere_pa_alle_gyldige_sorteringsverdier() { @Test @SneakyThrows void skal_indeksere_hendelse_data_riktig() { - Hendelse hendelse = genererRandomHendelse(); + Hendelse hendelse = genererRandomHendelse(Kategori.UTGATT_VARSEL); OppfolgingsBruker oppfolgingsBruker = new OppfolgingsBruker() .setFnr("11111199999") .setAktoer_id(randomAktorId().toString()) From 7ff7152dfe529a95044112dd4176a6bebd62bacf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingrid=20Foss=C3=A5?= Date: Wed, 18 Dec 2024 13:30:40 +0100 Subject: [PATCH 2/9] =?UTF-8?q?Legg=20til=20testar=20som=20illustrerer=20p?= =?UTF-8?q?roblem=20med=20=C3=A5=20ta=20i=20mot=20nye=20kategoriar=20p?= =?UTF-8?q?=C3=A5=20filterhendelse?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hendelsesfilter/HendelseModell.kt | 3 +- .../HendelseIntegrationTest.kt | 140 ++++++++++++++++++ .../hendelsesfilter/HendelseRepositoryTest.kt | 44 +++++- .../OpensearchServiceIntegrationTest.java | 2 +- 4 files changed, 183 insertions(+), 6 deletions(-) diff --git a/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseModell.kt b/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseModell.kt index 945be4e83..1586ba6c3 100644 --- a/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseModell.kt +++ b/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseModell.kt @@ -41,7 +41,8 @@ data class HendelseRecordValue @JsonCreator constructor( } enum class Kategori { - UTGATT_VARSEL + UTGATT_VARSEL, + UDELT_SAMTALEREFERAT } enum class Operasjon { diff --git a/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseIntegrationTest.kt b/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseIntegrationTest.kt index 7a4396d6f..4bc6b7e90 100644 --- a/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseIntegrationTest.kt +++ b/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseIntegrationTest.kt @@ -314,4 +314,144 @@ class HendelseIntegrationTest( assertThat(brukerFraRespons.utgattVarsel.detaljer).isEqualTo(forventetHendelseInnhold.detaljer) assertThat(brukerFraRespons.utgattVarsel.lenke).isEqualTo(forventetHendelseInnhold.lenke) } + + @Test + fun `skal ikke sette inn data om utgått varsel på bruker i OpenSearch når vi får START-melding på andre typer enn Utgått varsel`() { + // Given + val brukerAktorId = randomAktorId() + val brukerFnr = randomFnr() + val brukerNorskIdent = NorskIdent.of(brukerFnr.get()) + val brukerOppfolgingsEnhet = randomNavKontor() + testDataClient.lagreBrukerUnderOppfolging(brukerAktorId, brukerFnr, brukerOppfolgingsEnhet.value, null) + opensearchIndexer.indekser(brukerAktorId) + + // When + val hendelseId = UUID.randomUUID().toString() + val hendelseRecordValue = + genererRandomHendelseRecordValue(operasjon = Operasjon.START, personID = brukerNorskIdent, kategori = Kategori.UDELT_SAMTALEREFERAT) + val hendelseConsumerRecord = + genererRandomHendelseConsumerRecord(recordValue = hendelseRecordValue, key = hendelseId) + hendelseService.behandleKafkaRecord(hendelseConsumerRecord) + + // Then + pollOpensearchUntil { opensearchTestClient.countDocuments() == 1 } + val brukerFraRespons: Bruker = opensearchService.hentBrukere( + brukerOppfolgingsEnhet.value, + Optional.empty(), + "asc", + Sorteringsfelt.IKKE_SATT.sorteringsverdi, + Filtervalg().setFerdigfilterListe(emptyList()), + null, + null + ).brukere.first() + + assertThat(brukerFraRespons).isNotNull() + assertThat(brukerFraRespons.utgattVarsel).isNull() + } + + + @Test + fun `ny hendelse som ikke er Utgått varsel, men har tidligere dato, skal ikke overskrive utgått varsel i OpenSearch for bruker`() { + // Given + val brukerAktorId = randomAktorId() + val brukerFnr = randomFnr() + val brukerNorskIdent = NorskIdent.of(brukerFnr.get()) + val brukerOppfolgingsEnhet = randomNavKontor() + testDataClient.lagreBrukerUnderOppfolging(brukerAktorId, brukerFnr, brukerOppfolgingsEnhet.value, null) + opensearchIndexer.indekser(brukerAktorId) + val yngreHendelseId = "1d5cb509-1fa3-4b92-a552-f91c00c3aba7" + val yngreHendelseRecordValue = + genererRandomHendelseRecordValue(operasjon = Operasjon.START, personID = brukerNorskIdent, kategori = Kategori.UTGATT_VARSEL) + val yngreHendelseConsumerRecord = + genererRandomHendelseConsumerRecord(recordValue = yngreHendelseRecordValue, key = yngreHendelseId) + hendelseService.behandleKafkaRecord(yngreHendelseConsumerRecord) + + // When + val eldreHendelseId = "56d9b9d1-0920-4a2f-bd62-0953d563ce2a" + val eldreHendelseRecordValue = + genererRandomHendelseRecordValue( + operasjon = Operasjon.START, + personID = brukerNorskIdent, + hendelseDato = yngreHendelseRecordValue.hendelse.dato.minusDays(10), + kategori = Kategori.UDELT_SAMTALEREFERAT + ) + val eldreHendelseConsumerRecord = + genererRandomHendelseConsumerRecord(recordValue = eldreHendelseRecordValue, key = eldreHendelseId) + hendelseService.behandleKafkaRecord(eldreHendelseConsumerRecord) + + // Then + pollOpensearchUntil { opensearchTestClient.countDocuments() == 1 } + val brukerFraRespons: Bruker = opensearchService.hentBrukere( + brukerOppfolgingsEnhet.value, + Optional.empty(), + "asc", + Sorteringsfelt.IKKE_SATT.sorteringsverdi, + Filtervalg().setFerdigfilterListe(emptyList()), + null, + null + ).brukere.first() + assertThat(brukerFraRespons).isNotNull + assertThat(brukerFraRespons.utgattVarsel).isNotNull + val forventetHendelseInnhold = toHendelse(yngreHendelseRecordValue, yngreHendelseId).hendelse + assertThat(brukerFraRespons.utgattVarsel.beskrivelse).isEqualTo(forventetHendelseInnhold.beskrivelse) + assertThat(brukerFraRespons.utgattVarsel.detaljer).isEqualTo(forventetHendelseInnhold.detaljer) + assertThat(brukerFraRespons.utgattVarsel.lenke).isEqualTo(forventetHendelseInnhold.lenke) + } + + @Test + fun `ny hendelse som blir ny eldste Utgått varsel-hendelse skal skrives til OpenSearch for bruker, også når det finnes eldre hendelser med andre kategorier i databasen`() { + // Given + val brukerAktorId = randomAktorId() + val brukerFnr = randomFnr() + val brukerNorskIdent = NorskIdent.of(brukerFnr.get()) + val brukerOppfolgingsEnhet = randomNavKontor() + testDataClient.lagreBrukerUnderOppfolging(brukerAktorId, brukerFnr, brukerOppfolgingsEnhet.value, null) + opensearchIndexer.indekser(brukerAktorId) + val yngreHendelseId = "1d5cb509-1fa3-4b92-a552-f91c00c3aba7" + val yngreHendelseRecordValue = + genererRandomHendelseRecordValue(operasjon = Operasjon.START, personID = brukerNorskIdent, kategori = Kategori.UTGATT_VARSEL, hendelseBeskrivelse = "Yngste hendelse, kategori Utgått varsel") + val yngreHendelseConsumerRecord = + genererRandomHendelseConsumerRecord(recordValue = yngreHendelseRecordValue, key = yngreHendelseId) + hendelseService.behandleKafkaRecord(yngreHendelseConsumerRecord) + + val eldsteAvAlleKategorierHendelseId = "7d5cb509-1fa3-4b92-a552-f91c00c3aba7" + val eldsteAvAlleKategorierHendelseRecordValue = + genererRandomHendelseRecordValue(operasjon = Operasjon.START, personID = brukerNorskIdent, kategori = Kategori.UDELT_SAMTALEREFERAT, hendelseBeskrivelse = "Eldste hendelse, kategori Udelt samtalereferat") + val eldsteHendelseConsumerRecord = + genererRandomHendelseConsumerRecord(recordValue = eldsteAvAlleKategorierHendelseRecordValue, key = eldsteAvAlleKategorierHendelseId) + hendelseService.behandleKafkaRecord(eldsteHendelseConsumerRecord) + + // When + val eldsteUtgattVarselHendelseId = "56d9b9d1-0920-4a2f-bd62-0953d563ce2a" + val eldsteUtgattVarselHendelseRecordValue = + genererRandomHendelseRecordValue( + operasjon = Operasjon.START, + personID = brukerNorskIdent, + hendelseDato = yngreHendelseRecordValue.hendelse.dato.minusDays(10), + kategori = Kategori.UTGATT_VARSEL, + hendelseBeskrivelse = "Midterste hendelse, kategori Utgått varsel" + ) + val eldsteUtgattVarselHendelseConsumerRecord = + genererRandomHendelseConsumerRecord(recordValue = eldsteUtgattVarselHendelseRecordValue, key = eldsteUtgattVarselHendelseId) + hendelseService.behandleKafkaRecord(eldsteUtgattVarselHendelseConsumerRecord) + + // Then + pollOpensearchUntil { opensearchTestClient.countDocuments() == 1 } + val brukerFraRespons: Bruker = opensearchService.hentBrukere( + brukerOppfolgingsEnhet.value, + Optional.empty(), + "asc", + Sorteringsfelt.IKKE_SATT.sorteringsverdi, + Filtervalg().setFerdigfilterListe(emptyList()), + null, + null + ).brukere.first() + + assertThat(brukerFraRespons).isNotNull + assertThat(brukerFraRespons.utgattVarsel).isNotNull + val forventetHendelseInnhold = toHendelse(eldsteUtgattVarselHendelseRecordValue, eldsteUtgattVarselHendelseId).hendelse + assertThat(brukerFraRespons.utgattVarsel.beskrivelse).isEqualTo(forventetHendelseInnhold.beskrivelse) + assertThat(brukerFraRespons.utgattVarsel.detaljer).isEqualTo(forventetHendelseInnhold.detaljer) + assertThat(brukerFraRespons.utgattVarsel.lenke).isEqualTo(forventetHendelseInnhold.lenke) + } } diff --git a/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepositoryTest.kt b/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepositoryTest.kt index 8e5d87914..b98d08ac6 100644 --- a/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepositoryTest.kt +++ b/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepositoryTest.kt @@ -93,13 +93,29 @@ class HendelseRepositoryTest( } @Test - fun `skal hente den eldste Hendelse når flere hendelser eksisterer for person`() { + fun `skal hente den eldste Hendelse når det bare er en Utgått varsel-hendelse på person`() { // Given val personIdent = randomNorskIdent() val naa = ZonedDateTime.now().truncatedTo(ChronoUnit.MICROS) - val hendelseEldste = genererRandomHendelse(personIdent = personIdent, hendelseDato = naa.minusDays(2)) - val hendelseNestEldste = genererRandomHendelse(personIdent = personIdent, hendelseDato = naa.minusDays(1)) - val hendelseNyeste = genererRandomHendelse(personIdent = personIdent, hendelseDato = naa) + val hendelse = genererRandomHendelse(personIdent = personIdent, kategori = Kategori.UTGATT_VARSEL) + hendelseRepository.insert(hendelse) + + // When + val resultatAvHenting = hendelseRepository.getEldste(personIdent) + + // Then + val forventetHendelse = hendelse.copy() + assertThat(resultatAvHenting).isEqualTo(forventetHendelse) + } + + @Test + fun `skal hente den eldste Hendelse når flere hendelser med Utgått varsel-kategori eksisterer for person`() { + // Given + val personIdent = randomNorskIdent() + val naa = ZonedDateTime.now().truncatedTo(ChronoUnit.MICROS) + val hendelseEldste = genererRandomHendelse(personIdent = personIdent, hendelseDato = naa.minusDays(2), kategori = Kategori.UTGATT_VARSEL) + val hendelseNestEldste = genererRandomHendelse(personIdent = personIdent, hendelseDato = naa.minusDays(1), kategori = Kategori.UTGATT_VARSEL) + val hendelseNyeste = genererRandomHendelse(personIdent = personIdent, hendelseDato = naa, kategori = Kategori.UTGATT_VARSEL) hendelseRepository.insert(hendelseNyeste) hendelseRepository.insert(hendelseNestEldste) hendelseRepository.insert(hendelseEldste) @@ -112,6 +128,26 @@ class HendelseRepositoryTest( assertThat(resultatAvHenting).isEqualTo(forventetHendelse) } + @Test + fun `skal hente den eldste Utgått varsel Hendelse når flere hendelser med ulike kategorier eksisterer for person`() { + // Given + val personIdent = randomNorskIdent() + val naa = ZonedDateTime.now().truncatedTo(ChronoUnit.MICROS) + val hendelseEldste = genererRandomHendelse(personIdent = personIdent, hendelseDato = naa.minusDays(2), kategori = Kategori.UDELT_SAMTALEREFERAT) + val hendelseNestEldste = genererRandomHendelse(personIdent = personIdent, hendelseDato = naa.minusDays(1), kategori = Kategori.UTGATT_VARSEL) + val hendelseNyeste = genererRandomHendelse(personIdent = personIdent, hendelseDato = naa, kategori = Kategori.UTGATT_VARSEL) + hendelseRepository.insert(hendelseNyeste) + hendelseRepository.insert(hendelseNestEldste) + hendelseRepository.insert(hendelseEldste) + + // When + val resultatAvHenting = hendelseRepository.getEldste(personIdent) + + // Then + val forventetHendelse = hendelseNestEldste.copy() + assertThat(resultatAvHenting).isEqualTo(forventetHendelse) + } + @Test fun `skal kaste IngenHendelseForPersonException ved henting av eldste når ingen hendelser eksisterer for person`() { // Given diff --git a/src/test/java/no/nav/pto/veilarbportefolje/opensearch/OpensearchServiceIntegrationTest.java b/src/test/java/no/nav/pto/veilarbportefolje/opensearch/OpensearchServiceIntegrationTest.java index 26e151d88..a9b7a80c1 100644 --- a/src/test/java/no/nav/pto/veilarbportefolje/opensearch/OpensearchServiceIntegrationTest.java +++ b/src/test/java/no/nav/pto/veilarbportefolje/opensearch/OpensearchServiceIntegrationTest.java @@ -5084,7 +5084,7 @@ public void skal_kunne_sortere_pa_alle_gyldige_sorteringsverdier() { @Test @SneakyThrows - void skal_indeksere_hendelse_data_riktig() { + void skal_indeksere_hendelse_data_riktig_for_utgatt_varsel() { Hendelse hendelse = genererRandomHendelse(Kategori.UTGATT_VARSEL); OppfolgingsBruker oppfolgingsBruker = new OppfolgingsBruker() .setFnr("11111199999") From ec9c3923d203df3e7bde54daec5aedc428ea8da0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingrid=20Foss=C3=A5?= Date: Wed, 18 Dec 2024 14:01:55 +0100 Subject: [PATCH 3/9] =?UTF-8?q?Skriv=20om=20hentEldste=20slik=20at=20den?= =?UTF-8?q?=20henter=20eldste=20Utg=C3=A5tt=20varsel=20ikkje=20eldste=20ua?= =?UTF-8?q?vhengig=20av=20kategori?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hendelsesfilter/HendelseRepository.kt | 8 ++++---- .../hendelsesfilter/HendelseService.kt | 20 +++++++++---------- .../postgres/PostgresOpensearchMapper.java | 2 +- .../hendelsesfilter/HendelseRepositoryTest.kt | 14 ++++++------- 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepository.kt b/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepository.kt index 89e7241e9..dbed31121 100644 --- a/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepository.kt +++ b/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepository.kt @@ -38,20 +38,20 @@ class HendelseRepository( } /** - * Henter den eldste hendelsen: + * Henter den eldste hendelsen av typen UTGATT_VARSEL: * * * dersom minst en hendelse eksisterer for [personIdent] returneres den eldste av disse * * dersom ingen hendelser eksisterer for [personIdent] kastes en [IngenHendelseForPersonException] */ - fun getEldste(personIdent: NorskIdent): Hendelse { + fun getEldsteUtgattVarsel(personIdent: NorskIdent): Hendelse { // language=postgresql val sql = """ - SELECT * FROM ${HENDELSE.TABLE_NAME} WHERE ${HENDELSE.PERSON_IDENT} = ? + SELECT * FROM ${HENDELSE.TABLE_NAME} WHERE ${HENDELSE.PERSON_IDENT} = ? AND ${HENDELSE.KATEGORI} = ? ORDER BY ${HENDELSE.HENDELSE_DATO} LIMIT 1 """.trimIndent() val resultat = try { - jdbcTemplate.queryForObject(sql, ::toHendelse, personIdent.get()) + jdbcTemplate.queryForObject(sql, ::toHendelse, personIdent.get(), Kategori.UTGATT_VARSEL.toString()) } catch (ex: EmptyResultDataAccessException) { throw IngenHendelseForPersonException(cause = ex) } diff --git a/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseService.kt b/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseService.kt index 761b32139..cab17e928 100644 --- a/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseService.kt +++ b/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseService.kt @@ -79,9 +79,9 @@ class HendelseService( return } - val eldsteHendelse = hendelseRepository.getEldste(hendelse.personIdent) + val eldsteUtgattVarselHendelse = hendelseRepository.getEldsteUtgattVarsel(hendelse.personIdent) - if (eldsteHendelse.id == hendelse.id) { + if (eldsteUtgattVarselHendelse.id == hendelse.id) { oppdaterUgattVarselForBrukerIOpenSearch(hendelse) logger.info("Hendelse med id ${hendelse.id} ble lagret i DB og OpenSearch ble oppdatert med ny eldste utgåtte varsel for person.") @@ -106,8 +106,8 @@ class HendelseService( return } - val eldsteHendelse = hendelseRepository.getEldste(hendelse.personIdent) - if (eldsteHendelse.id == hendelse.id) { + val eldsteUtgattVarselHendelse = hendelseRepository.getEldsteUtgattVarsel(hendelse.personIdent) + if (eldsteUtgattVarselHendelse.id == hendelse.id) { oppdaterUgattVarselForBrukerIOpenSearch(hendelse) logger.info("Hendelse med id ${hendelse.id} ble oppdatert i DB og OpenSearch ble oppdatert med ny eldste utgåtte varsel for person.") } else { @@ -131,23 +131,23 @@ class HendelseService( return } - val resultatAvGetEldsteHendelse = try { - hendelseRepository.getEldste(hendelse.personIdent) + val resultatAvGetEldsteUtgattVarselHendelse = try { + hendelseRepository.getEldsteUtgattVarsel(hendelse.personIdent) } catch (ex: IngenHendelseForPersonException) { ex } - if (resultatAvGetEldsteHendelse is IngenHendelseForPersonException) { + if (resultatAvGetEldsteUtgattVarselHendelse is IngenHendelseForPersonException) { // All good - det var ingen flere hendelser for personen etter at vi slettet den som kom inn som argument slettUgattVarselForBrukerIOpenSearch(hendelse) logger.info("Hendelse med id ${hendelse.id} ble slettet i DB og utgått varsel ble fjernet for person i OpenSearch siden personen ikke hadde andre hendelser.") return } - if (resultatAvGetEldsteHendelse is Hendelse) { - oppdaterUgattVarselForBrukerIOpenSearch(resultatAvGetEldsteHendelse) + if (resultatAvGetEldsteUtgattVarselHendelse is Hendelse) { + oppdaterUgattVarselForBrukerIOpenSearch(resultatAvGetEldsteUtgattVarselHendelse) - logger.info("Hendelse med id ${hendelse.id} ble slettet i DB og OpenSearch ble oppdatert med ny eldste utgåtte varsel for person, med id ${resultatAvGetEldsteHendelse.id}") + logger.info("Hendelse med id ${hendelse.id} ble slettet i DB og OpenSearch ble oppdatert med ny eldste utgåtte varsel for person, med id ${resultatAvGetEldsteUtgattVarselHendelse.id}") } } diff --git a/src/main/java/no/nav/pto/veilarbportefolje/postgres/PostgresOpensearchMapper.java b/src/main/java/no/nav/pto/veilarbportefolje/postgres/PostgresOpensearchMapper.java index 817cb56f2..2154f7cd6 100644 --- a/src/main/java/no/nav/pto/veilarbportefolje/postgres/PostgresOpensearchMapper.java +++ b/src/main/java/no/nav/pto/veilarbportefolje/postgres/PostgresOpensearchMapper.java @@ -249,7 +249,7 @@ public void flettInnSiste14aVedtak(List brukere) { public void flettInnEldsteUtgattVarsel(List brukere) { brukere.forEach(bruker -> { try { - Hendelse eldsteHendelsePaPerson = hendelseRepository.getEldste(NorskIdent.of(bruker.getFnr())); + Hendelse eldsteHendelsePaPerson = hendelseRepository.getEldsteUtgattVarsel(NorskIdent.of(bruker.getFnr())); bruker.setUtgatt_varsel(eldsteHendelsePaPerson.getHendelse()); } catch (IngenHendelseForPersonException ex) { log.info("Fant ingen hendelse/utgått varsel for person, så ingen data å flette inn."); diff --git a/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepositoryTest.kt b/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepositoryTest.kt index b98d08ac6..d02acb5c9 100644 --- a/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepositoryTest.kt +++ b/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepositoryTest.kt @@ -93,7 +93,7 @@ class HendelseRepositoryTest( } @Test - fun `skal hente den eldste Hendelse når det bare er en Utgått varsel-hendelse på person`() { + fun `skal hente eldste Hendelse med utgått varsel-kategori når det bare er en Utgått varsel-hendelse på person`() { // Given val personIdent = randomNorskIdent() val naa = ZonedDateTime.now().truncatedTo(ChronoUnit.MICROS) @@ -101,7 +101,7 @@ class HendelseRepositoryTest( hendelseRepository.insert(hendelse) // When - val resultatAvHenting = hendelseRepository.getEldste(personIdent) + val resultatAvHenting = hendelseRepository.getEldsteUtgattVarsel(personIdent) // Then val forventetHendelse = hendelse.copy() @@ -109,7 +109,7 @@ class HendelseRepositoryTest( } @Test - fun `skal hente den eldste Hendelse når flere hendelser med Utgått varsel-kategori eksisterer for person`() { + fun `skal hente eldste Hendelse med Utgått varsel-kategori når det eksisterer flere Utgått varsel-hendelser på person`() { // Given val personIdent = randomNorskIdent() val naa = ZonedDateTime.now().truncatedTo(ChronoUnit.MICROS) @@ -121,7 +121,7 @@ class HendelseRepositoryTest( hendelseRepository.insert(hendelseEldste) // When - val resultatAvHenting = hendelseRepository.getEldste(personIdent) + val resultatAvHenting = hendelseRepository.getEldsteUtgattVarsel(personIdent) // Then val forventetHendelse = hendelseEldste.copy() @@ -129,7 +129,7 @@ class HendelseRepositoryTest( } @Test - fun `skal hente den eldste Utgått varsel Hendelse når flere hendelser med ulike kategorier eksisterer for person`() { + fun `skal hente eldste Hendelse med utgått varsel-kategori når det eksisterer flere hendelser med ulike kategorier for person`() { // Given val personIdent = randomNorskIdent() val naa = ZonedDateTime.now().truncatedTo(ChronoUnit.MICROS) @@ -141,7 +141,7 @@ class HendelseRepositoryTest( hendelseRepository.insert(hendelseEldste) // When - val resultatAvHenting = hendelseRepository.getEldste(personIdent) + val resultatAvHenting = hendelseRepository.getEldsteUtgattVarsel(personIdent) // Then val forventetHendelse = hendelseNestEldste.copy() @@ -155,7 +155,7 @@ class HendelseRepositoryTest( // When val resultatAvHenting = try { - hendelseRepository.getEldste(personIdent) + hendelseRepository.getEldsteUtgattVarsel(personIdent) } catch (ex: IngenHendelseForPersonException) { ex } From 6d5b77586171353a8412bfa1e1dd083304ae43e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingrid=20Foss=C3=A5?= Date: Wed, 18 Dec 2024 15:09:56 +0100 Subject: [PATCH 4/9] =?UTF-8?q?Ikkje=20sjekk=20eldsteUtgattVarsel=20for=20?= =?UTF-8?q?andre=20hendelseskategoriar=20enn=20Utg=C3=A5tt=20varsel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hendelsesfilter/HendelseService.kt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseService.kt b/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseService.kt index cab17e928..fb56ae67c 100644 --- a/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseService.kt +++ b/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseService.kt @@ -79,6 +79,12 @@ class HendelseService( return } + /* Vi treng ikkje sjekke eldsteUtgattVarselHendelse om ikkje kategori var UTGATT_VARSEL */ + if (hendelse.kategori != Kategori.UTGATT_VARSEL) { + logger.info("Hendelse med id ${hendelse.id} ble lagret i DB") + return + } + val eldsteUtgattVarselHendelse = hendelseRepository.getEldsteUtgattVarsel(hendelse.personIdent) if (eldsteUtgattVarselHendelse.id == hendelse.id) { @@ -106,6 +112,12 @@ class HendelseService( return } + /* Vi treng ikkje sjekke eldsteUtgattVarselHendelse om ikkje kategori var UTGATT_VARSEL */ + if (hendelse.kategori != Kategori.UTGATT_VARSEL) { + logger.info("Hendelse med id ${hendelse.id} ble oppdatert i DB") + return + } + val eldsteUtgattVarselHendelse = hendelseRepository.getEldsteUtgattVarsel(hendelse.personIdent) if (eldsteUtgattVarselHendelse.id == hendelse.id) { oppdaterUgattVarselForBrukerIOpenSearch(hendelse) @@ -131,6 +143,12 @@ class HendelseService( return } + /* Vi treng ikkje sjekke eldsteUtgattVarselHendelse om ikkje kategori var UTGATT_VARSEL */ + if (hendelse.kategori != Kategori.UTGATT_VARSEL) { + logger.info("Hendelse med id ${hendelse.id} ble slettet i DB.") + return + } + val resultatAvGetEldsteUtgattVarselHendelse = try { hendelseRepository.getEldsteUtgattVarsel(hendelse.personIdent) } catch (ex: IngenHendelseForPersonException) { From 4d4788a8afa8d68eaf00f1da5001c1ca4e599c5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingrid=20Foss=C3=A5?= Date: Wed, 18 Dec 2024 15:23:39 +0100 Subject: [PATCH 5/9] Tekstjustering etter eigen-review --- .../pto/veilarbportefolje/hendelsesfilter/HendelseRepository.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepository.kt b/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepository.kt index dbed31121..4cdaefd80 100644 --- a/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepository.kt +++ b/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepository.kt @@ -38,7 +38,7 @@ class HendelseRepository( } /** - * Henter den eldste hendelsen av typen UTGATT_VARSEL: + * Henter den eldste hendelsen med kategori UTGATT_VARSEL: * * * dersom minst en hendelse eksisterer for [personIdent] returneres den eldste av disse * * dersom ingen hendelser eksisterer for [personIdent] kastes en [IngenHendelseForPersonException] From 559fa82283731d6d4719e53a07be5f2f922f32ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingrid=20Foss=C3=A5?= Date: Thu, 19 Dec 2024 10:53:43 +0100 Subject: [PATCH 6/9] Gjort det tydelegare at vi handterer ulike hendelseskategoriar ulikt og gjort hentEldste meir generell/gjenbrukbar Co-authored-by: Sondre Larsen Ovrid --- .../hendelsesfilter/HendelseRepository.kt | 6 +- .../hendelsesfilter/HendelseService.kt | 118 ++++++++---------- .../postgres/PostgresOpensearchMapper.java | 3 +- .../hendelsesfilter/HendelseRepositoryTest.kt | 8 +- 4 files changed, 64 insertions(+), 71 deletions(-) diff --git a/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepository.kt b/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepository.kt index 4cdaefd80..644b4b3e1 100644 --- a/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepository.kt +++ b/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepository.kt @@ -38,12 +38,12 @@ class HendelseRepository( } /** - * Henter den eldste hendelsen med kategori UTGATT_VARSEL: + * Henter den eldste hendelsen med en bestemt kategori: * * * dersom minst en hendelse eksisterer for [personIdent] returneres den eldste av disse * * dersom ingen hendelser eksisterer for [personIdent] kastes en [IngenHendelseForPersonException] */ - fun getEldsteUtgattVarsel(personIdent: NorskIdent): Hendelse { + fun getEldste(personIdent: NorskIdent, kategori: Kategori): Hendelse { // language=postgresql val sql = """ SELECT * FROM ${HENDELSE.TABLE_NAME} WHERE ${HENDELSE.PERSON_IDENT} = ? AND ${HENDELSE.KATEGORI} = ? @@ -51,7 +51,7 @@ class HendelseRepository( """.trimIndent() val resultat = try { - jdbcTemplate.queryForObject(sql, ::toHendelse, personIdent.get(), Kategori.UTGATT_VARSEL.toString()) + jdbcTemplate.queryForObject(sql, ::toHendelse, personIdent.get(), kategori.name) } catch (ex: EmptyResultDataAccessException) { throw IngenHendelseForPersonException(cause = ex) } diff --git a/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseService.kt b/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseService.kt index fb56ae67c..883491a0c 100644 --- a/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseService.kt +++ b/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseService.kt @@ -79,20 +79,23 @@ class HendelseService( return } - /* Vi treng ikkje sjekke eldsteUtgattVarselHendelse om ikkje kategori var UTGATT_VARSEL */ - if (hendelse.kategori != Kategori.UTGATT_VARSEL) { - logger.info("Hendelse med id ${hendelse.id} ble lagret i DB") - return - } + when (hendelse.kategori) { + Kategori.UTGATT_VARSEL -> { + val eldsteUtgattVarselHendelse = + hendelseRepository.getEldste(hendelse.personIdent, Kategori.UTGATT_VARSEL) - val eldsteUtgattVarselHendelse = hendelseRepository.getEldsteUtgattVarsel(hendelse.personIdent) + if (eldsteUtgattVarselHendelse.id == hendelse.id) { + oppdaterUtgattVarselForBrukerIOpenSearch(hendelse) - if (eldsteUtgattVarselHendelse.id == hendelse.id) { - oppdaterUgattVarselForBrukerIOpenSearch(hendelse) + logger.info("Hendelse med id ${hendelse.id} og kategori ${Kategori.UTGATT_VARSEL} ble lagret i DB og OpenSearch ble oppdatert med ny eldste utgåtte varsel for person.") + } else { + logger.info("Hendelse med id ${hendelse.id} og kategori ${Kategori.UTGATT_VARSEL} ble lagret i DB") + } + } - logger.info("Hendelse med id ${hendelse.id} ble lagret i DB og OpenSearch ble oppdatert med ny eldste utgåtte varsel for person.") - } else { - logger.info("Hendelse med id ${hendelse.id} ble lagret i DB") + Kategori.UDELT_SAMTALEREFERAT -> { + logger.info("Hendelse med id ${hendelse.id} og kategori ${hendelse.kategori} ble lagret i DB") + } } } @@ -112,18 +115,20 @@ class HendelseService( return } - /* Vi treng ikkje sjekke eldsteUtgattVarselHendelse om ikkje kategori var UTGATT_VARSEL */ - if (hendelse.kategori != Kategori.UTGATT_VARSEL) { - logger.info("Hendelse med id ${hendelse.id} ble oppdatert i DB") - return - } + when (hendelse.kategori) { + Kategori.UTGATT_VARSEL -> { + val eldsteUtgattVarselHendelse = hendelseRepository.getEldste(hendelse.personIdent, Kategori.UTGATT_VARSEL) - val eldsteUtgattVarselHendelse = hendelseRepository.getEldsteUtgattVarsel(hendelse.personIdent) - if (eldsteUtgattVarselHendelse.id == hendelse.id) { - oppdaterUgattVarselForBrukerIOpenSearch(hendelse) - logger.info("Hendelse med id ${hendelse.id} ble oppdatert i DB og OpenSearch ble oppdatert med ny eldste utgåtte varsel for person.") - } else { - logger.info("Hendelse med id ${hendelse.id} ble oppdatert i DB") + if (eldsteUtgattVarselHendelse.id == hendelse.id) { + oppdaterUtgattVarselForBrukerIOpenSearch(hendelse) + logger.info("Hendelse med id ${hendelse.id} og kategori ${Kategori.UTGATT_VARSEL} ble oppdatert i DB og OpenSearch ble oppdatert med ny eldste utgåtte varsel for person.") + } else { + logger.info("Hendelse med id ${hendelse.id} og kategori ${Kategori.UTGATT_VARSEL} ble oppdatert i DB") + } + } + Kategori.UDELT_SAMTALEREFERAT -> { + logger.info("Hendelse med id ${hendelse.id} og kategori ${hendelse.kategori} ble oppdatert i DB") + } } } @@ -143,55 +148,42 @@ class HendelseService( return } - /* Vi treng ikkje sjekke eldsteUtgattVarselHendelse om ikkje kategori var UTGATT_VARSEL */ - if (hendelse.kategori != Kategori.UTGATT_VARSEL) { - logger.info("Hendelse med id ${hendelse.id} ble slettet i DB.") - return - } + when (hendelse.kategori) { + Kategori.UTGATT_VARSEL -> { + val resultatAvGetEldsteUtgattVarselHendelse = try { + hendelseRepository.getEldste(hendelse.personIdent, Kategori.UTGATT_VARSEL) + } catch (ex: IngenHendelseForPersonException) { + ex + } - val resultatAvGetEldsteUtgattVarselHendelse = try { - hendelseRepository.getEldsteUtgattVarsel(hendelse.personIdent) - } catch (ex: IngenHendelseForPersonException) { - ex - } - - if (resultatAvGetEldsteUtgattVarselHendelse is IngenHendelseForPersonException) { - // All good - det var ingen flere hendelser for personen etter at vi slettet den som kom inn som argument - slettUgattVarselForBrukerIOpenSearch(hendelse) - logger.info("Hendelse med id ${hendelse.id} ble slettet i DB og utgått varsel ble fjernet for person i OpenSearch siden personen ikke hadde andre hendelser.") - return - } + if (resultatAvGetEldsteUtgattVarselHendelse is IngenHendelseForPersonException) { + // All good - det var ingen flere hendelser for personen etter at vi slettet den som kom inn som argument + slettUgattVarselForBrukerIOpenSearch(hendelse) + logger.info("Hendelse med id ${hendelse.id} og kategori ${Kategori.UTGATT_VARSEL} ble slettet i DB og utgått varsel ble fjernet for person i OpenSearch siden personen ikke hadde andre hendelser.") + return + } - if (resultatAvGetEldsteUtgattVarselHendelse is Hendelse) { - oppdaterUgattVarselForBrukerIOpenSearch(resultatAvGetEldsteUtgattVarselHendelse) + if (resultatAvGetEldsteUtgattVarselHendelse is Hendelse) { + oppdaterUtgattVarselForBrukerIOpenSearch(resultatAvGetEldsteUtgattVarselHendelse) - logger.info("Hendelse med id ${hendelse.id} ble slettet i DB og OpenSearch ble oppdatert med ny eldste utgåtte varsel for person, med id ${resultatAvGetEldsteUtgattVarselHendelse.id}") + logger.info("Hendelse med id ${hendelse.id} og kategori ${Kategori.UTGATT_VARSEL} ble slettet i DB og OpenSearch ble oppdatert med ny eldste utgåtte varsel for person, med id ${resultatAvGetEldsteUtgattVarselHendelse.id}") + } + } + Kategori.UDELT_SAMTALEREFERAT -> { + logger.info("Hendelse med id ${hendelse.id} og kategori ${hendelse.kategori} ble slettet i DB.") + } } } - private fun oppdaterUgattVarselForBrukerIOpenSearch(hendelse: Hendelse) { - // 2024-11-29, Sondre - // Egentlig unødvendig if-sjekk så lenge kun Team DAB er på med "utgåtte varsel" - // Men har den med likevel for å tydeliggjøre at det er "utgått varsel"-feltet i OpenSearch - // som oppdateres her. Vi må huske å oppdatere håndtering etterhvert som denne tjenesten - // blir mer generalisert/får flere produsenter - if (Kategori.UTGATT_VARSEL == hendelse.kategori) { - // TODO: 2024-11-29, Sondre - Her konverterer vi bare ukritisk til Fnr, selv om NorskIdent også kan være f.eks. D-nummer - val aktorId = pdlIdentRepository.hentAktorIdForAktivBruker(Fnr.of(hendelse.personIdent.get())) - opensearchIndexerV2.oppdaterUtgattVarsel(hendelse, aktorId) - } + private fun oppdaterUtgattVarselForBrukerIOpenSearch(hendelse: Hendelse) { + // TODO: 2024-11-29, Sondre - Her konverterer vi bare ukritisk til Fnr, selv om NorskIdent også kan være f.eks. D-nummer + val aktorId = pdlIdentRepository.hentAktorIdForAktivBruker(Fnr.of(hendelse.personIdent.get())) + opensearchIndexerV2.oppdaterUtgattVarsel(hendelse, aktorId) } private fun slettUgattVarselForBrukerIOpenSearch(hendelse: Hendelse) { - // 2024-11-29, Sondre - // Egentlig unødvendig if-sjekk så lenge kun Team DAB er på med "utgåtte varsel" - // Men har den med likevel for å tydeliggjøre at det er "utgått varsel"-feltet i OpenSearch - // som oppdateres her. Vi må huske å oppdatere håndtering etterhvert som denne tjenesten - // blir mer generalisert/får flere produsenter - if (Kategori.UTGATT_VARSEL == hendelse.kategori) { - // TODO: 2024-11-29, Sondre - Her konverterer vi bare ukritisk til Fnr, selv om NorskIdent også kan være f.eks. D-nummer - val aktorId = pdlIdentRepository.hentAktorIdForAktivBruker(Fnr.of(hendelse.personIdent.get())) - opensearchIndexerV2.slettUtgattVarsel(aktorId) - } + // TODO: 2024-11-29, Sondre - Her konverterer vi bare ukritisk til Fnr, selv om NorskIdent også kan være f.eks. D-nummer + val aktorId = pdlIdentRepository.hentAktorIdForAktivBruker(Fnr.of(hendelse.personIdent.get())) + opensearchIndexerV2.slettUtgattVarsel(aktorId) } } \ No newline at end of file diff --git a/src/main/java/no/nav/pto/veilarbportefolje/postgres/PostgresOpensearchMapper.java b/src/main/java/no/nav/pto/veilarbportefolje/postgres/PostgresOpensearchMapper.java index 2154f7cd6..d071fcfa4 100644 --- a/src/main/java/no/nav/pto/veilarbportefolje/postgres/PostgresOpensearchMapper.java +++ b/src/main/java/no/nav/pto/veilarbportefolje/postgres/PostgresOpensearchMapper.java @@ -13,6 +13,7 @@ import no.nav.pto.veilarbportefolje.hendelsesfilter.Hendelse; import no.nav.pto.veilarbportefolje.hendelsesfilter.HendelseRepository; import no.nav.pto.veilarbportefolje.hendelsesfilter.IngenHendelseForPersonException; +import no.nav.pto.veilarbportefolje.hendelsesfilter.Kategori; import no.nav.pto.veilarbportefolje.kodeverk.KodeverkService; import no.nav.pto.veilarbportefolje.opensearch.domene.Endring; import no.nav.pto.veilarbportefolje.opensearch.domene.OppfolgingsBruker; @@ -249,7 +250,7 @@ public void flettInnSiste14aVedtak(List brukere) { public void flettInnEldsteUtgattVarsel(List brukere) { brukere.forEach(bruker -> { try { - Hendelse eldsteHendelsePaPerson = hendelseRepository.getEldsteUtgattVarsel(NorskIdent.of(bruker.getFnr())); + Hendelse eldsteHendelsePaPerson = hendelseRepository.getEldste(NorskIdent.of(bruker.getFnr()), Kategori.UTGATT_VARSEL); bruker.setUtgatt_varsel(eldsteHendelsePaPerson.getHendelse()); } catch (IngenHendelseForPersonException ex) { log.info("Fant ingen hendelse/utgått varsel for person, så ingen data å flette inn."); diff --git a/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepositoryTest.kt b/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepositoryTest.kt index d02acb5c9..36b206a58 100644 --- a/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepositoryTest.kt +++ b/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepositoryTest.kt @@ -101,7 +101,7 @@ class HendelseRepositoryTest( hendelseRepository.insert(hendelse) // When - val resultatAvHenting = hendelseRepository.getEldsteUtgattVarsel(personIdent) + val resultatAvHenting = hendelseRepository.getEldste(personIdent, Kategori.UTGATT_VARSEL) // Then val forventetHendelse = hendelse.copy() @@ -121,7 +121,7 @@ class HendelseRepositoryTest( hendelseRepository.insert(hendelseEldste) // When - val resultatAvHenting = hendelseRepository.getEldsteUtgattVarsel(personIdent) + val resultatAvHenting = hendelseRepository.getEldste(personIdent, Kategori.UTGATT_VARSEL) // Then val forventetHendelse = hendelseEldste.copy() @@ -141,7 +141,7 @@ class HendelseRepositoryTest( hendelseRepository.insert(hendelseEldste) // When - val resultatAvHenting = hendelseRepository.getEldsteUtgattVarsel(personIdent) + val resultatAvHenting = hendelseRepository.getEldste(personIdent, Kategori.UTGATT_VARSEL) // Then val forventetHendelse = hendelseNestEldste.copy() @@ -155,7 +155,7 @@ class HendelseRepositoryTest( // When val resultatAvHenting = try { - hendelseRepository.getEldsteUtgattVarsel(personIdent) + hendelseRepository.getEldste(personIdent, Kategori.UTGATT_VARSEL) } catch (ex: IngenHendelseForPersonException) { ex } From f0d810f40f0ad8f9bfd4eddc79a6c109f690ac01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingrid=20Foss=C3=A5?= Date: Thu, 19 Dec 2024 10:59:48 +0100 Subject: [PATCH 7/9] =?UTF-8?q?Legg=20til=20indeks=20p=C3=A5=20filterhende?= =?UTF-8?q?lse-kategori=20i=20DB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../db/postgres/V1_93__filterhendelser_kategori_index.sql | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/main/resources/db/postgres/V1_93__filterhendelser_kategori_index.sql diff --git a/src/main/resources/db/postgres/V1_93__filterhendelser_kategori_index.sql b/src/main/resources/db/postgres/V1_93__filterhendelser_kategori_index.sql new file mode 100644 index 000000000..080501921 --- /dev/null +++ b/src/main/resources/db/postgres/V1_93__filterhendelser_kategori_index.sql @@ -0,0 +1 @@ +CREATE INDEX IDX_FILTERHENDELSER_HENDELSE_KATEGORI on FILTERHENDELSER (kategori); From f66c8c8cb55da19d4be9b02a852c4b9759b34520 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingrid=20Foss=C3=A5?= Date: Thu, 19 Dec 2024 14:04:45 +0100 Subject: [PATCH 8/9] Test for alle kategoriar i hendelse-repository Co-authored-by: Sondre Larsen Ovrid --- .../hendelsesfilter/HendelseRepositoryTest.kt | 159 ++++++++++++------ 1 file changed, 107 insertions(+), 52 deletions(-) diff --git a/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepositoryTest.kt b/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepositoryTest.kt index 36b206a58..c1b464648 100644 --- a/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepositoryTest.kt +++ b/src/test/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseRepositoryTest.kt @@ -6,6 +6,8 @@ import no.nav.pto.veilarbportefolje.util.TestDataUtils.randomNorskIdent import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.EnumSource import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.context.SpringBootTest import org.springframework.jdbc.core.JdbcTemplate @@ -24,10 +26,11 @@ class HendelseRepositoryTest( jdbcTemplate.update("TRUNCATE TABLE ${HENDELSE.TABLE_NAME}") } - @Test - fun `skal lagre Hendelse når hendelse med ID ikke eksisterer fra før`() { + @ParameterizedTest + @EnumSource(Kategori::class) + fun `skal lagre Hendelse når hendelse med ID ikke eksisterer fra før`(kategori: Kategori) { // Given - val hendelse = genererRandomHendelse() + val hendelse = genererRandomHendelse(kategori = kategori) // When val resultatAvOpprettelse = try { @@ -43,14 +46,17 @@ class HendelseRepositoryTest( assertThat(resultatAvHenting).isNotNull } - @Test - fun `skal kaste HendelseIdEksistererAlleredeException ved opprettelse når hendelse med ID eksisterer fra før`() { + @ParameterizedTest + @EnumSource(Kategori::class) + fun `skal kaste HendelseIdEksistererAlleredeException ved opprettelse når hendelse med ID eksisterer fra før`( + kategori: Kategori + ) { // Given - val opprinneligHendelse = genererRandomHendelse() + val opprinneligHendelse = genererRandomHendelse(kategori = kategori) hendelseRepository.insert(opprinneligHendelse) // When - val nyHendelseMedSammeId = genererRandomHendelse(id = opprinneligHendelse.id) + val nyHendelseMedSammeId = genererRandomHendelse(id = opprinneligHendelse.id, kategori = kategori) val resultatAvOpprettelse = try { hendelseRepository.insert(nyHendelseMedSammeId) } catch (ex: RuntimeException) { @@ -62,10 +68,11 @@ class HendelseRepositoryTest( assertThat(resultatAvOpprettelse).isInstanceOf(HendelseIdEksistererAlleredeException::class.java) } - @Test - fun `skal hente Hendelse når hendelse med ID eksisterer`() { + @ParameterizedTest + @EnumSource(Kategori::class) + fun `skal hente Hendelse når hendelse med ID eksisterer`(kategori: Kategori) { // Given - val hendelse = genererRandomHendelse() + val hendelse = genererRandomHendelse(kategori = kategori) hendelseRepository.insert(hendelse) // When @@ -92,70 +99,94 @@ class HendelseRepositoryTest( assertThat(resultatAvHenting).isInstanceOf(IngenHendelseMedIdException::class.java) } - @Test - fun `skal hente eldste Hendelse med utgått varsel-kategori når det bare er en Utgått varsel-hendelse på person`() { + @ParameterizedTest + @EnumSource(Kategori::class) + fun `skal hente eldste Hendelse når det bare er en hendelse på person`(kategori: Kategori) { // Given val personIdent = randomNorskIdent() - val naa = ZonedDateTime.now().truncatedTo(ChronoUnit.MICROS) - val hendelse = genererRandomHendelse(personIdent = personIdent, kategori = Kategori.UTGATT_VARSEL) - hendelseRepository.insert(hendelse) + val hendelse = genererRandomHendelse(personIdent = personIdent, kategori = kategori) + hendelseRepository.insert(hendelse = hendelse) // When - val resultatAvHenting = hendelseRepository.getEldste(personIdent, Kategori.UTGATT_VARSEL) + val resultatAvHenting = hendelseRepository.getEldste(personIdent = personIdent, kategori = kategori) // Then val forventetHendelse = hendelse.copy() assertThat(resultatAvHenting).isEqualTo(forventetHendelse) } - @Test - fun `skal hente eldste Hendelse med Utgått varsel-kategori når det eksisterer flere Utgått varsel-hendelser på person`() { + @ParameterizedTest + @EnumSource(Kategori::class) + fun `skal hente eldste Hendelse når det eksisterer flere hendelser med en bestemt kategori på person`(kategori: Kategori) { // Given val personIdent = randomNorskIdent() val naa = ZonedDateTime.now().truncatedTo(ChronoUnit.MICROS) - val hendelseEldste = genererRandomHendelse(personIdent = personIdent, hendelseDato = naa.minusDays(2), kategori = Kategori.UTGATT_VARSEL) - val hendelseNestEldste = genererRandomHendelse(personIdent = personIdent, hendelseDato = naa.minusDays(1), kategori = Kategori.UTGATT_VARSEL) - val hendelseNyeste = genererRandomHendelse(personIdent = personIdent, hendelseDato = naa, kategori = Kategori.UTGATT_VARSEL) - hendelseRepository.insert(hendelseNyeste) - hendelseRepository.insert(hendelseNestEldste) - hendelseRepository.insert(hendelseEldste) + val hendelseEldste = + genererRandomHendelse(personIdent = personIdent, hendelseDato = naa.minusDays(2), kategori = kategori) + val hendelseNestEldste = + genererRandomHendelse(personIdent = personIdent, hendelseDato = naa.minusDays(1), kategori = kategori) + val hendelseNyeste = genererRandomHendelse(personIdent = personIdent, hendelseDato = naa, kategori = kategori) + hendelseRepository.insert(hendelse = hendelseNyeste) + hendelseRepository.insert(hendelse = hendelseNestEldste) + hendelseRepository.insert(hendelse = hendelseEldste) // When - val resultatAvHenting = hendelseRepository.getEldste(personIdent, Kategori.UTGATT_VARSEL) + val resultatAvHenting = hendelseRepository.getEldste(personIdent = personIdent, kategori = kategori) // Then val forventetHendelse = hendelseEldste.copy() assertThat(resultatAvHenting).isEqualTo(forventetHendelse) } - @Test - fun `skal hente eldste Hendelse med utgått varsel-kategori når det eksisterer flere hendelser med ulike kategorier for person`() { + @ParameterizedTest + @EnumSource(Kategori::class) + fun `skal hente eldste Hendelse av en bestemt kategori for bruker, selv når det finnes hendelser av andre kategorier som er eldre`(kategori: Kategori) { // Given val personIdent = randomNorskIdent() val naa = ZonedDateTime.now().truncatedTo(ChronoUnit.MICROS) - val hendelseEldste = genererRandomHendelse(personIdent = personIdent, hendelseDato = naa.minusDays(2), kategori = Kategori.UDELT_SAMTALEREFERAT) - val hendelseNestEldste = genererRandomHendelse(personIdent = personIdent, hendelseDato = naa.minusDays(1), kategori = Kategori.UTGATT_VARSEL) - val hendelseNyeste = genererRandomHendelse(personIdent = personIdent, hendelseDato = naa, kategori = Kategori.UTGATT_VARSEL) - hendelseRepository.insert(hendelseNyeste) - hendelseRepository.insert(hendelseNestEldste) - hendelseRepository.insert(hendelseEldste) + val hendelseEldsteAvKategori = + genererRandomHendelse(personIdent = personIdent, hendelseDato = naa.minusDays(1), kategori = kategori) + val hendelseNyesteAvKategori = + genererRandomHendelse(personIdent = personIdent, hendelseDato = naa, kategori = kategori) + hendelseRepository.insert(hendelseNyesteAvKategori) + hendelseRepository.insert(hendelseEldsteAvKategori) + + Kategori.values().filter { it !== kategori }.forEach { + hendelseRepository.insert( + genererRandomHendelse( + personIdent = personIdent, + hendelseDato = naa.minusDays(2), + kategori = it + ) + ) + } // When - val resultatAvHenting = hendelseRepository.getEldste(personIdent, Kategori.UTGATT_VARSEL) + val resultatAvHenting = hendelseRepository.getEldste(personIdent = personIdent, kategori = kategori) // Then - val forventetHendelse = hendelseNestEldste.copy() + val forventetHendelse = hendelseEldsteAvKategori.copy() assertThat(resultatAvHenting).isEqualTo(forventetHendelse) } - @Test - fun `skal kaste IngenHendelseForPersonException ved henting av eldste når ingen hendelser eksisterer for person`() { + @ParameterizedTest + @EnumSource(Kategori::class) + fun `skal kaste IngenHendelseForPersonException ved henting av eldste når ingen hendelser eksisterer for person`(kategori: Kategori) { // Given val personIdent = randomNorskIdent() + Kategori.values().filter { it !== kategori }.forEach { + hendelseRepository.insert( + genererRandomHendelse( + personIdent = personIdent, + kategori = it + ) + ) + } + // When val resultatAvHenting = try { - hendelseRepository.getEldste(personIdent, Kategori.UTGATT_VARSEL) + hendelseRepository.getEldste(personIdent = personIdent, kategori = kategori) } catch (ex: IngenHendelseForPersonException) { ex } @@ -164,15 +195,36 @@ class HendelseRepositoryTest( assertThat(resultatAvHenting).isInstanceOf(IngenHendelseForPersonException::class.java) } - @Test - fun `skal oppdatere hendelse når hendelse med ID eksisterer`() { + @ParameterizedTest + @EnumSource(Kategori::class) + fun `skal kaste IngenHendelseForPersonException ved henting av eldste når ingen hendelser med rett kategori eksisterer for person`(kategori: Kategori) { // Given - val opprinneligHendelse = genererRandomHendelse() + val personIdent = randomNorskIdent() + + // When + val resultatAvHenting = try { + hendelseRepository.getEldste(personIdent = personIdent, kategori = kategori) + } catch (ex: IngenHendelseForPersonException) { + ex + } + + // Then + assertThat(resultatAvHenting).isInstanceOf(IngenHendelseForPersonException::class.java) + } + + @ParameterizedTest + @EnumSource(Kategori::class) + fun `skal oppdatere hendelse når hendelse med ID eksisterer`(kategori: Kategori) { + // Given + val opprinneligHendelse = genererRandomHendelse(kategori = kategori) hendelseRepository.insert(opprinneligHendelse) // When - val hendelseMedSammeIDOgOppdatertData = - genererRandomHendelse(id = opprinneligHendelse.id, personIdent = opprinneligHendelse.personIdent) + val hendelseMedSammeIDOgOppdatertData = opprinneligHendelse.copy( + hendelse = opprinneligHendelse.hendelse.copy( + beskrivelse = "En annen beskrivelse" + ) + ) val resultatAvOppdatering = try { hendelseRepository.update(hendelseMedSammeIDOgOppdatertData) } catch (ex: RuntimeException) { @@ -185,13 +237,14 @@ class HendelseRepositoryTest( assertThat(hendelseMedSammeIDOgOppdatertData).isEqualTo(resultatAvHenting) } - @Test - fun `skal kaste IngenHendelseMedIdException ved oppdatering når hendelse med ID ikke eksisterer`() { + @ParameterizedTest + @EnumSource(Kategori::class) + fun `skal kaste IngenHendelseMedIdException ved oppdatering når hendelse med ID ikke eksisterer`(kategori: Kategori) { // Given val hendelseIdSomIkkeEksisterer = randomUUID() // When - val hendelseMedIdSomIkkeEksisterer = genererRandomHendelse(id = hendelseIdSomIkkeEksisterer) + val hendelseMedIdSomIkkeEksisterer = genererRandomHendelse(id = hendelseIdSomIkkeEksisterer, kategori = kategori) val resultatAvOppdatering = try { hendelseRepository.update(hendelseMedIdSomIkkeEksisterer) } catch (ex: RuntimeException) { @@ -202,10 +255,11 @@ class HendelseRepositoryTest( assertThat(resultatAvOppdatering).isInstanceOf(IngenHendelseMedIdException::class.java) } - @Test - fun `skal slette hendelse når hendelse med ID eksisterer`() { + @ParameterizedTest + @EnumSource(Kategori::class) + fun `skal slette hendelse når hendelse med ID eksisterer`(kategori: Kategori) { // Given - val hendelse = genererRandomHendelse() + val hendelse = genererRandomHendelse(kategori = kategori) hendelseRepository.insert(hendelse) // When @@ -225,10 +279,11 @@ class HendelseRepositoryTest( assertThat(resultatAvHenting).isInstanceOf(IngenHendelseMedIdException::class.java) } - @Test - fun `skal kaste IngenHendelseMedIdException ved sletting når ingen hendelse med ID eksisterer`() { + @ParameterizedTest + @EnumSource(Kategori::class) + fun `skal kaste IngenHendelseMedIdException ved sletting når ingen hendelse med ID eksisterer`(kategori: Kategori) { // Given - val hendelseIdSomIkkeEksisterer = genererRandomHendelse() + val hendelseIdSomIkkeEksisterer = genererRandomHendelse(kategori = kategori) // When val resultatAvSletting = try { From 44800b1643d355134f80db2518968920087b6b89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingrid=20Foss=C3=A5?= Date: Thu, 19 Dec 2024 14:36:09 +0100 Subject: [PATCH 9/9] =?UTF-8?q?Legg=20til=20kategori=20for=20hendelse=20i?= =?UTF-8?q?=20alle=20loggmeldingar=20fr=C3=A5=20HendelseService?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../veilarbportefolje/hendelsesfilter/HendelseService.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseService.kt b/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseService.kt index 883491a0c..75e79b2e2 100644 --- a/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseService.kt +++ b/src/main/java/no/nav/pto/veilarbportefolje/hendelsesfilter/HendelseService.kt @@ -75,7 +75,7 @@ class HendelseService( } if (resultatAvInsertNyHendelse is HendelseIdEksistererAlleredeException) { - logger.info("Hendelse med ID ${hendelse.id} allerede startet. Ignorerer melding.") + logger.info("Hendelse med ID ${hendelse.id} og kategori ${hendelse.kategori} allerede startet. Ignorerer melding.") return } @@ -111,7 +111,7 @@ class HendelseService( // Per no ignorer vi melding, då vi forventar å alltid få ei "START"-melding før ei eventuell "OPPDATER"- eller "STOPP"-melding. // Dette går fint så lenge vi ikkje har skrudd på "compaction" på topic-et. Dersom vi har "compaction" på er det ikkje gitt // at vi berre kan ignorere, sidan vi då potensielt går glipp av hendelsar ved ein eventuell rewind på topic-et. - logger.warn("Fikk hendelse med operasjon ${Operasjon.OPPDATER} og ID ${hendelse.id}, men ingen hendelse med denne ID-en finnes. Ignorerer melding.") + logger.warn("Fikk hendelse med operasjon ${Operasjon.OPPDATER}, ID ${hendelse.id} og kategori ${hendelse.kategori}, men ingen hendelse med denne ID-en finnes. Ignorerer melding.") return } @@ -144,7 +144,7 @@ class HendelseService( // Per no ignorer vi melding, då vi forventar å alltid få ei "START"-melding før ei eventuell "OPPDATER"- eller "STOPP"-melding. // Dette går fint så lenge vi ikkje har skrudd på "compaction" på topic-et. Dersom vi har "compaction" på er det ikkje gitt // at vi berre kan ignorere, sidan vi då potensielt går glipp av hendelsar ved ein eventuell rewind på topic-et. - logger.warn("Fikk hendelse med operasjon ${Operasjon.STOPP} og ID ${hendelse.id}, men ingen hendelse med denne ID-en finnes. Ignorerer melding.") + logger.warn("Fikk hendelse med operasjon ${Operasjon.STOPP}, ID ${hendelse.id} og kategori ${hendelse.kategori}, men ingen hendelse med denne ID-en finnes. Ignorerer melding.") return }