From a5a8c73aef895c470a142e8b8715263bda1d863a Mon Sep 17 00:00:00 2001 From: Thomas Dufourd Date: Mon, 25 Sep 2023 14:06:43 +0200 Subject: [PATCH] =?UTF-8?q?Testdata=20oppsett:=20mulighet=20for=20=C3=A5?= =?UTF-8?q?=20lage=20mange=20perioder=20i=20testdata?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Per-Christian Nielsen Co-authored-by: Christian Klem Co-authored-by: Ingrid Fosså Co-authored-by: Nima Jimale --- .../kotlin/no/nav/lydia/helper/TestData.kt | 24 +++++++++++++++---- .../sykefraversstatistikk/api/PeriodeTest.kt | 19 +++++++++++++++ 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/src/test/kotlin/no/nav/lydia/helper/TestData.kt b/src/test/kotlin/no/nav/lydia/helper/TestData.kt index 9dea41ae..76af3394 100644 --- a/src/test/kotlin/no/nav/lydia/helper/TestData.kt +++ b/src/test/kotlin/no/nav/lydia/helper/TestData.kt @@ -50,6 +50,22 @@ class TestData( sykefraværsProsent = sykefraværsProsent ) + fun Periode.lagPerioder(antall: Int): List { + return rekursivtLagPerioder(antall, mutableListOf(), this) + } + + private fun rekursivtLagPerioder( + perioderIgjen: Int, + perioder: MutableList, + periode: Periode + ): List { + return if (perioderIgjen == 0) { + perioder + } else { + perioder.add(periode) + rekursivtLagPerioder(perioderIgjen - 1, perioder, periode.forrigePeriode()) + } + } } private val sykefraværsstatistikkVirksomhetKafkaMeldinger = @@ -67,7 +83,7 @@ class TestData( ) lagData( virksomhet = TestVirksomhet.BERGEN, - perioder = listOf(gjeldendePeriode, gjeldendePeriode.forrigePeriode()), + perioder = gjeldendePeriode.lagPerioder(20), sykefraværsProsent = 7.0 ) @@ -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 ) diff --git a/src/test/kotlin/no/nav/lydia/sykefraversstatistikk/api/PeriodeTest.kt b/src/test/kotlin/no/nav/lydia/sykefraversstatistikk/api/PeriodeTest.kt index 0ece9c3e..b86610b6 100644 --- a/src/test/kotlin/no/nav/lydia/sykefraversstatistikk/api/PeriodeTest.kt +++ b/src/test/kotlin/no/nav/lydia/sykefraversstatistikk/api/PeriodeTest.kt @@ -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 @@ -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 + } }