Skip to content

Commit c981047

Browse files
Legg til tester for fletting av gjeldende § 14 a-vedtak
Co-authored-by: Sondre Larsen Ovrid <[email protected]>
1 parent 1d04c7a commit c981047

File tree

2 files changed

+179
-2
lines changed

2 files changed

+179
-2
lines changed

src/main/java/no/nav/pto/veilarbportefolje/postgres/PostgresOpensearchMapper.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -240,8 +240,11 @@ public void flettInnGjeldende14aVedtak(List<OppfolgingsBruker> brukere) {
240240
Map<AktorId, Siste14aVedtakForBruker> aktorIdSiste14aVedtakMap = siste14aVedtakRepository.hentSiste14aVedtakForBrukere(brukere.stream().map(bruker ->
241241
AktorId.of(bruker.getAktoer_id())).collect(Collectors.toSet())
242242
);
243-
Map<AktorId, Optional<ZonedDateTime>> aktorIdStartDatoForOppfolgingMap = oppfolgingRepositoryV2.hentStartDatoForOppfolging(brukere.stream().map(bruker ->
244-
AktorId.of(bruker.getAktoer_id())).collect(Collectors.toSet())
243+
244+
Map<AktorId, Optional<ZonedDateTime>> aktorIdStartDatoForOppfolgingMap = oppfolgingRepositoryV2.hentStartDatoForOppfolging(
245+
brukere.stream().map(
246+
bruker -> AktorId.of(bruker.getAktoer_id())
247+
).collect(Collectors.toSet())
245248
);
246249

247250
brukere.forEach(bruker -> {
Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
package no.nav.pto.veilarbportefolje.siste14aVedtak;
2+
3+
import no.nav.common.json.JsonUtils;
4+
import no.nav.common.types.identer.AktorId;
5+
import no.nav.common.types.identer.Fnr;
6+
import no.nav.pto.veilarbportefolje.domene.ArenaHovedmal;
7+
import no.nav.pto.veilarbportefolje.domene.GjeldendeIdenter;
8+
import no.nav.pto.veilarbportefolje.opensearch.domene.OppfolgingsBruker;
9+
import no.nav.pto.veilarbportefolje.oppfolging.OppfolgingRepositoryV2;
10+
import no.nav.pto.veilarbportefolje.oppfolgingsbruker.OppfolgingsbrukerDTO;
11+
import no.nav.pto.veilarbportefolje.oppfolgingsbruker.OppfolgingsbrukerEntity;
12+
import no.nav.pto.veilarbportefolje.oppfolgingsbruker.OppfolgingsbrukerRepositoryV3;
13+
import no.nav.pto.veilarbportefolje.postgres.PostgresOpensearchMapper;
14+
import no.nav.pto.veilarbportefolje.vedtakstotte.Hovedmal;
15+
import org.junit.jupiter.api.Test;
16+
import org.mockito.InjectMocks;
17+
18+
import java.time.ZonedDateTime;
19+
import java.util.*;
20+
21+
import static no.nav.pto.veilarbportefolje.util.TestDataUtils.randomAktorId;
22+
import static no.nav.pto.veilarbportefolje.util.TestDataUtils.randomFnr;
23+
import static no.nav.pto.veilarbportefolje.util.TestUtil.readFileAsJsonString;
24+
import static org.assertj.core.api.Assertions.assertThat;
25+
import static org.junit.jupiter.api.Assertions.assertEquals;
26+
import static org.mockito.ArgumentMatchers.any;
27+
import static org.mockito.Mockito.mock;
28+
import static org.mockito.Mockito.when;
29+
30+
public class FiltreringAvGjeldende14aVedtakTest {
31+
32+
private final Siste14aVedtakRepository siste14aVedtakRepository = mock(Siste14aVedtakRepository.class);
33+
private final OppfolgingRepositoryV2 oppfolgingRepositoryV2 = mock(OppfolgingRepositoryV2.class);
34+
35+
private final PostgresOpensearchMapper postgresOpensearchMapper;
36+
37+
FiltreringAvGjeldende14aVedtakTest() {
38+
this.postgresOpensearchMapper = new PostgresOpensearchMapper(
39+
null,
40+
null,
41+
null,
42+
null,
43+
null,
44+
null,
45+
null,
46+
null,
47+
null,
48+
siste14aVedtakRepository,
49+
null,
50+
oppfolgingRepositoryV2
51+
);
52+
}
53+
54+
@Test
55+
public void skal_flette_inn_gjeldende_14a_vedtak_nar_siste_14a_vedtak_er_fattet_for_lansering_av_veilarboppfolging() {
56+
GjeldendeIdenter ident1 = genererGjeldendeIdent();
57+
58+
OppfolgingsBruker oppfolgingsbruker = new OppfolgingsBruker()
59+
.setFnr(ident1.getFnr().get())
60+
.setAktoer_id(ident1.getAktorId().get());
61+
62+
Siste14aVedtakForBruker siste14AVedtakForBruker = Siste14aVedtakForBruker.builder()
63+
.aktorId(ident1.getAktorId())
64+
.hovedmal(Hovedmal.BEHOLDE_ARBEID)
65+
.fattetDato(ZonedDateTime.parse("2015-11-10T19:37:25+02:00"))
66+
.build();
67+
68+
Map<AktorId, Siste14aVedtakForBruker> aktorIdSiste14aVedtakMap = Map.of(ident1.getAktorId(), siste14AVedtakForBruker);
69+
70+
ZonedDateTime startdatoForOppfolging = ZonedDateTime.parse("2017-12-02T19:37:25+02:00");
71+
72+
Map<AktorId, Optional<ZonedDateTime>> aktorIdStartDatoForOppfolgingMap =
73+
Map.of(ident1.getAktorId(), Optional.of(startdatoForOppfolging));
74+
75+
when(siste14aVedtakRepository.hentSiste14aVedtakForBrukere(any())).thenReturn(aktorIdSiste14aVedtakMap);
76+
when(oppfolgingRepositoryV2.hentStartDatoForOppfolging(any())).thenReturn(aktorIdStartDatoForOppfolgingMap);
77+
78+
postgresOpensearchMapper.flettInnGjeldende14aVedtak(List.of(oppfolgingsbruker));
79+
80+
assertThat(oppfolgingsbruker.getGjeldendeVedtak14a()).isNotNull();
81+
assertThat(oppfolgingsbruker.getGjeldendeVedtak14a().fattetDato()).isEqualTo(siste14AVedtakForBruker.fattetDato);
82+
assertThat(oppfolgingsbruker.getGjeldendeVedtak14a().innsatsgruppe()).isEqualTo(siste14AVedtakForBruker.getInnsatsgruppe());
83+
assertThat(oppfolgingsbruker.getGjeldendeVedtak14a().hovedmal()).isEqualTo(siste14AVedtakForBruker.getHovedmal());
84+
}
85+
86+
@Test
87+
public void skal_flette_inn_gjeldende_14a_vedtak_nar_siste_14a_vedtak_er_fattet_etter_lansering_av_veilarboppfolging_og_i_inneværende_oppfølgingsperiode() {
88+
GjeldendeIdenter ident1 = genererGjeldendeIdent();
89+
90+
OppfolgingsBruker oppfolgingsbruker = new OppfolgingsBruker()
91+
.setFnr(ident1.getFnr().get())
92+
.setAktoer_id(ident1.getAktorId().get());
93+
94+
Siste14aVedtakForBruker siste14AVedtakForBruker = Siste14aVedtakForBruker.builder()
95+
.aktorId(ident1.getAktorId())
96+
.hovedmal(Hovedmal.BEHOLDE_ARBEID)
97+
.fattetDato(ZonedDateTime.parse("2018-11-10T19:37:25+02:00"))
98+
.build();
99+
100+
Map<AktorId, Siste14aVedtakForBruker> aktorIdSiste14aVedtakMap = Map.of(ident1.getAktorId(), siste14AVedtakForBruker);
101+
102+
ZonedDateTime startdatoForOppfolging = ZonedDateTime.parse("2017-12-02T19:37:25+02:00");
103+
104+
Map<AktorId, Optional<ZonedDateTime>> aktorIdStartDatoForOppfolgingMap =
105+
Map.of(ident1.getAktorId(), Optional.of(startdatoForOppfolging));
106+
107+
when(siste14aVedtakRepository.hentSiste14aVedtakForBrukere(any())).thenReturn(aktorIdSiste14aVedtakMap);
108+
when(oppfolgingRepositoryV2.hentStartDatoForOppfolging(any())).thenReturn(aktorIdStartDatoForOppfolgingMap);
109+
110+
postgresOpensearchMapper.flettInnGjeldende14aVedtak(List.of(oppfolgingsbruker));
111+
112+
assertThat(oppfolgingsbruker.getGjeldendeVedtak14a()).isNotNull();
113+
assertThat(oppfolgingsbruker.getGjeldendeVedtak14a().fattetDato()).isEqualTo(siste14AVedtakForBruker.fattetDato);
114+
assertThat(oppfolgingsbruker.getGjeldendeVedtak14a().innsatsgruppe()).isEqualTo(siste14AVedtakForBruker.getInnsatsgruppe());
115+
assertThat(oppfolgingsbruker.getGjeldendeVedtak14a().hovedmal()).isEqualTo(siste14AVedtakForBruker.getHovedmal());
116+
}
117+
118+
@Test
119+
public void skal_ikke_flette_inn_gjeldende_14a_vedtak_når_siste_14a_vedtak_er_fattet_etter_lansering_av_veilarboppfolging_men_utenfor_inneværende_oppfølgingsperiode() {
120+
GjeldendeIdenter ident1 = genererGjeldendeIdent();
121+
122+
OppfolgingsBruker oppfolgingsbruker = new OppfolgingsBruker()
123+
.setFnr(ident1.getFnr().get())
124+
.setAktoer_id(ident1.getAktorId().get());
125+
126+
Siste14aVedtakForBruker siste14AVedtakForBruker = Siste14aVedtakForBruker.builder()
127+
.aktorId(ident1.getAktorId())
128+
.hovedmal(Hovedmal.BEHOLDE_ARBEID)
129+
.fattetDato(ZonedDateTime.parse("2018-11-10T19:37:25+02:00"))
130+
.build();
131+
132+
Map<AktorId, Siste14aVedtakForBruker> aktorIdSiste14aVedtakMap = Map.of(ident1.getAktorId(), siste14AVedtakForBruker);
133+
134+
ZonedDateTime startdatoForOppfolging = ZonedDateTime.parse("2019-12-02T19:37:25+02:00");
135+
136+
Map<AktorId, Optional<ZonedDateTime>> aktorIdStartDatoForOppfolgingMap =
137+
Map.of(ident1.getAktorId(), Optional.of(startdatoForOppfolging));
138+
139+
when(siste14aVedtakRepository.hentSiste14aVedtakForBrukere(any())).thenReturn(aktorIdSiste14aVedtakMap);
140+
when(oppfolgingRepositoryV2.hentStartDatoForOppfolging(any())).thenReturn(aktorIdStartDatoForOppfolgingMap);
141+
142+
postgresOpensearchMapper.flettInnGjeldende14aVedtak(List.of(oppfolgingsbruker));
143+
144+
assertThat(oppfolgingsbruker.getGjeldendeVedtak14a()).isNull();
145+
}
146+
147+
@Test
148+
public void skal_ikke_flette_inn_gjeldende_14a_vedtak_når_siste_14a_vedtak_når_bruker_ikke_er_under_oppfølging() {
149+
GjeldendeIdenter ident1 = genererGjeldendeIdent();
150+
151+
OppfolgingsBruker oppfolgingsbruker = new OppfolgingsBruker()
152+
.setFnr(ident1.getFnr().get())
153+
.setAktoer_id(ident1.getAktorId().get());
154+
155+
Siste14aVedtakForBruker siste14AVedtakForBruker = Siste14aVedtakForBruker.builder()
156+
.aktorId(ident1.getAktorId())
157+
.hovedmal(Hovedmal.BEHOLDE_ARBEID)
158+
.fattetDato(ZonedDateTime.parse("2018-11-10T19:37:25+02:00"))
159+
.build();
160+
161+
Map<AktorId, Siste14aVedtakForBruker> aktorIdSiste14aVedtakMap = Map.of(ident1.getAktorId(), siste14AVedtakForBruker);
162+
163+
when(siste14aVedtakRepository.hentSiste14aVedtakForBrukere(any())).thenReturn(aktorIdSiste14aVedtakMap);
164+
when(oppfolgingRepositoryV2.hentStartDatoForOppfolging(any())).thenReturn(Collections.emptyMap());
165+
166+
postgresOpensearchMapper.flettInnGjeldende14aVedtak(List.of(oppfolgingsbruker));
167+
168+
assertThat(oppfolgingsbruker.getGjeldendeVedtak14a()).isNull();
169+
}
170+
171+
private GjeldendeIdenter genererGjeldendeIdent() {
172+
return GjeldendeIdenter.builder().fnr(randomFnr()).aktorId(randomAktorId()).build();
173+
}
174+
}

0 commit comments

Comments
 (0)