Skip to content

Commit

Permalink
Konvertere kontrollertester
Browse files Browse the repository at this point in the history
  • Loading branch information
s148719 committed Dec 18, 2024
1 parent 51d304b commit 064494e
Show file tree
Hide file tree
Showing 4 changed files with 124 additions and 77 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ import no.nav.bidrag.behandling.transformers.underhold.henteOgValidereUnderholds
import no.nav.bidrag.behandling.transformers.underhold.validerePerioder
import no.nav.bidrag.behandling.transformers.underhold.validerePerioderFaktiskTilsynsutgift
import no.nav.bidrag.behandling.transformers.underhold.validerePerioderTilleggsstønad
import no.nav.bidrag.behandling.transformers.underhold.tilStønadTilBarnetilsynDto
import no.nav.bidrag.behandling.transformers.underhold.validerePerioder
import no.nav.bidrag.commons.util.secureLogger
import org.springframework.http.HttpStatus
import org.springframework.web.bind.annotation.DeleteMapping
Expand Down Expand Up @@ -119,7 +117,7 @@ class UnderholdController(
return OppdatereUnderholdResponse(
stønadTilBarnetilsyn = underholdService.oppdatereStønadTilBarnetilsynManuelt(underholdskostnad, request),
underholdskostnad =
dtomapper.tilUnderholdskostnadsperioderForBehandlingMedKunEttSøknadsbarn(underholdskostnad.behandling),
dtomapper.tilUnderholdskostnadsperioderForBehandlingMedKunEttSøknadsbarn(underholdskostnad.behandling),
valideringsfeil = underholdskostnad.barnetilsyn.validerePerioder(),
)
}
Expand Down Expand Up @@ -202,7 +200,7 @@ class UnderholdController(
tilleggsstønad = dtomapper.tilTilleggsstønadDto(oppdatertTilleggsstønad),
underholdskostnad =
dtomapper.tilUnderholdskostnadsperioderForBehandlingMedKunEttSøknadsbarn(underholdskostnad.behandling),
valideringsfeil = underholdskostnad.tilleggsstønad.validerePerioderTilleggsstønad(underholdskostnad)
valideringsfeil = underholdskostnad.tilleggsstønad.validerePerioderTilleggsstønad(underholdskostnad),
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ package no.nav.bidrag.behandling.controller
import com.ninjasquad.springmockk.MockkBean
import io.kotest.assertions.assertSoftly
import io.kotest.matchers.collections.shouldHaveSize
import io.kotest.matchers.maps.shouldHaveSize
import io.kotest.matchers.nulls.shouldNotBeNull
import io.kotest.matchers.shouldBe
import io.kotest.matchers.shouldNotBe
import io.mockk.every
Expand All @@ -12,7 +14,6 @@ import no.nav.bidrag.behandling.database.repository.BehandlingRepository
import no.nav.bidrag.behandling.database.repository.GrunnlagRepository
import no.nav.bidrag.behandling.dto.v1.beregning.ResultatBeregningBarnDto
import no.nav.bidrag.behandling.dto.v1.beregning.ResultatSærbidragsberegningDto
import no.nav.bidrag.behandling.dto.v2.validering.BeregningValideringsfeil
import no.nav.bidrag.behandling.utils.testdata.opprettAlleAktiveGrunnlagFraFil
import no.nav.bidrag.behandling.utils.testdata.opprettGyldigBehandlingForBeregningOgVedtak
import no.nav.bidrag.behandling.utils.testdata.oppretteBehandling
Expand Down Expand Up @@ -178,32 +179,41 @@ class BehandlingBeregnControllerTest : KontrollerTestRunner() {
"${rootUriV1()}/behandling/${behandling.id}/beregn",
HttpMethod.POST,
HttpEntity.EMPTY,
BeregningValideringsfeil::class.java,
Any::class.java,
)

// then
assertSoftly {
returnert shouldNotBe null
returnert.statusCode shouldBe HttpStatus.BAD_REQUEST
returnert.body shouldNotBe null
returnert.body!!.virkningstidspunkt shouldBe null
returnert.body!!.husstandsmedlem shouldBe null
returnert.body!!.sivilstand shouldNotBe null
assertSoftly(returnert.body!!.sivilstand!!) {
hullIPerioder shouldHaveSize 0
overlappendePerioder shouldHaveSize 0
fremtidigPeriode shouldBe false
manglerPerioder shouldBe true
ingenLøpendePeriode shouldBe false
}
assertSoftly(returnert.body!!.inntekter!!) {
barnetillegg shouldBe null
utvidetBarnetrygd shouldBe null
kontantstøtte shouldBe null
småbarnstillegg shouldBe null
årsinntekter shouldNotBe null
årsinntekter!! shouldHaveSize 1
}
}

val body = returnert.body as LinkedHashMap<*, *>

body["virkningstidspukt"] shouldBe null
body["husstandsmedlem"] shouldBe null
body["sivilstand"] shouldNotBe null

assertSoftly(body["sivilstand"] as LinkedHashMap<*, *>) {
shouldNotBeNull()
get("hullIPerioder") shouldNotBe null
get("hullIPerioder") as ArrayList<*> shouldHaveSize 0
get("overlappendePerioder") shouldNotBe null
get("overlappendePerioder") as ArrayList<*> shouldHaveSize 0
get("fremtidigPeriode") as Boolean shouldBe false
get("manglerPerioder") as Boolean shouldBe true
get("ingenLøpendePeriode") as Boolean shouldBe false
}

assertSoftly(body["inntekter"] as LinkedHashMap<*, *>) {
shouldHaveSize(5)
get("barnetillegg") shouldBe null
get("utvidetBarnetrygd") shouldBe null
get("kontantstøtte") shouldBe null
get("småbarnstillegg") shouldBe null
get("årsinntekter") shouldNotBe null
get("årsinntekter") as ArrayList<*> shouldHaveSize 1
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package no.nav.bidrag.behandling.controller

import io.kotest.assertions.assertSoftly
import io.kotest.matchers.collections.shouldContain
import io.kotest.matchers.collections.shouldContainAll
import io.kotest.matchers.date.shouldHaveSameDayAs
import io.kotest.matchers.shouldBe
import io.kotest.matchers.string.shouldContain
Expand All @@ -12,7 +12,6 @@ import no.nav.bidrag.behandling.database.datamodell.Grunnlag
import no.nav.bidrag.behandling.database.repository.BehandlingRepository
import no.nav.bidrag.behandling.database.repository.GrunnlagRepository
import no.nav.bidrag.behandling.dto.v2.behandling.Grunnlagsdatatype
import no.nav.bidrag.behandling.dto.v2.validering.BeregningValideringsfeil
import no.nav.bidrag.behandling.service.GrunnlagService
import no.nav.bidrag.behandling.toggleFatteVedtakName
import no.nav.bidrag.behandling.utils.testdata.SAKSBEHANDLER_IDENT
Expand Down Expand Up @@ -248,12 +247,14 @@ class VedtakControllerTest : KontrollerTestRunner() {
"${rootUriV2()}/behandling/fattevedtak/${behandling.id}",
HttpMethod.POST,
null,
BeregningValideringsfeil::class.java,
Any::class.java,
)

response.statusCode shouldBe HttpStatus.BAD_REQUEST
response.headers[HttpHeaders.WARNING]!!.first() shouldContain "Validering feilet - Feil ved validering av behandling for beregning"
response.body!!.måBekrefteNyeOpplysninger.map { it.type } shouldContainAll listOf(Grunnlagsdatatype.SKATTEPLIKTIGE_INNTEKTER)
assertSoftly((response.body as LinkedHashMap<*, *>)["måBekrefteNyeOpplysninger"] as ArrayList<*>) {
(first() as LinkedHashMap<*, *>)["type"] as String shouldBe Grunnlagsdatatype.SKATTEPLIKTIGE_INNTEKTER.name
}
}

@Test
Expand Down Expand Up @@ -283,12 +284,14 @@ class VedtakControllerTest : KontrollerTestRunner() {
"${rootUriV2()}/behandling/fattevedtak/${behandling.id}",
HttpMethod.POST,
null,
BeregningValideringsfeil::class.java,
Any::class.java,
)

response.statusCode shouldBe HttpStatus.BAD_REQUEST
response.headers[HttpHeaders.WARNING]!!.first() shouldContain "Validering feilet - Feil ved validering av behandling for beregning"
response.body!!.måBekrefteNyeOpplysninger.map { it.type } shouldContainAll listOf(Grunnlagsdatatype.SKATTEPLIKTIGE_INNTEKTER)
assertSoftly((response.body as LinkedHashMap<*, *>)["måBekrefteNyeOpplysninger"] as ArrayList<*>) {
(first() as LinkedHashMap<*, *>)["type"] as String shouldBe Grunnlagsdatatype.SKATTEPLIKTIGE_INNTEKTER.name
}
}

