Skip to content

Commit

Permalink
Testdata oppsett: mulighet for å lage mange perioder i testdata
Browse files Browse the repository at this point in the history
Co-authored-by: Per-Christian Nielsen <per-christian.nielsen@nav.no>
Co-authored-by: Christian Klem <christian.klem@nav.no>
Co-authored-by: Ingrid Fosså <ingrid.fossa@nav.no>
Co-authored-by: Nima Jimale <nima.jimale@nav.no>
  • Loading branch information
5 people committed Sep 25, 2023
1 parent 3ff31ac commit a5a8c73
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 4 deletions.
24 changes: 20 additions & 4 deletions src/test/kotlin/no/nav/lydia/helper/TestData.kt
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,22 @@ class TestData(
sykefraværsProsent = sykefraværsProsent
)

fun Periode.lagPerioder(antall: Int): List<Periode> {
return rekursivtLagPerioder(antall, mutableListOf(), this)
}

private fun rekursivtLagPerioder(
perioderIgjen: Int,
perioder: MutableList<Periode>,
periode: Periode
): List<Periode> {
return if (perioderIgjen == 0) {
perioder
} else {
perioder.add(periode)
rekursivtLagPerioder(perioderIgjen - 1, perioder, periode.forrigePeriode())
}
}
}

private val sykefraværsstatistikkVirksomhetKafkaMeldinger =
Expand All @@ -67,7 +83,7 @@ class TestData(
)
lagData(
virksomhet = TestVirksomhet.BERGEN,
perioder = listOf(gjeldendePeriode, gjeldendePeriode.forrigePeriode()),
perioder = gjeldendePeriode.lagPerioder(20),
sykefraværsProsent = 7.0
)

Expand All @@ -78,18 +94,18 @@ class TestData(
lagData(virksomhet = TestVirksomhet.TESTVIRKSOMHET_FOR_IMPORT, emptyList())
lagData(
virksomhet = TestVirksomhet.TESTVIRKSOMHET_FOR_STATUSFILTER,
listOf(gjeldendePeriode, gjeldendePeriode.forrigePeriode()),
perioder = gjeldendePeriode.lagPerioder(2),
sykefraværsProsent = 6.0
)
lagData(
virksomhet = TestVirksomhet.TESTVIRKSOMHET_FOR_GRUNNLAG,
listOf(gjeldendePeriode, gjeldendePeriode.forrigePeriode()),
perioder = gjeldendePeriode.lagPerioder(2),
antallPersoner = 42.0,
sykefraværsProsent = 6.0
)
lagData(
virksomhet = TestVirksomhet.TESTVIRKSOMHET_FOR_OPPDATERING,
listOf(gjeldendePeriode, gjeldendePeriode.forrigePeriode()),
perioder = gjeldendePeriode.lagPerioder(2),
antallPersoner = 42.0,
sykefraværsProsent = 6.0
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package no.nav.lydia.sykefraversstatistikk.api

import arrow.core.getOrElse
import io.kotest.matchers.shouldBe
import no.nav.lydia.helper.TestData.Companion.lagPerioder
import kotlin.test.Test


Expand All @@ -13,5 +14,23 @@ class PeriodeTest {
Periode.tilValidertPeriode("", "", gjeldendePeriode).getOrElse { } shouldBe gjeldendePeriode
Periode.tilValidertPeriode(null, null, gjeldendePeriode).getOrElse { } shouldBe gjeldendePeriode
}

@Test
fun `genererer en liste av perioder`() {
val gjeldendePeriode = Periode(3, 2022)
gjeldendePeriode.lagPerioder(1) shouldBe listOf(gjeldendePeriode)

val perioder = gjeldendePeriode.lagPerioder(4)

perioder.size shouldBe 4
perioder shouldBe listOf(
Periode(3, 2022),
Periode(2, 2022),
Periode(1, 2022),
Periode(4, 2021)
)

gjeldendePeriode.lagPerioder(30).size shouldBe 30
}
}

0 comments on commit a5a8c73

Please sign in to comment.