Skip to content

Commit c556aa7

Browse files
authored
uuid for institusjon i søknaden (#320)
* uuid for institusjon i søknaden * Legger kursholder med uuid i eget objekt * rename felt
1 parent f019216 commit c556aa7

File tree

5 files changed

+119
-8
lines changed

5 files changed

+119
-8
lines changed

soknad/src/main/java/no/nav/k9/søknad/ytelse/olp/v1/OpplæringspengerYtelseValidator.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import java.util.List;
1010
import java.util.Map;
1111
import java.util.Objects;
12+
import java.util.UUID;
1213
import java.util.stream.Collectors;
1314

1415
import no.nav.fpsak.tidsserie.LocalDateTimeline;
@@ -19,6 +20,7 @@
1920
import no.nav.k9.søknad.ytelse.Ytelse;
2021
import no.nav.k9.søknad.ytelse.YtelseValidator;
2122
import no.nav.k9.søknad.ytelse.olp.v1.kurs.KursPeriodeMedReisetid;
23+
import no.nav.k9.søknad.ytelse.olp.v1.kurs.Kursholder;
2224

2325
class OpplæringspengerYtelseValidator extends YtelseValidator {
2426

@@ -96,7 +98,9 @@ List<Feil> validerOgLeggTilFeilene(Opplæringspenger olp,
9698

9799
validerAtYtelsePeriodenErKomplettMedSøknad(søknadsperiodeTidslinje, olp.getUttak().getPerioder(), "uttak", feilene);
98100

99-
validerReisetidMotKursperioden(olp.getKurs().getKursperioder(), "kurs", feilene);
101+
validerKursholderOgInstitusjonUuid(olp.getKurs().getKursholder(), "kurs.kursholder", feilene);
102+
103+
validerReisetidMotKursperioden(olp.getKurs().getKursperioder(), "kurs.kursperioder", feilene);
100104

101105
return feilene;
102106
}
@@ -129,6 +133,17 @@ private List<Feil> validerAtYtelsePerioderErInnenforIntervalForEndring(LocalDate
129133
.collect(Collectors.toCollection(ArrayList::new)));
130134
}
131135

136+
private void validerKursholderOgInstitusjonUuid(Kursholder kursholder, String felt, List<Feil> feil) {
137+
String holder = kursholder.getHolder();
138+
UUID institusjonUuid = kursholder.getInstitusjonUuid();
139+
140+
if (holder == null && institusjonUuid == null) {
141+
feil.add(lagFeil(felt, "ugyldigHolderEllerInstitusjonUuid", "Enten holder eller institusjonUuid må være satt."));
142+
} else if (holder != null && institusjonUuid != null) {
143+
feil.add(lagFeil(felt, "ugyldigHolderEllerInstitusjonUuid", "Kan ikke ha både holder og institusjonUuid satt samtidig."));
144+
}
145+
}
146+
132147
private void validerReisetidMotKursperioden(List<KursPeriodeMedReisetid> kursperioder, String felt, List<Feil> feil) {
133148
for (KursPeriodeMedReisetid kursPeriode : kursperioder) {
134149
if (kursPeriode != null) {

soknad/src/main/java/no/nav/k9/søknad/ytelse/olp/v1/kurs/Kurs.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.util.ArrayList;
44
import java.util.List;
5+
import java.util.UUID;
56

67
import javax.validation.Valid;
78
import javax.validation.constraints.NotNull;
@@ -15,10 +16,10 @@
1516
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
1617
public class Kurs {
1718

18-
@JsonProperty(value = "holder", required = true)
19+
@JsonProperty(value = "kursholder", required = true)
1920
@NotNull
2021
@Valid
21-
private String holder;
22+
private Kursholder kursholder;
2223

2324
@JsonProperty(value = "formål", required = true)
2425
@NotNull
@@ -34,14 +35,14 @@ public class Kurs {
3435
public Kurs() {
3536
}
3637

37-
public Kurs(String kursholder, String formålMedKurset, List<KursPeriodeMedReisetid> kursperioder) {
38-
this.holder = kursholder;
38+
public Kurs(Kursholder kursholder, String formålMedKurset, List<KursPeriodeMedReisetid> kursperioder) {
39+
this.kursholder = kursholder;
3940
this.formål = formålMedKurset;
4041
this.kursperioder = kursperioder;
4142
}
4243

43-
public String getHolder() {
44-
return holder;
44+
public Kursholder getKursholder() {
45+
return kursholder;
4546
}
4647

4748
public String getFormål() {
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package no.nav.k9.søknad.ytelse.olp.v1.kurs;
2+
3+
import java.util.UUID;
4+
5+
import javax.validation.Valid;
6+
import javax.validation.constraints.Pattern;
7+
import javax.validation.constraints.Size;
8+
9+
import com.fasterxml.jackson.annotation.JsonAutoDetect;
10+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
11+
import com.fasterxml.jackson.annotation.JsonProperty;
12+
13+
@JsonIgnoreProperties(ignoreUnknown = true)
14+
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, isGetterVisibility = JsonAutoDetect.Visibility.NONE, creatorVisibility = JsonAutoDetect.Visibility.NONE)
15+
public class Kursholder {
16+
17+
@JsonProperty(value = "holder", required = true)
18+
@Valid
19+
@Size(max = 100)
20+
@Pattern(regexp = "^[\\p{Pd}\\p{Graph}\\p{Space}\\p{Sc}\\p{L}\\p{M}\\p{N}§]*$", message = "[${validatedValue}] matcher ikke tillatt pattern [{regexp}]")
21+
private String holder;
22+
23+
@JsonProperty(value = "institusjonsidentifikator", required = true)
24+
@Valid
25+
private UUID institusjonUuid;
26+
27+
public Kursholder() {
28+
}
29+
30+
public Kursholder(String holder, UUID institusjonUuid) {
31+
this.holder = holder;
32+
this.institusjonUuid = institusjonUuid;
33+
}
34+
35+
public String getHolder() {
36+
return holder;
37+
}
38+
39+
public UUID getInstitusjonUuid() {
40+
return institusjonUuid;
41+
}
42+
}

soknad/src/test/java/no/nav/k9/søknad/TestUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public static void feilInneholder(List<Feil> feil, String felt, String feilkode,
7171
.stream()
7272
.filter(f -> f.getFeilkode().equals(feilkode) && f.getFelt().equals(felt) && f.getFeilmelding().equals(feilmelding))
7373
.collect(Collectors.toList()))
74-
.withFailMessage("Finner ikke fetl og feilkode: " + felt + ", " + feilkode + ", " + feilmelding)
74+
.withFailMessage("Finner ikke felt og feilkode: " + felt + ", " + feilkode + ", " + feilmelding)
7575
.isNotEmpty();
7676
}
7777

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package no.nav.k9.søknad.ytelse.olp.v1;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
5+
import java.time.LocalDate;
6+
import java.util.List;
7+
import java.util.UUID;
8+
9+
import org.junit.jupiter.api.Test;
10+
11+
import no.nav.k9.søknad.TestUtils;
12+
import no.nav.k9.søknad.felles.Feil;
13+
import no.nav.k9.søknad.felles.type.Periode;
14+
import no.nav.k9.søknad.ytelse.olp.v1.kurs.Kurs;
15+
import no.nav.k9.søknad.ytelse.olp.v1.kurs.KursPeriodeMedReisetid;
16+
import no.nav.k9.søknad.ytelse.olp.v1.kurs.Kursholder;
17+
import no.nav.k9.søknad.ytelse.psb.YtelseEksempel;
18+
19+
class OpplæringspengerYtelseValidatorTest {
20+
21+
private final OpplæringspengerYtelseValidator ytelseValidator = new OpplæringspengerYtelseValidator();
22+
23+
private Opplæringspenger lagYtelse(String holder, UUID institusjonUuid) {
24+
Periode søknadsperiode = new Periode(LocalDate.now(), LocalDate.now().plusWeeks(1));
25+
KursPeriodeMedReisetid kursPeriode = new KursPeriodeMedReisetid(søknadsperiode, søknadsperiode.getFraOgMed(), søknadsperiode.getTilOgMed());
26+
Kurs kurs = new Kurs(new Kursholder(holder, institusjonUuid), "?", List.of(kursPeriode));
27+
return new Opplæringspenger().medBarn(YtelseEksempel.lagBarn()).medSøknadsperiode(List.of(søknadsperiode)).medUttak(YtelseEksempel.lagUttak(søknadsperiode)).medKurs(kurs);
28+
}
29+
30+
@Test
31+
void skalValidereOk() {
32+
Opplæringspenger olpYtelse = lagYtelse(null, UUID.randomUUID());
33+
34+
List<Feil> feil = ytelseValidator.valider(olpYtelse);
35+
assertThat(feil).isEmpty();
36+
}
37+
38+
@Test
39+
void skalGiFeilHvisBådeHolderOgUuidErNull() {
40+
Opplæringspenger olpYtelse = lagYtelse(null, null);
41+
42+
List<Feil> feil = ytelseValidator.valider(olpYtelse);
43+
TestUtils.feilInneholder(feil, "ytelse.kurs.kursholder", "ugyldigHolderEllerInstitusjonUuid", "Enten holder eller institusjonUuid må være satt.");
44+
}
45+
46+
@Test
47+
void skalGiFeilHvisBådeHolderOgUuidErSatt() {
48+
Opplæringspenger olpYtelse = lagYtelse("Franz Holder", UUID.randomUUID());
49+
50+
List<Feil> feil = ytelseValidator.valider(olpYtelse);
51+
TestUtils.feilInneholder(feil, "ytelse.kurs.kursholder", "ugyldigHolderEllerInstitusjonUuid", "Kan ikke ha både holder og institusjonUuid satt samtidig.");
52+
}
53+
}

0 commit comments

Comments
 (0)