Skip to content
This repository was archived by the owner on Nov 5, 2024. It is now read-only.

Commit 5528b16

Browse files
committed
Oppdater ArbeidssokerService + tester
- bruk kun egne data - fjern ords-perioder
1 parent 5f3d0d1 commit 5528b16

File tree

4 files changed

+43
-364
lines changed

4 files changed

+43
-364
lines changed
Lines changed: 3 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,101 +1,23 @@
11
package no.nav.fo.veilarbregistrering.arbeidssoker.perioder
22

3-
import no.nav.common.featuretoggle.UnleashClient
4-
import no.nav.fo.veilarbregistrering.arbeidssoker.Arbeidssoker
53
import no.nav.fo.veilarbregistrering.arbeidssoker.ArbeidssokerperiodeService
6-
import no.nav.fo.veilarbregistrering.arbeidssoker.formidlingsgruppe.FormidlingsgruppeGateway
74
import no.nav.fo.veilarbregistrering.bruker.Bruker
85
import no.nav.fo.veilarbregistrering.bruker.Periode
9-
import no.nav.fo.veilarbregistrering.log.logger
10-
import no.nav.fo.veilarbregistrering.metrics.Events
11-
import no.nav.fo.veilarbregistrering.metrics.JaNei
12-
import no.nav.fo.veilarbregistrering.metrics.Metric
13-
import no.nav.fo.veilarbregistrering.metrics.MetricsService
146
import org.springframework.stereotype.Service
157