private fun save(behandling: Behandling) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package no.nav.bidrag.behandling.controller.behandling

import io.kotest.assertions.assertSoftly
import io.kotest.matchers.collections.shouldHaveSize
import io.kotest.matchers.maps.shouldHaveSize
import io.kotest.matchers.nulls.shouldNotBeNull
import io.kotest.matchers.shouldBe
import io.kotest.matchers.shouldNotBe
Expand All @@ -11,7 +12,6 @@ import no.nav.bidrag.behandling.database.datamodell.Inntektspost
import no.nav.bidrag.behandling.database.datamodell.Utgiftspost
import no.nav.bidrag.behandling.dto.v2.behandling.BehandlingDtoV2
import no.nav.bidrag.behandling.dto.v2.behandling.Grunnlagsdatatype
import no.nav.bidrag.behandling.utils.hentInntektForBarn
import no.nav.bidrag.behandling.utils.testdata.TestDataPerson
import no.nav.bidrag.behandling.utils.testdata.initGrunnlagRespons
import no.nav.bidrag.behandling.utils.testdata.opprettGyldigBehandlingForBeregningOgVedtak
Expand All @@ -28,7 +28,6 @@ import no.nav.bidrag.domene.enums.diverse.Kilde
import no.nav.bidrag.domene.enums.inntekt.Inntektsrapportering
import no.nav.bidrag.domene.enums.inntekt.Inntektstype
import no.nav.bidrag.domene.enums.person.Sivilstandskode
import no.nav.bidrag.domene.enums.rolle.Rolletype
import no.nav.bidrag.domene.enums.særbidrag.Særbidragskategori
import no.nav.bidrag.domene.enums.særbidrag.Utgiftstype
import no.nav.bidrag.domene.ident.Personident
Expand Down Expand Up @@ -64,54 +63,92 @@ class HentBehandlingTest : BehandlingControllerTest() {
"${rootUriV2()}/behandling/" + behandling.id,
HttpMethod.GET,
null,
BehandlingDtoV2::class.java,
Any::class.java,
)

