Skip to content

Commit

Permalink
Testdekning for AutomatiskUtbetaling
Browse files Browse the repository at this point in the history
Test avslørte en bug, så dette var en fin investering
  • Loading branch information
Oddsor committed Dec 19, 2024
1 parent 3e3a46a commit 6287b33
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.RefusjonRepository
import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.RefusjonService
import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.RefusjonStatus
import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.Tiltakstype
import no.nav.arbeidsgiver.tiltakrefusjon.utils.Now
import org.slf4j.LoggerFactory
import org.springframework.stereotype.Component

Expand All @@ -20,20 +21,24 @@ class AutomatiskUtbetaling(
refusjonRepository.findAllByStatusAndRefusjonsgrunnlag_Tilskuddsgrunnlag_TiltakstypeIn(
RefusjonStatus.FOR_TIDLIG,
Tiltakstype.somUtbetalesAutomatisk()
).forEach { refusjon ->
utførAutomatiskUtbetaling(refusjon)
}
)
.filter { refusjon -> Now.localDate().isAfter(refusjon.refusjonsgrunnlag.tilskuddsgrunnlag.tilskuddTom) }
.forEach { refusjon ->
utførAutomatiskUtbetaling(refusjon)
}
}

fun utførAutomatiskUtbetaling(refusjon: Refusjon) {
val refusjonensTiltaktstype = refusjon.refusjonsgrunnlag.tilskuddsgrunnlag.tiltakstype
if (!Tiltakstype.somUtbetalesAutomatisk().contains(refusjonensTiltaktstype)) {
throw IllegalStateException("Refusjon ${refusjon.id} hadde ikke riktig tiltakstype (${refusjonensTiltaktstype})")
}
log.info("Utfører automatisk utbetaling for refusjon {}-{} ({})",
log.info(
"Utfører automatisk utbetaling for refusjon {}-{} ({})",
refusjon.refusjonsgrunnlag.tilskuddsgrunnlag.avtaleNr,
refusjon.refusjonsgrunnlag.tilskuddsgrunnlag.løpenummer,
refusjon.id)
refusjon.id
)
refusjonService.gjørBeregning(refusjon, SYSTEM_BRUKER)
refusjon.godkjennForArbeidsgiver(utførtAv = SYSTEM_BRUKER)
refusjonRepository.save(refusjon)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ class Refusjon(

@JsonProperty
fun måTaStillingTilInntekter(): Boolean =
refusjonsgrunnlag.tilskuddsgrunnlag.tiltakstype.harFastUtbetaling()
!refusjonsgrunnlag.tilskuddsgrunnlag.tiltakstype.harFastUtbetaling()

private fun krevStatus(vararg gyldigeStatuser: RefusjonStatus) {
if (status !in gyldigeStatuser) throw FeilkodeException(Feilkode.UGYLDIG_STATUS)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package no.nav.arbeidsgiver.tiltakrefusjon.automatisk_utbetaling

import no.nav.arbeidsgiver.tiltakrefusjon.`Vidar Fortidlig`
import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.RefusjonRepository
import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.RefusjonStatus
import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.StatusJobb
import no.nav.arbeidsgiver.tiltakrefusjon.utils.Now
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.test.annotation.DirtiesContext
import org.springframework.test.context.ActiveProfiles
import java.time.LocalDate

@ActiveProfiles("local")
@SpringBootTest
class AutomatiskUtbetalingTest {
@Autowired
private lateinit var statusJobb: StatusJobb

@Autowired
lateinit var refusjonRepository: RefusjonRepository

@Test
@DirtiesContext
fun `vtao-avtale utbetales automatisk`() {
val vtaoRefusjon = refusjonRepository.save(`Vidar Fortidlig`())

statusJobb.sjekkForStatusEndring()

val oppdatertRefusjon = refusjonRepository.findById(vtaoRefusjon.id).get()
assertEquals(RefusjonStatus.SENDT_KRAV, oppdatertRefusjon.status)
}

@Test
@DirtiesContext
fun `vtao-avtale utbetales ikke automatisk hvis den er for tidlig`() {
Now.fixedDate(LocalDate.now().plusMonths(6))
val forTidligRefusjon = refusjonRepository.save(`Vidar Fortidlig`())
Now.resetClock()
println(forTidligRefusjon.refusjonsgrunnlag.tilskuddsgrunnlag.tilskuddFom)
println(forTidligRefusjon.refusjonsgrunnlag.tilskuddsgrunnlag.tilskuddTom)

statusJobb.sjekkForStatusEndring()

val oppdatertRefusjon = refusjonRepository.findById(forTidligRefusjon.id).get()
assertEquals(RefusjonStatus.FOR_TIDLIG, oppdatertRefusjon.status)
}
}
2 changes: 1 addition & 1 deletion src/test/resources/application-local.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ spring:
value-deserializer: org.apache.kafka.common.serialization.StringDeserializer

datasource:
url: jdbc:h2:mem:db;DB_CLOSE_DELAY=-1;MODE=PostgreSQL
url: jdbc:h2:mem:${random.uuid};DB_CLOSE_DELAY=-1;MODE=PostgreSQL
username: sa
password: sa
driver-class-name: org.h2.Driver
Expand Down

0 comments on commit 6287b33

Please sign in to comment.