diff --git a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/InntektApi.kt b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/InntektApi.kt index db977c1e..73ff1a7b 100644 --- a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/InntektApi.kt +++ b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/InntektApi.kt @@ -50,8 +50,6 @@ import no.nav.dagpenger.inntekt.oppslag.OppslagClient import no.nav.dagpenger.inntekt.rpc.InntektGrpcServer import no.nav.dagpenger.inntekt.subsumsjonbrukt.KafkaSubsumsjonBruktDataConsumer import no.nav.dagpenger.inntekt.subsumsjonbrukt.Vaktmester -import no.nav.dagpenger.inntekt.v1.InntektNotAuthorizedException -import no.nav.dagpenger.inntekt.v1.klassifisertInntekt import no.nav.dagpenger.inntekt.v1.opptjeningsperiodeApi import no.nav.dagpenger.inntekt.v1.spesifisertInntekt import no.nav.dagpenger.inntekt.v1.uklassifisertInntekt @@ -195,16 +193,6 @@ fun Application.inntektApi( ) call.respond(HttpStatusCode.NotFound, problem) } - exception { cause -> - LOGGER.warn("Request failed!", cause) - val problem = Problem( - type = URI("urn:dp:error:inntekt"), - title = "AktørId i request stemmer ikke med aktørId på inntekten du spør etter.", - detail = cause.message, - status = HttpStatusCode.Unauthorized.value - ) - call.respond(HttpStatusCode.Unauthorized, problem) - } exception { cause -> LOGGER.warn("Request failed!", cause) val problem = Problem( @@ -286,7 +274,6 @@ fun Application.inntektApi( route("/v1") { route("/inntekt") { spesifisertInntekt(behandlingsInntektsGetter) - klassifisertInntekt(inntektskomponentHttpClient, inntektStore) uklassifisertInntekt(inntektskomponentHttpClient, inntektStore, oppslagClient) } opptjeningsperiodeApi(inntektStore) diff --git a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/Inntektsklassifisering.kt b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/Inntektsklassifisering.kt deleted file mode 100644 index f569c3b5..00000000 --- a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/Inntektsklassifisering.kt +++ /dev/null @@ -1,83 +0,0 @@ -package no.nav.dagpenger.inntekt.klassifisering - -import kotlin.reflect.KFunction -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektBeskrivelse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektType -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektkomponentResponse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.SpesielleInntjeningsforhold - -fun klassifiserInntekter(uklassifiserteInntekter: InntektkomponentResponse): List { - - return uklassifiserteInntekter.arbeidsInntektMaaned?.map { måned -> - val årMåned = måned.aarMaaned - val avvik = måned.avvikListe ?: emptyList() - val klassifiserteInntekter = måned.arbeidsInntektInformasjon - ?.inntektListe - ?.filterNot { inntekt -> avvik.any { it.ident == inntekt.inntektsmottaker && it.opplysningspliktig == inntekt.opplysningspliktig } } - ?.map { inntekt -> - val datagrunnlagKlassifisering = DatagrunnlagKlassifisering( - inntekt.inntektType, - inntekt.beskrivelse, - inntekt.tilleggsinformasjon?.tilleggsinformasjonDetaljer?.spesielleInntjeningsforhold - ) - - val inntektKlasse = klassifiserInntekt(datagrunnlagKlassifisering) - KlassifisertInntekt(inntekt.beloep, inntektKlasse) - } ?: emptyList() - KlassifisertInntektMåned(årMåned, avvik.isNotEmpty(), klassifiserteInntekter) - } ?: emptyList() -} - -private fun klassifiserInntekt(datagrunnlag: DatagrunnlagKlassifisering): InntektKlasse { - val inntektKlassePredicates = listOf( - predicatesInntektklasseArbeid() to InntektKlasse.ARBEIDSINNTEKT, - predicatesInntektklasseDagpenger() to InntektKlasse.DAGPENGER, - predicatesInntektklasseDagpengerFangstFiske() to InntektKlasse.DAGPENGER_FANGST_FISKE, - predicatesInntektklasseNæringsinntekt() to InntektKlasse.FANGST_FISKE, - predicatesInntektklasseSykepenger() to InntektKlasse.SYKEPENGER, - predicatesInntektklasseSykepengerFangstFiske() to InntektKlasse.SYKEPENGER_FANGST_FISKE, - predicatesInntektklasseTiltakslønn() to InntektKlasse.TILTAKSLØNN - ) - - val klasser = inntektKlassePredicates - .filter { (predicates, _) -> matchesSingularPredicate(datagrunnlag, predicates) } - .map { (_, klasse) -> klasse } - - return when { - klasser.size > 1 -> throw KlassifiseringException("$datagrunnlag klassifisert til flere klasser: $klasser") - klasser.isEmpty() -> throw KlassifiseringException("Fant ingen klasse til $datagrunnlag") - else -> klasser.first() - } -} - -fun matchesSingularPredicate( - datagrunnlag: DatagrunnlagKlassifisering, - predicates: List<(DatagrunnlagKlassifisering) -> Boolean> -): Boolean { - - val matchingPredicates = predicates.filter { predicate -> predicate(datagrunnlag) } - - if (matchingPredicates.size > 1) { - throw MultipleMatchingPredicatesException( - "Multiple matching predicates: ${matchingPredicates.map { functionName(it) }}. " + - "Predicates: ${predicates.map { functionName(it) }}." - ) - } - - return matchingPredicates.size == 1 -} - -fun functionName(function: (V) -> T): String { - val functionAsKFunction: KFunction<*> = function as KFunction<*> - return functionAsKFunction.name -} - -data class DatagrunnlagKlassifisering( - val type: InntektType, - val beskrivelse: InntektBeskrivelse, - val forhold: SpesielleInntjeningsforhold? = null -) - -class KlassifiseringException(override val message: String) : RuntimeException(message) - -class MultipleMatchingPredicatesException(override val message: String) : RuntimeException(message) diff --git a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/KlassifisertInntekt.kt b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/KlassifisertInntekt.kt deleted file mode 100644 index 36fabdf5..00000000 --- a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/KlassifisertInntekt.kt +++ /dev/null @@ -1,32 +0,0 @@ -package no.nav.dagpenger.inntekt.klassifisering - -import java.math.BigDecimal -import java.time.YearMonth - -data class Inntekt( - val inntektsId: String, - val inntektsListe: List, - val manueltRedigert: Boolean, - val sisteAvsluttendeKalenderMåned: YearMonth -) - -data class KlassifisertInntektMåned( - val årMåned: YearMonth, - val harAvvik: Boolean?, - val klassifiserteInntekter: List -) - -data class KlassifisertInntekt( - val beløp: BigDecimal, - val inntektKlasse: InntektKlasse -) - -enum class InntektKlasse { - ARBEIDSINNTEKT, - DAGPENGER, - DAGPENGER_FANGST_FISKE, - SYKEPENGER_FANGST_FISKE, - FANGST_FISKE, - SYKEPENGER, - TILTAKSLØNN -} diff --git a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesArbeidsinntekt.kt b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesArbeidsinntekt.kt deleted file mode 100644 index 803ec6ab..00000000 --- a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesArbeidsinntekt.kt +++ /dev/null @@ -1,250 +0,0 @@ -package no.nav.dagpenger.inntekt.klassifisering - -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektBeskrivelse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektType -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.SpesielleInntjeningsforhold - -fun predicatesInntektklasseArbeid(): List<(DatagrunnlagKlassifisering) -> Boolean> { - return listOf( - ::isSkattepliktigPersonalrabatt, - ::isTips, - ::isLønnAksjerGrunnfondsbevisTilUnderkurs, - ::isLønnAnnet, - ::isLønnArbeidsoppholdKost, - ::isLønnArbeidsoppholdLosji, - ::isLønnBeregnetSkatt, - ::isLønnBesøksreiserHjemmetAnnet, - ::isLønnBesøksreiserHjemmetKilometergodtgjørelseBil, - ::isLønnBetaltUtenlandskSkatt, - ::isLønnBil, - ::isLønnBolig, - ::isLønnBonus, - ::isLønnBonusFraForsvaret, - ::isLønnElektroniskKommunikasjon, - ::isLønnFastBilgodtgjørelse, - ::isLønnFastTillegg, - ::isLønnFastlønn, - ::isLønnFeriepenger, - ::isLønnFondForIdrettsutøvere, - ::isYtelseForeldrepenger, - ::isLønnHelligdagstillegg, - ::isLønnHonorarAkkordProsentProvisjon, - ::isLønnHyretillegg, - ::isLønnInnbetalingTilUtenlandskPensjonsordning, - ::isLønnKilometergodtgjørelseBil, - ::isLønnKommunalOmsorgslønnOgFosterhjemsgodtgjørelse, - ::isLønnKostDager, - ::isLønnKostDøgn, - ::isLønnKostbesparelseIHjemmet, - ::isLønnLosji, - ::isLønnIkkeSkattepliktigLønnFraUtenlandskDiplomKonsulStasjon, - ::isLønnLønnForBarnepassIBarnetsHjem, - ::isLønnLønnTilPrivatpersonerForArbeidIHjemmet, - ::isLønnLønnUtbetaltAvVeldedigEllerAllmennyttigInstitusjonEllerOrganisasjon, - ::isLønnLønnTilVergeFraFylkesmannen, - ::isLønnOpsjoner, - ::isLønnOvertidsgodtgjørelse, - ::isLønnReiseAnnet, - ::isLønnReiseKost, - ::isLønnReiseLosji, - ::isLønnRentefordelLån, - ::isLønnSkattepliktigDelForsikringer, - ::isLønnSluttvederlag, - ::isLønnSmusstillegg, - ::isLønnStipend, - ::isLønnStyrehonorarOgGodtgjørelseVerv, - ::isYtelseSvangerskapspenger, - ::isLønnTimelønn, - ::isLønnTrekkILønnForFerie, - ::isLønnUregelmessigeTilleggKnyttetTilArbeidetTid, - ::isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTid, - ::isLønnYrkebilTjenestligbehovKilometer, - ::isLønnYrkebilTjenestligbehovListepris - ) -} - -fun isLønnAksjerGrunnfondsbevisTilUnderkurs(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.AKSJER_GRUNNFONDSBEVIS_TIL_UNDERKURS - -fun isLønnAnnet(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.ANNET && - datagrunnlag.forhold != SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY && - datagrunnlag.forhold != SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK - -fun isLønnArbeidsoppholdKost(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.ARBEIDSOPPHOLD_KOST - -fun isLønnArbeidsoppholdLosji(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.ARBEIDSOPPHOLD_LOSJI - -fun isLønnBeregnetSkatt(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.BEREGNET_SKATT - -fun isLønnBesøksreiserHjemmetAnnet(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.BESOEKSREISER_HJEMMET_ANNET - -fun isLønnBesøksreiserHjemmetKilometergodtgjørelseBil(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.BESOEKSREISER_HJEMMET_KILOMETERGODTGJOERELSE_BIL - -fun isLønnBetaltUtenlandskSkatt(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.BETALT_UTENLANDSK_SKATT - -fun isLønnBil(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.BIL - -fun isLønnBolig(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.BOLIG - -fun isLønnBonus(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.BONUS && - datagrunnlag.forhold != SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY && - datagrunnlag.forhold != SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK - -fun isLønnBonusFraForsvaret(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.BONUS_FRA_FORSVARET - -fun isLønnElektroniskKommunikasjon(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.ELEKTRONISK_KOMMUNIKASJON - -fun isLønnFastBilgodtgjørelse(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.FAST_BILGODTGJOERELSE - -fun isLønnFastTillegg(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.FAST_TILLEGG && - datagrunnlag.forhold != SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY && - datagrunnlag.forhold != SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK - -fun isLønnFastlønn(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.FASTLOENN && - datagrunnlag.forhold != SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY && - datagrunnlag.forhold != SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK - -fun isLønnFeriepenger(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.FERIEPENGER && - datagrunnlag.forhold != SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY && - datagrunnlag.forhold != SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK - -fun isLønnFondForIdrettsutøvere(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.FOND_FOR_IDRETTSUTOEVERE - -fun isYtelseForeldrepenger(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.YTELSE_FRA_OFFENTLIGE && datagrunnlag.beskrivelse == InntektBeskrivelse.FORELDREPENGER - -fun isLønnHelligdagstillegg(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.HELLIGDAGSTILLEGG && - datagrunnlag.forhold != SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY && - datagrunnlag.forhold != SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK - -fun isLønnHonorarAkkordProsentProvisjon(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.HONORAR_AKKORD_PROSENT_PROVISJON - -fun isLønnHyretillegg(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.HYRETILLEGG - -fun isLønnInnbetalingTilUtenlandskPensjonsordning(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.INNBETALING_TIL_UTENLANDSK_PENSJONSORDNING - -fun isLønnKilometergodtgjørelseBil(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.KILOMETERGODTGJOERELSE_BIL - -fun isLønnKommunalOmsorgslønnOgFosterhjemsgodtgjørelse(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.KOMMUNAL_OMSORGSLOENN_OG_FOSTERHJEMSGODTGJOERELSE - -fun isLønnKostDager(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.KOST_DAGER - -fun isLønnKostDøgn(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.KOST_DOEGN - -fun isLønnKostbesparelseIHjemmet(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.KOSTBESPARELSE_I_HJEMMET - -fun isLønnLosji(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.LOSJI - -fun isLønnIkkeSkattepliktigLønnFraUtenlandskDiplomKonsulStasjon(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.IKKE_SKATTEPLIKTIG_LOENN_FRA_UTENLANDSK_DIPLOM_KONSUL_STASJON - -fun isLønnLønnForBarnepassIBarnetsHjem(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.LOENN_FOR_BARNEPASS_I_BARNETS_HJEM - -fun isLønnLønnTilPrivatpersonerForArbeidIHjemmet(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.LOENN_TIL_PRIVATPERSONER_FOR_ARBEID_I_HJEMMET - -fun isLønnLønnUtbetaltAvVeldedigEllerAllmennyttigInstitusjonEllerOrganisasjon(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.LOENN_UTBETALT_AV_VELDEDIG_ELLER_ALLMENNYTTIG_INSTITUSJON_ELLER_ORGANISASJON - -fun isLønnLønnTilVergeFraFylkesmannen(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.LOENN_TIL_VERGE_FRA_FYLKESMANNEN - -fun isLønnOpsjoner(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.OPSJONER - -fun isLønnOvertidsgodtgjørelse(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.OVERTIDSGODTGJOERELSE && - datagrunnlag.forhold != SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY && - datagrunnlag.forhold != SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK - -fun isLønnReiseAnnet(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.REISE_ANNET - -fun isLønnReiseKost(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.REISE_KOST - -fun isLønnReiseLosji(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.REISE_LOSJI - -fun isLønnRentefordelLån(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.RENTEFORDEL_LAAN - -fun isLønnSkattepliktigDelForsikringer(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.SKATTEPLIKTIG_DEL_FORSIKRINGER - -fun isLønnSluttvederlag(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.SLUTTVEDERLAG && - datagrunnlag.forhold != SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY && - datagrunnlag.forhold != SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK - -fun isLønnSmusstillegg(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.SMUSSTILLEGG - -fun isLønnStipend(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.STIPEND - -fun isLønnStyrehonorarOgGodtgjørelseVerv(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.STYREHONORAR_OG_GODTGJOERELSE_VERV - -fun isYtelseSvangerskapspenger(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.YTELSE_FRA_OFFENTLIGE && datagrunnlag.beskrivelse == InntektBeskrivelse.SVANGERSKAPSPENGER - -fun isLønnTimelønn(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.TIMELOENN && - datagrunnlag.forhold != SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY && - datagrunnlag.forhold != SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK - -fun isLønnTrekkILønnForFerie(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.TREKK_I_LOENN_FOR_FERIE && - datagrunnlag.forhold != SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY && - datagrunnlag.forhold != SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK - -fun isLønnUregelmessigeTilleggKnyttetTilArbeidetTid(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_ARBEIDET_TID && - datagrunnlag.forhold != SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY && - datagrunnlag.forhold != SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK - -fun isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTid(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_IKKE_ARBEIDET_TID && - datagrunnlag.forhold != SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY && - datagrunnlag.forhold != SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK - -fun isLønnYrkebilTjenestligbehovKilometer(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.YRKEBIL_TJENESTLIGBEHOV_KILOMETER - -fun isLønnYrkebilTjenestligbehovListepris(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.YRKEBIL_TJENESTLIGBEHOV_LISTEPRIS - -fun isTips(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.TIPS - -fun isSkattepliktigPersonalrabatt(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.SKATTEPLIKTIG_PERSONALRABATT diff --git a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesDagpenger.kt b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesDagpenger.kt deleted file mode 100644 index ae0dae23..00000000 --- a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesDagpenger.kt +++ /dev/null @@ -1,13 +0,0 @@ -package no.nav.dagpenger.inntekt.klassifisering - -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektBeskrivelse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektType - -fun predicatesInntektklasseDagpenger(): List<(DatagrunnlagKlassifisering) -> Boolean> { - return listOf( - ::isYtelseDagpengerVedArbeidsløshet - ) -} - -fun isYtelseDagpengerVedArbeidsløshet(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.YTELSE_FRA_OFFENTLIGE && datagrunnlag.beskrivelse == InntektBeskrivelse.DAGPENGER_VED_ARBEIDSLOESHET diff --git a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesDagpengerFangstFiske.kt b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesDagpengerFangstFiske.kt deleted file mode 100644 index 048b4098..00000000 --- a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesDagpengerFangstFiske.kt +++ /dev/null @@ -1,17 +0,0 @@ -package no.nav.dagpenger.inntekt.klassifisering - -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektBeskrivelse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektType - -fun predicatesInntektklasseDagpengerFangstFiske(): List<(DatagrunnlagKlassifisering) -> Boolean> { - return listOf( - ::isNæringDagpengerTilFisker, - ::isYtelseDagpengerTilFiskerSomBareHarHyre - ) -} - -fun isNæringDagpengerTilFisker(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.NAERINGSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.DAGPENGER_TIL_FISKER - -fun isYtelseDagpengerTilFiskerSomBareHarHyre(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.YTELSE_FRA_OFFENTLIGE && datagrunnlag.beskrivelse == InntektBeskrivelse.DAGPENGER_TIL_FISKER_SOM_BARE_HAR_HYRE diff --git "a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesN\303\246ringsinntekt.kt" "b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesN\303\246ringsinntekt.kt" deleted file mode 100644 index 75b11823..00000000 --- "a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesN\303\246ringsinntekt.kt" +++ /dev/null @@ -1,90 +0,0 @@ -package no.nav.dagpenger.inntekt.klassifisering - -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektBeskrivelse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektType -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.SpesielleInntjeningsforhold - -fun predicatesInntektklasseNæringsinntekt(): List<(DatagrunnlagKlassifisering) -> Boolean> { - return listOf( - ::isLønnAnnetHyre, - ::isLønnBonusHyre, - ::isLønnFastTilleggHyre, - ::isLønnFastlønnHyre, - ::isLønnFeriepengerHyre, - ::isLønnHelligdagstilleggHyre, - ::isLønnOvertidsgodtgjørelseHyre, - ::isLønnSluttvederlagHyre, - ::isLønnTimelønnHyre, - ::isLønnUregelmessigeTilleggKnyttetTilArbeidetTidHyre, - ::isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTidHyre, - ::isLønnTrekkILoennForFerieHyre, - ::isNæringLottKunTrygdeavgift, - ::isNæringVederlag - ) -} - -fun isLønnAnnetHyre(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && - datagrunnlag.beskrivelse == InntektBeskrivelse.ANNET && - datagrunnlag.forhold == SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY - -fun isLønnBonusHyre(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && - datagrunnlag.beskrivelse == InntektBeskrivelse.BONUS && - datagrunnlag.forhold == SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY - -fun isLønnFastTilleggHyre(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && - datagrunnlag.beskrivelse == InntektBeskrivelse.FAST_TILLEGG && - datagrunnlag.forhold == SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY - -fun isLønnFastlønnHyre(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && - datagrunnlag.beskrivelse == InntektBeskrivelse.FASTLOENN && - datagrunnlag.forhold == SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY - -fun isLønnFeriepengerHyre(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && - datagrunnlag.beskrivelse == InntektBeskrivelse.FERIEPENGER && - datagrunnlag.forhold == SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY - -fun isLønnHelligdagstilleggHyre(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && - datagrunnlag.beskrivelse == InntektBeskrivelse.HELLIGDAGSTILLEGG && - datagrunnlag.forhold == SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY - -fun isLønnOvertidsgodtgjørelseHyre(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && - datagrunnlag.beskrivelse == InntektBeskrivelse.OVERTIDSGODTGJOERELSE && - datagrunnlag.forhold == SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY - -fun isLønnSluttvederlagHyre(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && - datagrunnlag.beskrivelse == InntektBeskrivelse.SLUTTVEDERLAG && - datagrunnlag.forhold == SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY - -fun isLønnTimelønnHyre(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && - datagrunnlag.beskrivelse == InntektBeskrivelse.TIMELOENN && - datagrunnlag.forhold == SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY - -fun isLønnUregelmessigeTilleggKnyttetTilArbeidetTidHyre(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && - datagrunnlag.beskrivelse == InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_ARBEIDET_TID && - datagrunnlag.forhold == SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY - -fun isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTidHyre(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && - datagrunnlag.beskrivelse == InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_IKKE_ARBEIDET_TID && - datagrunnlag.forhold == SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY - -fun isLønnTrekkILoennForFerieHyre(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && - datagrunnlag.beskrivelse == InntektBeskrivelse.TREKK_I_LOENN_FOR_FERIE && - datagrunnlag.forhold == SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY - -fun isNæringLottKunTrygdeavgift(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.NAERINGSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.LOTT_KUN_TRYGDEAVGIFT - -fun isNæringVederlag(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.NAERINGSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.VEDERLAG diff --git a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesSykepenger.kt b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesSykepenger.kt deleted file mode 100644 index 15635f8d..00000000 --- a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesSykepenger.kt +++ /dev/null @@ -1,13 +0,0 @@ -package no.nav.dagpenger.inntekt.klassifisering - -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektBeskrivelse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektType - -fun predicatesInntektklasseSykepenger(): List<(DatagrunnlagKlassifisering) -> Boolean> { - return listOf( - ::isYtelseSykepenger - ) -} - -fun isYtelseSykepenger(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.YTELSE_FRA_OFFENTLIGE && datagrunnlag.beskrivelse == InntektBeskrivelse.SYKEPENGER diff --git a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesSykepengerFangstFiske.kt b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesSykepengerFangstFiske.kt deleted file mode 100644 index 75e0e0fa..00000000 --- a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesSykepengerFangstFiske.kt +++ /dev/null @@ -1,17 +0,0 @@ -package no.nav.dagpenger.inntekt.klassifisering - -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektBeskrivelse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektType - -fun predicatesInntektklasseSykepengerFangstFiske(): List<(DatagrunnlagKlassifisering) -> Boolean> { - return listOf( - ::isNæringSykepengerTilFisker, - ::isYtelseSykepengerTilFiskerSomBareHarHyre - ) -} - -fun isNæringSykepengerTilFisker(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.NAERINGSINNTEKT && datagrunnlag.beskrivelse == InntektBeskrivelse.SYKEPENGER_TIL_FISKER - -fun isYtelseSykepengerTilFiskerSomBareHarHyre(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.YTELSE_FRA_OFFENTLIGE && datagrunnlag.beskrivelse == InntektBeskrivelse.SYKEPENGER_TIL_FISKER_SOM_BARE_HAR_HYRE diff --git "a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesTiltaksl\303\270nn.kt" "b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesTiltaksl\303\270nn.kt" deleted file mode 100644 index f0dc8ca2..00000000 --- "a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesTiltaksl\303\270nn.kt" +++ /dev/null @@ -1,81 +0,0 @@ -package no.nav.dagpenger.inntekt.klassifisering - -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektBeskrivelse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektType -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.SpesielleInntjeningsforhold - -fun predicatesInntektklasseTiltakslønn(): List<(DatagrunnlagKlassifisering) -> Boolean> { - return listOf( - ::isLønnAnnetTiltak, - ::isLønnBonusTiltak, - ::isLønnFastTilleggTiltak, - ::isLønnFastlønnTiltak, - ::isLønnFeriepengerTiltak, - ::isLønnHelligdagstilleggTiltak, - ::isLønnOvertidsgodtgjørelseTiltak, - ::isLønnSluttvederlagTiltak, - ::isLønnTimelønnTiltak, - ::isLønnUregelmessigeTilleggKnyttetTilArbeidetTidTiltak, - ::isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTidTiltak, - ::isLønnTrekkILoennForFerieTiltak - ) -} -fun isLønnAnnetTiltak(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && - datagrunnlag.beskrivelse == InntektBeskrivelse.ANNET && - datagrunnlag.forhold == SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK - -fun isLønnBonusTiltak(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && - datagrunnlag.beskrivelse == InntektBeskrivelse.BONUS && - datagrunnlag.forhold == SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK - -fun isLønnFastTilleggTiltak(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && - datagrunnlag.beskrivelse == InntektBeskrivelse.FAST_TILLEGG && - datagrunnlag.forhold == SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK - -fun isLønnFastlønnTiltak(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && - datagrunnlag.beskrivelse == InntektBeskrivelse.FASTLOENN && - datagrunnlag.forhold == SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK - -fun isLønnFeriepengerTiltak(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && - datagrunnlag.beskrivelse == InntektBeskrivelse.FERIEPENGER && - datagrunnlag.forhold == SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK - -fun isLønnHelligdagstilleggTiltak(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && - datagrunnlag.beskrivelse == InntektBeskrivelse.HELLIGDAGSTILLEGG && - datagrunnlag.forhold == SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK - -fun isLønnOvertidsgodtgjørelseTiltak(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && - datagrunnlag.beskrivelse == InntektBeskrivelse.OVERTIDSGODTGJOERELSE && - datagrunnlag.forhold == SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK - -fun isLønnSluttvederlagTiltak(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && - datagrunnlag.beskrivelse == InntektBeskrivelse.SLUTTVEDERLAG && - datagrunnlag.forhold == SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK - -fun isLønnTimelønnTiltak(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && - datagrunnlag.beskrivelse == InntektBeskrivelse.TIMELOENN && - datagrunnlag.forhold == SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK - -fun isLønnUregelmessigeTilleggKnyttetTilArbeidetTidTiltak(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && - datagrunnlag.beskrivelse == InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_ARBEIDET_TID && - datagrunnlag.forhold == SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK - -fun isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTidTiltak(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && - datagrunnlag.beskrivelse == InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_IKKE_ARBEIDET_TID && - datagrunnlag.forhold == SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK - -fun isLønnTrekkILoennForFerieTiltak(datagrunnlag: DatagrunnlagKlassifisering): Boolean = - datagrunnlag.type == InntektType.LOENNSINNTEKT && - datagrunnlag.beskrivelse == InntektBeskrivelse.TREKK_I_LOENN_FOR_FERIE && - datagrunnlag.forhold == SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK diff --git a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/mapping/Verdikoder.kt b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/mapping/Verdikoder.kt index 8a259da5..b9d4beee 100644 --- a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/mapping/Verdikoder.kt +++ b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/mapping/Verdikoder.kt @@ -4,7 +4,6 @@ import com.uchuhimo.collections.biMapOf import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektBeskrivelse import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektType import no.nav.dagpenger.inntekt.inntektskomponenten.v1.SpesielleInntjeningsforhold -import no.nav.dagpenger.inntekt.klassifisering.DatagrunnlagKlassifisering fun verdiKode(datagrunnlagKlassifisering: DatagrunnlagKlassifisering): String { if (shouldTryGenericMappingWithoutForhold(datagrunnlagKlassifisering)) { @@ -118,3 +117,12 @@ val dataGrunnlagKlassifiseringToVerdikode = biMapOf( DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.ANNET, SpesielleInntjeningsforhold.LOENN_UTBETALT_FRA_DEN_NORSKE_STAT_OPPTJENT_I_UTLANDET) to "Annen arbeidsinntekt - Utlandet", DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.ANNET, SpesielleInntjeningsforhold.LOENN_VED_KONKURS_ELLER_STATSGARANTI_OSV) to "Annen arbeidsinntekt - Konkurs" ) + +@Deprecated( + "Used by verdikoder, need to be replaced by new dp-inntekt-klassifiserer logic" +) +data class DatagrunnlagKlassifisering( + val type: InntektType, + val beskrivelse: InntektBeskrivelse, + val forhold: SpesielleInntjeningsforhold? = null +) diff --git a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/v1/KlassifisertInntektRoute.kt b/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/v1/KlassifisertInntektRoute.kt deleted file mode 100644 index 3611321f..00000000 --- a/dp-inntekt-api/src/main/kotlin/no/nav/dagpenger/inntekt/v1/KlassifisertInntektRoute.kt +++ /dev/null @@ -1,86 +0,0 @@ -package no.nav.dagpenger.inntekt.v1 - -import io.ktor.application.call -import io.ktor.auth.authenticate -import io.ktor.http.HttpStatusCode -import io.ktor.request.receive -import io.ktor.response.respond -import io.ktor.routing.Route -import io.ktor.routing.post -import io.ktor.routing.route -import no.nav.dagpenger.inntekt.db.InntektId -import no.nav.dagpenger.inntekt.db.InntektStore -import no.nav.dagpenger.inntekt.db.Inntektparametre -import no.nav.dagpenger.inntekt.db.StoreInntektCommand -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.Aktoer -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.AktoerType -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektskomponentClient -import no.nav.dagpenger.inntekt.klassifisering.Inntekt -import no.nav.dagpenger.inntekt.klassifisering.klassifiserInntekter -import no.nav.dagpenger.inntekt.opptjeningsperiode.Opptjeningsperiode - -fun Route.klassifisertInntekt(inntektskomponentClient: InntektskomponentClient, inntektStore: InntektStore) { - authenticate { - route("") { - post { - val request = call.receive() - - val opptjeningsperiode = Opptjeningsperiode(request.beregningsDato) - - val parameters = Inntektparametre( - aktørId = request.aktørId, - vedtakId = request.vedtakId.toString(), - beregningsdato = request.beregningsDato - ) - - val storedInntekt = inntektStore.getInntektId(parameters)?.let { inntektStore.getInntekt(it) } - ?: inntektStore.storeInntekt(StoreInntektCommand(inntektparametre = parameters, - inntekt = inntektskomponentClient.getInntekt(toInntektskomponentRequest(request, opptjeningsperiode)))) - - val klassifisertInntekt = storedInntekt.let { - Inntekt( - it.inntektId.id, - klassifiserInntekter(it.inntekt), - it.manueltRedigert, - opptjeningsperiode.sisteAvsluttendeKalenderMåned - ) - } - - call.respond(HttpStatusCode.OK, klassifisertInntekt) - } - } - - route("/{inntektId}") { - post { - val request = call.receive() - val inntektId = call.parameters["inntektId"].runCatching { - InntektId(call.parameters["inntektId"]!!) - }.getOrThrow() - val opptjeningsperiode = Opptjeningsperiode(request.beregningsDato) - val aktor = Aktoer( - aktoerType = AktoerType.AKTOER_ID, - identifikator = request.aktørId - ) - - val storedInntekt = inntektStore.getInntekt(inntektId) - - if (storedInntekt.inntekt.ident != aktor) { - throw InntektNotAuthorizedException("Aktøren har ikke tilgang til denne inntekten.") - } - - val klassifisertInntekt = storedInntekt.let { - Inntekt( - inntektsId = it.inntektId.id, - inntektsListe = klassifiserInntekter(it.inntekt), - manueltRedigert = it.manueltRedigert, - sisteAvsluttendeKalenderMåned = opptjeningsperiode.sisteAvsluttendeKalenderMåned - ) - } - - call.respond(HttpStatusCode.OK, klassifisertInntekt) - } - } - } -} - -class InntektNotAuthorizedException(override val message: String) : RuntimeException(message) diff --git a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifisering/InntektsklassifiseringTest.kt b/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifisering/InntektsklassifiseringTest.kt deleted file mode 100644 index 45056504..00000000 --- a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifisering/InntektsklassifiseringTest.kt +++ /dev/null @@ -1,337 +0,0 @@ -package no.nav.dagpenger.inntekt.klassifisering - -import io.kotest.matchers.shouldBe -import java.time.YearMonth -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.Aktoer -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.AktoerType -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.ArbeidsInntektInformasjon -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.ArbeidsInntektMaaned -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.Avvik -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.Inntekt -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektBeskrivelse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektType -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektkomponentResponse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektskomponentHttpClientTest -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.SpesielleInntjeningsforhold -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.TilleggInformasjon -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.TilleggInformasjonsDetaljer -import no.nav.dagpenger.inntekt.moshiInstance -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.assertThrows - -internal class InntektsklassifiseringTest { - - @Test - fun `Klassifiser inntekt hvor inntektliste mangler`() { - val now = YearMonth.now() - val inntektkomponentResponse = InntektkomponentResponse( - arbeidsInntektMaaned = listOf( - ArbeidsInntektMaaned(now, null, ArbeidsInntektInformasjon(null)) - ), - ident = Aktoer(AktoerType.AKTOER_ID, "1234") - - ) - - val klassifisertInntekt = klassifiserInntekter(inntektkomponentResponse) - klassifisertInntekt.first().årMåned shouldBe now - klassifisertInntekt.first().klassifiserteInntekter shouldBe emptyList() - } - - @Test - fun `Klassifiser inntekt hvor ArbeidsInntektInformasjon mangler`() { - val now = YearMonth.now() - val inntektkomponentResponse = InntektkomponentResponse( - arbeidsInntektMaaned = listOf( - ArbeidsInntektMaaned(now, null, null) - ), - ident = Aktoer(AktoerType.AKTOER_ID, "1234") - - ) - - val klassifisertInntekt = klassifiserInntekter(inntektkomponentResponse) - klassifisertInntekt.first().årMåned shouldBe now - klassifisertInntekt.first().klassifiserteInntekter shouldBe emptyList() - } - - @Test - fun `Klassifiser inntekt hvor inntekt er til stede`() { - val now = YearMonth.now() - val aktør = Aktoer(AktoerType.AKTOER_ID, "1234") - val inntektkomponentResponse = InntektkomponentResponse( - arbeidsInntektMaaned = listOf( - ArbeidsInntektMaaned( - now, - null, - arbeidsInntektInformasjon = ArbeidsInntektInformasjon( - inntektListe = listOf( - Inntekt( - beloep = 100.toBigDecimal(), - beskrivelse = InntektBeskrivelse.FASTLOENN, - fordel = "", - inntektType = InntektType.LOENNSINNTEKT, - inntektskilde = "", - inntektsperiodetype = "", - inntektsstatus = "", - utbetaltIMaaned = now - - ) - ) - ) - ) - ), - ident = aktør - - ) - - val klassifisertInntekt = klassifiserInntekter(inntektkomponentResponse) - klassifisertInntekt.first().årMåned shouldBe now - klassifisertInntekt.first().klassifiserteInntekter shouldBe listOf( - KlassifisertInntekt( - 100.toBigDecimal(), - InntektKlasse.ARBEIDSINNTEKT - ) - ) - } - - @Test - fun `Klassifiser inntekt med spesielleIntjeningsforhold `() { - val now = YearMonth.now() - val aktør = Aktoer(AktoerType.AKTOER_ID, "1234") - val inntektkomponentResponse = InntektkomponentResponse( - arbeidsInntektMaaned = listOf( - ArbeidsInntektMaaned( - now, - null, - arbeidsInntektInformasjon = ArbeidsInntektInformasjon( - inntektListe = listOf( - Inntekt( - beloep = 100.toBigDecimal(), - beskrivelse = InntektBeskrivelse.FASTLOENN, - fordel = "", - inntektType = InntektType.LOENNSINNTEKT, - inntektskilde = "", - inntektsperiodetype = "", - inntektsstatus = "", - utbetaltIMaaned = now, - tilleggsinformasjon = TilleggInformasjon( - "", - TilleggInformasjonsDetaljer( - "", - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK - ) - ) - ) - ) - ) - ) - ), - ident = aktør - - ) - - val klassifisertInntekt = klassifiserInntekter(inntektkomponentResponse) - klassifisertInntekt.first().årMåned shouldBe now - klassifisertInntekt.first().klassifiserteInntekter shouldBe listOf( - KlassifisertInntekt( - 100.toBigDecimal(), - InntektKlasse.TILTAKSLØNN - ) - ) - } - - @Test - fun `Skal gi indikasjon på avvik om måneden inneholder avvik `() { - val now = YearMonth.now() - val aktør = Aktoer(AktoerType.AKTOER_ID, "1234") - val inntektkomponentResponse = InntektkomponentResponse( - arbeidsInntektMaaned = listOf( - ArbeidsInntektMaaned( - now, - listOf( - Avvik( - ident = Aktoer(AktoerType.AKTOER_ID, "123456789"), - opplysningspliktig = Aktoer(AktoerType.ORGANISASJON, "12345678"), - virksomhet = Aktoer(AktoerType.ORGANISASJON, "12345678"), - avvikPeriode = now, - tekst = "Avvik" - - ) - ), - arbeidsInntektInformasjon = ArbeidsInntektInformasjon( - inntektListe = listOf( - Inntekt( - beloep = 100.toBigDecimal(), - beskrivelse = InntektBeskrivelse.FASTLOENN, - fordel = "", - inntektType = InntektType.LOENNSINNTEKT, - inntektskilde = "", - inntektsperiodetype = "", - inntektsstatus = "", - utbetaltIMaaned = now, - inntektsmottaker = aktør - - ) - ) - ) - ) - ), - ident = aktør - - ) - - val klassifisertInntekt = klassifiserInntekter(inntektkomponentResponse) - klassifisertInntekt.first().årMåned shouldBe now - klassifisertInntekt.first().klassifiserteInntekter shouldBe listOf( - KlassifisertInntekt( - 100.toBigDecimal(), - InntektKlasse.ARBEIDSINNTEKT - ) - ) - } - - @Test - fun `Skal skille ut avvik fra der avvik-info korrosponderer i inntektlista inntekt før en klassifiserer`() { - val now = YearMonth.now() - val aktør = Aktoer(AktoerType.AKTOER_ID, "1234") - val opplysningspliktig = Aktoer(AktoerType.ORGANISASJON, "12345678") - val inntektkomponentResponse = InntektkomponentResponse( - arbeidsInntektMaaned = listOf( - ArbeidsInntektMaaned( - now, - listOf( - Avvik( - ident = aktør, - opplysningspliktig = opplysningspliktig, - virksomhet = Aktoer(AktoerType.ORGANISASJON, "12345678"), - avvikPeriode = now, - tekst = "Avvik" - - ) - ), - arbeidsInntektInformasjon = ArbeidsInntektInformasjon( - inntektListe = listOf( - Inntekt( - beloep = 100.toBigDecimal(), - beskrivelse = InntektBeskrivelse.FASTLOENN, - opplysningspliktig = opplysningspliktig, - fordel = "", - inntektType = InntektType.LOENNSINNTEKT, - inntektskilde = "", - inntektsperiodetype = "", - inntektsstatus = "", - utbetaltIMaaned = now, - inntektsmottaker = aktør - - ) - ) - ) - ) - ), - ident = aktør - - ) - - val klassifisertInntekt = klassifiserInntekter(inntektkomponentResponse) - klassifisertInntekt.first().årMåned shouldBe now - klassifisertInntekt.first().klassifiserteInntekter shouldBe emptyList() - } - - @Test - fun `Skal kun skille ut avvik fra inntekt hvis avvik info korrosponderer med inntektliste`() { - val now = YearMonth.now() - val aktør = Aktoer(AktoerType.AKTOER_ID, "1234") - val inntektkomponentResponse = InntektkomponentResponse( - arbeidsInntektMaaned = listOf( - ArbeidsInntektMaaned( - now, - listOf( - Avvik( - ident = Aktoer(AktoerType.AKTOER_ID, "ikke den samme som i inntektslista"), - opplysningspliktig = Aktoer(AktoerType.ORGANISASJON, "12345678"), - virksomhet = Aktoer(AktoerType.ORGANISASJON, "12345678"), - avvikPeriode = now, - tekst = "Avvik" - - ) - ), - arbeidsInntektInformasjon = ArbeidsInntektInformasjon( - inntektListe = listOf( - Inntekt( - beloep = 100.toBigDecimal(), - beskrivelse = InntektBeskrivelse.FASTLOENN, - fordel = "", - inntektType = InntektType.LOENNSINNTEKT, - inntektskilde = "", - inntektsperiodetype = "", - inntektsstatus = "", - utbetaltIMaaned = now, - inntektsmottaker = aktør - - ) - ) - ) - ) - ), - ident = aktør - - ) - - val klassifisertInntekt = klassifiserInntekter(inntektkomponentResponse) - klassifisertInntekt.first().årMåned shouldBe now - klassifisertInntekt.first().klassifiserteInntekter shouldBe listOf( - KlassifisertInntekt( - 100.toBigDecimal(), - InntektKlasse.ARBEIDSINNTEKT - ) - ) - } - - @Test - fun ` Test avvik med eksempel response`() { - val jsonResponseAdapter = moshiInstance.adapter(InntektkomponentResponse::class.java) - val body = InntektskomponentHttpClientTest::class.java - .getResource("/test-data/example-inntekt-avvik.json").readText() - val inntektkomponentResponse = jsonResponseAdapter.fromJson(body)!! - val klassifisertInntekt = klassifiserInntekter(inntektkomponentResponse) - - klassifisertInntekt.first().harAvvik shouldBe true - klassifisertInntekt.first().klassifiserteInntekter shouldBe listOf( - KlassifisertInntekt( - 4321.toBigDecimal(), - InntektKlasse.ARBEIDSINNTEKT - ) - ) - } - - @Test - fun `matchesSingularPredicate returns true when one predicate matches`() { - fun pred1(datagrunnlag: DatagrunnlagKlassifisering): Boolean = true - fun pred2(datagrunnlag: DatagrunnlagKlassifisering): Boolean = false - fun pred3(datagrunnlag: DatagrunnlagKlassifisering): Boolean = false - - val predicates = listOf(::pred1, ::pred2, ::pred3) - - assert( - matchesSingularPredicate( - DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FASTLOENN), - predicates - ) - ) - } - - @Test - fun `matchesSingularPredicate returns throws error when multiple predicates match`() { - fun pred1(datagrunnlag: DatagrunnlagKlassifisering): Boolean = true - fun pred2(datagrunnlag: DatagrunnlagKlassifisering): Boolean = true - fun pred3(datagrunnlag: DatagrunnlagKlassifisering): Boolean = false - - val predicates = listOf(::pred1, ::pred2, ::pred3) - - assertThrows { - matchesSingularPredicate( - DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FASTLOENN), - predicates - ) - } - } -} diff --git a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesArbeidsinntektTest.kt b/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesArbeidsinntektTest.kt deleted file mode 100644 index a84dc852..00000000 --- a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesArbeidsinntektTest.kt +++ /dev/null @@ -1,626 +0,0 @@ -package no.nav.dagpenger.inntekt.klassifisering - -import kotlin.test.assertFalse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektBeskrivelse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektType -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.SpesielleInntjeningsforhold -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Test - -internal class PredicatesArbeidsinntektTest { - - @Test - fun `inntektklasseArbeidPredicates returns correct predicates`() { - val predicates = predicatesInntektklasseArbeid() - - val arbeidPredicates = listOf( - ::isSkattepliktigPersonalrabatt, - ::isTips, - ::isLønnAksjerGrunnfondsbevisTilUnderkurs, - ::isLønnAnnet, - ::isLønnArbeidsoppholdKost, - ::isLønnArbeidsoppholdLosji, - ::isLønnBeregnetSkatt, - ::isLønnBesøksreiserHjemmetAnnet, - ::isLønnBesøksreiserHjemmetKilometergodtgjørelseBil, - ::isLønnBetaltUtenlandskSkatt, - ::isLønnBil, - ::isLønnBolig, - ::isLønnBonus, - ::isLønnBonusFraForsvaret, - ::isLønnElektroniskKommunikasjon, - ::isLønnFastBilgodtgjørelse, - ::isLønnFastTillegg, - ::isLønnFastlønn, - ::isLønnFeriepenger, - ::isLønnFondForIdrettsutøvere, - ::isYtelseForeldrepenger, - ::isLønnHelligdagstillegg, - ::isLønnHonorarAkkordProsentProvisjon, - ::isLønnHyretillegg, - ::isLønnInnbetalingTilUtenlandskPensjonsordning, - ::isLønnKilometergodtgjørelseBil, - ::isLønnKommunalOmsorgslønnOgFosterhjemsgodtgjørelse, - ::isLønnKostDager, - ::isLønnKostDøgn, - ::isLønnKostbesparelseIHjemmet, - ::isLønnLosji, - ::isLønnIkkeSkattepliktigLønnFraUtenlandskDiplomKonsulStasjon, - ::isLønnLønnForBarnepassIBarnetsHjem, - ::isLønnLønnTilPrivatpersonerForArbeidIHjemmet, - ::isLønnLønnUtbetaltAvVeldedigEllerAllmennyttigInstitusjonEllerOrganisasjon, - ::isLønnLønnTilVergeFraFylkesmannen, - ::isLønnOpsjoner, - ::isLønnOvertidsgodtgjørelse, - ::isLønnReiseAnnet, - ::isLønnReiseKost, - ::isLønnReiseLosji, - ::isLønnRentefordelLån, - ::isLønnSkattepliktigDelForsikringer, - ::isLønnSluttvederlag, - ::isLønnSmusstillegg, - ::isLønnStipend, - ::isLønnStyrehonorarOgGodtgjørelseVerv, - ::isYtelseSvangerskapspenger, - ::isLønnTimelønn, - ::isLønnTrekkILønnForFerie, - ::isLønnUregelmessigeTilleggKnyttetTilArbeidetTid, - ::isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTid, - ::isLønnYrkebilTjenestligbehovKilometer, - ::isLønnYrkebilTjenestligbehovListepris - - ) - - assert(predicates.containsAll(arbeidPredicates)) - assertEquals(predicates.size, arbeidPredicates.size) - } - - @Test - fun `isLønnAksjerGrunnfondsbevisTilUnderkurs predicates correctly`() { - assert(isLønnAksjerGrunnfondsbevisTilUnderkurs( - DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.AKSJER_GRUNNFONDSBEVIS_TIL_UNDERKURS))) - - assertFalse(isLønnAksjerGrunnfondsbevisTilUnderkurs( - DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.ANNET))) - assertFalse(isLønnAksjerGrunnfondsbevisTilUnderkurs( - DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.AKSJER_GRUNNFONDSBEVIS_TIL_UNDERKURS))) - } - - @Test - fun `isLønnAnnet predicates correctly`() { - assert(isLønnAnnet(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.ANNET))) - - assertFalse(isLønnAnnet(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.ARBEIDSOPPHOLD_KOST))) - assertFalse(isLønnAnnet(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.ANNET))) - - assertFalse(isLønnAnnet(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.ANNET, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnAnnet(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.ANNET, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - } - - @Test - fun `isLønnArbeidsoppholdKost predicates correctly`() { - assert(isLønnArbeidsoppholdKost(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.ARBEIDSOPPHOLD_KOST))) - - assertFalse(isLønnArbeidsoppholdKost(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.ARBEIDSOPPHOLD_LOSJI))) - assertFalse(isLønnArbeidsoppholdKost(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.ARBEIDSOPPHOLD_KOST))) - } - - @Test - fun `isLønnArbeidsoppholdLosji predicates correctly`() { - assert(isLønnArbeidsoppholdLosji(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.ARBEIDSOPPHOLD_LOSJI))) - - assertFalse(isLønnArbeidsoppholdLosji(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.BEREGNET_SKATT))) - assertFalse(isLønnArbeidsoppholdLosji(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.ARBEIDSOPPHOLD_LOSJI))) - } - - @Test - fun `isLønnBeregnetSkatt predicates correctly`() { - assert(isLønnBeregnetSkatt(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.BEREGNET_SKATT))) - - assertFalse(isLønnBeregnetSkatt(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.BESOEKSREISER_HJEMMET_ANNET))) - assertFalse(isLønnBeregnetSkatt(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.BEREGNET_SKATT))) - } - - @Test - fun `isLønnBesøksreiserHjemmetAnnet predicates correctly`() { - assert(isLønnBesøksreiserHjemmetAnnet(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.BESOEKSREISER_HJEMMET_ANNET))) - - assertFalse(isLønnBesøksreiserHjemmetAnnet(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.BESOEKSREISER_HJEMMET_KILOMETERGODTGJOERELSE_BIL))) - assertFalse(isLønnBesøksreiserHjemmetAnnet(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.BESOEKSREISER_HJEMMET_ANNET))) - } - - @Test - fun `isLønnBesøksreiserHjemmetKilometergodtgjørelseBil predicates correctly`() { - assert(isLønnBesøksreiserHjemmetKilometergodtgjørelseBil(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.BESOEKSREISER_HJEMMET_KILOMETERGODTGJOERELSE_BIL))) - - assertFalse(isLønnBesøksreiserHjemmetKilometergodtgjørelseBil(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.BETALT_UTENLANDSK_SKATT))) - assertFalse(isLønnBesøksreiserHjemmetKilometergodtgjørelseBil(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.BESOEKSREISER_HJEMMET_KILOMETERGODTGJOERELSE_BIL))) - } - - @Test - fun `isLønnBetaltUtenlandskSkatt predicates correctly`() { - assert(isLønnBetaltUtenlandskSkatt(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.BETALT_UTENLANDSK_SKATT))) - - assertFalse(isLønnBetaltUtenlandskSkatt(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.BIL))) - assertFalse(isLønnBetaltUtenlandskSkatt(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.BETALT_UTENLANDSK_SKATT))) - } - - @Test - fun `isLønnBil predicates correctly`() { - assert(isLønnBil(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.BIL))) - - assertFalse(isLønnBil(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.BOLIG))) - assertFalse(isLønnBil(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.BIL))) - } - - @Test - fun `isLønnBolig predicates correctly`() { - assert(isLønnBolig(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.BOLIG))) - - assertFalse(isLønnBolig(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.BONUS))) - assertFalse(isLønnBolig(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.BOLIG))) - } - - @Test - fun `isLønnBonus predicates correctly`() { - assert(isLønnBonus(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.BONUS))) - - assertFalse(isLønnBonus(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.BONUS_FRA_FORSVARET))) - assertFalse(isLønnBonus(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.BONUS))) - - assertFalse(isLønnBonus(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.BONUS, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnBonus(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.BONUS, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - } - - @Test - fun `isLønnBonusFraForsvaret predicates correctly`() { - assert(isLønnBonusFraForsvaret(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.BONUS_FRA_FORSVARET))) - - assertFalse(isLønnBonusFraForsvaret(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.ELEKTRONISK_KOMMUNIKASJON))) - assertFalse(isLønnBonusFraForsvaret(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.BONUS_FRA_FORSVARET))) - } - - @Test - fun `isLønnElektroniskKommunikasjon predicates correctly`() { - assert(isLønnElektroniskKommunikasjon(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.ELEKTRONISK_KOMMUNIKASJON))) - - assertFalse(isLønnElektroniskKommunikasjon(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FAST_BILGODTGJOERELSE))) - assertFalse(isLønnElektroniskKommunikasjon(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.ELEKTRONISK_KOMMUNIKASJON))) - } - - @Test - fun `isLønnFastBilgodtgjørelse predicates correctly`() { - assert(isLønnFastBilgodtgjørelse(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FAST_BILGODTGJOERELSE))) - - assertFalse(isLønnFastBilgodtgjørelse(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FAST_TILLEGG))) - assertFalse(isLønnFastBilgodtgjørelse(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.FAST_BILGODTGJOERELSE))) - } - - @Test - fun `isLønnFastTillegg predicates correctly`() { - assert(isLønnFastTillegg(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FAST_TILLEGG))) - - assertFalse(isLønnFastTillegg(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.ARBEIDSOPPHOLD_KOST))) - assertFalse(isLønnFastTillegg(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.FAST_TILLEGG))) - - assertFalse(isLønnFastTillegg(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.FAST_TILLEGG, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnFastTillegg(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.FAST_TILLEGG, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - } - - @Test - fun `isLønnFastlønn predicates correctly`() { - assert(isLønnFastlønn(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FASTLOENN))) - - assertFalse(isLønnFastlønn(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FERIEPENGER))) - assertFalse(isLønnFastlønn(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.FASTLOENN))) - - assertFalse(isLønnFastlønn(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.FASTLOENN, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnFastlønn(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.FASTLOENN, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - } - - @Test - fun `isLønnFeriepenger predicates correctly`() { - assert(isLønnFeriepenger(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FERIEPENGER))) - - assertFalse(isLønnFeriepenger(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FASTLOENN))) - assertFalse(isLønnFeriepenger(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.FERIEPENGER))) - - assertFalse(isLønnFeriepenger(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.FERIEPENGER, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnFeriepenger(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.FERIEPENGER, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - } - - @Test - fun `isLønnFondForIdrettsutøvere predicates correctly`() { - assert(isLønnFondForIdrettsutøvere(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FOND_FOR_IDRETTSUTOEVERE))) - - assertFalse(isLønnFondForIdrettsutøvere(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FASTLOENN))) - assertFalse(isLønnFondForIdrettsutøvere(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.FOND_FOR_IDRETTSUTOEVERE))) - } - - @Test - fun `isYtelseForeldrepenger predicates correctly`() { - assert(isYtelseForeldrepenger(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.FORELDREPENGER))) - - assertFalse(isYtelseForeldrepenger(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.FOND_FOR_IDRETTSUTOEVERE))) - assertFalse(isYtelseForeldrepenger(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FORELDREPENGER))) - } - - @Test - fun `isLønnHelligdagstillegg predicates correctly`() { - assert(isLønnHelligdagstillegg(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.HELLIGDAGSTILLEGG))) - - assertFalse(isLønnHelligdagstillegg(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FOND_FOR_IDRETTSUTOEVERE))) - assertFalse(isLønnHelligdagstillegg(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.HELLIGDAGSTILLEGG))) - - assertFalse(isLønnHelligdagstillegg(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.HELLIGDAGSTILLEGG, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnHelligdagstillegg(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.HELLIGDAGSTILLEGG, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - } - - @Test - fun `isLønnHonorarAkkordProsentProvisjon predicates correctly`() { - assert(isLønnHonorarAkkordProsentProvisjon(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.HONORAR_AKKORD_PROSENT_PROVISJON))) - - assertFalse(isLønnHonorarAkkordProsentProvisjon(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.HELLIGDAGSTILLEGG))) - assertFalse(isLønnHonorarAkkordProsentProvisjon(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.HONORAR_AKKORD_PROSENT_PROVISJON))) - } - - @Test - fun `isLønnHyretillegg predicates correctly`() { - assert(isLønnHyretillegg(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.HYRETILLEGG))) - - assertFalse(isLønnHyretillegg(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.HONORAR_AKKORD_PROSENT_PROVISJON))) - assertFalse(isLønnHyretillegg(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.HYRETILLEGG))) - } - - @Test - fun `isLønnInnbetalingTilUtenlandskPensjonsordning predicates correctly`() { - assert(isLønnInnbetalingTilUtenlandskPensjonsordning(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.INNBETALING_TIL_UTENLANDSK_PENSJONSORDNING))) - - assertFalse(isLønnInnbetalingTilUtenlandskPensjonsordning(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.HYRETILLEGG))) - assertFalse(isLønnInnbetalingTilUtenlandskPensjonsordning(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.INNBETALING_TIL_UTENLANDSK_PENSJONSORDNING))) - } - - @Test - fun `isLønnKilometergodtgjørelseBil predicates correctly`() { - assert(isLønnKilometergodtgjørelseBil(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.KILOMETERGODTGJOERELSE_BIL))) - - assertFalse(isLønnKilometergodtgjørelseBil(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.INNBETALING_TIL_UTENLANDSK_PENSJONSORDNING))) - assertFalse(isLønnKilometergodtgjørelseBil(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.KILOMETERGODTGJOERELSE_BIL))) - } - - @Test - fun `isLønnKommunalOmsorgslønnOgFosterhjemsgodtgjørelse predicates correctly`() { - assert(isLønnKommunalOmsorgslønnOgFosterhjemsgodtgjørelse(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.KOMMUNAL_OMSORGSLOENN_OG_FOSTERHJEMSGODTGJOERELSE))) - - assertFalse(isLønnKommunalOmsorgslønnOgFosterhjemsgodtgjørelse(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.KILOMETERGODTGJOERELSE_BIL))) - assertFalse(isLønnKommunalOmsorgslønnOgFosterhjemsgodtgjørelse(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.KOMMUNAL_OMSORGSLOENN_OG_FOSTERHJEMSGODTGJOERELSE))) - } - - @Test - fun `isLønnKostDager predicates correctly`() { - assert(isLønnKostDager(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.KOST_DAGER))) - - assertFalse(isLønnKostDager(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.KOMMUNAL_OMSORGSLOENN_OG_FOSTERHJEMSGODTGJOERELSE))) - assertFalse(isLønnKostDager(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.KOST_DAGER))) - } - - @Test - fun `isLønnKostDøgn predicates correctly`() { - assert(isLønnKostDøgn(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.KOST_DOEGN))) - - assertFalse(isLønnKostDøgn(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.KOST_DAGER))) - assertFalse(isLønnKostDøgn(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.KOST_DOEGN))) - } - - @Test - fun `isLønnKostbesparelseIHjemmet predicates correctly`() { - assert(isLønnKostbesparelseIHjemmet(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.KOSTBESPARELSE_I_HJEMMET))) - - assertFalse(isLønnKostbesparelseIHjemmet(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.KOST_DAGER))) - assertFalse(isLønnKostbesparelseIHjemmet(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.KOSTBESPARELSE_I_HJEMMET))) - } - - @Test - fun `isLønnLosji predicates correctly`() { - assert(isLønnLosji(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.LOSJI))) - - assertFalse(isLønnLosji(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.KOST_DAGER))) - assertFalse(isLønnLosji(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.LOSJI))) - } - - @Test - fun `isLønnIkkeSkattepliktigLønnFraUtenlandskDiplomKonsulStasjon predicates correctly`() { - assert(isLønnIkkeSkattepliktigLønnFraUtenlandskDiplomKonsulStasjon(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.IKKE_SKATTEPLIKTIG_LOENN_FRA_UTENLANDSK_DIPLOM_KONSUL_STASJON))) - - assertFalse(isLønnIkkeSkattepliktigLønnFraUtenlandskDiplomKonsulStasjon(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.LOENN_FOR_BARNEPASS_I_BARNETS_HJEM))) - assertFalse(isLønnIkkeSkattepliktigLønnFraUtenlandskDiplomKonsulStasjon(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.IKKE_SKATTEPLIKTIG_LOENN_FRA_UTENLANDSK_DIPLOM_KONSUL_STASJON))) - } - - @Test - fun `isLønnLønnForBarnepassIBarnetsHjem predicates correctly`() { - assert(isLønnLønnForBarnepassIBarnetsHjem(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.LOENN_FOR_BARNEPASS_I_BARNETS_HJEM))) - - assertFalse(isLønnLønnForBarnepassIBarnetsHjem(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.IKKE_SKATTEPLIKTIG_LOENN_FRA_UTENLANDSK_DIPLOM_KONSUL_STASJON))) - assertFalse(isLønnLønnForBarnepassIBarnetsHjem(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.LOENN_FOR_BARNEPASS_I_BARNETS_HJEM))) - } - - @Test - fun `isLønnLønnTilPrivatpersonerForArbeidIHjemmet predicates correctly`() { - assert(isLønnLønnTilPrivatpersonerForArbeidIHjemmet(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.LOENN_TIL_PRIVATPERSONER_FOR_ARBEID_I_HJEMMET))) - - assertFalse(isLønnLønnTilPrivatpersonerForArbeidIHjemmet(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.LOENN_FOR_BARNEPASS_I_BARNETS_HJEM))) - assertFalse(isLønnLønnTilPrivatpersonerForArbeidIHjemmet(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.LOENN_TIL_PRIVATPERSONER_FOR_ARBEID_I_HJEMMET))) - } - - @Test - fun `isLønnLønnUtbetaltAvVeldedigEllerAllmennyttigInstitusjonEllerOrganisasjon predicates correctly`() { - assert(isLønnLønnUtbetaltAvVeldedigEllerAllmennyttigInstitusjonEllerOrganisasjon(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.LOENN_UTBETALT_AV_VELDEDIG_ELLER_ALLMENNYTTIG_INSTITUSJON_ELLER_ORGANISASJON))) - - assertFalse(isLønnLønnUtbetaltAvVeldedigEllerAllmennyttigInstitusjonEllerOrganisasjon(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.LOENN_TIL_PRIVATPERSONER_FOR_ARBEID_I_HJEMMET))) - assertFalse(isLønnLønnUtbetaltAvVeldedigEllerAllmennyttigInstitusjonEllerOrganisasjon(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.LOENN_UTBETALT_AV_VELDEDIG_ELLER_ALLMENNYTTIG_INSTITUSJON_ELLER_ORGANISASJON))) - } - - @Test - fun `isLønnLønnTilVergeFraFylkesmannen predicates correctly`() { - assert(isLønnLønnTilVergeFraFylkesmannen(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.LOENN_TIL_VERGE_FRA_FYLKESMANNEN))) - - assertFalse(isLønnLønnTilVergeFraFylkesmannen(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.LOENN_UTBETALT_AV_VELDEDIG_ELLER_ALLMENNYTTIG_INSTITUSJON_ELLER_ORGANISASJON))) - assertFalse(isLønnLønnTilVergeFraFylkesmannen(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.LOENN_TIL_VERGE_FRA_FYLKESMANNEN))) - } - - @Test - fun `isLønnOpsjoner predicates correctly`() { - assert(isLønnOpsjoner(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.OPSJONER))) - - assertFalse(isLønnOpsjoner(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.LOENN_TIL_VERGE_FRA_FYLKESMANNEN))) - assertFalse(isLønnOpsjoner(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.OPSJONER))) - } - - @Test - fun `isLønnOvertidsgodtgjørelse predicates correctly`() { - assert(isLønnOvertidsgodtgjørelse(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.OVERTIDSGODTGJOERELSE))) - - assertFalse(isLønnOvertidsgodtgjørelse(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.OPSJONER))) - assertFalse(isLønnOvertidsgodtgjørelse(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.OVERTIDSGODTGJOERELSE))) - - assertFalse(isLønnOvertidsgodtgjørelse(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.OVERTIDSGODTGJOERELSE, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnOvertidsgodtgjørelse(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.OVERTIDSGODTGJOERELSE, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - } - - @Test - fun `isLønnReiseAnnet predicates correctly`() { - assert(isLønnReiseAnnet(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.REISE_ANNET))) - - assertFalse(isLønnReiseAnnet(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.OVERTIDSGODTGJOERELSE))) - assertFalse(isLønnReiseAnnet(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.REISE_ANNET))) - } - - @Test - fun `isLønnReiseKost predicates correctly`() { - assert(isLønnReiseKost(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.REISE_KOST))) - - assertFalse(isLønnReiseKost(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.REISE_ANNET))) - assertFalse(isLønnReiseKost(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.REISE_KOST))) - } - - @Test - fun `isLønnReiseLosji predicates correctly`() { - assert(isLønnReiseLosji(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.REISE_LOSJI))) - - assertFalse(isLønnReiseLosji(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.REISE_KOST))) - assertFalse(isLønnReiseLosji(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.REISE_LOSJI))) - } - - @Test - fun `isLønnRentefordelLån predicates correctly`() { - assert(isLønnRentefordelLån(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.RENTEFORDEL_LAAN))) - - assertFalse(isLønnRentefordelLån(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.REISE_LOSJI))) - assertFalse(isLønnRentefordelLån(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.RENTEFORDEL_LAAN))) - } - - @Test - fun `isLønnSkattepliktigDelForsikringer predicates correctly`() { - assert(isLønnSkattepliktigDelForsikringer(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.SKATTEPLIKTIG_DEL_FORSIKRINGER))) - - assertFalse(isLønnSkattepliktigDelForsikringer(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.RENTEFORDEL_LAAN))) - assertFalse(isLønnSkattepliktigDelForsikringer(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.SKATTEPLIKTIG_DEL_FORSIKRINGER))) - } - - @Test - fun `isLønnSluttvederlag predicates correctly`() { - assert(isLønnSluttvederlag(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.SLUTTVEDERLAG))) - - assertFalse(isLønnSluttvederlag(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.SKATTEPLIKTIG_DEL_FORSIKRINGER))) - assertFalse(isLønnSluttvederlag(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.SLUTTVEDERLAG))) - - assertFalse(isLønnSluttvederlag(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.SLUTTVEDERLAG, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnSluttvederlag(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.SLUTTVEDERLAG, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - } - - @Test - fun `isLønnSmusstillegg predicates correctly`() { - assert(isLønnSmusstillegg(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.SMUSSTILLEGG))) - - assertFalse(isLønnSmusstillegg(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.SLUTTVEDERLAG))) - assertFalse(isLønnSmusstillegg(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.SMUSSTILLEGG))) - } - - @Test - fun `isLønnStipend predicates correctly`() { - assert(isLønnStipend(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.STIPEND))) - - assertFalse(isLønnStipend(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.SMUSSTILLEGG))) - assertFalse(isLønnStipend(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.STIPEND))) - } - - @Test - fun `isLønnStyrehonorarOgGodtgjørelseVerv predicates correctly`() { - assert(isLønnStyrehonorarOgGodtgjørelseVerv(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.STYREHONORAR_OG_GODTGJOERELSE_VERV))) - - assertFalse(isLønnStyrehonorarOgGodtgjørelseVerv(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.STIPEND))) - assertFalse(isLønnStyrehonorarOgGodtgjørelseVerv(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.STYREHONORAR_OG_GODTGJOERELSE_VERV))) - } - - @Test - fun `isYtelseSvangerskapspenger predicates correctly`() { - assert(isYtelseSvangerskapspenger(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.SVANGERSKAPSPENGER))) - - assertFalse(isYtelseSvangerskapspenger(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.DAGPENGER_VED_ARBEIDSLOESHET))) - assertFalse(isYtelseSvangerskapspenger(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.SVANGERSKAPSPENGER))) - } - - @Test - fun `isLønnTimelønn predicates correctly`() { - assert(isLønnTimelønn(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.TIMELOENN))) - - assertFalse(isLønnTimelønn(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.STYREHONORAR_OG_GODTGJOERELSE_VERV))) - assertFalse(isLønnTimelønn(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.TIMELOENN))) - - assertFalse(isLønnTimelønn(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.TIMELOENN, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnTimelønn(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.TIMELOENN, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - } - - @Test - fun `isLønnTrekkILønnForFerie predicates correctly`() { - assert(isLønnTrekkILønnForFerie(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.TREKK_I_LOENN_FOR_FERIE))) - - assertFalse(isLønnTrekkILønnForFerie(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.TIMELOENN))) - assertFalse(isLønnTrekkILønnForFerie(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.TREKK_I_LOENN_FOR_FERIE))) - - assertFalse(isLønnTimelønn(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.TREKK_I_LOENN_FOR_FERIE, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnTimelønn(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.TREKK_I_LOENN_FOR_FERIE, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - } - - @Test - fun `isLønnUregelmessigeTilleggKnyttetTilArbeidetTid predicates correctly`() { - assert(isLønnUregelmessigeTilleggKnyttetTilArbeidetTid(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_ARBEIDET_TID))) - - assertFalse(isLønnUregelmessigeTilleggKnyttetTilArbeidetTid(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.TREKK_I_LOENN_FOR_FERIE))) - assertFalse(isLønnUregelmessigeTilleggKnyttetTilArbeidetTid(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_ARBEIDET_TID))) - - assertFalse(isLønnUregelmessigeTilleggKnyttetTilArbeidetTid(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_ARBEIDET_TID, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnUregelmessigeTilleggKnyttetTilArbeidetTid(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_ARBEIDET_TID, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - } - - @Test - fun `isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTid predicates correctly`() { - assert(isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTid(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_IKKE_ARBEIDET_TID))) - - assertFalse(isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTid(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_ARBEIDET_TID))) - assertFalse(isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTid(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_IKKE_ARBEIDET_TID))) - - assertFalse(isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTid(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_IKKE_ARBEIDET_TID, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTid(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_IKKE_ARBEIDET_TID, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - } - - @Test - fun `isLønnYrkebilTjenestligbehovKilometer predicates correctly`() { - assert(isLønnYrkebilTjenestligbehovKilometer(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.YRKEBIL_TJENESTLIGBEHOV_KILOMETER))) - - assertFalse(isLønnYrkebilTjenestligbehovKilometer(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_IKKE_ARBEIDET_TID))) - assertFalse(isLønnYrkebilTjenestligbehovKilometer(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.YRKEBIL_TJENESTLIGBEHOV_KILOMETER))) - } - - @Test - fun `isLønnYrkebilTjenestligbehovListepris predicates correctly`() { - assert(isLønnYrkebilTjenestligbehovListepris(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.YRKEBIL_TJENESTLIGBEHOV_LISTEPRIS))) - - assertFalse(isLønnYrkebilTjenestligbehovListepris(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.YRKEBIL_TJENESTLIGBEHOV_KILOMETER))) - assertFalse(isLønnYrkebilTjenestligbehovListepris(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.YRKEBIL_TJENESTLIGBEHOV_LISTEPRIS))) - } - - @Test - fun ` Tips skal klassifiseres som arbeidsinntekt `() { - assert(isTips(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.TIPS))) - } - - @Test - fun `isSkattepliktigPersonalrabatt skal klassifiseres som arbeidsinntekt `() { - assert(isSkattepliktigPersonalrabatt(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.SKATTEPLIKTIG_PERSONALRABATT))) - } -} diff --git a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesDagpengerFangstFiskeTest.kt b/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesDagpengerFangstFiskeTest.kt deleted file mode 100644 index b19f1147..00000000 --- a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesDagpengerFangstFiskeTest.kt +++ /dev/null @@ -1,39 +0,0 @@ -package no.nav.dagpenger.inntekt.klassifisering - -import kotlin.test.assertFalse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektBeskrivelse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektType -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Test - -class PredicatesDagpengerFangstFiskeTest { - - @Test - fun `predicatesInntektklasseDagpengerFangstFiske returns correct predicates`() { - val predicates = predicatesInntektklasseDagpengerFangstFiske() - - val dagpengerFangstFiskePredicates = listOf( - ::isNæringDagpengerTilFisker, - ::isYtelseDagpengerTilFiskerSomBareHarHyre - ) - - assert(predicates.containsAll(dagpengerFangstFiskePredicates)) - assertEquals(predicates.size, dagpengerFangstFiskePredicates.size) - } - - @Test - fun `isNæringDagpengerTilFisker predicates correctly`() { - assert(isNæringDagpengerTilFisker(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.DAGPENGER_TIL_FISKER))) - - assertFalse(isNæringDagpengerTilFisker(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.ANNET))) - assertFalse(isNæringDagpengerTilFisker(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.DAGPENGER_TIL_FISKER))) - } - - @Test - fun `isYtelseDagpengerTilFiskerSomBareHarHyre predicates correctly`() { - assert(isYtelseDagpengerTilFiskerSomBareHarHyre(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.DAGPENGER_TIL_FISKER_SOM_BARE_HAR_HYRE))) - - assertFalse(isYtelseDagpengerTilFiskerSomBareHarHyre(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.SYKEPENGER_TIL_FISKER_SOM_BARE_HAR_HYRE))) - assertFalse(isYtelseDagpengerTilFiskerSomBareHarHyre(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.DAGPENGER_TIL_FISKER_SOM_BARE_HAR_HYRE))) - } -} diff --git a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesDagpengerTest.kt b/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesDagpengerTest.kt deleted file mode 100644 index 9a122026..00000000 --- a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesDagpengerTest.kt +++ /dev/null @@ -1,33 +0,0 @@ -package no.nav.dagpenger.inntekt.klassifisering - -import kotlin.test.assertFalse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektBeskrivelse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektType -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Test - -class PredicatesDagpengerTest { - - @Test - fun `predicatesInntektklasseDagpenger returns correct predicates`() { - val predicates = predicatesInntektklasseDagpenger() - - val dagpengerPredicates = listOf( - ::isYtelseDagpengerVedArbeidsløshet - ) - - assert(predicates.containsAll(dagpengerPredicates)) - assertEquals(predicates.size, dagpengerPredicates.size) - } - - @Test - fun `isYtelseDagpengerVedArbeidsløshet predicates correctly`() { - assert(isYtelseDagpengerVedArbeidsløshet( - DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.DAGPENGER_VED_ARBEIDSLOESHET))) - - assertFalse(isYtelseDagpengerVedArbeidsløshet( - DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.SYKEPENGER_TIL_FISKER_SOM_BARE_HAR_HYRE))) - assertFalse(isYtelseDagpengerVedArbeidsløshet( - DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.DAGPENGER_VED_ARBEIDSLOESHET))) - } -} diff --git "a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesN\303\246ringsinntektTest.kt" "b/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesN\303\246ringsinntektTest.kt" deleted file mode 100644 index d3a6c82f..00000000 --- "a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesN\303\246ringsinntektTest.kt" +++ /dev/null @@ -1,256 +0,0 @@ -package no.nav.dagpenger.inntekt.klassifisering - -import kotlin.test.assertFalse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektBeskrivelse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektType -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.SpesielleInntjeningsforhold -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Test - -class PredicatesNæringsinntektTest { - - @Test - fun `predicatesInntektklasseNæringsinntekt returns correct predicates`() { - val predicates = predicatesInntektklasseNæringsinntekt() - - val næringsinntektPredicates = listOf( - ::isLønnAnnetHyre, - ::isLønnBonusHyre, - ::isLønnFastTilleggHyre, - ::isLønnFastlønnHyre, - ::isLønnFeriepengerHyre, - ::isLønnHelligdagstilleggHyre, - ::isLønnOvertidsgodtgjørelseHyre, - ::isLønnSluttvederlagHyre, - ::isLønnTimelønnHyre, - ::isLønnUregelmessigeTilleggKnyttetTilArbeidetTidHyre, - ::isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTidHyre, - ::isLønnTrekkILoennForFerieHyre, - ::isNæringLottKunTrygdeavgift, - ::isNæringVederlag - ) - - assert(predicates.containsAll(næringsinntektPredicates)) - assertEquals(predicates.size, næringsinntektPredicates.size) - } - - @Test - fun `isLønnAnnetHyre predicates correctly`() { - assert(isLønnAnnetHyre(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.ANNET, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnAnnetHyre(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.ANNET, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - - assertFalse(isLønnAnnetHyre(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.BONUS))) - assertFalse(isLønnAnnetHyre(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.ANNET))) - assertFalse(isLønnAnnetHyre(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.ANNET))) - } - - @Test - fun `isLønnBonusHyre predicates correctly`() { - assert(isLønnBonusHyre(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.BONUS, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnBonusHyre(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.BONUS, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - - assertFalse(isLønnBonusHyre(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.ANNET))) - assertFalse(isLønnBonusHyre(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.BONUS))) - assertFalse(isLønnBonusHyre(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.BONUS))) - } - - @Test - fun `isLønnFastTilleggHyre predicates correctly`() { - assert(isLønnFastTilleggHyre(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.FAST_TILLEGG, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnFastTilleggHyre(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.FAST_TILLEGG, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - - assertFalse(isLønnFastTilleggHyre(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.BONUS))) - assertFalse(isLønnFastTilleggHyre(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.FAST_TILLEGG))) - assertFalse(isLønnFastTilleggHyre(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FAST_TILLEGG))) - } - - @Test - fun `isLønnFastlønnHyre predicates correctly`() { - assert(isLønnFastlønnHyre(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.FASTLOENN, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnFastlønnHyre(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.FASTLOENN, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - - assertFalse(isLønnFastlønnHyre(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FAST_TILLEGG))) - assertFalse(isLønnFastlønnHyre(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.FASTLOENN))) - assertFalse(isLønnFastlønnHyre(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FASTLOENN))) - } - - @Test - fun `isLønnFeriepengerHyre predicates correctly`() { - assert(isLønnFeriepengerHyre(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.FERIEPENGER, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnFeriepengerHyre(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.FERIEPENGER, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - - assertFalse(isLønnFeriepengerHyre(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FASTLOENN))) - assertFalse(isLønnFeriepengerHyre(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.FERIEPENGER))) - assertFalse(isLønnFeriepengerHyre(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FERIEPENGER))) - } - - @Test - fun `isLønnHelligdagstilleggHyre predicates correctly`() { - assert(isLønnHelligdagstilleggHyre(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.HELLIGDAGSTILLEGG, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnHelligdagstilleggHyre(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.HELLIGDAGSTILLEGG, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - - assertFalse(isLønnHelligdagstilleggHyre(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FERIEPENGER))) - assertFalse(isLønnHelligdagstilleggHyre(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.HELLIGDAGSTILLEGG))) - assertFalse(isLønnHelligdagstilleggHyre(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.HELLIGDAGSTILLEGG))) - } - - @Test - fun `isLønnOvertidsgodtgjørelseHyre predicates correctly`() { - assert(isLønnOvertidsgodtgjørelseHyre(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.OVERTIDSGODTGJOERELSE, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnOvertidsgodtgjørelseHyre(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.OVERTIDSGODTGJOERELSE, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - - assertFalse(isLønnOvertidsgodtgjørelseHyre(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.HELLIGDAGSTILLEGG))) - assertFalse(isLønnOvertidsgodtgjørelseHyre(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.OVERTIDSGODTGJOERELSE))) - assertFalse(isLønnOvertidsgodtgjørelseHyre(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.OVERTIDSGODTGJOERELSE))) - } - - @Test - fun `isLønnSluttvederlagHyre predicates correctly`() { - assert(isLønnSluttvederlagHyre(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.SLUTTVEDERLAG, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnSluttvederlagHyre(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.SLUTTVEDERLAG, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - - assertFalse(isLønnSluttvederlagHyre(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.OVERTIDSGODTGJOERELSE))) - assertFalse(isLønnSluttvederlagHyre(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.SLUTTVEDERLAG))) - assertFalse(isLønnSluttvederlagHyre(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.SLUTTVEDERLAG))) - } - - @Test - fun `isLønnTimelønnHyre predicates correctly`() { - assert(isLønnTimelønnHyre(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.TIMELOENN, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnTimelønnHyre(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.TIMELOENN, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - - assertFalse(isLønnTimelønnHyre(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.SLUTTVEDERLAG))) - assertFalse(isLønnTimelønnHyre(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.TIMELOENN))) - assertFalse(isLønnTimelønnHyre(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.TIMELOENN))) - } - - @Test - fun `isLønnUregelmessigeTilleggKnyttetTilArbeidetTidHyre predicates correctly`() { - assert(isLønnUregelmessigeTilleggKnyttetTilArbeidetTidHyre(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_ARBEIDET_TID, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnUregelmessigeTilleggKnyttetTilArbeidetTidHyre(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_ARBEIDET_TID, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - - assertFalse(isLønnUregelmessigeTilleggKnyttetTilArbeidetTidHyre(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.TIMELOENN))) - assertFalse(isLønnUregelmessigeTilleggKnyttetTilArbeidetTidHyre(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_ARBEIDET_TID))) - assertFalse(isLønnUregelmessigeTilleggKnyttetTilArbeidetTidHyre(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_ARBEIDET_TID))) - } - - @Test - fun `isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTidHyre predicates correctly`() { - assert(isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTidHyre(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_IKKE_ARBEIDET_TID, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTidHyre(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_IKKE_ARBEIDET_TID, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - - assertFalse(isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTidHyre(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_ARBEIDET_TID))) - assertFalse(isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTidHyre(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_IKKE_ARBEIDET_TID))) - assertFalse(isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTidHyre(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_IKKE_ARBEIDET_TID))) - } - - @Test - fun `isLønnTrekkILoennForFerieHyre predicates correctly`() { - assert(isLønnTrekkILoennForFerieHyre(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.TREKK_I_LOENN_FOR_FERIE, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnTrekkILoennForFerieHyre(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.TREKK_I_LOENN_FOR_FERIE, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - - assertFalse(isLønnTrekkILoennForFerieHyre(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.TIMELOENN))) - assertFalse(isLønnTrekkILoennForFerieHyre(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.TREKK_I_LOENN_FOR_FERIE))) - assertFalse(isLønnTrekkILoennForFerieHyre(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.TREKK_I_LOENN_FOR_FERIE))) - } - - @Test - fun `isNæringLottKunTrygdeavgift predicates correctly`() { - assert(isNæringLottKunTrygdeavgift(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.LOTT_KUN_TRYGDEAVGIFT))) - - assertFalse(isNæringLottKunTrygdeavgift(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.VEDERLAG))) - assertFalse(isNæringLottKunTrygdeavgift(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.LOTT_KUN_TRYGDEAVGIFT))) - } - - @Test - fun `isNæringVederlag predicates correctly`() { - assert(isNæringVederlag(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.VEDERLAG))) - - assertFalse(isNæringVederlag(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.LOTT_KUN_TRYGDEAVGIFT))) - assertFalse(isNæringVederlag(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.VEDERLAG))) - } -} diff --git a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesSykepengerFangstFiskeTest.kt b/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesSykepengerFangstFiskeTest.kt deleted file mode 100644 index ddf7e59e..00000000 --- a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesSykepengerFangstFiskeTest.kt +++ /dev/null @@ -1,39 +0,0 @@ -package no.nav.dagpenger.inntekt.klassifisering - -import kotlin.test.assertFalse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektBeskrivelse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektType -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Test - -class PredicatesSykepengerFangstFiskeTest { - - @Test - fun `predicatesInntektklasseSykepengerFangstFiske returns correct predicates`() { - val predicates = predicatesInntektklasseSykepengerFangstFiske() - - val sykepengerFangstFiskePredicates = listOf( - ::isNæringSykepengerTilFisker, - ::isYtelseSykepengerTilFiskerSomBareHarHyre - ) - - assert(predicates.containsAll(sykepengerFangstFiskePredicates)) - assertEquals(predicates.size, sykepengerFangstFiskePredicates.size) - } - - @Test - fun `isNæringSykepengerTilFisker predicates correctly`() { - assert(isNæringSykepengerTilFisker(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.SYKEPENGER_TIL_FISKER))) - - assertFalse(isNæringSykepengerTilFisker(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.DAGPENGER_TIL_FISKER))) - assertFalse(isNæringSykepengerTilFisker(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.SYKEPENGER_TIL_FISKER))) - } - - @Test - fun `isYtelseSykepengerTilFiskerSomBareHarHyre predicates correctly`() { - assert(isYtelseSykepengerTilFiskerSomBareHarHyre(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.SYKEPENGER_TIL_FISKER_SOM_BARE_HAR_HYRE))) - - assertFalse(isYtelseSykepengerTilFiskerSomBareHarHyre(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.DAGPENGER_TIL_FISKER_SOM_BARE_HAR_HYRE))) - assertFalse(isYtelseSykepengerTilFiskerSomBareHarHyre(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.SYKEPENGER_TIL_FISKER_SOM_BARE_HAR_HYRE))) - } -} diff --git a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesSykepengerTest.kt b/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesSykepengerTest.kt deleted file mode 100644 index 2a2aa3eb..00000000 --- a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesSykepengerTest.kt +++ /dev/null @@ -1,30 +0,0 @@ -package no.nav.dagpenger.inntekt.klassifisering - -import kotlin.test.assertEquals -import kotlin.test.assertFalse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektBeskrivelse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektType -import org.junit.jupiter.api.Test - -class PredicatesSykepengerTest { - - @Test - fun `predicatesInntektklasseSykepenger returns correct predicates`() { - val predicates = predicatesInntektklasseSykepenger() - - val sykepengerPredicates = listOf( - ::isYtelseSykepenger - ) - - assert(predicates.containsAll(sykepengerPredicates)) - assertEquals(predicates.size, sykepengerPredicates.size) - } - - @Test - fun `isYtelseSykepenger predicates correctly`() { - assert(isYtelseSykepenger(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.SYKEPENGER))) - - assertFalse(isYtelseSykepenger(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.VEDERLAG))) - assertFalse(isYtelseSykepenger(DatagrunnlagKlassifisering(InntektType.NAERINGSINNTEKT, InntektBeskrivelse.SYKEPENGER))) - } -} diff --git "a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesTiltaksl\303\270nnTest.kt" "b/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesTiltaksl\303\270nnTest.kt" deleted file mode 100644 index 5964df2e..00000000 --- "a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/klassifisering/PredicatesTiltaksl\303\270nnTest.kt" +++ /dev/null @@ -1,238 +0,0 @@ -package no.nav.dagpenger.inntekt.klassifisering - -import kotlin.test.assertFalse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektBeskrivelse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektType -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.SpesielleInntjeningsforhold -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Test - -class PredicatesTiltakslønnTest { - - @Test - fun `predicatesInntektklasseNæringsinntekt returns correct predicates`() { - val predicates = predicatesInntektklasseTiltakslønn() - - val næringsinntektPredicates = listOf( - ::isLønnAnnetTiltak, - ::isLønnBonusTiltak, - ::isLønnFastTilleggTiltak, - ::isLønnFastlønnTiltak, - ::isLønnFeriepengerTiltak, - ::isLønnHelligdagstilleggTiltak, - ::isLønnOvertidsgodtgjørelseTiltak, - ::isLønnSluttvederlagTiltak, - ::isLønnTimelønnTiltak, - ::isLønnUregelmessigeTilleggKnyttetTilArbeidetTidTiltak, - ::isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTidTiltak, - ::isLønnTrekkILoennForFerieTiltak - ) - - assert(predicates.containsAll(næringsinntektPredicates)) - assertEquals(predicates.size, næringsinntektPredicates.size) - } - - @Test - fun `isLønnAnnetTiltak predicates correctly`() { - assert(isLønnAnnetTiltak(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.ANNET, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - - assertFalse(isLønnAnnetTiltak(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.ANNET, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnAnnetTiltak(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.BONUS))) - assertFalse(isLønnAnnetTiltak(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.ANNET))) - assertFalse(isLønnAnnetTiltak(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.ANNET))) - } - - @Test - fun `isLønnBonusTiltak predicates correctly`() { - assert(isLønnBonusTiltak(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.BONUS, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - - assertFalse(isLønnBonusTiltak(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.BONUS, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnBonusTiltak(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.ANNET))) - assertFalse(isLønnBonusTiltak(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.BONUS))) - assertFalse(isLønnBonusTiltak(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.BONUS))) - } - - @Test - fun `isLønnFastTilleggTiltak predicates correctly`() { - assert(isLønnFastTilleggTiltak(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.FAST_TILLEGG, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - - assertFalse(isLønnFastTilleggTiltak(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.FAST_TILLEGG, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnFastTilleggTiltak(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.BONUS))) - assertFalse(isLønnFastTilleggTiltak(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.FAST_TILLEGG))) - assertFalse(isLønnFastTilleggTiltak(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FAST_TILLEGG))) - } - - @Test - fun `isLønnFastlønnTiltak predicates correctly`() { - assert(isLønnFastlønnTiltak(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.FASTLOENN, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - - assertFalse(isLønnFastlønnTiltak(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.FASTLOENN, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnFastlønnTiltak(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FAST_TILLEGG))) - assertFalse(isLønnFastlønnTiltak(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.FASTLOENN))) - assertFalse(isLønnFastlønnTiltak(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FASTLOENN))) - } - - @Test - fun `isLønnFeriepengerTiltak predicates correctly`() { - assert(isLønnFeriepengerTiltak(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.FERIEPENGER, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - - assertFalse(isLønnFeriepengerTiltak(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.FERIEPENGER, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnFeriepengerTiltak(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FASTLOENN))) - assertFalse(isLønnFeriepengerTiltak(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.FERIEPENGER))) - assertFalse(isLønnFeriepengerTiltak(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FERIEPENGER))) - } - - @Test - fun `isLønnHelligdagstilleggTiltak predicates correctly`() { - assert(isLønnHelligdagstilleggTiltak(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.HELLIGDAGSTILLEGG, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - - assertFalse(isLønnHelligdagstilleggTiltak(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.HELLIGDAGSTILLEGG, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnHelligdagstilleggTiltak(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FERIEPENGER))) - assertFalse(isLønnHelligdagstilleggTiltak(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.HELLIGDAGSTILLEGG))) - assertFalse(isLønnHelligdagstilleggTiltak(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.HELLIGDAGSTILLEGG))) - } - - @Test - fun `isLønnOvertidsgodtgjørelseTiltak predicates correctly`() { - assert(isLønnOvertidsgodtgjørelseTiltak(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.OVERTIDSGODTGJOERELSE, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - - assertFalse(isLønnOvertidsgodtgjørelseTiltak(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.OVERTIDSGODTGJOERELSE, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnOvertidsgodtgjørelseTiltak(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.HELLIGDAGSTILLEGG))) - assertFalse(isLønnOvertidsgodtgjørelseTiltak(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.OVERTIDSGODTGJOERELSE))) - assertFalse(isLønnOvertidsgodtgjørelseTiltak(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.OVERTIDSGODTGJOERELSE))) - } - - @Test - fun `isLønnSluttvederlagTiltak predicates correctly`() { - assert(isLønnSluttvederlagTiltak(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.SLUTTVEDERLAG, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - - assertFalse(isLønnSluttvederlagTiltak(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.SLUTTVEDERLAG, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnSluttvederlagTiltak(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.OVERTIDSGODTGJOERELSE))) - assertFalse(isLønnSluttvederlagTiltak(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.SLUTTVEDERLAG))) - assertFalse(isLønnSluttvederlagTiltak(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.SLUTTVEDERLAG))) - } - - @Test - fun `isLønnTimelønnTiltak predicates correctly`() { - assert(isLønnTimelønnTiltak(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.TIMELOENN, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - - assertFalse(isLønnTimelønnTiltak(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.TIMELOENN, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnTimelønnTiltak(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.SLUTTVEDERLAG))) - assertFalse(isLønnTimelønnTiltak(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.TIMELOENN))) - assertFalse(isLønnTimelønnTiltak(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.TIMELOENN))) - } - - @Test - fun `isLønnUregelmessigeTilleggKnyttetTilArbeidetTidTiltak predicates correctly`() { - assert(isLønnUregelmessigeTilleggKnyttetTilArbeidetTidTiltak(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_ARBEIDET_TID, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - - assertFalse(isLønnUregelmessigeTilleggKnyttetTilArbeidetTidTiltak(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_ARBEIDET_TID, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnUregelmessigeTilleggKnyttetTilArbeidetTidTiltak(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.TIMELOENN))) - assertFalse(isLønnUregelmessigeTilleggKnyttetTilArbeidetTidTiltak(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_ARBEIDET_TID))) - assertFalse(isLønnUregelmessigeTilleggKnyttetTilArbeidetTidTiltak(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_ARBEIDET_TID))) - } - - @Test - fun `isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTidTiltak predicates correctly`() { - assert(isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTidTiltak(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_IKKE_ARBEIDET_TID, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - - assertFalse(isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTidTiltak(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_IKKE_ARBEIDET_TID, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTidTiltak(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_ARBEIDET_TID))) - assertFalse(isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTidTiltak(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_IKKE_ARBEIDET_TID))) - assertFalse(isLønnUregelmessigeTilleggKnyttetTilIkkeArbeidetTidTiltak(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.UREGELMESSIGE_TILLEGG_KNYTTET_TIL_IKKE_ARBEIDET_TID))) - } - - @Test - fun `isLønnTrekkILoennForFerieTiltak predicates correctly`() { - assert(isLønnTrekkILoennForFerieTiltak(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.TREKK_I_LOENN_FOR_FERIE, - SpesielleInntjeningsforhold.LOENN_VED_ARBEIDSMARKEDSTILTAK))) - - assertFalse(isLønnTrekkILoennForFerieTiltak(DatagrunnlagKlassifisering( - InntektType.LOENNSINNTEKT, - InntektBeskrivelse.TREKK_I_LOENN_FOR_FERIE, - SpesielleInntjeningsforhold.HYRE_TIL_MANNSKAP_PAA_FISKE_SMAAHVALFANGST_OG_SELFANGSTFARTOEY))) - - assertFalse(isLønnTrekkILoennForFerieTiltak(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.FASTLOENN))) - assertFalse(isLønnTrekkILoennForFerieTiltak(DatagrunnlagKlassifisering(InntektType.YTELSE_FRA_OFFENTLIGE, InntektBeskrivelse.TREKK_I_LOENN_FOR_FERIE))) - assertFalse(isLønnTrekkILoennForFerieTiltak(DatagrunnlagKlassifisering(InntektType.LOENNSINNTEKT, InntektBeskrivelse.TREKK_I_LOENN_FOR_FERIE))) - } -} diff --git a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/v1/KlassifisertInntektApiTest.kt b/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/v1/KlassifisertInntektApiTest.kt deleted file mode 100644 index 2cdef62a..00000000 --- a/dp-inntekt-api/src/test/kotlin/no/nav/dagpenger/inntekt/v1/KlassifisertInntektApiTest.kt +++ /dev/null @@ -1,339 +0,0 @@ -package no.nav.dagpenger.inntekt.v1 - -import de.huxhorn.sulky.ulid.ULID -import io.kotest.matchers.string.shouldContain -import io.ktor.http.HttpHeaders -import io.ktor.http.HttpMethod -import io.ktor.http.HttpStatusCode -import io.ktor.server.testing.TestApplicationEngine -import io.ktor.server.testing.handleRequest -import io.ktor.server.testing.setBody -import io.ktor.server.testing.withTestApplication -import io.mockk.every -import io.mockk.mockk -import java.time.LocalDateTime -import java.time.YearMonth -import kotlin.test.assertEquals -import kotlin.test.assertTrue -import kotlinx.coroutines.runBlocking -import no.nav.dagpenger.inntekt.AuthApiKeyVerifier -import no.nav.dagpenger.inntekt.Problem -import no.nav.dagpenger.inntekt.db.InntektId -import no.nav.dagpenger.inntekt.db.InntektNotFoundException -import no.nav.dagpenger.inntekt.db.InntektStore -import no.nav.dagpenger.inntekt.db.StoredInntekt -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.Aktoer -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.AktoerType -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektkomponentRequest -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektkomponentResponse -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektskomponentClient -import no.nav.dagpenger.inntekt.inntektskomponenten.v1.InntektskomponentenHttpClientException -import no.nav.dagpenger.inntekt.moshiInstance -import no.nav.dagpenger.inntekt.oppslag.OppslagClient -import no.nav.dagpenger.ktor.auth.ApiKeyVerifier -import org.junit.jupiter.api.Test - -class KlassifisertInntektApiTest { - val validJson = """ - { - "aktørId": "1234", - "vedtakId": 1, - "beregningsDato": "2019-01-08" - } - """.trimIndent() - - val validJsonById = """ - { - "aktørId": "1234", - "beregningsDato": "2019-01-08" - } - """.trimIndent() - - val jsonMissingFields = """ - { - "aktørId": "1234", - } - """.trimIndent() - - private val apiKeyVerifier = ApiKeyVerifier("secret") - private val authApiKeyVerifier = AuthApiKeyVerifier(apiKeyVerifier, listOf("test-client")) - private val apiKey = apiKeyVerifier.generate("test-client") - private val inntektskomponentClientMock: InntektskomponentClient = mockk() - private val oppslagClientMock: OppslagClient = mockk() - private val inntektStoreMock: InntektStore = mockk(relaxed = true) - private val inntektPath = "/v1/inntekt" - - init { - every { - runBlocking { - inntektskomponentClientMock.getInntekt( - InntektkomponentRequest( - "1234", - YearMonth.of(2016, 1), - YearMonth.of(2018, 12) - ) - ) - } - } returns InntektkomponentResponse( - emptyList(), - Aktoer(AktoerType.AKTOER_ID, "1234") - ) - every { - runBlocking { - inntektskomponentClientMock.getInntekt( - InntektkomponentRequest( - "5678", - YearMonth.of(2016, 1), - YearMonth.of(2018, 12) - ) - ) - } - } throws InntektskomponentenHttpClientException(400, "Bad request") - - every { - inntektStoreMock.getInntektId(any()) - } returns null - every { - oppslagClientMock.finnNaturligIdent(any()) - } returns "12345678912" - } - - @Test - fun ` should be able to Http GET isReady, isAlive and metrics endpoint `() = - testApp { - - with(handleRequest(HttpMethod.Get, "isAlive")) { - assertEquals(HttpStatusCode.OK, response.status()) - } - with(handleRequest(HttpMethod.Get, "isReady")) { - assertEquals(HttpStatusCode.OK, response.status()) - } - with(handleRequest(HttpMethod.Get, "metrics")) { - assertEquals(HttpStatusCode.OK, response.status()) - } - } - - @Test - fun `Get klassifisert inntekt should return 200 ok`() = testApp { - handleRequest(HttpMethod.Post, inntektPath) { - addHeader(HttpHeaders.ContentType, "application/json") - addHeader("X-API-KEY", apiKey) - setBody(validJson) - }.apply { - assertTrue(requestHandled) - assertEquals(HttpStatusCode.OK, response.status()) - } - } - - @Test - fun `Get klassifisert inntekt by ID should return 200 ok`() = testApp { - val inntektId = InntektId(ULID().nextULID()) - - every { - runBlocking { - inntektStoreMock.getInntekt(inntektId) - } - } returns StoredInntekt( - inntektId = inntektId, - inntekt = InntektkomponentResponse( - arbeidsInntektMaaned = emptyList(), - ident = Aktoer(AktoerType.AKTOER_ID, "1234") - ), - manueltRedigert = false, - timestamp = LocalDateTime.now() - ) - - handleRequest(HttpMethod.Post, "$inntektPath/${inntektId.id}") { - addHeader(HttpHeaders.ContentType, "application/json") - addHeader("X-API-KEY", apiKey) - setBody(validJson) - }.apply { - assertTrue(requestHandled) - response.content.shouldContain(inntektId.id) - assertEquals(HttpStatusCode.OK, response.status()) - } - } - - @Test - fun `Get klassifisert inntekt by ID should verify that aktorId matched the inntekt`() = testApp { - val inntektId = InntektId(ULID().nextULID()) - - every { - runBlocking { - inntektStoreMock.getInntekt(inntektId) - } - } returns StoredInntekt( - inntektId = inntektId, - inntekt = InntektkomponentResponse( - arbeidsInntektMaaned = emptyList(), - ident = Aktoer(AktoerType.AKTOER_ID, "3245") - ), - manueltRedigert = false, - timestamp = LocalDateTime.now() - ) - - handleRequest(HttpMethod.Post, "$inntektPath/${inntektId.id}") { - addHeader(HttpHeaders.ContentType, "application/json") - addHeader("X-API-KEY", apiKey) - setBody(validJson) - }.apply { - assertTrue(requestHandled) - val problem = moshiInstance.adapter(Problem::class.java).fromJson(response.content!!) - assertEquals("AktørId i request stemmer ikke med aktørId på inntekten du spør etter.", problem?.title) - assertEquals("urn:dp:error:inntekt", problem?.type.toString()) - assertEquals(401, problem?.status) - assertEquals(HttpStatusCode.Unauthorized, response.status()) - } - } - - @Test - fun `Get klassifisert inntekt by invalid ULID should return 400 Bad Request`() = testApp { - handleRequest(HttpMethod.Post, "$inntektPath/123") { - addHeader(HttpHeaders.ContentType, "application/json") - addHeader("X-API-KEY", apiKey) - setBody(validJsonById) - }.apply { - assertTrue(requestHandled) - val problem = moshiInstance.adapter(Problem::class.java).fromJson(response.content!!) - assertEquals("InntektsId må være en gyldig ULID", problem?.title) - assertEquals("urn:dp:error:inntekt", problem?.type.toString()) - assertEquals(400, problem?.status) - assertEquals(HttpStatusCode.BadRequest, response.status()) - } - } - - @Test - fun `Get klassifisert inntekt by non-existing ID should return 404 Not Found`() = testApp { - val inntektId = InntektId(ULID().nextULID()) - - every { - runBlocking { - inntektStoreMock.getInntekt(inntektId) - } - } throws InntektNotFoundException("Test inntekt not found") - - handleRequest(HttpMethod.Post, "$inntektPath/${inntektId.id}") { - addHeader(HttpHeaders.ContentType, "application/json") - addHeader("X-API-KEY", apiKey) - setBody(validJsonById) - }.apply { - assertTrue(requestHandled) - val problem = moshiInstance.adapter(Problem::class.java).fromJson(response.content!!) - assertEquals("Kunne ikke finne inntekt i databasen", problem?.title) - assertEquals("urn:dp:error:inntekt", problem?.type.toString()) - assertEquals(404, problem?.status) - assertEquals(HttpStatusCode.NotFound, response.status()) - } - } - - @Test - fun ` Should respond on unhandled errors and return in rfc7807 problem details standard `() = testApp { - handleRequest(HttpMethod.Post, inntektPath) { - addHeader(HttpHeaders.ContentType, "application/json") - addHeader("X-API-KEY", apiKey) - setBody( - """ - { - "aktørId": "5678", - "vedtakId": 1, - "beregningsDato": "2019-01-08" - } - """.trimIndent() - ) - }.apply { - assertTrue(requestHandled) - assertEquals(HttpStatusCode.BadRequest, response.status()) - val problem = moshiInstance.adapter(Problem::class.java).fromJson(response.content!!) - assertEquals("Innhenting av inntekt mot a-inntekt feilet. Prøv igjen senere", problem?.title) - assertEquals("urn:dp:error:inntektskomponenten", problem?.type.toString()) - assertEquals(400, problem?.status) - } - } - - @Test - fun ` should forward Http status from inntektskomponenten and return in rfc7807 problem details standard `() = - testApp { - handleRequest(HttpMethod.Post, inntektPath) { - addHeader(HttpHeaders.ContentType, "application/json") - addHeader("X-API-KEY", apiKey) - setBody( - """ - { - "aktørId": "5678", - "vedtakId": 1, - "beregningsDato": "2019-01-08" - } - """.trimIndent() - ) - }.apply { - assertTrue(requestHandled) - assertEquals(HttpStatusCode.BadRequest, response.status()) - val problem = moshiInstance.adapter(Problem::class.java).fromJson(response.content!!) - assertEquals("Innhenting av inntekt mot a-inntekt feilet. Prøv igjen senere", problem?.title) - assertEquals("urn:dp:error:inntektskomponenten", problem?.type.toString()) - assertEquals(400, problem?.status) - } - } - - @Test - fun `post request with bad json`() = testApp { - handleRequest(HttpMethod.Post, inntektPath) { - addHeader(HttpHeaders.ContentType, "application/json") - addHeader("X-API-KEY", apiKey) - setBody(jsonMissingFields) - }.apply { - assertTrue(requestHandled) - assertEquals(HttpStatusCode.BadRequest, response.status()) - } - } - - @Test - fun ` Errors should return in rfc7807 problem details standard on bad request`() = testApp { - handleRequest(HttpMethod.Post, inntektPath) { - addHeader(HttpHeaders.ContentType, "application/json") - addHeader("X-API-KEY", apiKey) - setBody(jsonMissingFields) - }.apply { - assertTrue(requestHandled) - assertEquals(HttpStatusCode.BadRequest, response.status()) - val problem = moshiInstance.adapter(Problem::class.java).fromJson(response.content!!) - assertEquals("Klarte ikke å lese parameterene", problem?.title) - assertEquals("urn:dp:error:inntekt:parameter", problem?.type.toString()) - assertEquals(400, problem?.status) - } - } - - @Test - fun `Should get unauthorized without api key header`() = testApp { - handleRequest(HttpMethod.Post, inntektPath) { - addHeader(HttpHeaders.ContentType, "application/json") - setBody(validJson) - }.apply { - assertTrue(requestHandled) - assertEquals(HttpStatusCode.Unauthorized, response.status()) - } - } - - @Test - fun `Should get unauthorized without api wrong api key`() = testApp { - handleRequest(HttpMethod.Post, inntektPath) { - addHeader(HttpHeaders.ContentType, "application/json") - addHeader("X-API-KEY", "blabla") - setBody(validJson) - }.apply { - assertTrue(requestHandled) - assertEquals(HttpStatusCode.Unauthorized, response.status()) - } - } - - private fun testApp(callback: TestApplicationEngine.() -> Unit) { - withTestApplication( - mockInntektApi( - inntektskomponentClient = inntektskomponentClientMock, - inntektStore = inntektStoreMock, - oppslagClient = oppslagClientMock, - apiAuthApiKeyVerifier = authApiKeyVerifier - ) - ) { callback() } - } -}