//
Assertions.assertEquals(HttpStatus.OK, behandlingRes.statusCode)

assertSoftly(behandlingRes.body!!) {
it.inntekter.beregnetInntekter shouldHaveSize 3
val beregnetInntekterBM =
it.inntekter.beregnetInntekter.find { it.rolle == Rolletype.BIDRAGSMOTTAKER }!!
beregnetInntekterBM.inntekter shouldHaveSize 3
val inntekterAlle =
beregnetInntekterBM.inntekter.find { it.inntektGjelderBarnIdent == null }
val inntekterBarn1 =
beregnetInntekterBM.inntekter.hentInntektForBarn(testdataBarn1.ident)
val inntekterBarn2 =
beregnetInntekterBM.inntekter.hentInntektForBarn(testdataBarn2.ident)
inntekterAlle.shouldNotBeNull()
inntekterBarn1.shouldNotBeNull()
inntekterBarn2.shouldNotBeNull()

assertSoftly(it.inntekter.barnetillegg.toList()) {
this shouldHaveSize 2
this[0].gjelderBarn shouldBe Personident(testdataBarn1.ident)
this[0].inntektsposter shouldHaveSize 1
this[0].inntektsposter.first().beløp shouldBe this[0].beløp
this[0].inntektsposter.first().inntektstype shouldBe Inntektstype.BARNETILLEGG_PENSJON
}
val inntekter = (behandlingRes.body as LinkedHashMap<*, *>)["inntekter"] as LinkedHashMap<*, *>
inntekter shouldHaveSize (10)

val beregnaInntekter = inntekter["beregnetInntekter"] as ArrayList<*>
beregnaInntekter shouldHaveSize 3

val beregnaInntekterBm = beregnaInntekter.filter { (it as LinkedHashMap<*, *>)["rolle"] == "BM" } as ArrayList<*>

assertSoftly(inntekterAlle) {
summertInntektListe shouldHaveSize 3
summertInntektListe[0].skattepliktigInntekt shouldBe BigDecimal(55000)
summertInntektListe[0].barnetillegg shouldBe null
summertInntektListe[0].kontantstøtte shouldBe null
assertSoftly((beregnaInntekterBm.first() as LinkedHashMap<*, *>)["inntekter"] as ArrayList<*>) {
shouldHaveSize(3)
val inntekterIkkeBarn = find { (it as LinkedHashMap<*, *>)["inntektGjelderBarnIdent"] == null }
val inntekterBa1 = find { (it as LinkedHashMap<*, *>)["inntektGjelderBarnIdent"] != null && it["inntektGjelderBarnIdent"] as String == testdataBarn1.ident }
val inntekterBa2 = find { (it as LinkedHashMap<*, *>)["inntektGjelderBarnIdent"] != null && it["inntektGjelderBarnIdent"] as String == testdataBarn2.ident }

inntekterIkkeBarn.shouldNotBeNull()
inntekterBa1.shouldNotBeNull()
inntekterBa2.shouldNotBeNull()

assertSoftly(inntekterIkkeBarn as LinkedHashMap<*, *>) {
get("summertInntektListe") as ArrayList<*> shouldHaveSize 3
((get("summertInntektListe") as ArrayList<*>).first() as LinkedHashMap<*, *>)["skattepliktigInntekt"] as Int shouldBe 55000
((get("summertInntektListe") as ArrayList<*>).first() as LinkedHashMap<*, *>)["barnetillegg"] shouldBe null
((get("summertInntektListe") as ArrayList<*>).first() as LinkedHashMap<*, *>)["kontantstøtte"] shouldBe null
}
assertSoftly(inntekterBarn2) {
summertInntektListe shouldHaveSize 3
summertInntektListe[0].skattepliktigInntekt shouldBe BigDecimal(55000)
summertInntektListe[0].barnetillegg shouldBe null
summertInntektListe[0].kontantstøtte shouldBe null

assertSoftly(inntekterBa1 as LinkedHashMap<*, *>) {
get("summertInntektListe") as ArrayList<*> shouldHaveSize 5
((get("summertInntektListe") as ArrayList<*>).first() as LinkedHashMap<*, *>)["skattepliktigInntekt"] as Int shouldBe 55000
((get("summertInntektListe") as ArrayList<*>).first() as LinkedHashMap<*, *>)["barnetillegg"] as Int shouldBe 5000
((get("summertInntektListe") as ArrayList<*>).first() as LinkedHashMap<*, *>)["kontantstøtte"] shouldBe null
}
assertSoftly(inntekterBarn1) {
summertInntektListe shouldHaveSize 5
summertInntektListe[0].skattepliktigInntekt shouldBe BigDecimal(55000)
summertInntektListe[0].barnetillegg shouldBe BigDecimal(5000)
summertInntektListe[0].kontantstøtte shouldBe null

assertSoftly(inntekterBa2 as LinkedHashMap<*, *>) {
get("summertInntektListe") as ArrayList<*> shouldHaveSize 3
((get("summertInntektListe") as ArrayList<*>).first() as LinkedHashMap<*, *>)["skattepliktigInntekt"] as Int shouldBe 55000
((get("summertInntektListe") as ArrayList<*>).first() as LinkedHashMap<*, *>)["barnetillegg"] shouldBe null
((get("summertInntektListe") as ArrayList<*>).first() as LinkedHashMap<*, *>)["kontantstøtte"] shouldBe null
}
}

assertSoftly(inntekter["barnetillegg"] as ArrayList<*>) {
shouldHaveSize(2)

(first() as LinkedHashMap<*, *>)["gjelderBarn"] as String shouldBe Personident(testdataBarn1.ident).verdi
(first() as LinkedHashMap<*, *>)["inntektsposter"] as ArrayList<*> shouldHaveSize 1
(((first() as LinkedHashMap<*, *>)["inntektsposter"] as ArrayList<*>).first() as LinkedHashMap<*, *>)["beløp"] as Int shouldBe (first() as LinkedHashMap<*, *>)["beløp"] as Int
(((first() as LinkedHashMap<*, *>)["inntektsposter"] as ArrayList<*>).first() as LinkedHashMap<*, *>)["inntektstype"] as String shouldBe Inntektstype.BARNETILLEGG_PENSJON.name
}

/*
assertSoftly(behandlingRes.body!!) {
assertSoftly(it.inntekter.barnetillegg.toList()) {
this shouldHaveSize 2
this[0].gjelderBarn shouldBe Personident(testdataBarn1.ident)
this[0].inntektsposter shouldHaveSize 1
this[0].inntektsposter.first().beløp shouldBe this[0].beløp
this[0].inntektsposter.first().inntektstype shouldBe Inntektstype.BARNETILLEGG_PENSJON
}
assertSoftly(inntekterAlle) {
summertInntektListe shouldHaveSize 3
summertInntektListe[0].skattepliktigInntekt shouldBe BigDecimal(55000)
summertInntektListe[0].barnetillegg shouldBe null
summertInntektListe[0].kontantstøtte shouldBe null
}
assertSoftly(inntekterBarn2) {
summertInntektListe shouldHaveSize 3
summertInntektListe[0].skattepliktigInntekt shouldBe BigDecimal(55000)
summertInntektListe[0].barnetillegg shouldBe null
summertInntektListe[0].kontantstøtte shouldBe null
}
assertSoftly(inntekterBarn1) {
summertInntektListe shouldHaveSize 5
summertInntektListe[0].skattepliktigInntekt shouldBe BigDecimal(55000)
summertInntektListe[0].barnetillegg shouldBe BigDecimal(5000)
summertInntektListe[0].kontantstøtte shouldBe null
}
}
*/
}

@Test
Expand Down Expand Up @@ -141,21 +178,20 @@ class HentBehandlingTest : BehandlingControllerTest() {
"${rootUriV2()}/behandling/" + behandling.id,
HttpMethod.GET,
null,
BehandlingDtoV2::class.java,
Any::class.java,
)

//
Assertions.assertEquals(HttpStatus.OK, behandlingRes.statusCode)

assertSoftly(behandlingRes.body!!) {
it.utgift!!.avslag shouldBe Resultatkode.ALLE_UTGIFTER_ER_FORELDET
assertSoftly((behandlingRes.body as LinkedHashMap<*, *>)["utgift"] as LinkedHashMap<*, *>) {
get("avslag") as String shouldBe Resultatkode.ALLE_UTGIFTER_ER_FORELDET.name
}
}

@Test
fun `skal hente behandling særbidrag med avslag godkjent beløp lavere enn forskuddsats`() {
// gitt

val behandling = opprettGyldigBehandlingForBeregningOgVedtak(false, typeBehandling = TypeBehandling.SÆRBIDRAG)
behandling.utgift!!.beløpDirekteBetaltAvBp = BigDecimal.ZERO
behandling.kategori = Særbidragskategori.KONFIRMASJON.name
Expand All @@ -179,14 +215,14 @@ class HentBehandlingTest : BehandlingControllerTest() {
"${rootUriV2()}/behandling/" + behandling.id,
HttpMethod.GET,
null,
BehandlingDtoV2::class.java,
Any::class.java,
)

//
Assertions.assertEquals(HttpStatus.OK, behandlingRes.statusCode)

assertSoftly(behandlingRes.body!!) {
it.utgift!!.avslag shouldBe Resultatkode.GODKJENT_BELØP_ER_LAVERE_ENN_FORSKUDDSSATS
assertSoftly((behandlingRes.body as LinkedHashMap<*, *>)["utgift"] as LinkedHashMap<*, *>) {
get("avslag") as String shouldBe Resultatkode.GODKJENT_BELØP_ER_LAVERE_ENN_FORSKUDDSSATS.name
}
}

Expand Down

0 comments on commit 064494e

Please sign in to comment.