168
@Service
179
class ArbeidssokerService(
18-
private val formidlingsgruppeGateway: FormidlingsgruppeGateway,
19-
private val populerArbeidssokerperioderService: PopulerArbeidssokerperioderService,
20-
private val unleashClient: UnleashClient,
21-
private val metricsService: MetricsService,
2210
private val arbeidssokerperiodeService: ArbeidssokerperiodeService
2311
) {
2412

2513
fun hentArbeidssokerperioder(bruker: Bruker, forespurtPeriode: Periode?): Arbeidssokerperioder {
26-
val arbeidssokerperioderORDS =
27-
formidlingsgruppeGateway.finnArbeissokerperioder(bruker.gjeldendeFoedselsnummer, forespurtPeriode!!)
28-
val overlappendeHistoriskePerioderORDS = arbeidssokerperioderORDS.overlapperMed(forespurtPeriode)
29-
30-
val skalSammenlignePerioderORDS = unleashClient.isEnabled("veilarbregistrering.stopSammenlignePerioderORDS")
31-
3214
val lagredePerioder = arbeidssokerperiodeService.hentPerioder(bruker.gjeldendeFoedselsnummer)
33-
val allePerioder = konkatinerLagredeOgHistoriskePerioder(lagredePerioder, overlappendeHistoriskePerioderORDS)
34-
35-
if (skalSammenlignePerioderORDS) {
36-
try {
37-
val arbeidssoker = populerArbeidssokerperioderService.hentArbeidssøker(bruker)
38-
val overlappendeArbeidssokerperioderLokalt = map(arbeidssoker).overlapperMed(forespurtPeriode)
39-
sammenlignNyOgGammelModell(
40-
overlappendeArbeidssokerperioderLokalt,
41-
overlappendeHistoriskePerioderORDS,
42-
forespurtPeriode
43-
)
4415

45-
46-
} catch (e: RuntimeException) {
47-
logger.warn("Sammenligning av perioder feilet", e)
48-
}
16+
forespurtPeriode?.let {
17+
return Arbeidssokerperioder.of(lagredePerioder.filter { it.overlapperMed(forespurtPeriode) }.map { Arbeidssokerperiode(it) })
4918
}
5019

51-
metricsService.registrer(Events.HENT_ARBEIDSSOKERPERIODER_KILDE, Kilde.ORDS)
52-
logger.info(
53-
"Returnerer arbeidssokerperioder fra Arena sin ORDS-tjenesten uten sammenligning: $overlappendeHistoriskePerioderORDS"
54-
)
55-
56-
return allePerioder
20+
return Arbeidssokerperioder.of(lagredePerioder.map { Arbeidssokerperiode(it) })
5721
}
5822

59-
private fun konkatinerLagredeOgHistoriskePerioder(lagredePerioder: List<Periode>, ordsPerioder: Arbeidssokerperioder): Arbeidssokerperioder {
60-
val lagredeArbeidssokerperioder = Arbeidssokerperioder.of(lagredePerioder.map { Arbeidssokerperiode(it) })
61-
val allePerioder = (ordsPerioder.asList() + lagredeArbeidssokerperioder.asList()).distinct()
62-
return Arbeidssokerperioder(allePerioder)
63-
}
64-
65-
private fun map(arbeidssoker: Arbeidssoker) = Arbeidssokerperioder(
66-
arbeidssoker.allePerioder().map {
67-
Arbeidssokerperiode(Periode(it.fraDato.toLocalDate(), it.tilDato?.toLocalDate()))
68-
}
69-
)
70-
71-
private fun sammenlignNyOgGammelModell(
72-
overlappendeArbeidssokerperioderLokalt: Arbeidssokerperioder,
73-
overlappendeHistoriskePerioderORDS: Arbeidssokerperioder,
74-
forespurtPeriode: Periode
75-
) {
76-
if (overlappendeArbeidssokerperioderLokalt == overlappendeHistoriskePerioderORDS) {
77-
logger.info("Periodelister fra lokal cache og Arena-ORDS er like. Forespurt periode: $forespurtPeriode")
78-
metricsService.registrer(Events.HENT_ARBEIDSSOKERPERIODER_KILDER_GIR_SAMME_SVAR, JaNei.JA)
79-
} else {
80-
logger.warn(
81-
"Periodelister fra lokal cache og Arena-ORDS er ikke like\n" +
82-
"Forespurt periode: $forespurtPeriode\n" +
83-
"Lokalt:\n$overlappendeArbeidssokerperioderLokalt\n" +
84-
"Arena-ORDS:\n$overlappendeHistoriskePerioderORDS"
85-
)
86-
87-
metricsService.registrer(Events.HENT_ARBEIDSSOKERPERIODER_KILDER_GIR_SAMME_SVAR, JaNei.NEI)
88-
}
89-
}
90-
91-
private enum class Kilde : Metric {
92-
ORDS, LOKAL;
93-
94-
override fun fieldName(): String = "kilde"
95-
override fun value(): Any = this.toString()
96-
}
97-
98-
companion object {
99-
const val VEILARBREGISTRERING_FORMIDLINGSGRUPPE_LOCALCACHE = "veilarbregistrering.formidlingsgruppe.localcache"
100-
}
10123
}

src/main/kotlin/no/nav/fo/veilarbregistrering/config/ServiceBeansConfig.kt

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -306,19 +306,9 @@ class ServiceBeansConfig {
306306

307307
@Bean
308308
fun arbeidssokerService(
309-
formidlingsgruppeGateway: FormidlingsgruppeGateway,
310-
populerArbeidssokerperioderService: PopulerArbeidssokerperioderService,
311-
unleashClient: UnleashClient,
312-
metricsService: MetricsService,
313-
brukerRegistreringRepository: BrukerRegistreringRepository,
314-
brukerReaktiveringRepository: ReaktiveringRepository,
315309
arbeidssokerperiodeService: ArbeidssokerperiodeService
316310
): ArbeidssokerService {
317311
return ArbeidssokerService(
318-
formidlingsgruppeGateway,
319-
populerArbeidssokerperioderService,
320-
unleashClient,
321-
metricsService,
322312
arbeidssokerperiodeService
323313
)
324314
}

src/test/kotlin/no/nav/fo/veilarbregistrering/arbeidssoker/perioder/ArbeidssokerServiceHentArbeidssokerperioderTest.kt

Lines changed: 40 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -3,37 +3,27 @@ package no.nav.fo.veilarbregistrering.arbeidssoker.perioder
33

44
import io.mockk.every
55
import io.mockk.mockk
6-
import no.nav.common.featuretoggle.UnleashClient
76
import no.nav.fo.veilarbregistrering.arbeidssoker.ArbeidssokerperiodeService
8-
import no.nav.fo.veilarbregistrering.arbeidssoker.formidlingsgruppe.FormidlingsgruppeGateway
97
import no.nav.fo.veilarbregistrering.bruker.AktorId
108
import no.nav.fo.veilarbregistrering.bruker.Bruker
119
import no.nav.fo.veilarbregistrering.bruker.Foedselsnummer
1210
import no.nav.fo.veilarbregistrering.bruker.Periode
13-
import no.nav.fo.veilarbregistrering.metrics.MetricsService
1411
import org.assertj.core.api.Assertions.assertThat
1512
import org.junit.jupiter.api.BeforeEach
1613
import org.junit.jupiter.api.Test
1714
import java.time.LocalDate
1815

1916
class ArbeidssokerServiceHentArbeidssokerperioderTest {
2017
private lateinit var arbeidssokerService: ArbeidssokerService
21-
private val unleashService = mockk<UnleashClient>()
22-
private val metricsService = mockk<MetricsService>(relaxed = true)
2318
private val arbeidssokerperiodeService = mockk<ArbeidssokerperiodeService>(relaxed = true)
2419

2520
@BeforeEach
2621
fun setup() {
2722
arbeidssokerService = ArbeidssokerService(
28-
StubFormidlingsgruppeGateway(),
29-
mockk(),
30-
unleashService,
31-
metricsService,
3223
arbeidssokerperiodeService
3324
)
3425

35-
every { unleashService.isEnabled("veilarbregistrering.stopSammenlignePerioderORDS") } returns true
36-
every { arbeidssokerperiodeService.hentPerioder(any())} returns emptyList()
26+
every { arbeidssokerperiodeService.hentPerioder(any()) } returns emptyList()
3727
}
3828

3929
@Test
@@ -42,31 +32,15 @@ class ArbeidssokerServiceHentArbeidssokerperioderTest {
4232
LocalDate.of(2020, 1, 2),
4333
LocalDate.of(2020, 5, 1)
4434
)
35+
every { arbeidssokerperiodeService.hentPerioder(BRUKER_3.gjeldendeFoedselsnummer) } returns finnArbeissokerperioder(BRUKER_3.gjeldendeFoedselsnummer)
4536
val arbeidssokerperiodes = arbeidssokerService.hentArbeidssokerperioder(BRUKER_3, forespurtPeriode)
4637
assertThat(arbeidssokerperiodes.eldsteFoerst()).containsExactly(
47-
StubFormidlingsgruppeGateway.ARBEIDSSOKERPERIODE_1,
48-
StubFormidlingsgruppeGateway.ARBEIDSSOKERPERIODE_2,
49-
StubFormidlingsgruppeGateway.ARBEIDSSOKERPERIODE_3,
50-
StubFormidlingsgruppeGateway.ARBEIDSSOKERPERIODE_4
38+
ARBEIDSSOKERPERIODE_1,
39+
ARBEIDSSOKERPERIODE_2,
40+
ARBEIDSSOKERPERIODE_3,
41+
ARBEIDSSOKERPERIODE_4
5142
)
5243
}
53-
54-
@Test
55-
fun `hentArbeidssokerperioder skal hente fra ords`() {
56-
val forespurtPeriode = Periode(
57-
LocalDate.of(2019, 12, 1),
58-
LocalDate.of(2020, 5, 1)
59-
)
60-
val arbeidssokerperiodes = arbeidssokerService.hentArbeidssokerperioder(BRUKER_3, forespurtPeriode)
61-
assertThat(arbeidssokerperiodes.eldsteFoerst()).containsExactly(
62-
StubFormidlingsgruppeGateway.ARBEIDSSOKERPERIODE_0,
63-
StubFormidlingsgruppeGateway.ARBEIDSSOKERPERIODE_1,
64-
StubFormidlingsgruppeGateway.ARBEIDSSOKERPERIODE_2,
65-
StubFormidlingsgruppeGateway.ARBEIDSSOKERPERIODE_3,
66-
StubFormidlingsgruppeGateway.ARBEIDSSOKERPERIODE_4
67-
)
68-
}
69-
7044
@Test
7145
fun `hentArbeidssokerperioder ingen treff på fnr skal returnere tom liste`() {
7246
val forespurtPeriode = Periode(
@@ -77,87 +51,46 @@ class ArbeidssokerServiceHentArbeidssokerperioderTest {
7751
assertThat(arbeidssokerperiodes.asList()).isEmpty()
7852
}
7953

80-
@Test
81-
fun `hentArbeidssokerperioder ingen treff på bruker skal returnere tom liste`() {
82-
val forespurtPeriode = Periode(
83-
LocalDate.of(2019, 5, 1),
84-
LocalDate.of(2019, 11, 30)
85-
)
86-
val arbeidssokerperiodes = arbeidssokerService.hentArbeidssokerperioder(BRUKER_1, forespurtPeriode)
87-
assertThat(arbeidssokerperiodes.asList()).isEmpty()
88-
}
89-
90-
@Test
91-
fun `hentArbeidssokerperioder skal returnere alle perioder for person innenfor forespurt periode ords`() {
92-
every {
93-
unleashService.isEnabled(ArbeidssokerService.VEILARBREGISTRERING_FORMIDLINGSGRUPPE_LOCALCACHE)
94-
} returns true
95-
96-
val forespurtPeriode = Periode(
97-
LocalDate.of(2020, 1, 1),
98-
LocalDate.of(2020, 5, 9)
99-
)
100-
val arbeidssokerperioder = arbeidssokerService.hentArbeidssokerperioder(BRUKER_1, forespurtPeriode)
101-
assertThat(arbeidssokerperioder.eldsteFoerst()).containsExactly(
102-
StubFormidlingsgruppeGateway.ARBEIDSSOKERPERIODE_1,
103-
StubFormidlingsgruppeGateway.ARBEIDSSOKERPERIODE_2,
104-
StubFormidlingsgruppeGateway.ARBEIDSSOKERPERIODE_3,
105-
StubFormidlingsgruppeGateway.ARBEIDSSOKERPERIODE_4,
106-
StubFormidlingsgruppeGateway.ARBEIDSSOKERPERIODE_5
54+
private fun finnArbeissokerperioder(foedselsnummer: Foedselsnummer): List<Periode> {
55+
val map: Map<Foedselsnummer, List<Periode>> = mapOf(
56+
FOEDSELSNUMMER_3 to listOf(
57+
ARBEIDSSOKERPERIODE_2.periode,
58+
ARBEIDSSOKERPERIODE_4.periode,
59+
ARBEIDSSOKERPERIODE_3.periode,
60+
ARBEIDSSOKERPERIODE_0.periode,
61+
ARBEIDSSOKERPERIODE_1.periode,
62+
ARBEIDSSOKERPERIODE_5.periode,
63+
ARBEIDSSOKERPERIODE_6.periode
64+
),
65+
FOEDSELSNUMMER_4 to emptyList()
10766
)
108-
}
109-
110-
private class StubFormidlingsgruppeGateway : FormidlingsgruppeGateway {
111-
override fun finnArbeissokerperioder(foedselsnummer: Foedselsnummer, periode: Periode): Arbeidssokerperioder {
112-
val map: Map<Foedselsnummer, Arbeidssokerperioder> = mapOf(
113-
FOEDSELSNUMMER_3 to Arbeidssokerperioder(
114-
listOf(
115-
ARBEIDSSOKERPERIODE_2,
116-
ARBEIDSSOKERPERIODE_4,
117-
ARBEIDSSOKERPERIODE_3,
118-
ARBEIDSSOKERPERIODE_0,
119-
ARBEIDSSOKERPERIODE_1,
120-
ARBEIDSSOKERPERIODE_5,
121-
ARBEIDSSOKERPERIODE_6
122-
)
123-
),
124-
FOEDSELSNUMMER_4 to Arbeidssokerperioder(emptyList())
125-
)
126-
return map[foedselsnummer]!!
127-
}
128-
129-
companion object {
130-
val ARBEIDSSOKERPERIODE_0 = Arbeidssokerperiode(
131-
Periode(LocalDate.of(2019, 12, 1), LocalDate.of(2019, 12, 31))
132-
)
133-
val ARBEIDSSOKERPERIODE_1 = Arbeidssokerperiode(
134-
Periode(LocalDate.of(2020, 1, 1), LocalDate.of(2020, 1, 31))
135-
)
136-
val ARBEIDSSOKERPERIODE_2 = Arbeidssokerperiode(
137-
Periode(LocalDate.of(2020, 2, 1), LocalDate.of(2020, 2, 29))
138-
)
139-
val ARBEIDSSOKERPERIODE_3 = Arbeidssokerperiode(
140-
Periode(LocalDate.of(2020, 3, 1), LocalDate.of(2020, 3, 31))
141-
)
142-
val ARBEIDSSOKERPERIODE_4 = Arbeidssokerperiode(
143-
Periode(LocalDate.of(2020, 4, 1), LocalDate.of(2020, 5, 2))
144-
)
145-
val ARBEIDSSOKERPERIODE_5 = Arbeidssokerperiode(
146-
Periode(LocalDate.of(2020, 5, 3), LocalDate.of(2020, 5, 9))
147-
)
148-
val ARBEIDSSOKERPERIODE_6 = Arbeidssokerperiode(
149-
Periode(LocalDate.of(2020, 5, 10), null)
150-
)
151-
}
67+
return map[foedselsnummer]!!
15268
}
15369

15470
companion object {
155-
val FOEDSELSNUMMER_1: Foedselsnummer = Foedselsnummer("12345678911")
156-
val FOEDSELSNUMMER_2: Foedselsnummer = Foedselsnummer("11234567890")
15771
private val FOEDSELSNUMMER_3 = Foedselsnummer("22334455661")
15872
private val FOEDSELSNUMMER_4 = Foedselsnummer("99887766554")
159-
private val BRUKER_1 = Bruker(FOEDSELSNUMMER_3, AktorId("100002345678"), listOf(FOEDSELSNUMMER_2, FOEDSELSNUMMER_1))
160-
private val BRUKER_2 = Bruker(FOEDSELSNUMMER_4, AktorId("100002339391"), emptyList())
16173
private val BRUKER_3 = Bruker(FOEDSELSNUMMER_3, AktorId("100002345678"), emptyList())
74+
val ARBEIDSSOKERPERIODE_0 = Arbeidssokerperiode(
75+
Periode(LocalDate.of(2019, 12, 1), LocalDate.of(2019, 12, 31))
76+
)
77+
val ARBEIDSSOKERPERIODE_1 = Arbeidssokerperiode(
78+
Periode(LocalDate.of(2020, 1, 1), LocalDate.of(2020, 1, 31))
79+
)
80+
val ARBEIDSSOKERPERIODE_2 = Arbeidssokerperiode(
81+
Periode(LocalDate.of(2020, 2, 1), LocalDate.of(2020, 2, 29))
82+
)
83+
val ARBEIDSSOKERPERIODE_3 = Arbeidssokerperiode(
84+
Periode(LocalDate.of(2020, 3, 1), LocalDate.of(2020, 3, 31))
85+
)
86+
val ARBEIDSSOKERPERIODE_4 = Arbeidssokerperiode(
87+
Periode(LocalDate.of(2020, 4, 1), LocalDate.of(2020, 5, 2))
88+
)
89+
val ARBEIDSSOKERPERIODE_5 = Arbeidssokerperiode(
90+
Periode(LocalDate.of(2020, 5, 3), LocalDate.of(2020, 5, 9))
91+
)
92+
val ARBEIDSSOKERPERIODE_6 = Arbeidssokerperiode(
93+
Periode(LocalDate.of(2020, 5, 10), null)
94+
)
16295
}
16396
}

0 commit comments

Comments
 (0)