Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EY-2578: Testar alle etterlatte-brevmalar automatisk til både HTML, PDF og for delmalar JSON #227

Merged
merged 7 commits into from
Aug 24, 2023
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,15 @@ import no.nav.pensjon.etterlatte.maler.barnepensjon.BarnepensjonInnvilgelseDTO
import no.nav.pensjon.etterlatte.maler.barnepensjon.avslag.BarnepensjonAvslagIkkeYrkesskadeDTO
import no.nav.pensjon.etterlatte.maler.barnepensjon.endring.EndringHovedmalDTO
import no.nav.pensjon.etterlatte.maler.barnepensjon.endring.BarnepensjonEndringInstitusjonsoppholdDTO
import no.nav.pensjon.etterlatte.maler.barnepensjon.endring.BarnepensjonUtAvFengselsoppholdDTO
import no.nav.pensjon.etterlatte.maler.barnepensjon.innvilgelse.ny.BarnepensjonInnvilgelseEnkelDTO
import no.nav.pensjon.etterlatte.maler.barnepensjon.ny.BarnepensjonInnvilgelseNyDTO
import no.nav.pensjon.etterlatte.maler.barnepensjon.revurdering.BarnepensjonFengselsoppholdDTO
import no.nav.pensjon.etterlatte.maler.barnepensjon.revurdering.BarnepensjonRevurderingAdopsjonDTO
import no.nav.pensjon.etterlatte.maler.barnepensjon.revurdering.BarnepensjonRevurderingOmgjoeringAvFarskapDTO
import no.nav.pensjon.etterlatte.maler.barnepensjon.revurdering.BarnepensjonRevurderingSoeskenjusteringDTO
import no.nav.pensjon.etterlatte.maler.barnepensjon.revurdering.BarnepensjonRevurderingYrkesskadeDTO
import no.nav.pensjon.etterlatte.maler.barnepensjon.revurdering.HarStansetDTO
import no.nav.pensjon.etterlatte.maler.omstillingsstoenad.OMSInnvilgelseDTO
import no.nav.pensjon.etterlatte.maler.omstillingsstoenad.foerstegangsvedtak.FoerstegangsvedtakUtfallDTO
import no.nav.pensjon.etterlatte.maler.omstillingsstoenad.foerstegangsvedtak.OMSInnvilgelseFoerstegangsvedtakDTO
Expand Down Expand Up @@ -64,10 +67,13 @@ object Fixtures {
OMSInnvilgelseFoerstegangsvedtakDTO::class -> createOMSInnvilgelseFoerstegangsvedtakDTO() as T
FoerstegangsvedtakUtfallDTO::class -> createOMSFoerstegangsvedtakUtfallDTO() as T
BarnepensjonRevurderingAdopsjonDTO::class -> createBarnepensjonRevurderingAdopsjonDTO() as T
BarnepensjonFengselsoppholdDTO::class -> createBarnepensjonFengselsoppholdDTO() as T
BarnepensjonRevurderingSoeskenjusteringDTO::class -> createBarnepensjonRevurderingSoeskenjusteringDTO() as T
BarnepensjonRevurderingOmgjoeringAvFarskapDTO::class -> createBarnepensjonRevurderingOmgjoeringAvFarskapDTO() as T
BarnepensjonRevurderingYrkesskadeDTO::class -> createBarnepensjonRevurderingYrkesskadeDTO() as T
BarnepensjonAvslagIkkeYrkesskadeDTO::class -> createBarnepensjonAvslagIkkeYrkesskadeDTO() as T
BarnepensjonUtAvFengselsoppholdDTO::class -> createBarnepensjonUtAvFengselsoppholdDTO() as T
HarStansetDTO::class -> createHarStansetDTO() as T
Unit::class -> Unit as T

else -> throw IllegalArgumentException("Don't know how to construct: ${letterDataType.qualifiedName}")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package no.nav.pensjon.etterlatte.maler
package no.nav.pensjon.etterlatte

import io.ktor.util.reflect.*
import kotlinx.coroutines.runBlocking
Expand All @@ -15,22 +15,24 @@ import no.nav.pensjon.brev.template.render.PensjonJsonRenderer
import no.nav.pensjon.brev.template.render.PensjonLatexRenderer
import no.nav.pensjon.brev.writeTestHTML
import no.nav.pensjon.brev.writeTestPDF
import no.nav.pensjon.etterlatte.EtterlatteBrevKode
import no.nav.pensjon.etterlatte.Fixtures
import no.nav.pensjon.etterlatte.maler.BrevDTO
import org.junit.jupiter.api.Tag
import org.junit.jupiter.api.Test
import org.junit.jupiter.params.ParameterizedTest
import org.junit.jupiter.params.provider.Arguments
import org.junit.jupiter.params.provider.MethodSource
import java.nio.file.Files
import java.nio.file.Paths

@Tag(TestTags.INTEGRATION_TEST)
abstract class EtterlatteMalTest<T : Any>(
val template: LetterTemplate<LanguageSupport.Triple<Language.Bokmal, Language.Nynorsk, Language.English>, T>,
private val etterlatteBrevKode: EtterlatteBrevKode,
val fixtures: T,
) {
class TemplateResourceTest {

@Test
fun testPdf() {
@Tag(TestTags.INTEGRATION_TEST)
@ParameterizedTest(name = "{index} => template={0}, etterlatteBrevKode={1}, fixtures={2}")
@MethodSource("alleMalene")
fun <T : Any> testPdf(
template: LetterTemplate<LanguageSupport.Triple<Language.Bokmal, Language.Nynorsk, Language.English>, T>,
etterlatteBrevKode: EtterlatteBrevKode,
fixtures: T,
) {
Letter(
template,
fixtures,
Expand All @@ -41,8 +43,13 @@ abstract class EtterlatteMalTest<T : Any>(
.also { writeTestPDF(etterlatteBrevKode.name, it) }
}

@Test
fun htmltest() {
@ParameterizedTest(name = "{index} => template={0}, etterlatteBrevKode={1}, fixtures={2}")
@MethodSource("alleMalene")
fun <T : Any> testHtml(
template: LetterTemplate<LanguageSupport.Triple<Language.Bokmal, Language.Nynorsk, Language.English>, T>,
etterlatteBrevKode: EtterlatteBrevKode,
fixtures: T,
) {
Letter(
template,
fixtures,
Expand All @@ -52,14 +59,27 @@ abstract class EtterlatteMalTest<T : Any>(
.also { writeTestHTML(etterlatteBrevKode.name, it) }
}

@Test
fun jsontest() {
val erHovedmal = this.fixtures.instanceOf(BrevDTO::class)
@ParameterizedTest(name = "{index} => template={0}, etterlatteBrevKode={1}, fixtures={2}")
@MethodSource("alleMalene")
fun <T : Any> jsontest(
template: LetterTemplate<LanguageSupport.Triple<Language.Bokmal, Language.Nynorsk, Language.English>, T>,
etterlatteBrevKode: EtterlatteBrevKode,
fixtures: T,
) {
val erHovedmal = fixtures.instanceOf(BrevDTO::class)
// Hovedmalar skal ikkje redigerast i Gjenny, så dei treng vi ikkje å lage JSON av.
// I tillegg er det per no ein mangel i brevbakeren at han ikkje klarer å lage JSON av tabellar, som vi bruker i ein del hovedmalar
if (erHovedmal) {
return
}
val foreloepigIkkeStoettaIJSON = setOf(
EtterlatteBrevKode.BARNEPENSJON_INNVILGELSE,
EtterlatteBrevKode.BARNEPENSJON_REVURDERING_SOESKENJUSTERING,
EtterlatteBrevKode.OMS_INNVILGELSE_AUTO,
)
if (foreloepigIkkeStoettaIJSON.contains(etterlatteBrevKode)) {
return
}
Letter(
template,
fixtures,
Expand All @@ -73,4 +93,16 @@ abstract class EtterlatteMalTest<T : Any>(
.let { Files.writeString(it, objectMapper.writeValueAsString(json)) }
}
}

companion object {
@JvmStatic
fun alleMalene() =
prodAutobrevTemplates.map {
Arguments.of(
it.template,
it.kode,
Fixtures.create(it.template.letterDataType),
)
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package no.nav.pensjon.etterlatte.fixtures

import no.nav.pensjon.etterlatte.maler.barnepensjon.revurdering.BarnepensjonFengselsoppholdDTO
import java.time.LocalDate
import java.time.Month

fun createBarnepensjonFengselsoppholdDTO() = BarnepensjonFengselsoppholdDTO(
virkningsdato = LocalDate.of(2020, Month.JANUARY, 1),
fraDato = LocalDate.of(2021, Month.JULY, 1),
tilDato = LocalDate.of(20221, Month.JULY, 28),
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package no.nav.pensjon.etterlatte.fixtures

import no.nav.pensjon.brevbaker.api.model.Kroner
import no.nav.pensjon.etterlatte.maler.Beregningsperiode
import no.nav.pensjon.etterlatte.maler.Utbetalingsinfo
import no.nav.pensjon.etterlatte.maler.barnepensjon.endring.BarnepensjonUtAvFengselsoppholdDTO
import java.time.LocalDate
import java.time.Month

fun createBarnepensjonUtAvFengselsoppholdDTO() = BarnepensjonUtAvFengselsoppholdDTO(

utbetalingsinfo = Utbetalingsinfo(
antallBarn = 2,
beloep = Kroner(1234),
soeskenjustering = true,
virkningsdato = LocalDate.now(),
beregningsperioder = listOf(
Beregningsperiode(
datoFOM = LocalDate.now(),
datoTOM = LocalDate.now(),
grunnbeloep = Kroner(106003),
antallBarn = 1,
utbetaltBeloep = Kroner(495),
),
Beregningsperiode(
datoFOM = LocalDate.now(),
datoTOM = null,
grunnbeloep = Kroner(106003),
antallBarn = 1,
utbetaltBeloep = Kroner(495),
),
),
),
erEtterbetalingMerEnnTreMaaneder = true,
virkningsdato = LocalDate.of(2020, Month.JANUARY, 1),
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package no.nav.pensjon.etterlatte.fixtures

import no.nav.pensjon.brevbaker.api.model.Kroner
import no.nav.pensjon.etterlatte.maler.Beregningsperiode
import no.nav.pensjon.etterlatte.maler.Utbetalingsinfo
import no.nav.pensjon.etterlatte.maler.barnepensjon.revurdering.HarStansetDTO
import java.time.LocalDate

fun createHarStansetDTO() = HarStansetDTO(
utbetalingsinfo = Utbetalingsinfo(
antallBarn = 2,
beloep = Kroner(1234),
soeskenjustering = true,
virkningsdato = LocalDate.now(),
beregningsperioder = listOf(
Beregningsperiode(
datoFOM = LocalDate.now(),
datoTOM = LocalDate.now(),
grunnbeloep = Kroner(106003),
antallBarn = 1,
utbetaltBeloep = Kroner(495),
),
Beregningsperiode(
datoFOM = LocalDate.now(),
datoTOM = null,
grunnbeloep = Kroner(106003),
antallBarn = 1,
utbetaltBeloep = Kroner(495),
),
),
),
innhold = listOf(),
)

This file was deleted.

This file was deleted.

This file was deleted.

Loading