Skip to content

Commit 211d73d

Browse files
committed
feature: Add unit tests for BestillingInstdataStatusMapper and update InstdataClientTest for MiljoerResponse handling
1 parent fc4a81b commit 211d73d

2 files changed

Lines changed: 215 additions & 3 deletions

File tree

apps/dolly-backend/src/test/java/no/nav/dolly/bestilling/instdata/InstdataClientTest.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import ma.glasnost.orika.MapperFacade;
44
import ma.glasnost.orika.MappingContext;
55
import no.nav.dolly.bestilling.instdata.domain.InstdataResponse;
6+
import no.nav.dolly.bestilling.instdata.domain.MiljoerResponse;
67
import no.nav.dolly.domain.jpa.BestillingProgress;
78
import no.nav.dolly.domain.resultset.RsDollyBestillingRequest;
89
import no.nav.dolly.domain.resultset.dolly.DollyPerson;
@@ -73,7 +74,9 @@ void gjenopprettNaarInstdataIkkeFinnesFraFoer_SkalGiOk() {
7374
var progress = new BestillingProgress();
7475
var dollyPerson = DollyPerson.builder().ident(IDENT).build();
7576

76-
when(instdataConsumer.getMiljoer()).thenReturn(Mono.just(List.of("q2")));
77+
when(instdataConsumer.getMiljoer()).thenReturn(Mono.just(MiljoerResponse.builder()
78+
.institusjonsoppholdEnvironments(List.of("q2"))
79+
.build()));
7780
when(mapperFacade.mapAsList(anyList(), eq(Instdata.class), any(MappingContext.class))).thenReturn(List.of(Instdata.builder()
7881
.norskident(IDENT)
7982
.build()));
@@ -101,11 +104,13 @@ void gjenopprettNaarInstdataFinnesFraFoer_SkalGiOk() {
101104
var progress = new BestillingProgress();
102105
var dollyPerson = DollyPerson.builder().ident(IDENT).build();
103106

104-
when(instdataConsumer.getMiljoer()).thenReturn(Mono.just(List.of("q2")));
107+
when(instdataConsumer.getMiljoer()).thenReturn(Mono.just(MiljoerResponse.builder()
108+
.institusjonsoppholdEnvironments(List.of("q2"))
109+
.build()));
105110
when(mapperFacade.mapAsList(anyList(), eq(Instdata.class), any(MappingContext.class))).thenReturn(List.of(Instdata.builder()
106111
.norskident(IDENT)
107112
.build()));
108-
when(instdataConsumer.getInstdata(IDENT, ENVIRONMENT)).thenReturn(Mono.just(InstitusjonsoppholdRespons.builder()
113+
when(instdataConsumer.getInstdata(IDENT, ENVIRONMENT)).thenReturn(Mono.just(InstdataResponse.builder()
109114
.institusjonsopphold(Map.of("q2", List.of(new Instdata())))
110115
.build()));
111116
when(instdataConsumer.postInstdata(anyList(), anyString())).thenReturn(Flux.just(InstdataResponse.builder()
Lines changed: 207 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,207 @@
1+
package no.nav.dolly.mapper;
2+
3+
import no.nav.dolly.domain.jpa.BestillingProgress;
4+
import no.nav.dolly.domain.resultset.RsStatusRapport;
5+
import org.junit.jupiter.api.Test;
6+
7+
import java.util.List;
8+
9+
import static no.nav.dolly.domain.resultset.SystemTyper.INST2;
10+
import static no.nav.dolly.domain.resultset.SystemTyper.INST_KDI;
11+
import static org.hamcrest.MatcherAssert.assertThat;
12+
import static org.hamcrest.Matchers.contains;
13+
import static org.hamcrest.Matchers.containsInAnyOrder;
14+
import static org.hamcrest.Matchers.empty;
15+
import static org.hamcrest.Matchers.equalTo;
16+
import static org.hamcrest.Matchers.hasSize;
17+
import static org.hamcrest.Matchers.is;
18+
19+
class BestillingInstdataStatusMapperTest {
20+
21+
private static final String IDENT_1 = "12345678901";
22+
private static final String IDENT_2 = "98765432109";
23+
24+
@Test
25+
void shouldReturnEmptyListForEmptyProgressList() {
26+
var result = BestillingInstdataStatusMapper.buildInstdataStatusMap(List.of());
27+
28+
assertThat(result, is(empty()));
29+
}
30+
31+
@Test
32+
void shouldReturnEmptyListWhenInstdataStatusIsNull() {
33+
var progress = BestillingProgress.builder()
34+
.ident(IDENT_1)
35+
.instdataStatus(null)
36+
.build();
37+
38+
var result = BestillingInstdataStatusMapper.buildInstdataStatusMap(List.of(progress));
39+
40+
assertThat(result, is(empty()));
41+
}
42+
43+
@Test
44+
void shouldReturnEmptyListWhenInstdataStatusIsBlank() {
45+
var progress = BestillingProgress.builder()
46+
.ident(IDENT_1)
47+
.instdataStatus(" ")
48+
.build();
49+
50+
var result = BestillingInstdataStatusMapper.buildInstdataStatusMap(List.of(progress));
51+
52+
assertThat(result, is(empty()));
53+
}
54+
55+
@Test
56+
void shouldReturnEmptyListWhenIdentIsBlank() {
57+
var progress = BestillingProgress.builder()
58+
.ident("")
59+
.instdataStatus("q1:OK")
60+
.build();
61+
62+
var result = BestillingInstdataStatusMapper.buildInstdataStatusMap(List.of(progress));
63+
64+
assertThat(result, is(empty()));
65+
}
66+
67+
@Test
68+
void shouldDefaultToInst2WhenNoHashSeparator() {
69+
var progress = BestillingProgress.builder()
70+
.ident(IDENT_1)
71+
.instdataStatus("q1:OK")
72+
.build();
73+
74+
var result = BestillingInstdataStatusMapper.buildInstdataStatusMap(List.of(progress));
75+
76+
assertThat(result, hasSize(1));
77+
assertThat(result.get(0).getId(), is(INST2));
78+
assertThat(result.get(0).getNavn(), is(equalTo(INST2.getBeskrivelse())));
79+
assertThat(result.get(0).getStatuser().get(0).getMelding(), is(equalTo("OK")));
80+
assertThat(result.get(0).getStatuser().get(0).getDetaljert().get(0).getMiljo(), is(equalTo("q1")));
81+
assertThat(result.get(0).getStatuser().get(0).getDetaljert().get(0).getIdenter(), contains(IDENT_1));
82+
}
83+
84+
@Test
85+
void shouldMapKdiStatusWithHashSeparator() {
86+
var progress = BestillingProgress.builder()
87+
.ident(IDENT_1)
88+
.instdataStatus("KDI_STATUS#q2:OK")
89+
.build();
90+
91+
var result = BestillingInstdataStatusMapper.buildInstdataStatusMap(List.of(progress));
92+
93+
assertThat(result, hasSize(1));
94+
assertThat(result.get(0).getId(), is(INST_KDI));
95+
assertThat(result.get(0).getNavn(), is(equalTo(INST_KDI.getBeskrivelse())));
96+
assertThat(result.get(0).getStatuser().get(0).getMelding(), is(equalTo("OK")));
97+
assertThat(result.get(0).getStatuser().get(0).getDetaljert().get(0).getMiljo(), is(equalTo("q2")));
98+
}
99+
100+
@Test
101+
void shouldMapBothSystemsFromPipeSeparatedStatus() {
102+
var progress = BestillingProgress.builder()
103+
.ident(IDENT_1)
104+
.instdataStatus("INST2_STATUS#q1:OK|KDI_STATUS#q2:OK")
105+
.build();
106+
107+
var result = BestillingInstdataStatusMapper.buildInstdataStatusMap(List.of(progress));
108+
109+
assertThat(result, hasSize(2));
110+
assertThat(result.get(0).getId(), is(INST2));
111+
assertThat(result.get(0).getStatuser().get(0).getDetaljert().get(0).getMiljo(), is(equalTo("q1")));
112+
assertThat(result.get(1).getId(), is(INST_KDI));
113+
assertThat(result.get(1).getStatuser().get(0).getDetaljert().get(0).getMiljo(), is(equalTo("q2")));
114+
}
115+
116+
@Test
117+
void shouldResolveForholdOkStatus() {
118+
var progress = BestillingProgress.builder()
119+
.ident(IDENT_1)
120+
.instdataStatus("q1:opphold$OK")
121+
.build();
122+
123+
var result = BestillingInstdataStatusMapper.buildInstdataStatusMap(List.of(progress));
124+
125+
assertThat(result, hasSize(1));
126+
assertThat(result.get(0).getStatuser().get(0).getMelding(), is(equalTo("OK")));
127+
}
128+
129+
@Test
130+
void shouldResolveForholdErrorStatus() {
131+
var progress = BestillingProgress.builder()
132+
.ident(IDENT_1)
133+
.instdataStatus("q1:opphold$Feil ved opprettelse")
134+
.build();
135+
136+
var result = BestillingInstdataStatusMapper.buildInstdataStatusMap(List.of(progress));
137+
138+
assertThat(result, hasSize(1));
139+
assertThat(result.get(0).getStatuser().get(0).getMelding(), is(equalTo("opphold: Feil ved opprettelse")));
140+
}
141+
142+
@Test
143+
void shouldDecodeEncodedCharacters() {
144+
var progress = BestillingProgress.builder()
145+
.ident(IDENT_1)
146+
.instdataStatus("q1:Feil= kode;verdi&ekstra")
147+
.build();
148+
149+
var result = BestillingInstdataStatusMapper.buildInstdataStatusMap(List.of(progress));
150+
151+
assertThat(result, hasSize(1));
152+
assertThat(result.get(0).getStatuser().get(0).getMelding(), is(equalTo("Feil: kode,verdi,ekstra")));
153+
}
154+
155+
@Test
156+
void shouldGroupMultipleIdentsUnderSameStatus() {
157+
var progress1 = BestillingProgress.builder()
158+
.ident(IDENT_1)
159+
.instdataStatus("q1:OK")
160+
.build();
161+
var progress2 = BestillingProgress.builder()
162+
.ident(IDENT_2)
163+
.instdataStatus("q1:OK")
164+
.build();
165+
166+
var result = BestillingInstdataStatusMapper.buildInstdataStatusMap(List.of(progress1, progress2));
167+
168+
assertThat(result, hasSize(1));
169+
assertThat(result.get(0).getStatuser(), hasSize(1));
170+
assertThat(result.get(0).getStatuser().get(0).getDetaljert().get(0).getIdenter(),
171+
containsInAnyOrder(IDENT_1, IDENT_2));
172+
}
173+
174+
@Test
175+
void shouldGroupMultipleEnvironmentsUnderSameStatus() {
176+
var progress = BestillingProgress.builder()
177+
.ident(IDENT_1)
178+
.instdataStatus("q1:OK,q2:OK")
179+
.build();
180+
181+
var result = BestillingInstdataStatusMapper.buildInstdataStatusMap(List.of(progress));
182+
183+
assertThat(result, hasSize(1));
184+
assertThat(result.get(0).getStatuser(), hasSize(1));
185+
assertThat(result.get(0).getStatuser().get(0).getMelding(), is(equalTo("OK")));
186+
assertThat(result.get(0).getStatuser().get(0).getDetaljert(), hasSize(2));
187+
188+
var miljoer = result.get(0).getStatuser().get(0).getDetaljert().stream()
189+
.map(RsStatusRapport.Detaljert::getMiljo)
190+
.toList();
191+
assertThat(miljoer, containsInAnyOrder("q1", "q2"));
192+
}
193+
194+
@Test
195+
void shouldSkipStatusEntryWithBlankErrorMessage() {
196+
var progress = BestillingProgress.builder()
197+
.ident(IDENT_1)
198+
.instdataStatus("q1:,q2:OK")
199+
.build();
200+
201+
var result = BestillingInstdataStatusMapper.buildInstdataStatusMap(List.of(progress));
202+
203+
assertThat(result, hasSize(1));
204+
assertThat(result.get(0).getStatuser(), hasSize(1));
205+
assertThat(result.get(0).getStatuser().get(0).getDetaljert().get(0).getMiljo(), is(equalTo("q2")));
206+
}
207+
}

0 commit comments

Comments
 (0)