diff --git "a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/AntallM\303\245nederRegel.kt" "b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/AntallM\303\245nederRegel.kt" index 3905e7aa..4267a40e 100644 --- "a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/AntallM\303\245nederRegel.kt" +++ "b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/AntallM\303\245nederRegel.kt" @@ -14,4 +14,8 @@ sealed class AntallMånederRegel { fun Int.oppfyller(antallMånederRegel: AntallMånederRegel): Boolean { return this >= antallMånederRegel.antall +} + +fun Set<*>.oppfyller(antallMånederRegel: AntallMånederRegel): Boolean { + return count().oppfyller(antallMånederRegel) } \ No newline at end of file diff --git a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/Behandling.kt b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/Behandling.kt index 5fa1442a..f26d1988 100644 --- a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/Behandling.kt +++ b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/Behandling.kt @@ -67,7 +67,7 @@ data class Behandling( vurderVilkår.OmsorgsyterErMedlemIFolketrygden(), vurderVilkår.OmsorgsyterErIkkeOmsorgsmottaker(), vurderVilkår.OmsorgsyterHarIkkeDødsdato(), - vurderVilkår.OmsorgsyterMottarPensjonEllerUføretrygdIEøs(), + vurderVilkår.OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs(), vurderVilkår.OmsorgsopptjeningIkkeInnvilgetAnnetFellesbarn(), ) } diff --git "a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/Omsorgsm\303\245ned.kt" "b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/Omsorgsm\303\245ned.kt" index 20b1ce77..3c6fc7b8 100644 --- "a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/Omsorgsm\303\245ned.kt" +++ "b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/Omsorgsm\303\245ned.kt" @@ -22,6 +22,16 @@ sealed class Omsorgsmåneder { } } + abstract fun kvalifisererForAutomatiskBehandling(): Omsorgsmåneder + fun erKvalifisertForAutomatiskBehandling(antallMånederRegel: AntallMånederRegel): Boolean { + return kvalifisererForAutomatiskBehandling().antall().oppfyller(antallMånederRegel) + } + + abstract fun kvalifisererForManuellBehandling(): Omsorgsmåneder + fun erKvalifisertForManuellBehandling(antallMånederRegel: AntallMånederRegel): Boolean { + return kvalifisererForManuellBehandling().antall().oppfyller(antallMånederRegel) + } + data class Barnetrygd( val omsorgsmåneder: Set ) : Omsorgsmåneder() { @@ -31,6 +41,14 @@ sealed class Omsorgsmåneder { override val måneder: Set = omsorgsmåneder.map { it.måned }.toSortedSet() + override fun kvalifisererForAutomatiskBehandling(): Omsorgsmåneder { + return Barnetrygd(full()) + } + + override fun kvalifisererForManuellBehandling(): Omsorgsmåneder { + return Barnetrygd(full() + delt()) + } + fun merge(other: Barnetrygd): Barnetrygd { return Barnetrygd((omsorgsmåneder + other.omsorgsmåneder).toSet()) } @@ -67,6 +85,17 @@ sealed class Omsorgsmåneder { override val måneder = omsorgsmåneder.map { it.måned }.toSortedSet() + //TODO et hull her ift full vs delt barnetrygd + override fun kvalifisererForAutomatiskBehandling(): Omsorgsmåneder { + return this + } + + //TODO et hull her ift full vs delt barnetrygd + override fun kvalifisererForManuellBehandling(): Omsorgsmåneder { + return this + } + + fun merge(other: Hjelpestønad): Hjelpestønad { return Hjelpestønad((omsorgsmåneder + other.omsorgsmåneder).toSet()) } @@ -82,4 +111,8 @@ sealed class Omsorgsmåneder { val måned: YearMonth, val omsorgstype: DomainOmsorgstype ) +} + +fun Set.måneder(): Set { + return map { it.måned }.toSet() } \ No newline at end of file diff --git a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsopptjeningGrunnlag.kt b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsopptjeningGrunnlag.kt index c96fa8ee..6fc30278 100644 --- a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsopptjeningGrunnlag.kt +++ b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsopptjeningGrunnlag.kt @@ -90,7 +90,7 @@ sealed class OmsorgsopptjeningGrunnlag { fun forTilstrekkeligOmsorgsarbeid(): OmsorgsyterHarTilstrekkeligOmsorgsarbeid.Grunnlag { return OmsorgsyterHarTilstrekkeligOmsorgsarbeid.Grunnlag( - omsorgsytersOmsorgsmånederForOmsorgsmottaker = omsorgsmånederForOmsorgsmottakerPerOmsorgsyter()[omsorgsyter]!!, + omsorgsmåneder = omsorgsmånederForOmsorgsmottakerPerOmsorgsyter()[omsorgsyter]!!, antallMånederRegel = antallMånederRegel() ) } @@ -106,7 +106,7 @@ sealed class OmsorgsopptjeningGrunnlag { fun forGyldigOmsorgsarbeid(omsorgsyter: Person): OmsorgsyterHarGyldigOmsorgsarbeid.Grunnlag { return OmsorgsyterHarGyldigOmsorgsarbeid.Grunnlag( omsorgsytersUtbetalingsmåneder = utbetalingsmånederForOmsorgsmottakerPerOmsorgsyter()[omsorgsyter]!!, - omsorgsytersOmsorgsmåneder = omsorgsmånederForOmsorgsmottakerPerOmsorgsyter()[omsorgsyter]!!, + omsorgsmåneder = omsorgsmånederForOmsorgsmottakerPerOmsorgsyter()[omsorgsyter]!!, antallMånederRegel = antallMånederRegel() ) } @@ -114,7 +114,7 @@ sealed class OmsorgsopptjeningGrunnlag { fun forMedlemskapIFolketrygden(): OmsorgsyterErMedlemIFolketrygden.Grunnlag { return OmsorgsyterErMedlemIFolketrygden.Grunnlag( medlemskapsgrunnlag = grunnlag.omsorgsytersPersongrunnlag.medlemskapsgrunnlag, - omsorgsytersOmsorgsmåneder = omsorgsmånederForOmsorgsmottakerPerOmsorgsyter()[omsorgsyter]!!, + omsorgsmåneder = omsorgsmånederForOmsorgsmottakerPerOmsorgsyter()[omsorgsyter]!!, antallMånederRegel = antallMånederRegel(), landstilknytningMåneder = landstilknytningForOmsorgsmottakerPerOmsorgsyter()[omsorgsyter]!! ) diff --git a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterErMedlemIFolketrygden.kt b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterErMedlemIFolketrygden.kt index 43722183..c479edfb 100644 --- a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterErMedlemIFolketrygden.kt +++ b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterErMedlemIFolketrygden.kt @@ -13,7 +13,7 @@ object OmsorgsyterErMedlemIFolketrygden : ParagrafVilkår> T.bestemUtfall(grunnlag: Grunnlag): VilkårsvurderingUtfall { - return when (grunnlag.omsorgsytersOmsorgsmåneder.omsorgstype()) { + return when (grunnlag.omsorgstype()) { DomainOmsorgskategori.BARNETRYGD -> { setOf( JuridiskHenvisning.Folketrygdloven_Kap_20_Paragraf_8_Første_Ledd_Bokstav_a_Første_Punktum @@ -54,7 +54,7 @@ object OmsorgsyterErMedlemIFolketrygden : ParagrafVilkår(){ + ) : ParagrafVurdering() { override fun hentOppgaveopplysninger(behandling: FullførtBehandling): Oppgaveopplysninger { return Oppgaveopplysninger.Generell( @@ -65,15 +65,22 @@ object OmsorgsyterErMedlemIFolketrygden : ParagrafVilkår() { @@ -68,18 +67,28 @@ object OmsorgsyterHarGyldigOmsorgsarbeid : ParagrafVilkår = - omsorgsytersOmsorgsmåneder.alle().intersect(omsorgsytersUtbetalingsmåneder.alle()) + + init { + omsorgsmåneder = if (omsorgsmåneder.erKvalifisertForAutomatiskBehandling(antallMånederRegel)) { + omsorgsmåneder.kvalifisererForAutomatiskBehandling() + } else { + omsorgsmåneder.kvalifisererForManuellBehandling() + } + } fun erOppfyllt(): Boolean { - return gyldigeOmsorgsmåneder.count().oppfyller(antallMånederRegel) + return omsorgsmåneder.alle().intersect(omsorgsytersUtbetalingsmåneder.alle()).oppfyller(antallMånederRegel) } fun omsorgstype(): DomainOmsorgskategori { - return omsorgsytersOmsorgsmåneder.omsorgstype() + return omsorgsmåneder.omsorgstype() + } + + fun omsorgsmåneder(): Omsorgsmåneder { + return omsorgsmåneder } } } \ No newline at end of file diff --git a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterHarMestOmsorgAvAlleOmsorgsytere.kt b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterHarMestOmsorgAvAlleOmsorgsytere.kt index 60814981..0c59df03 100644 --- a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterHarMestOmsorgAvAlleOmsorgsytere.kt +++ b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterHarMestOmsorgAvAlleOmsorgsytere.kt @@ -112,6 +112,7 @@ object OmsorgsyterHarMestOmsorgAvAlleOmsorgsytere : val omsorgsyter: String, val data: Set // Det er teoretisk mulig med flere mottakere, men i praksis kun en ) : ParagrafGrunnlag() { + val omsorgsytereGruppertEtterOmsorgsmånederMedFull = data .groupBy { it.antallFull() } .filter { it.key > 0 } diff --git a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterHarTilstrekkeligOmsorgsarbeid.kt b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterHarTilstrekkeligOmsorgsarbeid.kt index d81d207f..09e69a68 100644 --- a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterHarTilstrekkeligOmsorgsarbeid.kt +++ b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterHarTilstrekkeligOmsorgsarbeid.kt @@ -83,28 +83,25 @@ object OmsorgsyterHarTilstrekkeligOmsorgsarbeid : ParagrafVilkår { - omsorgsytersOmsorgsmånederForOmsorgsmottaker.antallFull().oppfyller(antallMånederRegel) - } - - is Omsorgsmåneder.Hjelpestønad -> { - //TODO et hull her ift full vs delt barnetrygd - omsorgsytersOmsorgsmånederForOmsorgsmottaker.antall().oppfyller(antallMånederRegel) - } + return if (omsorgsmåneder.erKvalifisertForAutomatiskBehandling(antallMånederRegel)) { + omsorgsmåneder = omsorgsmåneder.kvalifisererForAutomatiskBehandling() + omsorgsmåneder.alle().oppfyller(antallMånederRegel) + } else { + false } } fun erManuell(): Boolean { require(!erOppfyllt()) { "Rekkefølgeavhengig" } - return when (omsorgsytersOmsorgsmånederForOmsorgsmottaker) { + return when (omsorgsmåneder) { is Omsorgsmåneder.Barnetrygd -> { - (omsorgsytersOmsorgsmånederForOmsorgsmottaker.antallFull() + omsorgsytersOmsorgsmånederForOmsorgsmottaker.antallDelt()).oppfyller(antallMånederRegel) + omsorgsmåneder = omsorgsmåneder.kvalifisererForManuellBehandling() + omsorgsmåneder.alle().oppfyller(antallMånederRegel) } is Omsorgsmåneder.Hjelpestønad -> { @@ -115,7 +112,11 @@ object OmsorgsyterHarTilstrekkeligOmsorgsarbeid : ParagrafVilkår> T.bestemUtfall(grunnlag: Grunnlag): VilkårsvurderingUtfall { - return when (grunnlag.omsorgsmåneder.omsorgstype()) { + return when (grunnlag.omsorgstype()) { DomainOmsorgskategori.BARNETRYGD -> emptySet() DomainOmsorgskategori.HJELPESTØNAD -> emptySet() }.let { @@ -51,12 +51,19 @@ object OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs : } data class Grunnlag( - val omsorgsmåneder: Omsorgsmåneder, + private var omsorgsmåneder: Omsorgsmåneder, val ytelsemåneder: Ytelsemåneder, val landstilknytningmåneder: Landstilknytningmåneder, val antallMånederRegel: AntallMånederRegel, ) : ParagrafGrunnlag() { + init { + omsorgsmåneder = if (omsorgsmåneder.erKvalifisertForAutomatiskBehandling(antallMånederRegel)) { + omsorgsmåneder.kvalifisererForAutomatiskBehandling() + } else { + omsorgsmåneder.kvalifisererForManuellBehandling() + } + } fun erInnvilget(): Boolean { return ytelsemåneder.alle().intersect(landstilknytningmåneder.alleEøsMåneder()).isEmpty() @@ -76,9 +83,16 @@ object OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs : fun manuell(): Boolean { require(!erInnvilget() && !erInnvilgetTilTrossForPerioderMedYtelseIEøs()) { "Rekkefølgeavhengig" } val ytelseOgEøs = ytelsemåneder.alle().intersect(landstilknytningmåneder.alleEøsMåneder()) - val omsorgOgYtelseEøs = - omsorgsmåneder.alle().minus(ytelseOgEøs).plus(omsorgsmåneder.alle().intersect(ytelseOgEøs)) + val omsorgOgYtelseEøs = omsorgsmåneder.alle().minus(ytelseOgEøs).plus(omsorgsmåneder.alle().intersect(ytelseOgEøs)) return ytelseOgEøs.isNotEmpty() && omsorgOgYtelseEøs.count().oppfyller(antallMånederRegel) } + + fun omsorgstype(): DomainOmsorgskategori { + return omsorgsmåneder.omsorgstype() + } + + fun omsorgsmåneder(): Omsorgsmåneder { + return omsorgsmåneder + } } } \ No newline at end of file diff --git "a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/VurderVilk\303\245r.kt" "b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/VurderVilk\303\245r.kt" index d7ad5845..b8b8e7b6 100644 --- "a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/VurderVilk\303\245r.kt" +++ "b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/VurderVilk\303\245r.kt" @@ -14,7 +14,7 @@ interface VurderVilkår { fun OmsorgsyterErMedlemIFolketrygden(): OmsorgsyterErMedlemIFolketrygden.Vurdering fun OmsorgsyterErIkkeOmsorgsmottaker(): OmsorgsyterErikkeOmsorgsmottaker.Vurdering fun OmsorgsyterHarIkkeDødsdato(): OmsorgsyterHarIkkeDødsdato.Vurdering - fun OmsorgsyterMottarPensjonEllerUføretrygdIEøs(): OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs.Vurdering + fun OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs(): OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs.Vurdering fun OmsorgsopptjeningIkkeInnvilgetAnnetFellesbarn(): OmsorgsopptjeningIkkeInnvilgetAnnetFellesbarn.Vurdering } @@ -64,6 +64,7 @@ internal class VilkårsvurderingFactory( return OmsorgsyterErForelderTilMottakerAvHjelpestønad.vilkarsVurder(grunnlag.forFamilierelasjon()) } + //TODO dette gir i praksis ikke noe ut over det vi får fra gyldig omsorgsarbeid - vurder å slett override fun OmsorgsyterMottarBarnetrgyd(): OmsorgsyterMottarBarnetrgyd.Vurdering { return OmsorgsyterMottarBarnetrgyd.vilkarsVurder(grunnlag.forMottarBarnetrygd()) } @@ -84,7 +85,7 @@ internal class VilkårsvurderingFactory( return OmsorgsyterHarIkkeDødsdato.vilkarsVurder(grunnlag.forOmsorgsyterHarIkkeDødsdato()) } - override fun OmsorgsyterMottarPensjonEllerUføretrygdIEøs(): OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs.Vurdering { + override fun OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs(): OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs.Vurdering { return OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs.vilkarsVurder(grunnlag.forOmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs()) } diff --git a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/repository/OmsorgsyterErMedlemIFolketrygden.kt b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/repository/OmsorgsyterErMedlemIFolketrygden.kt index 51bb4e15..e7b56cfa 100644 --- a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/repository/OmsorgsyterErMedlemIFolketrygden.kt +++ b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/repository/OmsorgsyterErMedlemIFolketrygden.kt @@ -35,7 +35,7 @@ internal data class MedlemIFolketrygden( internal fun MedlemIFolketrygden.toDomain(): OmsorgsyterErMedlemIFolketrygden.Grunnlag { return OmsorgsyterErMedlemIFolketrygden.Grunnlag( medlemskapsgrunnlag = medlemskapsvurdering.toDomain(), - omsorgsytersOmsorgsmåneder = omsorgsytersOmsorgsmåneder.toDomain(), + omsorgsmåneder = omsorgsytersOmsorgsmåneder.toDomain(), antallMånederRegel = antallMånederRegel.toDomain(), landstilknytningMåneder = Landstilknytningmåneder(landstilknytningmåneder.toDomain()) ) @@ -44,7 +44,7 @@ internal fun MedlemIFolketrygden.toDomain(): OmsorgsyterErMedlemIFolketrygden.Gr internal fun OmsorgsyterErMedlemIFolketrygden.Grunnlag.toDb(): MedlemIFolketrygden { return MedlemIFolketrygden( medlemskapsvurdering = medlemskapsgrunnlag.toDb(), - omsorgsytersOmsorgsmåneder = omsorgsytersOmsorgsmåneder.toDb(), + omsorgsytersOmsorgsmåneder = omsorgsmåneder().toDb(), antallMånederRegel = antallMånederRegel.toDb(), landstilknytningmåneder = landstilknytningMåneder.toDb() ) diff --git a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/repository/OmsorgsyterHarGyldigOmsorgsarbeid.kt b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/repository/OmsorgsyterHarGyldigOmsorgsarbeid.kt index 8cf4ec47..7cb81f2d 100644 --- a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/repository/OmsorgsyterHarGyldigOmsorgsarbeid.kt +++ b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/repository/OmsorgsyterHarGyldigOmsorgsarbeid.kt @@ -35,7 +35,7 @@ internal fun GyldigOmsorgsarbeid.toDomain(): OmsorgsyterHarGyldigOmsorgsarbeid.G return OmsorgsyterHarGyldigOmsorgsarbeid.Grunnlag( omsorgsytersUtbetalingsmåneder = Utbetalingsmåneder(omsorgsytersUtbetalingsmåneder.map { it.toDomain() } .toSet()), - omsorgsytersOmsorgsmåneder = omsorgsytersOmsorgsmåneder.toDomain(), + omsorgsmåneder = omsorgsytersOmsorgsmåneder.toDomain(), antallMånederRegel = antallMånederRegel.toDomain(), ) } @@ -43,7 +43,7 @@ internal fun GyldigOmsorgsarbeid.toDomain(): OmsorgsyterHarGyldigOmsorgsarbeid.G internal fun OmsorgsyterHarGyldigOmsorgsarbeid.Grunnlag.toDb(): GyldigOmsorgsarbeid { return GyldigOmsorgsarbeid( omsorgsytersUtbetalingsmåneder = omsorgsytersUtbetalingsmåneder.måneder.map { it.toDb() }.toSet(), - omsorgsytersOmsorgsmåneder = omsorgsytersOmsorgsmåneder.toDb(), + omsorgsytersOmsorgsmåneder = omsorgsmåneder().toDb(), antallMånederRegel = antallMånederRegel.toDb(), ) } \ No newline at end of file diff --git a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/repository/OmsorgsyterHarTilstrekkeligOmsorgsarbeidDb.kt b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/repository/OmsorgsyterHarTilstrekkeligOmsorgsarbeidDb.kt index 371e915a..42be6e7e 100644 --- a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/repository/OmsorgsyterHarTilstrekkeligOmsorgsarbeidDb.kt +++ b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/repository/OmsorgsyterHarTilstrekkeligOmsorgsarbeidDb.kt @@ -31,14 +31,14 @@ internal data class TilstrekkeligOmsorgsarbeid( internal fun OmsorgsyterHarTilstrekkeligOmsorgsarbeid.Grunnlag.toDb(): TilstrekkeligOmsorgsarbeid { return TilstrekkeligOmsorgsarbeid( - omsorgsytersOmsorgsmånederForOmsorgsmottaker = omsorgsytersOmsorgsmånederForOmsorgsmottaker.toDb(), + omsorgsytersOmsorgsmånederForOmsorgsmottaker = omsorgsmåneder().toDb(), antallMånederRegel = antallMånederRegel.toDb() ) } internal fun TilstrekkeligOmsorgsarbeid.toDomain(): OmsorgsyterHarTilstrekkeligOmsorgsarbeid.Grunnlag { return OmsorgsyterHarTilstrekkeligOmsorgsarbeid.Grunnlag( - omsorgsytersOmsorgsmånederForOmsorgsmottaker = omsorgsytersOmsorgsmånederForOmsorgsmottaker.toDomain(), + omsorgsmåneder = omsorgsytersOmsorgsmånederForOmsorgsmottaker.toDomain(), antallMånederRegel = antallMånederRegel.toDomain(), ) } diff --git "a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/repository/OmsorgsyterMottarIkkePensjonEllerUf\303\270retrygdIE\303\270sDb.kt" "b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/repository/OmsorgsyterMottarIkkePensjonEllerUf\303\270retrygdIE\303\270sDb.kt" index 2671df2a..f6b61071 100644 --- "a/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/repository/OmsorgsyterMottarIkkePensjonEllerUf\303\270retrygdIE\303\270sDb.kt" +++ "b/src/main/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/repository/OmsorgsyterMottarIkkePensjonEllerUf\303\270retrygdIE\303\270sDb.kt" @@ -46,7 +46,7 @@ internal fun OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøsDbGrunnlag.toDomai internal fun OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs.Grunnlag.toDb(): OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøsDbGrunnlag { return OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøsDbGrunnlag( - omsorgsmåneder = omsorgsmåneder.toDb(), + omsorgsmåneder = omsorgsmåneder().toDb(), ytelsemåneder = ytelsemåneder.alle(), landstilknytningmåneder = landstilknytningmåneder.toDb(), antallMånederRegel = antallMånederRegel.toDb(), diff --git a/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/common/TestUtils.kt b/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/common/TestUtils.kt new file mode 100644 index 00000000..363ed79e --- /dev/null +++ b/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/common/TestUtils.kt @@ -0,0 +1,48 @@ +package no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.common + +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.omsorgsopptjening.model.LandstilknytningMåned +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.omsorgsopptjening.model.Landstilknytningmåneder +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.omsorgsopptjening.model.Omsorgsmåneder +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.omsorgsopptjening.model.Utbetalingsmåned +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.omsorgsopptjening.model.Utbetalingsmåneder +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.omsorgsopptjening.model.Ytelsemåneder +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.persongrunnlag.model.DomainOmsorgstype +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.persongrunnlag.model.Landstilknytning +import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.periode.Periode +import java.time.YearMonth + +internal fun YearMonth.tilOmsorgsmåned(omsorgstype: DomainOmsorgstype): Omsorgsmåneder.Omsorgsmåned { + return Omsorgsmåneder.Omsorgsmåned(this, omsorgstype) +} + +internal fun Periode.tilOmsorgsmåneder(omsorgstype: DomainOmsorgstype): Set { + return alleMåneder().map { Omsorgsmåneder.Omsorgsmåned(it, omsorgstype) }.toSet() +} + +internal fun Periode.omsorgsmåneder(omsorgstype: DomainOmsorgstype): Omsorgsmåneder { + return when (omsorgstype) { + is DomainOmsorgstype.Barnetrygd -> Omsorgsmåneder.Barnetrygd(tilOmsorgsmåneder(omsorgstype)) + is DomainOmsorgstype.Hjelpestønad -> Omsorgsmåneder.Hjelpestønad(tilOmsorgsmåneder(omsorgstype)) + } +} + +internal fun Periode.landstilknytningmåneder(landstilknytning: Landstilknytning): Landstilknytningmåneder { + return Landstilknytningmåneder(alleMåneder().map { LandstilknytningMåned(it, landstilknytning) }.toSet()) +} + +internal fun Periode.ytelseMåneder(): Ytelsemåneder { + return Ytelsemåneder(alleMåneder()) +} + +internal fun YearMonth.tilUtbetalingsmåned(utbetalt: Int, landstilknytning: Landstilknytning): Utbetalingsmåned? { + return Utbetalingsmåned.of(this, utbetalt, landstilknytning) +} + +internal fun Periode.tilUtbetalingsmåneder(utbetalt: Int, landstilknytning: Landstilknytning): Set { + return alleMåneder().mapNotNull { it.tilUtbetalingsmåned(utbetalt, landstilknytning) }.toSet() +} + +internal fun Periode.utbetalingsmåneder(utbetalt: Int, landstilknytning: Landstilknytning): Utbetalingsmåneder { + return Utbetalingsmåneder(tilUtbetalingsmåneder(utbetalt, landstilknytning)) +} + diff --git "a/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/Landstilknytningm\303\245nederTest.kt" "b/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/Landstilknytningm\303\245nederTest.kt" index 4236bb04..0c3fc67d 100644 --- "a/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/Landstilknytningm\303\245nederTest.kt" +++ "b/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/Landstilknytningm\303\245nederTest.kt" @@ -1,5 +1,6 @@ package no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.omsorgsopptjening.model +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.common.landstilknytningmåneder import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.persongrunnlag.model.Landstilknytning import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.april import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.desember @@ -57,6 +58,3 @@ class LandstilknytningmånederTest { } } -fun Periode.landstilknytningmåneder(landstilknytning: Landstilknytning): Landstilknytningmåneder { - return Landstilknytningmåneder(alleMåneder().map { LandstilknytningMåned(it, landstilknytning) }.toSet()) -} \ No newline at end of file diff --git a/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterErMedlemIFolketrygdenTest.kt b/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterErMedlemIFolketrygdenTest.kt index 0278601d..927e683f 100644 --- a/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterErMedlemIFolketrygdenTest.kt +++ b/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterErMedlemIFolketrygdenTest.kt @@ -1,10 +1,15 @@ package no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.omsorgsopptjening.model +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.common.landstilknytningmåneder +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.common.tilOmsorgsmåned +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.common.tilOmsorgsmåneder import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.persongrunnlag.model.DomainOmsorgstype import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.persongrunnlag.model.Landstilknytning +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.august import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.februar import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.januar import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.juni +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.oktober import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.september import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.år import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.periode.Periode @@ -13,6 +18,7 @@ import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.periode.Periode import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.periode.Periode.Companion.juli import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.periode.Periode.Companion.mai import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.periode.Periode.Companion.mars +import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Test @@ -29,7 +35,13 @@ class OmsorgsyterErMedlemIFolketrygdenTest { rådata = "" ) ), - omsorgsytersOmsorgsmåneder = Omsorgsmåneder.Barnetrygd(setOf(januar(2024).omsorgsmåned(DomainOmsorgstype.Barnetrygd.Full))), + omsorgsmåneder = Omsorgsmåneder.Barnetrygd( + setOf( + januar(2024).tilOmsorgsmåned( + DomainOmsorgstype.Barnetrygd.Full + ) + ) + ), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår, landstilknytningMåneder = år(2024).landstilknytningmåneder(Landstilknytning.Norge), ) @@ -54,7 +66,7 @@ class OmsorgsyterErMedlemIFolketrygdenTest { rådata = "" ) ), - omsorgsytersOmsorgsmåneder = Omsorgsmåneder.Barnetrygd(år(2024).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full)), + omsorgsmåneder = Omsorgsmåneder.Barnetrygd(år(2024).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full)), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår, landstilknytningMåneder = år(2024).landstilknytningmåneder(Landstilknytning.Norge), ) @@ -79,7 +91,13 @@ class OmsorgsyterErMedlemIFolketrygdenTest { rådata = "" ) ), - omsorgsytersOmsorgsmåneder = Omsorgsmåneder.Barnetrygd(setOf(januar(2024).omsorgsmåned(DomainOmsorgstype.Barnetrygd.Full))), + omsorgsmåneder = Omsorgsmåneder.Barnetrygd( + setOf( + januar(2024).tilOmsorgsmåned( + DomainOmsorgstype.Barnetrygd.Full + ) + ) + ), antallMånederRegel = AntallMånederRegel.FødtIOmsorgsår, landstilknytningMåneder = år(2024).landstilknytningmåneder(Landstilknytning.Norge), ) @@ -104,7 +122,7 @@ class OmsorgsyterErMedlemIFolketrygdenTest { rådata = "" ) ), - omsorgsytersOmsorgsmåneder = Omsorgsmåneder.Barnetrygd(år(2024).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full)), + omsorgsmåneder = Omsorgsmåneder.Barnetrygd(år(2024).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full)), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår, landstilknytningMåneder = år(2024).landstilknytningmåneder(Landstilknytning.Norge), ) @@ -129,11 +147,11 @@ class OmsorgsyterErMedlemIFolketrygdenTest { rådata = "" ) ), - omsorgsytersOmsorgsmåneder = Omsorgsmåneder.Barnetrygd( + omsorgsmåneder = Omsorgsmåneder.Barnetrygd( Periode( januar(2024), september(2024) - ).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + ).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) ), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår, landstilknytningMåneder = år(2024).landstilknytningmåneder(Landstilknytning.Norge), @@ -154,7 +172,13 @@ class OmsorgsyterErMedlemIFolketrygdenTest { rådata = "" ) ), - omsorgsytersOmsorgsmåneder = Omsorgsmåneder.Barnetrygd(setOf(januar(2024).omsorgsmåned(DomainOmsorgstype.Barnetrygd.Full))), + omsorgsmåneder = Omsorgsmåneder.Barnetrygd( + setOf( + januar(2024).tilOmsorgsmåned( + DomainOmsorgstype.Barnetrygd.Full + ) + ) + ), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår, landstilknytningMåneder = år(2024).landstilknytningmåneder(Landstilknytning.Norge), ) @@ -179,7 +203,7 @@ class OmsorgsyterErMedlemIFolketrygdenTest { rådata = "" ) ), - omsorgsytersOmsorgsmåneder = Omsorgsmåneder.Barnetrygd(år(2024).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full)), + omsorgsmåneder = Omsorgsmåneder.Barnetrygd(år(2024).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full)), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår, landstilknytningMåneder = år(2024).landstilknytningmåneder(Landstilknytning.Norge), ) @@ -204,7 +228,13 @@ class OmsorgsyterErMedlemIFolketrygdenTest { rådata = "" ) ), - omsorgsytersOmsorgsmåneder = Omsorgsmåneder.Barnetrygd(setOf(januar(2024).omsorgsmåned(DomainOmsorgstype.Barnetrygd.Full))), + omsorgsmåneder = Omsorgsmåneder.Barnetrygd( + setOf( + januar(2024).tilOmsorgsmåned( + DomainOmsorgstype.Barnetrygd.Full + ) + ) + ), antallMånederRegel = AntallMånederRegel.FødtIOmsorgsår, landstilknytningMåneder = år(2024).landstilknytningmåneder(Landstilknytning.Norge), ) @@ -229,7 +259,7 @@ class OmsorgsyterErMedlemIFolketrygdenTest { rådata = "" ) ), - omsorgsytersOmsorgsmåneder = Omsorgsmåneder.Barnetrygd(år(2024).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full)), + omsorgsmåneder = Omsorgsmåneder.Barnetrygd(år(2024).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full)), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår, landstilknytningMåneder = år(2024).landstilknytningmåneder(Landstilknytning.Norge), ) @@ -254,7 +284,7 @@ class OmsorgsyterErMedlemIFolketrygdenTest { rådata = "" ) ), - omsorgsytersOmsorgsmåneder = Omsorgsmåneder.Barnetrygd(år(2024).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full)), + omsorgsmåneder = Omsorgsmåneder.Barnetrygd(år(2024).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full)), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår, landstilknytningMåneder = år(2024).landstilknytningmåneder(Landstilknytning.Norge), ) @@ -279,7 +309,7 @@ class OmsorgsyterErMedlemIFolketrygdenTest { rådata = "" ) ), - omsorgsytersOmsorgsmåneder = Omsorgsmåneder.Barnetrygd(år(2024).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full)), + omsorgsmåneder = Omsorgsmåneder.Barnetrygd(år(2024).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full)), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår, landstilknytningMåneder = år(2024).landstilknytningmåneder(Landstilknytning.Eøs.UkjentPrimærOgSekundærLand), ) @@ -309,7 +339,7 @@ class OmsorgsyterErMedlemIFolketrygdenTest { rådata = "" ) ), - omsorgsytersOmsorgsmåneder = Omsorgsmåneder.Barnetrygd(år(2024).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full)), + omsorgsmåneder = Omsorgsmåneder.Barnetrygd(år(2024).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full)), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår, landstilknytningMåneder = år(2024).landstilknytningmåneder(Landstilknytning.Norge), ) @@ -339,7 +369,7 @@ class OmsorgsyterErMedlemIFolketrygdenTest { rådata = "" ) ), - omsorgsytersOmsorgsmåneder = Omsorgsmåneder.Barnetrygd(år(2024).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full)), + omsorgsmåneder = Omsorgsmåneder.Barnetrygd(år(2024).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full)), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår, landstilknytningMåneder = år(2024).landstilknytningmåneder(Landstilknytning.Eøs.UkjentPrimærOgSekundærLand), ) @@ -369,11 +399,11 @@ class OmsorgsyterErMedlemIFolketrygdenTest { rådata = "" ) ), - omsorgsytersOmsorgsmåneder = Omsorgsmåneder.Barnetrygd( + omsorgsmåneder = Omsorgsmåneder.Barnetrygd( Periode( februar(2024), juni((2024)) - ).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + ).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) ), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår, landstilknytningMåneder = år(2024).landstilknytningmåneder(Landstilknytning.Norge), @@ -382,4 +412,146 @@ class OmsorgsyterErMedlemIFolketrygdenTest { Assertions.assertInstanceOf(VilkårsvurderingUtfall.Avslag.Vilkår::class.java, it.utfall) } } + + @Test + fun `innvilget dersom omsorg ikke kvalifiserer for automatisk godskriving men måneder som kvalifiserer for manuell behandling er tilstrekkelig`() { + OmsorgsyterErMedlemIFolketrygden.vilkarsVurder( + OmsorgsyterErMedlemIFolketrygden.Grunnlag( + medlemskapsgrunnlag = Medlemskapsgrunnlag( + Medlemskapsunntak( + ikkeMedlem = setOf( + MedlemskapsunntakPeriode( + fraOgMed = januar(2024), + tilOgMed = mars(2024), + ) + ), + pliktigEllerFrivillig = setOf( + MedlemskapsunntakPeriode( + fraOgMed = april(2024), + tilOgMed = mai(2024), + ) + ), + rådata = "" + ) + ), + omsorgsmåneder = Omsorgsmåneder.Barnetrygd( + Periode(juni(2024), august((2024))).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + + Periode( + september(2024), + desember((2024)) + ).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) + ), + antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår, + landstilknytningMåneder = år(2024).landstilknytningmåneder(Landstilknytning.Norge), + ) + ).also { + Assertions.assertInstanceOf(VilkårsvurderingUtfall.Innvilget.Vilkår::class.java, it.utfall) + } + } + + @Test + fun `ubestemt dersom omsorg ikke kvalifiserer for automatisk godskriving men måneder som kvalifiserer for manuell behandling er tilstrekkelig`() { + OmsorgsyterErMedlemIFolketrygden.vilkarsVurder( + OmsorgsyterErMedlemIFolketrygden.Grunnlag( + medlemskapsgrunnlag = Medlemskapsgrunnlag( + Medlemskapsunntak( + ikkeMedlem = setOf( + MedlemskapsunntakPeriode( + fraOgMed = januar(2024), + tilOgMed = mars(2024), + ) + ), + pliktigEllerFrivillig = setOf( + MedlemskapsunntakPeriode( + fraOgMed = april(2024), + tilOgMed = september(2024), + ) + ), + rådata = "" + ) + ), + omsorgsmåneder = Omsorgsmåneder.Barnetrygd( + Periode(april(2024), desember((2024))).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) + ), + antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår, + landstilknytningMåneder = år(2024).landstilknytningmåneder(Landstilknytning.Norge), + ) + ).also { + Assertions.assertInstanceOf(VilkårsvurderingUtfall.Ubestemt::class.java, it.utfall) + } + } + + @Test + fun `bruker og tar vare på relevante omsorgsmåneder ved vurdering av vilkår - kan godskrives automatisk`() { + val alle = Omsorgsmåneder.Barnetrygd( + Periode(januar(2000), september(2000)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + + Periode(oktober(2000), desember(2000)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) + ) + + val relevant = Omsorgsmåneder.Barnetrygd( + Periode(januar(2000), september(2000)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + ) + + OmsorgsyterErMedlemIFolketrygden.vilkarsVurder( + OmsorgsyterErMedlemIFolketrygden.Grunnlag( + medlemskapsgrunnlag = Medlemskapsgrunnlag( + Medlemskapsunntak( + ikkeMedlem = setOf( + MedlemskapsunntakPeriode( + fraOgMed = januar(2024), + tilOgMed = juni(2024), + ) + ), + pliktigEllerFrivillig = setOf( + MedlemskapsunntakPeriode( + fraOgMed = juli(2024), + tilOgMed = desember(2024), + ) + ), + rådata = "" + ) + ), + omsorgsmåneder = alle, + antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår, + landstilknytningMåneder = år(2024).landstilknytningmåneder(Landstilknytning.Eøs.UkjentPrimærOgSekundærLand), + ) + ).also { + assertThat(it.grunnlag.omsorgsmåneder()).isEqualTo(relevant) + } + } + + @Test + fun `bruker og tar vare på relevante omsorgsmåneder ved vurdering av vilkår - kan ikke godskrives automatisk`() { + val alle = Omsorgsmåneder.Barnetrygd( + Periode(januar(2000), september(2000)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) + + Periode(oktober(2000), desember(2000)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + ) + + OmsorgsyterErMedlemIFolketrygden.vilkarsVurder( + OmsorgsyterErMedlemIFolketrygden.Grunnlag( + medlemskapsgrunnlag = Medlemskapsgrunnlag( + Medlemskapsunntak( + ikkeMedlem = setOf( + MedlemskapsunntakPeriode( + fraOgMed = januar(2024), + tilOgMed = juni(2024), + ) + ), + pliktigEllerFrivillig = setOf( + MedlemskapsunntakPeriode( + fraOgMed = juli(2024), + tilOgMed = desember(2024), + ) + ), + rådata = "" + ) + ), + omsorgsmåneder = alle, + antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår, + landstilknytningMåneder = år(2024).landstilknytningmåneder(Landstilknytning.Eøs.UkjentPrimærOgSekundærLand), + ) + ).also { + assertThat(it.grunnlag.omsorgsmåneder()).isEqualTo(alle) + } + } } diff --git a/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterHarGyldigOmsorgsarbeidTest.kt b/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterHarGyldigOmsorgsarbeidTest.kt new file mode 100644 index 00000000..bb2c69dc --- /dev/null +++ b/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterHarGyldigOmsorgsarbeidTest.kt @@ -0,0 +1,182 @@ +package no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.omsorgsopptjening.model + +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.common.omsorgsmåneder +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.common.tilOmsorgsmåneder +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.common.tilUtbetalingsmåneder +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.common.utbetalingsmåneder +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.persongrunnlag.model.DomainOmsorgstype +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.persongrunnlag.model.Landstilknytning +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.desember +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.januar +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.juli +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.juni +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.november +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.oktober +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.september +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.år +import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.periode.Periode +import org.assertj.core.api.Assertions.assertThat +import org.junit.jupiter.api.Test + +class OmsorgsyterHarGyldigOmsorgsarbeidTest { + @Test + fun `avslag hvis ingen måneder med utbetaling`() { + OmsorgsyterHarGyldigOmsorgsarbeid.vilkarsVurder( + OmsorgsyterHarGyldigOmsorgsarbeid.Grunnlag( + omsorgsytersUtbetalingsmåneder = Utbetalingsmåneder(emptySet()), + omsorgsmåneder = år(2022).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full), + antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår + ) + ).also { + assertThat(it.utfall.erAvslag()).isTrue() + } + } + + @Test + fun `innvilget hvis alle måneder med utbetaling og omsorg`() { + OmsorgsyterHarGyldigOmsorgsarbeid.vilkarsVurder( + OmsorgsyterHarGyldigOmsorgsarbeid.Grunnlag( + omsorgsytersUtbetalingsmåneder = år(2022).utbetalingsmåneder(200, Landstilknytning.Norge), + omsorgsmåneder = år(2022).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full), + antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår + ) + ).also { + assertThat(it.utfall.erInnvilget()).isTrue() + } + } + + @Test + fun `avslag hvis omsorgsmåneder som kvalifiserer for automatisk godskriving ikke overlapper tilstrekkelig med utbetalingsmånedene`() { + OmsorgsyterHarGyldigOmsorgsarbeid.vilkarsVurder( + OmsorgsyterHarGyldigOmsorgsarbeid.Grunnlag( + omsorgsytersUtbetalingsmåneder = + Utbetalingsmåneder( + Periode(januar(2022), juni(2022)).tilUtbetalingsmåneder(200, Landstilknytning.Norge) + + Periode(juli(2022), desember(2022)).tilUtbetalingsmåneder(0, Landstilknytning.Norge) + ), + omsorgsmåneder = Omsorgsmåneder.Barnetrygd( + Periode(januar(2022), juni(2022)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) + + Periode(juli(2022), desember(2022)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + ), + antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår + ) + ).also { + assertThat(it.utfall.erAvslag()).isTrue() + } + } + + @Test + fun `innvilget hvis omsorgsmåneder som kvalifiserer for automatisk godskriving overlapper tilstrekkelig med utbetalingsmånedene`() { + OmsorgsyterHarGyldigOmsorgsarbeid.vilkarsVurder( + OmsorgsyterHarGyldigOmsorgsarbeid.Grunnlag( + omsorgsytersUtbetalingsmåneder = + Utbetalingsmåneder( + Periode(januar(2022), juni(2022)).tilUtbetalingsmåneder(200, Landstilknytning.Norge) + + Periode(juli(2022), desember(2022)).tilUtbetalingsmåneder(400, Landstilknytning.Norge) + ), + omsorgsmåneder = Omsorgsmåneder.Barnetrygd( + Periode(januar(2022), juni(2022)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) + + Periode(juli(2022), desember(2022)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + ), + antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår + ) + ).also { + assertThat(it.utfall.erInnvilget()).isTrue() + } + } + + @Test + fun `innvilget hvis omsorgsmåneder som ikke kvalifiserer for automatisk godskriving overlapper tilstrekkelig med utbetalingsmånedene`() { + OmsorgsyterHarGyldigOmsorgsarbeid.vilkarsVurder( + OmsorgsyterHarGyldigOmsorgsarbeid.Grunnlag( + omsorgsytersUtbetalingsmåneder = + Utbetalingsmåneder( + Periode(januar(2022), juni(2022)).tilUtbetalingsmåneder(200, Landstilknytning.Norge) + + Periode(juli(2022), desember(2022)).tilUtbetalingsmåneder(400, Landstilknytning.Norge) + ), + omsorgsmåneder = Omsorgsmåneder.Barnetrygd( + Periode(januar(2022), oktober(2022)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) + + Periode(november(2022), desember(2022)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + ), + antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår + ) + ).also { + assertThat(it.utfall.erInnvilget()).isTrue() + } + } + + @Test + fun `avslag hvis omsorgsmåneder som ikke kvalifiserer for automatisk godskriving ikke overlapper tilstrekkelig med utbetalingsmånedene`() { + OmsorgsyterHarGyldigOmsorgsarbeid.vilkarsVurder( + OmsorgsyterHarGyldigOmsorgsarbeid.Grunnlag( + omsorgsytersUtbetalingsmåneder = + Utbetalingsmåneder( + Periode(januar(2022), juni(2022)).tilUtbetalingsmåneder( + 0, + Landstilknytning.Eøs.UkjentPrimærOgSekundærLand + ) + + Periode(november(2022), desember(2022)).tilUtbetalingsmåneder(400, Landstilknytning.Norge) + ), + omsorgsmåneder = Omsorgsmåneder.Barnetrygd( + Periode(januar(2022), oktober(2022)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) + + Periode(november(2022), desember(2022)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + ), + antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår + ) + ).also { + assertThat(it.utfall.erAvslag()).isTrue() + } + } + + @Test + fun `bruker og tar vare på relevante omsorgsmåneder ved vurdering av vilkår - kan godskrives automatisk`() { + val alle = Omsorgsmåneder.Barnetrygd( + Periode(januar(2000), september(2000)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + + Periode(oktober(2000), Periode.desember(2000)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) + ) + + val relevant = Omsorgsmåneder.Barnetrygd( + Periode(januar(2000), september(2000)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + ) + + OmsorgsyterHarGyldigOmsorgsarbeid.vilkarsVurder( + OmsorgsyterHarGyldigOmsorgsarbeid.Grunnlag( + omsorgsytersUtbetalingsmåneder = + Utbetalingsmåneder( + Periode(januar(2022), juni(2022)).tilUtbetalingsmåneder( + 0, Landstilknytning.Eøs.UkjentPrimærOgSekundærLand + ) + Periode(november(2022), desember(2022)).tilUtbetalingsmåneder(400, Landstilknytning.Norge) + ), + omsorgsmåneder = alle, + antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår + ) + ).also { + assertThat(it.grunnlag.omsorgsmåneder()).isEqualTo(relevant) + } + } + + @Test + fun `bruker og tar vare på relevante omsorgsmåneder ved vurdering av vilkår - kan ikke godskrives automatisk`() { + val alle = Omsorgsmåneder.Barnetrygd( + Periode(januar(2000), september(2000)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) + + Periode(oktober(2000), Periode.desember(2000)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + ) + + OmsorgsyterHarGyldigOmsorgsarbeid.vilkarsVurder( + OmsorgsyterHarGyldigOmsorgsarbeid.Grunnlag( + omsorgsytersUtbetalingsmåneder = + Utbetalingsmåneder( + Periode(januar(2022), juni(2022)).tilUtbetalingsmåneder( + 0, + Landstilknytning.Eøs.UkjentPrimærOgSekundærLand + ) + + Periode(november(2022), desember(2022)).tilUtbetalingsmåneder(400, Landstilknytning.Norge) + ), + omsorgsmåneder = alle, + antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår + ) + ).also { + assertThat(it.grunnlag.omsorgsmåneder()).isEqualTo(alle) + } + } +} diff --git a/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterHarMestOmsorgAvAlleOmsorgsytereTest.kt b/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterHarMestOmsorgAvAlleOmsorgsytereTest.kt index 0295e627..5c715d75 100644 --- a/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterHarMestOmsorgAvAlleOmsorgsytereTest.kt +++ b/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterHarMestOmsorgAvAlleOmsorgsytereTest.kt @@ -1,5 +1,6 @@ package no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.omsorgsopptjening.model +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.common.tilOmsorgsmåneder import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.persongrunnlag.model.DomainOmsorgstype import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.april import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.august @@ -25,7 +26,7 @@ class OmsorgsyterHarMestOmsorgAvAlleOmsorgsytereTest { omsorgsyter = "mor", omsorgsmottaker = "gutt", omsorgsmåneder = Omsorgsmåneder.Barnetrygd( - Periode(januar(2022), juli(2022)).omsorgsmåneder( + Periode(januar(2022), juli(2022)).tilOmsorgsmåneder( DomainOmsorgstype.Barnetrygd.Full ) ), @@ -35,7 +36,7 @@ class OmsorgsyterHarMestOmsorgAvAlleOmsorgsytereTest { omsorgsyter = "far", omsorgsmottaker = "gutt", omsorgsmåneder = Omsorgsmåneder.Barnetrygd( - Periode(august(2022), desember(2022)).omsorgsmåneder( + Periode(august(2022), desember(2022)).tilOmsorgsmåneder( DomainOmsorgstype.Barnetrygd.Full ) ), @@ -59,7 +60,7 @@ class OmsorgsyterHarMestOmsorgAvAlleOmsorgsytereTest { omsorgsyter = "mor", omsorgsmottaker = "gutt", omsorgsmåneder = Omsorgsmåneder.Barnetrygd( - Periode(januar(2022), mars(2022)).omsorgsmåneder( + Periode(januar(2022), mars(2022)).tilOmsorgsmåneder( DomainOmsorgstype.Barnetrygd.Full ) ), @@ -69,7 +70,7 @@ class OmsorgsyterHarMestOmsorgAvAlleOmsorgsytereTest { omsorgsyter = "far", omsorgsmottaker = "gutt", omsorgsmåneder = Omsorgsmåneder.Barnetrygd( - Periode(april(2022), desember(2022)).omsorgsmåneder( + Periode(april(2022), desember(2022)).tilOmsorgsmåneder( DomainOmsorgstype.Barnetrygd.Full ) ), @@ -95,7 +96,7 @@ class OmsorgsyterHarMestOmsorgAvAlleOmsorgsytereTest { omsorgsyter = "mor", omsorgsmottaker = "gutt", omsorgsmåneder = Omsorgsmåneder.Barnetrygd( - Periode(januar(2022), juni(2022)).omsorgsmåneder( + Periode(januar(2022), juni(2022)).tilOmsorgsmåneder( DomainOmsorgstype.Barnetrygd.Full ) ), @@ -105,7 +106,7 @@ class OmsorgsyterHarMestOmsorgAvAlleOmsorgsytereTest { omsorgsyter = "far", omsorgsmottaker = "gutt", omsorgsmåneder = Omsorgsmåneder.Barnetrygd( - Periode(juli(2022), desember(2022)).omsorgsmåneder( + Periode(juli(2022), desember(2022)).tilOmsorgsmåneder( DomainOmsorgstype.Barnetrygd.Full ) ), @@ -130,7 +131,7 @@ class OmsorgsyterHarMestOmsorgAvAlleOmsorgsytereTest { omsorgsyter = "mor", omsorgsmottaker = "gutt", omsorgsmåneder = Omsorgsmåneder.Barnetrygd( - Periode(januar(2022), januar(2022)).omsorgsmåneder( + Periode(januar(2022), januar(2022)).tilOmsorgsmåneder( DomainOmsorgstype.Barnetrygd.Full ) ), @@ -140,7 +141,7 @@ class OmsorgsyterHarMestOmsorgAvAlleOmsorgsytereTest { omsorgsyter = "far", omsorgsmottaker = "gutt", omsorgsmåneder = Omsorgsmåneder.Barnetrygd( - Periode(februar(2022), desember(2022)).omsorgsmåneder( + Periode(februar(2022), desember(2022)).tilOmsorgsmåneder( DomainOmsorgstype.Barnetrygd.Delt ) ), @@ -164,7 +165,7 @@ class OmsorgsyterHarMestOmsorgAvAlleOmsorgsytereTest { omsorgsyter = "mor", omsorgsmottaker = "gutt", omsorgsmåneder = Omsorgsmåneder.Barnetrygd( - Periode(januar(2022), desember(2022)).omsorgsmåneder( + Periode(januar(2022), desember(2022)).tilOmsorgsmåneder( DomainOmsorgstype.Barnetrygd.Delt ) ), @@ -174,7 +175,7 @@ class OmsorgsyterHarMestOmsorgAvAlleOmsorgsytereTest { omsorgsyter = "far", omsorgsmottaker = "gutt", omsorgsmåneder = Omsorgsmåneder.Barnetrygd( - Periode(januar(2022), desember(2022)).omsorgsmåneder( + Periode(januar(2022), desember(2022)).tilOmsorgsmåneder( DomainOmsorgstype.Barnetrygd.Delt ) ), @@ -200,7 +201,7 @@ class OmsorgsyterHarMestOmsorgAvAlleOmsorgsytereTest { omsorgsyter = "mor", omsorgsmottaker = "gutt", omsorgsmåneder = Omsorgsmåneder.Barnetrygd( - Periode(januar(2022), desember(2022)).omsorgsmåneder( + Periode(januar(2022), desember(2022)).tilOmsorgsmåneder( DomainOmsorgstype.Barnetrygd.Delt ) ), @@ -210,7 +211,7 @@ class OmsorgsyterHarMestOmsorgAvAlleOmsorgsytereTest { omsorgsyter = "far", omsorgsmottaker = "gutt", omsorgsmåneder = Omsorgsmåneder.Barnetrygd( - Periode(mai(2022), desember(2022)).omsorgsmåneder( + Periode(mai(2022), desember(2022)).tilOmsorgsmåneder( DomainOmsorgstype.Barnetrygd.Delt ) ), @@ -237,7 +238,7 @@ class OmsorgsyterHarMestOmsorgAvAlleOmsorgsytereTest { omsorgsyter = "mor", omsorgsmottaker = "gutt", omsorgsmåneder = Omsorgsmåneder.Barnetrygd( - Periode(mai(2022), desember(2022)).omsorgsmåneder( + Periode(mai(2022), desember(2022)).tilOmsorgsmåneder( DomainOmsorgstype.Barnetrygd.Delt ) ), @@ -247,7 +248,7 @@ class OmsorgsyterHarMestOmsorgAvAlleOmsorgsytereTest { omsorgsyter = "far", omsorgsmottaker = "gutt", omsorgsmåneder = Omsorgsmåneder.Barnetrygd( - Periode(januar(2022), desember(2022)).omsorgsmåneder( + Periode(januar(2022), desember(2022)).tilOmsorgsmåneder( DomainOmsorgstype.Barnetrygd.Delt ) ), @@ -274,10 +275,10 @@ class OmsorgsyterHarMestOmsorgAvAlleOmsorgsytereTest { omsorgsyter = "mor", omsorgsmottaker = "gutt", omsorgsmåneder = Omsorgsmåneder.Barnetrygd( - Periode(januar(2022), april(2022)).omsorgsmåneder( + Periode(januar(2022), april(2022)).tilOmsorgsmåneder( DomainOmsorgstype.Barnetrygd.Delt ) + - Periode(mai(2022), desember(2022)).omsorgsmåneder( + Periode(mai(2022), desember(2022)).tilOmsorgsmåneder( DomainOmsorgstype.Barnetrygd.Delt ) ), @@ -287,7 +288,7 @@ class OmsorgsyterHarMestOmsorgAvAlleOmsorgsytereTest { omsorgsyter = "far", omsorgsmottaker = "gutt", omsorgsmåneder = Omsorgsmåneder.Barnetrygd( - Periode(mai(2022), desember(2022)).omsorgsmåneder( + Periode(mai(2022), desember(2022)).tilOmsorgsmåneder( DomainOmsorgstype.Barnetrygd.Delt ) ), diff --git a/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterHarTilstrekkeligOmsorgsarbeidTest.kt b/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterHarTilstrekkeligOmsorgsarbeidTest.kt index b9ae9700..01a64bf0 100644 --- a/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterHarTilstrekkeligOmsorgsarbeidTest.kt +++ b/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterHarTilstrekkeligOmsorgsarbeidTest.kt @@ -1,6 +1,7 @@ package no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.omsorgsopptjening.model +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.common.tilOmsorgsmåneder import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.persongrunnlag.model.DomainOmsorgstype import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.august import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.desember @@ -8,7 +9,10 @@ import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.uti import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.juli import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.juni import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.mai +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.oktober +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.september import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.periode.Periode +import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Assertions.assertInstanceOf import org.junit.jupiter.api.Test import java.time.Month @@ -21,11 +25,11 @@ class OmsorgsyterHarTilstrekkeligOmsorgsarbeidTest { fun `Gitt en mottaker født utenfor omsorgsår når det er minst seks måneder full omsorg så invilget`() { OmsorgsyterHarTilstrekkeligOmsorgsarbeid.vilkarsVurder( grunnlag = OmsorgsyterHarTilstrekkeligOmsorgsarbeid.Grunnlag( - omsorgsytersOmsorgsmånederForOmsorgsmottaker = Omsorgsmåneder.Barnetrygd( + omsorgsmåneder = Omsorgsmåneder.Barnetrygd( Periode( YearMonth.of(2000, Month.JANUARY), YearMonth.of(2000, Month.JUNE) - ).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + ).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) ), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår ) @@ -38,11 +42,11 @@ class OmsorgsyterHarTilstrekkeligOmsorgsarbeidTest { fun `Gitt en mottaker født utenfor omsorgsår når det er seks måneder delt omsorg så ubestemt`() { OmsorgsyterHarTilstrekkeligOmsorgsarbeid.vilkarsVurder( grunnlag = OmsorgsyterHarTilstrekkeligOmsorgsarbeid.Grunnlag( - omsorgsytersOmsorgsmånederForOmsorgsmottaker = Omsorgsmåneder.Barnetrygd( + omsorgsmåneder = Omsorgsmåneder.Barnetrygd( Periode( YearMonth.of(2000, Month.JANUARY), YearMonth.of(2000, Month.JUNE) - ).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) + ).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) ), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår ) @@ -55,11 +59,11 @@ class OmsorgsyterHarTilstrekkeligOmsorgsarbeidTest { fun `Gitt en mottaker født I omsorgsår når det er minst en måned full omsorg så invilget`() { OmsorgsyterHarTilstrekkeligOmsorgsarbeid.vilkarsVurder( grunnlag = OmsorgsyterHarTilstrekkeligOmsorgsarbeid.Grunnlag( - omsorgsytersOmsorgsmånederForOmsorgsmottaker = Omsorgsmåneder.Barnetrygd( + omsorgsmåneder = Omsorgsmåneder.Barnetrygd( Periode( YearMonth.of(2000, Month.JANUARY), YearMonth.of(2000, Month.JANUARY) - ).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + ).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) ), antallMånederRegel = AntallMånederRegel.FødtIOmsorgsår ) @@ -72,11 +76,11 @@ class OmsorgsyterHarTilstrekkeligOmsorgsarbeidTest { fun `Gitt en mottaker født I omsorgsår når det er en måned delt omsorg så ubestemt`() { OmsorgsyterHarTilstrekkeligOmsorgsarbeid.vilkarsVurder( grunnlag = OmsorgsyterHarTilstrekkeligOmsorgsarbeid.Grunnlag( - omsorgsytersOmsorgsmånederForOmsorgsmottaker = Omsorgsmåneder.Barnetrygd( + omsorgsmåneder = Omsorgsmåneder.Barnetrygd( Periode( YearMonth.of(2000, Month.JANUARY), YearMonth.of(2000, Month.JANUARY) - ).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) + ).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) ), antallMånederRegel = AntallMånederRegel.FødtIOmsorgsår ) @@ -89,7 +93,7 @@ class OmsorgsyterHarTilstrekkeligOmsorgsarbeidTest { fun `Gitt en mottaker født I omsorgsår når det ikke er minst en måned full omsorg så avslag`() { OmsorgsyterHarTilstrekkeligOmsorgsarbeid.vilkarsVurder( grunnlag = OmsorgsyterHarTilstrekkeligOmsorgsarbeid.Grunnlag( - omsorgsytersOmsorgsmånederForOmsorgsmottaker = Omsorgsmåneder.Barnetrygd( + omsorgsmåneder = Omsorgsmåneder.Barnetrygd( (emptySet()) ), antallMånederRegel = AntallMånederRegel.FødtIOmsorgsår @@ -103,11 +107,11 @@ class OmsorgsyterHarTilstrekkeligOmsorgsarbeidTest { fun `Gitt en mottaker født I desember i omsorgsår når det er minst en måned full omsorg i påfølgende år så invilget`() { OmsorgsyterHarTilstrekkeligOmsorgsarbeid.vilkarsVurder( grunnlag = OmsorgsyterHarTilstrekkeligOmsorgsarbeid.Grunnlag( - omsorgsytersOmsorgsmånederForOmsorgsmottaker = Omsorgsmåneder.Barnetrygd( + omsorgsmåneder = Omsorgsmåneder.Barnetrygd( Periode( YearMonth.of(2001, Month.JANUARY), YearMonth.of(2001, Month.JANUARY) - ).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + ).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) ), antallMånederRegel = AntallMånederRegel.FødtIOmsorgsår ) @@ -121,7 +125,7 @@ class OmsorgsyterHarTilstrekkeligOmsorgsarbeidTest { fun `Gitt en mottaker født I desember i omsorgsår når det ikke er minst en måned full omsorg i påfølgende år så avslag`() { OmsorgsyterHarTilstrekkeligOmsorgsarbeid.vilkarsVurder( grunnlag = OmsorgsyterHarTilstrekkeligOmsorgsarbeid.Grunnlag( - omsorgsytersOmsorgsmånederForOmsorgsmottaker = Omsorgsmåneder.Barnetrygd(emptySet()), + omsorgsmåneder = Omsorgsmåneder.Barnetrygd(emptySet()), antallMånederRegel = AntallMånederRegel.FødtIOmsorgsår ), @@ -134,9 +138,9 @@ class OmsorgsyterHarTilstrekkeligOmsorgsarbeidTest { fun `innvilget hvis kombinasjon av delt og full men tilstrekkelig antall full`() { OmsorgsyterHarTilstrekkeligOmsorgsarbeid.vilkarsVurder( grunnlag = OmsorgsyterHarTilstrekkeligOmsorgsarbeid.Grunnlag( - omsorgsytersOmsorgsmånederForOmsorgsmottaker = Omsorgsmåneder.Barnetrygd( - Periode(januar(2020), juni(2020)).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + - Periode(juli(2020), desember(2020)).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) + omsorgsmåneder = Omsorgsmåneder.Barnetrygd( + Periode(januar(2020), juni(2020)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + + Periode(juli(2020), desember(2020)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) ), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår @@ -150,9 +154,9 @@ class OmsorgsyterHarTilstrekkeligOmsorgsarbeidTest { fun `ubestemt hvis kombinajon av delt og full, men ikke tilstrekkelig full`() { OmsorgsyterHarTilstrekkeligOmsorgsarbeid.vilkarsVurder( grunnlag = OmsorgsyterHarTilstrekkeligOmsorgsarbeid.Grunnlag( - omsorgsytersOmsorgsmånederForOmsorgsmottaker = Omsorgsmåneder.Barnetrygd( - Periode(januar(2020), mai(2020)).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + - Periode(juni(2020), desember(2020)).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) + omsorgsmåneder = Omsorgsmåneder.Barnetrygd( + Periode(januar(2020), mai(2020)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + + Periode(juni(2020), desember(2020)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) ), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår @@ -166,8 +170,8 @@ class OmsorgsyterHarTilstrekkeligOmsorgsarbeidTest { fun `ubestemt hvis delt og tilstrekkelig antall måneder`() { OmsorgsyterHarTilstrekkeligOmsorgsarbeid.vilkarsVurder( grunnlag = OmsorgsyterHarTilstrekkeligOmsorgsarbeid.Grunnlag( - omsorgsytersOmsorgsmånederForOmsorgsmottaker = Omsorgsmåneder.Barnetrygd( - Periode(januar(2020), desember(2020)).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) + omsorgsmåneder = Omsorgsmåneder.Barnetrygd( + Periode(januar(2020), desember(2020)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) ), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår @@ -181,8 +185,8 @@ class OmsorgsyterHarTilstrekkeligOmsorgsarbeidTest { fun `avslag hvis bare delt omsorg og ikke tilstrekkelig antall`() { OmsorgsyterHarTilstrekkeligOmsorgsarbeid.vilkarsVurder( grunnlag = OmsorgsyterHarTilstrekkeligOmsorgsarbeid.Grunnlag( - omsorgsytersOmsorgsmånederForOmsorgsmottaker = Omsorgsmåneder.Barnetrygd( - Periode(juli(2020), august(2020)).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) + omsorgsmåneder = Omsorgsmåneder.Barnetrygd( + Periode(juli(2020), august(2020)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) ), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår @@ -199,7 +203,7 @@ class OmsorgsyterHarTilstrekkeligOmsorgsarbeidTest { listOf(0, 1, 2, 3, 4, 5).forEach { monthsFullOmsorg -> OmsorgsyterHarTilstrekkeligOmsorgsarbeid.vilkarsVurder( grunnlag = OmsorgsyterHarTilstrekkeligOmsorgsarbeid.Grunnlag( - omsorgsytersOmsorgsmånederForOmsorgsmottaker = if (monthsFullOmsorg == 0) Omsorgsmåneder.Barnetrygd( + omsorgsmåneder = if (monthsFullOmsorg == 0) Omsorgsmåneder.Barnetrygd( emptySet() ) else Omsorgsmåneder.Barnetrygd( Periode( @@ -208,7 +212,7 @@ class OmsorgsyterHarTilstrekkeligOmsorgsarbeidTest { omsorgsår, monthsFullOmsorg ) - ).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + ).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) ), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår ) @@ -228,7 +232,7 @@ class OmsorgsyterHarTilstrekkeligOmsorgsarbeidTest { listOf(6, 7, 8, 9, 10, 11, 12).forEach { monthsFullOmsorg -> OmsorgsyterHarTilstrekkeligOmsorgsarbeid.vilkarsVurder( grunnlag = OmsorgsyterHarTilstrekkeligOmsorgsarbeid.Grunnlag( - omsorgsytersOmsorgsmånederForOmsorgsmottaker = if (monthsFullOmsorg == 0) Omsorgsmåneder.Barnetrygd( + omsorgsmåneder = if (monthsFullOmsorg == 0) Omsorgsmåneder.Barnetrygd( emptySet() ) else Omsorgsmåneder.Barnetrygd( Periode( @@ -237,7 +241,7 @@ class OmsorgsyterHarTilstrekkeligOmsorgsarbeidTest { omsorgsår, monthsFullOmsorg ) - ).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + ).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) ), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår ) @@ -253,7 +257,7 @@ class OmsorgsyterHarTilstrekkeligOmsorgsarbeidTest { listOf(0, 1, 2, 3, 4, 5).forEach { monthsFullOmsorg -> OmsorgsyterHarTilstrekkeligOmsorgsarbeid.vilkarsVurder( grunnlag = OmsorgsyterHarTilstrekkeligOmsorgsarbeid.Grunnlag( - omsorgsytersOmsorgsmånederForOmsorgsmottaker = if (monthsFullOmsorg == 0) Omsorgsmåneder.Hjelpestønad( + omsorgsmåneder = if (monthsFullOmsorg == 0) Omsorgsmåneder.Hjelpestønad( emptySet() ) else Omsorgsmåneder.Hjelpestønad( Periode( @@ -262,7 +266,7 @@ class OmsorgsyterHarTilstrekkeligOmsorgsarbeidTest { omsorgsår, monthsFullOmsorg ) - ).omsorgsmåneder(DomainOmsorgstype.Hjelpestønad) + ).tilOmsorgsmåneder(DomainOmsorgstype.Hjelpestønad) ), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår ) @@ -282,7 +286,7 @@ class OmsorgsyterHarTilstrekkeligOmsorgsarbeidTest { listOf(6, 7, 8, 9, 10, 11, 12).forEach { monthsFullOmsorg -> OmsorgsyterHarTilstrekkeligOmsorgsarbeid.vilkarsVurder( grunnlag = OmsorgsyterHarTilstrekkeligOmsorgsarbeid.Grunnlag( - omsorgsytersOmsorgsmånederForOmsorgsmottaker = if (monthsFullOmsorg == 0) Omsorgsmåneder.Hjelpestønad( + omsorgsmåneder = if (monthsFullOmsorg == 0) Omsorgsmåneder.Hjelpestønad( emptySet() ) else Omsorgsmåneder.Hjelpestønad( Periode( @@ -291,7 +295,7 @@ class OmsorgsyterHarTilstrekkeligOmsorgsarbeidTest { omsorgsår, monthsFullOmsorg ) - ).omsorgsmåneder(DomainOmsorgstype.Hjelpestønad) + ).tilOmsorgsmåneder(DomainOmsorgstype.Hjelpestønad) ), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår ) @@ -314,11 +318,11 @@ class OmsorgsyterHarTilstrekkeligOmsorgsarbeidTest { val omsorgsår = 2000 OmsorgsyterHarTilstrekkeligOmsorgsarbeid.vilkarsVurder( grunnlag = OmsorgsyterHarTilstrekkeligOmsorgsarbeid.Grunnlag( - omsorgsytersOmsorgsmånederForOmsorgsmottaker = Omsorgsmåneder.Barnetrygd( + omsorgsmåneder = Omsorgsmåneder.Barnetrygd( Periode( YearMonth.of(omsorgsår, Month.JANUARY), YearMonth.of(omsorgsår, Month.MARCH) - ).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + ).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) ), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår ) @@ -334,12 +338,42 @@ class OmsorgsyterHarTilstrekkeligOmsorgsarbeidTest { } } } -} -internal fun YearMonth.omsorgsmåned(omsorgstype: DomainOmsorgstype): Omsorgsmåneder.Omsorgsmåned { - return Omsorgsmåneder.Omsorgsmåned(this, omsorgstype) -} + @Test + fun `bruker og tar vare på relevante omsorgsmåneder ved vurdering av vilkår - kan godskrives automatisk`() { + val alle = Omsorgsmåneder.Barnetrygd( + Periode(januar(2000), september(2000)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + + Periode(oktober(2000), desember(2000)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) + ) -internal fun Periode.omsorgsmåneder(omsorgstype: DomainOmsorgstype): Set { - return alleMåneder().map { Omsorgsmåneder.Omsorgsmåned(it, omsorgstype) }.toSet() + val relevant = Omsorgsmåneder.Barnetrygd( + Periode(januar(2000), september(2000)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + ) + + OmsorgsyterHarTilstrekkeligOmsorgsarbeid.vilkarsVurder( + grunnlag = OmsorgsyterHarTilstrekkeligOmsorgsarbeid.Grunnlag( + omsorgsmåneder = alle, + antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår + ) + ).also { vurdering -> + assertThat(vurdering.grunnlag.omsorgsmåneder()).isEqualTo(relevant) + } + } + + @Test + fun `bruker og tar vare på relevante omsorgsmåneder ved vurdering av vilkår - kan ikke godskrives automatisk`() { + val alle = Omsorgsmåneder.Barnetrygd( + Periode(januar(2000), september(2000)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) + + Periode(oktober(2000), desember(2000)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + ) + + OmsorgsyterHarTilstrekkeligOmsorgsarbeid.vilkarsVurder( + grunnlag = OmsorgsyterHarTilstrekkeligOmsorgsarbeid.Grunnlag( + omsorgsmåneder = alle, + antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår + ) + ).also { vurdering -> + assertThat(vurdering.grunnlag.omsorgsmåneder()).isEqualTo(alle) + } + } } diff --git "a/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterMottarIkkePensjonEllerUf\303\270retrygdIE\303\270sTest.kt" "b/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterMottarIkkePensjonEllerUf\303\270retrygdIE\303\270sTest.kt" index 102d6509..a7fb1644 100644 --- "a/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterMottarIkkePensjonEllerUf\303\270retrygdIE\303\270sTest.kt" +++ "b/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/omsorgsopptjening/model/OmsorgsyterMottarIkkePensjonEllerUf\303\270retrygdIE\303\270sTest.kt" @@ -1,12 +1,19 @@ package no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.omsorgsopptjening.model +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.common.landstilknytningmåneder +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.common.tilOmsorgsmåned +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.common.tilOmsorgsmåneder +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.common.ytelseMåneder import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.persongrunnlag.model.DomainOmsorgstype import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.persongrunnlag.model.Landstilknytning import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.februar import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.januar import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.mars +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.oktober +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.september import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.år import no.nav.pensjon.opptjening.omsorgsopptjening.felles.domene.periode.Periode +import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Assertions.assertInstanceOf import org.junit.jupiter.api.Test @@ -15,7 +22,7 @@ class OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøsTest { fun `innvilget dersom bruker ikke har noen ytelsesmåneder`() { OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs.vilkarsVurder( OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs.Grunnlag( - omsorgsmåneder = Omsorgsmåneder.Barnetrygd(setOf(januar(2024).omsorgsmåned(DomainOmsorgstype.Barnetrygd.Full))), + omsorgsmåneder = Omsorgsmåneder.Barnetrygd(setOf(januar(2024).tilOmsorgsmåned(DomainOmsorgstype.Barnetrygd.Full))), ytelsemåneder = Ytelsemåneder(emptySet()), landstilknytningmåneder = år(2024).landstilknytningmåneder(Landstilknytning.Norge), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår @@ -29,7 +36,7 @@ class OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøsTest { fun `innvilget dersom bruker har noen ytelsesmåneder i eøs, men tilstrekkelig antall omsorgsmåneder utover disse`() { OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs.vilkarsVurder( OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs.Grunnlag( - omsorgsmåneder = Omsorgsmåneder.Barnetrygd(år(2024).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full)), + omsorgsmåneder = Omsorgsmåneder.Barnetrygd(år(2024).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full)), ytelsemåneder = Periode(januar(2024), februar(2024)).ytelseMåneder(), landstilknytningmåneder = år(2024).landstilknytningmåneder(Landstilknytning.Eøs.NorgeSekundærland), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår @@ -43,7 +50,7 @@ class OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøsTest { fun `ubestemt dersom alle omsorgsmåneder er ytelesmåneder i eøs`() { OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs.vilkarsVurder( OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs.Grunnlag( - omsorgsmåneder = Omsorgsmåneder.Barnetrygd(år(2024).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full)), + omsorgsmåneder = Omsorgsmåneder.Barnetrygd(år(2024).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full)), ytelsemåneder = år(2024).ytelseMåneder(), landstilknytningmåneder = år(2024).landstilknytningmåneder(Landstilknytning.Eøs.UkjentPrimærOgSekundærLand), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår @@ -57,7 +64,7 @@ class OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøsTest { fun `avslag dersom alle omsorgsmåneder er ytelesmåneder i eøs og antall ikke er tilstrekkelig`() { OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs.vilkarsVurder( OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs.Grunnlag( - omsorgsmåneder = Omsorgsmåneder.Barnetrygd(Periode(januar(2024), mars(2024)).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full)), + omsorgsmåneder = Omsorgsmåneder.Barnetrygd(Periode(januar(2024), mars(2024)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full)), ytelsemåneder = Periode(januar(2024), mars(2024)).ytelseMåneder(), landstilknytningmåneder = Periode( januar(2024), @@ -74,7 +81,7 @@ class OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøsTest { fun `innvilget dersom ingen ytelsesmåneder i eøs`() { OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs.vilkarsVurder( OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs.Grunnlag( - omsorgsmåneder = Omsorgsmåneder.Barnetrygd(år(2024).omsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full)), + omsorgsmåneder = Omsorgsmåneder.Barnetrygd(år(2024).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full)), ytelsemåneder = år(2024).ytelseMåneder(), landstilknytningmåneder = år(2024).landstilknytningmåneder(Landstilknytning.Norge), antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår @@ -83,8 +90,47 @@ class OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøsTest { assertInstanceOf(VilkårsvurderingUtfall.Innvilget::class.java, it.utfall) } } + + @Test + fun `bruker og tar vare på relevante omsorgsmåneder ved vurdering av vilkår - kan godskrives automatisk`() { + val alle = Omsorgsmåneder.Barnetrygd( + Periode(januar(2000), september(2000)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + + Periode(oktober(2000), Periode.desember(2000)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) + ) + + val relevant = Omsorgsmåneder.Barnetrygd( + Periode(januar(2000), september(2000)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + ) + + OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs.vilkarsVurder( + OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs.Grunnlag( + omsorgsmåneder = alle, + ytelsemåneder = år(2024).ytelseMåneder(), + landstilknytningmåneder = år(2024).landstilknytningmåneder(Landstilknytning.Norge), + antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår + ) + ).also { + assertThat(it.grunnlag.omsorgsmåneder()).isEqualTo(relevant) + } + } + + @Test + fun `bruker og tar vare på relevante omsorgsmåneder ved vurdering av vilkår - kan ikke godskrives automatisk`() { + val alle = Omsorgsmåneder.Barnetrygd( + Periode(januar(2000), september(2000)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Delt) + + Periode(oktober(2000), Periode.desember(2000)).tilOmsorgsmåneder(DomainOmsorgstype.Barnetrygd.Full) + ) + + OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs.vilkarsVurder( + OmsorgsyterMottarIkkePensjonEllerUføretrygdIEøs.Grunnlag( + omsorgsmåneder = alle, + ytelsemåneder = år(2024).ytelseMåneder(), + landstilknytningmåneder = år(2024).landstilknytningmåneder(Landstilknytning.Norge), + antallMånederRegel = AntallMånederRegel.FødtUtenforOmsorgsår + ) + ).also { + assertThat(it.grunnlag.omsorgsmåneder()).isEqualTo(alle) + } + } } -fun Periode.ytelseMåneder(): Ytelsemåneder { - return Ytelsemåneder(alleMåneder()) -} \ No newline at end of file diff --git a/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/persongrunnlag/model/OmsorgsopptjeningsgrunnlagServiceImplTest.kt b/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/persongrunnlag/model/OmsorgsopptjeningsgrunnlagServiceImplTest.kt index 1f88540c..0cd69af5 100644 --- a/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/persongrunnlag/model/OmsorgsopptjeningsgrunnlagServiceImplTest.kt +++ b/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/persongrunnlag/model/OmsorgsopptjeningsgrunnlagServiceImplTest.kt @@ -245,9 +245,9 @@ class OmsorgsopptjeningsgrunnlagServiceImplTest { } grl.forTilstrekkeligOmsorgsarbeid().also { assertThat(it.antallMånederRegel).isEqualTo(AntallMånederRegel.FødtIOmsorgsår) - assertThat(it.omsorgsytersOmsorgsmånederForOmsorgsmottaker.alle()).isEqualTo(år(2021).alleMåneder()) - assertThat(it.omsorgsytersOmsorgsmånederForOmsorgsmottaker.antall()).isEqualTo(12) - assertThat(it.omsorgsytersOmsorgsmånederForOmsorgsmottaker.omsorgstype()).isEqualTo( + assertThat(it.omsorgsmåneder().alle()).isEqualTo(år(2021).alleMåneder()) + assertThat(it.omsorgsmåneder().antall()).isEqualTo(12) + assertThat(it.omsorgsmåneder().omsorgstype()).isEqualTo( DomainOmsorgskategori.BARNETRYGD ) } @@ -272,8 +272,8 @@ class OmsorgsopptjeningsgrunnlagServiceImplTest { assertThat(it.medlemskapsgrunnlag.medlemskapsunntak.pliktigEllerFrivillig).isEmpty() assertThat(it.medlemskapsgrunnlag.medlemskapsunntak.rådata).isEqualTo("") assertThat(it.medlemskapsgrunnlag.medlemskapsunntak.rådata).isEqualTo("") - assertThat(it.omsorgsytersOmsorgsmåneder.alle()).isEqualTo(år(2021).alleMåneder()) - assertThat(it.omsorgsytersOmsorgsmåneder.antall()).isEqualTo(12) + assertThat(it.omsorgsmåneder().alle()).isEqualTo(år(2021).alleMåneder()) + assertThat(it.omsorgsmåneder().antall()).isEqualTo(12) assertThat(it.landstilknytningMåneder.alle()).isEqualTo(år(2021).alleMåneder()) } } @@ -331,7 +331,7 @@ class OmsorgsopptjeningsgrunnlagServiceImplTest { } grl.forTilstrekkeligOmsorgsarbeid().also { assertThat(it.antallMånederRegel).isEqualTo(AntallMånederRegel.FødtUtenforOmsorgsår) - assertThat(it.omsorgsytersOmsorgsmånederForOmsorgsmottaker.alle()).isEqualTo( + assertThat(it.omsorgsmåneder().alle()).isEqualTo( setOf( februar(2021), mars(2021), @@ -342,8 +342,8 @@ class OmsorgsopptjeningsgrunnlagServiceImplTest { desember(2021) ) ) - assertThat(it.omsorgsytersOmsorgsmånederForOmsorgsmottaker.antall()).isEqualTo(7) - assertThat(it.omsorgsytersOmsorgsmånederForOmsorgsmottaker.omsorgstype()).isEqualTo( + assertThat(it.omsorgsmåneder().antall()).isEqualTo(7) + assertThat(it.omsorgsmåneder().omsorgstype()).isEqualTo( DomainOmsorgskategori.BARNETRYGD ) } @@ -378,7 +378,7 @@ class OmsorgsopptjeningsgrunnlagServiceImplTest { assertThat(it.medlemskapsgrunnlag.medlemskapsunntak.pliktigEllerFrivillig).isEmpty() assertThat(it.medlemskapsgrunnlag.medlemskapsunntak.rådata).isEqualTo("") assertThat(it.medlemskapsgrunnlag.medlemskapsunntak.rådata).isEqualTo("") - assertThat(it.omsorgsytersOmsorgsmåneder.alle()).isEqualTo( + assertThat(it.omsorgsmåneder().alle()).isEqualTo( setOf( februar(2021), mars(2021), @@ -389,7 +389,7 @@ class OmsorgsopptjeningsgrunnlagServiceImplTest { desember(2021) ) ) - assertThat(it.omsorgsytersOmsorgsmåneder.antall()).isEqualTo(7) + assertThat(it.omsorgsmåneder().antall()).isEqualTo(7) assertThat(it.landstilknytningMåneder.alle()).isEqualTo( setOf( februar(2021), diff --git a/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/persongrunnlag/model/PersongrunnlagMeldingServiceImplTest.kt b/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/persongrunnlag/model/PersongrunnlagMeldingServiceImplTest.kt index d919b40a..f1f8e54d 100644 --- a/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/persongrunnlag/model/PersongrunnlagMeldingServiceImplTest.kt +++ b/src/test/kotlin/no/nav/pensjon/opptjening/omsorgsopptjening/bestem/pensjonsopptjening/persongrunnlag/model/PersongrunnlagMeldingServiceImplTest.kt @@ -43,8 +43,8 @@ import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.per import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.desember import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.januar import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.juli -import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.mai import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.juni +import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.mai import no.nav.pensjon.opptjening.omsorgsopptjening.bestem.pensjonsopptjening.utils.år import no.nav.pensjon.opptjening.omsorgsopptjening.felles.CorrelationId import no.nav.pensjon.opptjening.omsorgsopptjening.felles.InnlesingId @@ -141,7 +141,7 @@ class PersongrunnlagMeldingServiceImplTest : SpringContextTest.NoKafka() { ).also { assertEquals( Periode(2021).alleMåneder(), - it.omsorgsytersOmsorgsmånederForOmsorgsmottaker.alle(), + it.omsorgsmåneder().alle(), ) assertEquals( AntallMånederRegel.FødtIOmsorgsår, @@ -232,7 +232,7 @@ class PersongrunnlagMeldingServiceImplTest : SpringContextTest.NoKafka() { YearMonth.of(2020, Month.OCTOBER), YearMonth.of(2020, Month.DECEMBER) ).alleMåneder(), - it.omsorgsytersOmsorgsmånederForOmsorgsmottaker.alle() + it.omsorgsmåneder().alle() ) assertEquals( AntallMånederRegel.FødtIOmsorgsår, @@ -291,7 +291,7 @@ class PersongrunnlagMeldingServiceImplTest : SpringContextTest.NoKafka() { YearMonth.of(2020, Month.MAY), YearMonth.of(2020, Month.DECEMBER) ).alleMåneder(), - it.omsorgsytersOmsorgsmånederForOmsorgsmottaker.alle() + it.omsorgsmåneder().alle() ) assertEquals( AntallMånederRegel.FødtIOmsorgsår, @@ -346,7 +346,7 @@ class PersongrunnlagMeldingServiceImplTest : SpringContextTest.NoKafka() { ).also { assertEquals( Periode(2020).alleMåneder(), - it.omsorgsytersOmsorgsmånederForOmsorgsmottaker.alle() + it.omsorgsmåneder().alle() ) assertEquals( AntallMånederRegel.FødtUtenforOmsorgsår, @@ -401,7 +401,7 @@ class PersongrunnlagMeldingServiceImplTest : SpringContextTest.NoKafka() { ).also { assertEquals( Periode(YearMonth.of(2020, Month.JANUARY), YearMonth.of(2020, Month.MAY)).alleMåneder(), - it.omsorgsytersOmsorgsmånederForOmsorgsmottaker.alle() + it.omsorgsmåneder().alle() ) assertEquals( AntallMånederRegel.FødtUtenforOmsorgsår, @@ -463,7 +463,7 @@ class PersongrunnlagMeldingServiceImplTest : SpringContextTest.NoKafka() { ).also { assertEquals( Periode(YearMonth.of(2020, Month.JANUARY), YearMonth.of(2020, Month.MAY)).alleMåneder(), - it.omsorgsytersOmsorgsmånederForOmsorgsmottaker.alle() + it.omsorgsmåneder().alle() ) assertEquals( AntallMånederRegel.FødtUtenforOmsorgsår, @@ -1669,7 +1669,7 @@ class PersongrunnlagMeldingServiceImplTest : SpringContextTest.NoKafka() { ) behandling.vilkårsvurdering.finnVurdering().also { vurdering -> assertEquals(6, vurdering.grunnlag.antallMånederRegel.antall) - assertEquals(år(2020).alleMåneder(), vurdering.grunnlag.omsorgsytersOmsorgsmåneder.alle()) + assertEquals(år(2020).alleMåneder(), vurdering.grunnlag.omsorgsmåneder().alle()) assertEquals( setOf( YearMonth.of(2020, Month.JUNE), @@ -1677,13 +1677,6 @@ class PersongrunnlagMeldingServiceImplTest : SpringContextTest.NoKafka() { YearMonth.of(2020, Month.AUGUST), ), vurdering.grunnlag.omsorgsytersUtbetalingsmåneder.alle() ) - assertEquals( - setOf( - YearMonth.of(2020, Month.JUNE), - YearMonth.of(2020, Month.JULY), - YearMonth.of(2020, Month.AUGUST), - ), vurdering.grunnlag.gyldigeOmsorgsmåneder - ) } } }