Skip to content

Commit 19d30be

Browse files
authored
Dato for justering av sats skal være samme dag søker fyller 25 år. (#162)
* Dato for justering av sats skal være samme dag søker fyller 25 år. Oppdaterer tester for å reflektere dette. * Bruker tjuefemårsdagen i testen
1 parent 1df7aa7 commit 19d30be

File tree

2 files changed

+87
-37
lines changed

2 files changed

+87
-37
lines changed

behandlingsprosess/src/main/java/no/nav/ung/sak/domene/behandling/steg/beregning/LagGrunnbeløpFaktorTidslinje.java

+1-4
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public class LagGrunnbeløpFaktorTidslinje {
1616
static LocalDateTimeline<Sats> lagGrunnbeløpFaktorTidslinje(LocalDate fødselsdato, LocalDate beregningsdato, boolean harTriggerBeregnHøySats) {
1717
var førsteMuligeDato = fødselsdato.plusYears(LAV.getFomAlder()).with(TemporalAdjusters.lastDayOfMonth()).plusDays(1);
1818
LocalDate tjuefemårsdagen = fødselsdato.plusYears(HØY.getFomAlder());
19-
var datoForEndringAvSats = tjuefemårsdagen.with(TemporalAdjusters.lastDayOfMonth()).plusDays(1);
19+
var datoForEndringAvSats = tjuefemårsdagen;
2020
var sisteMuligeDato = fødselsdato.plusYears(HØY.getTomAlder()).with(TemporalAdjusters.lastDayOfMonth()).plusDays(1);
2121

2222
var regnUtHøySats = harTriggerBeregnHøySats || beregningsdato.isAfter(tjuefemårsdagen);
@@ -36,8 +36,5 @@ public class LagGrunnbeløpFaktorTidslinje {
3636
} else {
3737
return new LocalDateTimeline<>(førsteMuligeDato, sisteMuligeDato, LAV);
3838
}
39-
4039
}
41-
42-
4340
}

behandlingsprosess/src/test/java/no/nav/ung/sak/domene/behandling/steg/beregning/UngdomsytelseBeregnDagsatsTest.java

+86-33
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@ void setUp() {
5353
var first = segmenter.first();
5454
assertThat(first.getFom()).isEqualTo(fom);
5555
assertThat(first.getTom()).isEqualTo(tom);
56-
assertThat(first.getValue().grunnbeløpFaktor()).isEqualByComparingTo("1.33333");
56+
assertThat(first.getValue().grunnbeløpFaktor()).isEqualByComparingTo(BigDecimal.valueOf(1.33333));
5757
assertThat(first.getValue().grunnbeløp()).isEqualByComparingTo(BigDecimal.valueOf(118620));
58-
assertThat(first.getValue().dagsats()).isEqualByComparingTo("608.31");
58+
assertThat(first.getValue().dagsats()).isEqualByComparingTo(BigDecimal.valueOf(608.31));
5959
}
6060

6161

@@ -74,16 +74,16 @@ void setUp() {
7474
var first = iterator.next();
7575
assertThat(first.getFom()).isEqualTo(fom);
7676
assertThat(first.getTom()).isEqualTo(LocalDate.of(2024, 4, 30));
77-
assertThat(first.getValue().grunnbeløpFaktor()).isEqualByComparingTo("1.33333");
77+
assertThat(first.getValue().grunnbeløpFaktor()).isEqualByComparingTo(BigDecimal.valueOf(1.33333));
7878
assertThat(first.getValue().grunnbeløp()).isEqualByComparingTo(BigDecimal.valueOf(118620));
79-
assertThat(first.getValue().dagsats()).isEqualByComparingTo("608.31");
79+
assertThat(first.getValue().dagsats()).isEqualByComparingTo(BigDecimal.valueOf(608.31));
8080

8181
var second = iterator.next();
8282
assertThat(second.getFom()).isEqualTo(LocalDate.of(2024, 5, 1));
8383
assertThat(second.getTom()).isEqualTo(tom);
84-
assertThat(second.getValue().grunnbeløpFaktor()).isEqualByComparingTo("1.33333");
84+
assertThat(second.getValue().grunnbeløpFaktor()).isEqualByComparingTo(BigDecimal.valueOf(1.33333));
8585
assertThat(second.getValue().grunnbeløp()).isEqualByComparingTo(BigDecimal.valueOf(124028));
86-
assertThat(second.getValue().dagsats()).isEqualByComparingTo("636.04");
86+
assertThat(second.getValue().dagsats()).isEqualByComparingTo(BigDecimal.valueOf(636.04));
8787
}
8888

8989
@Test
@@ -103,106 +103,159 @@ void setUp() {
103103
var førsteDagMedHøySats = LocalDate.of(2024, 5, 1);
104104
assertThat(first.getFom()).isEqualTo(fom);
105105
assertThat(first.getTom()).isEqualTo(førsteDagMedHøySats.minusDays(1));
106-
assertThat(first.getValue().grunnbeløpFaktor()).isEqualByComparingTo("1.33333");
106+
assertThat(first.getValue().grunnbeløpFaktor()).isEqualByComparingTo(BigDecimal.valueOf(1.33333));
107107
assertThat(first.getValue().grunnbeløp()).isEqualByComparingTo(BigDecimal.valueOf(118620));
108-
assertThat(first.getValue().dagsats()).isEqualByComparingTo("608.31");
108+
assertThat(first.getValue().dagsats()).isEqualByComparingTo(BigDecimal.valueOf(608.31));
109109

110110
var second = iterator.next();
111111
assertThat(second.getFom()).isEqualTo(førsteDagMedHøySats);
112112
assertThat(second.getTom()).isEqualTo(tom);
113-
assertThat(second.getValue().grunnbeløpFaktor()).isEqualByComparingTo("1.33333");
113+
assertThat(second.getValue().grunnbeløpFaktor()).isEqualByComparingTo(BigDecimal.valueOf(1.33333));
114114
assertThat(second.getValue().grunnbeløp()).isEqualByComparingTo(BigDecimal.valueOf(124028));
115-
assertThat(second.getValue().dagsats()).isEqualByComparingTo("636.04");
115+
assertThat(second.getValue().dagsats()).isEqualByComparingTo(BigDecimal.valueOf(636.04));
116116

117117
}
118118

119119
@Test
120120
void skal_beregne_lav_og_høy_dagsats_for_en_perioder_med_start_i_mars_2024_og_slutt_i_mai_2024_og_bruker_blir_25_år_midt_i_april_når_det_beregnes_når_bruker_har_blitt_25_år() {
121121
var fom = LocalDate.of(2024, 3, 1);
122122
var tom = LocalDate.of(2024, 5, 30);
123+
var datoForGRegulering = LocalDate.of(2024, 5, 1);
123124
var perioder = new LocalDateTimeline<>(fom, tom, Boolean.TRUE);
124125
var tjuefemårsdag = LocalDate.of(2024, 4, 15);
125126
var fødselsdato = tjuefemårsdag.minusYears(25);
126127
var dagsatsTidslinje = tjeneste.beregnDagsats(null, perioder, fødselsdato, tjuefemårsdag.plusDays(1), false);
127128

128129
var segmenter = dagsatsTidslinje.resultatTidslinje().toSegments();
129-
assertThat(segmenter.size()).isEqualTo(2);
130+
assertThat(segmenter.size()).isEqualTo(3);
130131

131132
var iterator = segmenter.iterator();
132133
var first = iterator.next();
133-
var førsteDagMedHøySats = LocalDate.of(2024, 5, 1);
134+
var førsteDagMedHøySats = tjuefemårsdag;
134135
assertThat(first.getFom()).isEqualTo(fom);
135136
assertThat(first.getTom()).isEqualTo(førsteDagMedHøySats.minusDays(1));
136-
assertThat(first.getValue().grunnbeløpFaktor()).isEqualByComparingTo("1.33333");
137+
assertThat(first.getValue().grunnbeløpFaktor()).isEqualByComparingTo(BigDecimal.valueOf(1.33333));
137138
assertThat(first.getValue().grunnbeløp()).isEqualByComparingTo(BigDecimal.valueOf(118620));
138-
assertThat(first.getValue().dagsats()).isEqualByComparingTo("608.31");
139+
assertThat(first.getValue().dagsats()).isEqualByComparingTo(BigDecimal.valueOf(608.31));
139140

140141
var second = iterator.next();
141-
assertThat(second.getFom()).isEqualTo(førsteDagMedHøySats);
142-
assertThat(second.getTom()).isEqualTo(tom);
142+
assertThat(second.getFom()).isEqualTo(tjuefemårsdag);
143+
assertThat(second.getTom()).isEqualTo(datoForGRegulering.minusDays(1));
143144
assertThat(second.getValue().grunnbeløpFaktor()).isEqualByComparingTo(BigDecimal.valueOf(2));
144-
assertThat(second.getValue().grunnbeløp()).isEqualByComparingTo(BigDecimal.valueOf(124028));
145-
assertThat(second.getValue().dagsats()).isEqualByComparingTo(BigDecimal.valueOf(954.06));
145+
assertThat(second.getValue().grunnbeløp()).isEqualByComparingTo(BigDecimal.valueOf(118620));
146+
assertThat(second.getValue().dagsats()).isEqualByComparingTo(BigDecimal.valueOf(912.46));
147+
148+
var third = iterator.next();
149+
assertThat(third.getFom()).isEqualTo(datoForGRegulering);
150+
assertThat(third.getTom()).isEqualTo(tom);
151+
assertThat(third.getValue().grunnbeløpFaktor()).isEqualByComparingTo(BigDecimal.valueOf(2));
152+
assertThat(third.getValue().grunnbeløp()).isEqualByComparingTo(BigDecimal.valueOf(124028));
153+
assertThat(third.getValue().dagsats()).isEqualByComparingTo(BigDecimal.valueOf(954.06));
146154
}
147155

148156
@Test
149157
void skal_beregne_lav_og_høy_dagsats_for_en_perioder_med_start_i_mars_2024_og_slutt_i_mai_2024_og_bruker_blir_25_år_midt_i_april_før_bruker_er_25_år_når_det_finnes_trigger_for_beregningen() {
150158
var fom = LocalDate.of(2024, 3, 1);
151159
var tom = LocalDate.of(2024, 5, 30);
160+
var datoForGRegulering = LocalDate.of(2024, 5, 1);
152161
var perioder = new LocalDateTimeline<>(fom, tom, Boolean.TRUE);
153162
var tjuefemårsdag = LocalDate.of(2024, 4, 15);
154163
var fødselsdato = tjuefemårsdag.minusYears(25);
155164
var dagsatsTidslinje = tjeneste.beregnDagsats(null, perioder, fødselsdato, tjuefemårsdag.minusDays(1), true);
156165

157166
var segmenter = dagsatsTidslinje.resultatTidslinje().toSegments();
158-
assertThat(segmenter.size()).isEqualTo(2);
167+
assertThat(segmenter.size()).isEqualTo(3);
159168

160169
var iterator = segmenter.iterator();
161170
var first = iterator.next();
162-
var førsteDagMedHøySats = LocalDate.of(2024, 5, 1);
171+
var førsteDagMedHøySats = LocalDate.of(2024, 4, 14);
163172
assertThat(first.getFom()).isEqualTo(fom);
164-
assertThat(first.getTom()).isEqualTo(førsteDagMedHøySats.minusDays(1));
165-
assertThat(first.getValue().grunnbeløpFaktor()).isEqualByComparingTo("1.33333");
173+
assertThat(first.getTom()).isEqualTo(førsteDagMedHøySats);
174+
assertThat(first.getValue().grunnbeløpFaktor()).isEqualByComparingTo(BigDecimal.valueOf(1.33333));
166175
assertThat(first.getValue().grunnbeløp()).isEqualByComparingTo(BigDecimal.valueOf(118620));
167-
assertThat(first.getValue().dagsats()).isEqualByComparingTo("608.31");
176+
assertThat(first.getValue().dagsats()).isEqualByComparingTo(BigDecimal.valueOf(608.31));
168177

169178
var second = iterator.next();
170-
assertThat(second.getFom()).isEqualTo(førsteDagMedHøySats);
171-
assertThat(second.getTom()).isEqualTo(tom);
179+
assertThat(second.getFom()).isEqualTo(førsteDagMedHøySats.plusDays(1));
180+
assertThat(second.getTom()).isEqualTo(tom.minusMonths(1));
172181
assertThat(second.getValue().grunnbeløpFaktor()).isEqualByComparingTo(BigDecimal.valueOf(2));
173-
assertThat(second.getValue().grunnbeløp()).isEqualByComparingTo(BigDecimal.valueOf(124028));
174-
assertThat(second.getValue().dagsats()).isEqualByComparingTo(BigDecimal.valueOf(954.06));
182+
assertThat(second.getValue().grunnbeløp()).isEqualByComparingTo(BigDecimal.valueOf(118620));
183+
assertThat(second.getValue().dagsats()).isEqualByComparingTo(BigDecimal.valueOf(912.46));
184+
185+
// Etter G-regulering
186+
var third = iterator.next();
187+
assertThat(third.getFom()).isEqualTo(datoForGRegulering);
188+
assertThat(third.getTom()).isEqualTo(tom);
189+
assertThat(third.getValue().grunnbeløpFaktor()).isEqualByComparingTo(BigDecimal.valueOf(2));
190+
assertThat(third.getValue().grunnbeløp()).isEqualByComparingTo(BigDecimal.valueOf(124028));
191+
assertThat(third.getValue().dagsats()).isEqualByComparingTo(BigDecimal.valueOf(954.06));
175192
}
176193

177194

178195
@Test
179196
void skal_beregne_dagsats_for_en_periode_med_start_i_mars_2024_og_slutt_i_mai_2024_og_bruker_blir_25_år_første_april() {
180197
var fom = LocalDate.of(2024, 3, 1);
181198
var tom = LocalDate.of(2024, 5, 30);
199+
var datoForGRegulering = LocalDate.of(2024, 5, 1);
182200
var perioder = new LocalDateTimeline<>(fom, tom, Boolean.TRUE);
183201
var tjuefemårsdag = LocalDate.of(2024, 4, 1);
184202
var fødselsdato = tjuefemårsdag.minusYears(25);
185203
var dagsatsTidslinje = tjeneste.beregnDagsats(null, perioder, fødselsdato, LocalDate.now(), true);
186204

205+
var segmenter = dagsatsTidslinje.resultatTidslinje().toSegments();
206+
assertThat(segmenter.size()).isEqualTo(3);
207+
208+
var iterator = segmenter.iterator();
209+
var first = iterator.next();
210+
assertThat(first.getFom()).isEqualTo(fom);
211+
var sisteDagMedLavSats = tjuefemårsdag.minusDays(1);
212+
assertThat(first.getTom()).isEqualTo(sisteDagMedLavSats);
213+
assertThat(first.getValue().grunnbeløpFaktor()).isEqualByComparingTo(BigDecimal.valueOf(1.33333));
214+
assertThat(first.getValue().grunnbeløp()).isEqualByComparingTo(BigDecimal.valueOf(118620));
215+
assertThat(first.getValue().dagsats()).isEqualByComparingTo(BigDecimal.valueOf(608.31));
216+
217+
var second = iterator.next();
218+
assertThat(second.getFom()).isEqualTo(tjuefemårsdag);
219+
assertThat(second.getTom()).isEqualTo(datoForGRegulering.minusDays(1));
220+
assertThat(second.getValue().grunnbeløpFaktor()).isEqualByComparingTo(BigDecimal.valueOf(2));
221+
assertThat(second.getValue().grunnbeløp()).isEqualByComparingTo(BigDecimal.valueOf(118620));
222+
assertThat(second.getValue().dagsats()).isEqualByComparingTo(BigDecimal.valueOf(912.46));
223+
224+
var third = iterator.next();
225+
assertThat(third.getFom()).isEqualTo(datoForGRegulering);
226+
assertThat(third.getTom()).isEqualTo(tom);
227+
assertThat(third.getValue().grunnbeløpFaktor()).isEqualByComparingTo(BigDecimal.valueOf(2));
228+
assertThat(third.getValue().grunnbeløp()).isEqualByComparingTo(BigDecimal.valueOf(124028));
229+
assertThat(third.getValue().dagsats()).isEqualByComparingTo(BigDecimal.valueOf(954.06));
230+
}
231+
232+
233+
@Test
234+
void skal_beregne_dagsats_for_en_periode_med_start_i_mars_2024_og_slutt_i_mai_2024_og_bruker_blir_25_år_på_dato_g_regulering() {
235+
var fom = LocalDate.of(2024, 3, 1);
236+
var tom = LocalDate.of(2024, 5, 30);
237+
var perioder = new LocalDateTimeline<>(fom, tom, Boolean.TRUE);
238+
var tjuefemårsdag = LocalDate.of(2024, 5, 1);
239+
var fødselsdato = tjuefemårsdag.minusYears(25);
240+
var dagsatsTidslinje = tjeneste.beregnDagsats(null, perioder, fødselsdato, LocalDate.now(), true);
241+
187242
var segmenter = dagsatsTidslinje.resultatTidslinje().toSegments();
188243
assertThat(segmenter.size()).isEqualTo(2);
189244

190245
var iterator = segmenter.iterator();
191246
var first = iterator.next();
192247
assertThat(first.getFom()).isEqualTo(fom);
193-
var sisteDagMedLavSats = tjuefemårsdag.with(TemporalAdjusters.lastDayOfMonth());
248+
var sisteDagMedLavSats = tjuefemårsdag.minusDays(1);
194249
assertThat(first.getTom()).isEqualTo(sisteDagMedLavSats);
195-
assertThat(first.getValue().grunnbeløpFaktor()).isEqualByComparingTo("1.33333");
250+
assertThat(first.getValue().grunnbeløpFaktor()).isEqualByComparingTo(BigDecimal.valueOf(1.33333));
196251
assertThat(first.getValue().grunnbeløp()).isEqualByComparingTo(BigDecimal.valueOf(118620));
197-
assertThat(first.getValue().dagsats()).isEqualByComparingTo("608.31");
252+
assertThat(first.getValue().dagsats()).isEqualByComparingTo(BigDecimal.valueOf(608.31));
198253

199254
var second = iterator.next();
200-
assertThat(second.getFom()).isEqualTo(sisteDagMedLavSats.plusDays(1));
255+
assertThat(second.getFom()).isEqualTo(tjuefemårsdag);
201256
assertThat(second.getTom()).isEqualTo(tom);
202257
assertThat(second.getValue().grunnbeløpFaktor()).isEqualByComparingTo(BigDecimal.valueOf(2));
203258
assertThat(second.getValue().grunnbeløp()).isEqualByComparingTo(BigDecimal.valueOf(124028));
204259
assertThat(second.getValue().dagsats()).isEqualByComparingTo(BigDecimal.valueOf(954.06));
205260
}
206-
207-
208261
}

0 commit comments

Comments
 (0)