diff --git a/src/main/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragMottaker.kt b/src/main/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragMottaker.kt index 9b432829..c483bf6c 100644 --- a/src/main/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragMottaker.kt +++ b/src/main/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragMottaker.kt @@ -29,20 +29,14 @@ class OppdragMottaker( try { behandleMelding(melding) } catch (e: Exception) { - secureLogger.warn("Feilet lesing av melding=${melding.jmsMessageID}", e) + secureLogger.warn("Feilet lesing av melding=${melding.jmsMessageID} meldingInnhold=$melding", e) + secureLogger.info("Meldingsinnhold: =${melding.text}") throw e } } private fun behandleMelding(melding: TextMessage) { - var svarFraOppdrag = melding.text as String - if (!env.activeProfiles.any { it in lokaleProfiler }) { - if (svarFraOppdrag.contains("ns2:oppdrag")) { - svarFraOppdrag = svarFraOppdrag.replace("oppdrag xmlns", "ns2:oppdrag xmlns:ns2") - } else if (svarFraOppdrag.contains("ns6:oppdrag")) { - svarFraOppdrag = svarFraOppdrag.replace("oppdrag xmlns", "ns6:oppdrag xmlns:ns6") - } - } + val svarFraOppdrag = håndterSvarFraOppdragSomGyldigXml(melding) val kvittering = lesKvittering(svarFraOppdrag) val oppdragId = kvittering.id @@ -75,6 +69,27 @@ class OppdragMottaker( ) } + private fun håndterSvarFraOppdragSomGyldigXml(melding: TextMessage): String { + var svarFraOppdrag = melding.text as String + if (!env.activeProfiles.any { it in lokaleProfiler }) { + // TODO: Denne skal fjernes etter at oppdrag har prodsatt sin fiks som håndteres nedenfor. + // TODO: Sjekk logger at denne if-branchen aldri treffes før den fjernes + if (svarFraOppdrag.contains("ns2:oppdrag")) { + log.info("Bytter ")) { + log.info("Bytter ", "") + } + return svarFraOppdrag + } + /** * I dev og e2e settes status alltid til KVITTER_OK */ diff --git a/src/test/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragMQMottakTest.kt b/src/test/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragMQMottakTest.kt index e4b111bd..4a221aca 100644 --- a/src/test/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragMQMottakTest.kt +++ b/src/test/kotlin/no/nav/familie/oppdrag/iverksetting/OppdragMQMottakTest.kt @@ -43,6 +43,13 @@ class OppdragMQMottakTest { assertEquals(Status.OK, statusFraKvittering) } + @Test + fun kvittering_feiler_uten_namespace_med_xmlns_tag() { + val kvittering: String = lesKvittering("kvittering-krasjer.xml") + val statusFraKvittering = oppdragMottaker.lesKvittering(kvittering).status + assertEquals(Status.UKJENT, statusFraKvittering) + } + @Test fun skal_tolke_kvittering_riktig_ved_feil() { val kvittering: String = lesKvittering("kvittering-avvist.xml") @@ -91,6 +98,27 @@ class OppdragMQMottakTest { verify(exactly = 1) { oppdragLagerRepository.oppdaterKvitteringsmelding(any(), any(), any(), 1) } } + @Test + fun skal_lagre_kvittering_på_versjon_som_feiler_i_preprod_pga_xmlns() { + val oppdragLager = utbetalingsoppdragMedTilfeldigAktoer().somKvitteringsinformasjon.copy(status = OppdragStatus.KVITTERT_OK) + val oppdragLagerV1 = utbetalingsoppdragMedTilfeldigAktoer().somKvitteringsinformasjon.copy(versjon = 1) + + val oppdragLagerRepository = mockk() + + every { oppdragLagerRepository.hentKvitteringsinformasjon(any()) } returns + listOf(oppdragLager, oppdragLagerV1) + + every { oppdragLagerRepository.oppdaterStatus(any(), any(), any()) } just Runs + every { oppdragLagerRepository.oppdaterKvitteringsmelding(any(), any(), any(), any()) } just Runs + + val oppdragMottaker = OppdragMottaker(oppdragLagerRepository, devEnv) + + oppdragMottaker.mottaKvitteringFraOppdrag("kvittering-krasjer.xml".fraRessursSomTextMessage) + + verify(exactly = 0) { oppdragLagerRepository.oppdaterKvitteringsmelding(any(), any(), any(), 0) } + verify(exactly = 1) { oppdragLagerRepository.oppdaterKvitteringsmelding(any(), any(), any(), 1) } + } + @Test fun skal_logge_error_hvis_det_finnes_to_identiske_oppdrag_i_databasen() { val oppdragLagerRepository = mockk() diff --git a/src/test/resources/kvittering-krasjer.xml b/src/test/resources/kvittering-krasjer.xml new file mode 100644 index 00000000..2096faca --- /dev/null +++ b/src/test/resources/kvittering-krasjer.xml @@ -0,0 +1,47 @@ + + + + 231-OPPD + 00 + + + 1 + ENDR + EFSP + 200054148 + MND + 08909298858 + 2000-01-01+01:00 + Z994119 + + EF + 2024-02-29-09.30.44.136442 + 2024-02-29-09.30.44.136442 + + + BOS + 8020 + 1900-01-01+01:00 + + + NY + 2024-02-29 + 2000541481 + EFSP + 2024-02-01+01:00 + 2024-02-29+01:00 + 13579 + T + ENG + N + Z994119 + 08909298858 + 18172 + 200054148 + 2000541480 + + Z994119 + + + + \ No newline at end of file