Skip to content

Commit 844e5dc

Browse files
committed
Revert "Remove redundant checks for STRENGT_FORTROLIG address protection in services"
This reverts commit 4e665fa.
1 parent 4e665fa commit 844e5dc

File tree

5 files changed

+93
-3
lines changed

5 files changed

+93
-3
lines changed

apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/service/BostedAdresseService.java

+9-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import no.nav.pdl.forvalter.consumer.AdresseServiceConsumer;
55
import no.nav.pdl.forvalter.consumer.GenererNavnServiceConsumer;
66
import no.nav.pdl.forvalter.exception.InvalidRequestException;
7+
import no.nav.testnav.libs.data.pdlforvalter.v1.AdressebeskyttelseDTO;
78
import no.nav.testnav.libs.data.pdlforvalter.v1.BostedadresseDTO;
89
import no.nav.testnav.libs.data.pdlforvalter.v1.DbVersjonDTO.Master;
910
import no.nav.testnav.libs.data.pdlforvalter.v1.PersonDTO;
@@ -26,6 +27,7 @@
2627
import static no.nav.pdl.forvalter.utils.ArtifactUtils.getMaster;
2728
import static no.nav.pdl.forvalter.utils.IdenttypeUtility.getIdenttype;
2829
import static no.nav.pdl.forvalter.utils.TestnorgeIdentUtility.isTestnorgeIdent;
30+
import static no.nav.testnav.libs.data.pdlforvalter.v1.AdressebeskyttelseDTO.AdresseBeskyttelse.STRENGT_FORTROLIG;
2931
import static no.nav.testnav.libs.data.pdlforvalter.v1.Identtype.FNR;
3032
import static org.apache.commons.lang3.BooleanUtils.isNotTrue;
3133
import static org.apache.commons.lang3.BooleanUtils.isTrue;
@@ -93,7 +95,13 @@ private void handle(BostedadresseDTO bostedadresse, PersonDTO person) {
9395

9496
if (FNR == getIdenttype(person.getIdent())) {
9597

96-
if (!person.getUtflytting().isEmpty() && bostedadresse.countAdresser() == 0 &&
98+
if (STRENGT_FORTROLIG == person.getAdressebeskyttelse().stream()
99+
.findFirst().orElse(new AdressebeskyttelseDTO()).getGradering()) {
100+
101+
person.setBostedsadresse(null);
102+
return;
103+
104+
} else if (!person.getUtflytting().isEmpty() && bostedadresse.countAdresser() == 0 &&
97105
person.getInnflytting().stream()
98106
.noneMatch(innflytting -> person.getUtflytting().stream()
99107
.anyMatch(utflytting -> innflytting.getInnflyttingsdato()

apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/service/KontaktAdresseService.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import no.nav.pdl.forvalter.consumer.GenererNavnServiceConsumer;
66
import no.nav.pdl.forvalter.exception.InvalidRequestException;
77
import no.nav.pdl.forvalter.utils.IdenttypeUtility;
8+
import no.nav.testnav.libs.data.pdlforvalter.v1.AdressebeskyttelseDTO;
89
import no.nav.testnav.libs.data.pdlforvalter.v1.DbVersjonDTO.Master;
910
import no.nav.testnav.libs.data.pdlforvalter.v1.KontaktadresseDTO;
1011
import no.nav.testnav.libs.data.pdlforvalter.v1.PersonDTO;
@@ -24,6 +25,7 @@
2425
import static java.util.Objects.nonNull;
2526
import static no.nav.pdl.forvalter.utils.ArtifactUtils.getKilde;
2627
import static no.nav.pdl.forvalter.utils.ArtifactUtils.getMaster;
28+
import static no.nav.testnav.libs.data.pdlforvalter.v1.AdressebeskyttelseDTO.AdresseBeskyttelse.STRENGT_FORTROLIG;
2729
import static no.nav.testnav.libs.data.pdlforvalter.v1.Identtype.FNR;
2830
import static org.apache.commons.lang3.BooleanUtils.isNotTrue;
2931
import static org.apache.commons.lang3.BooleanUtils.isTrue;
@@ -95,7 +97,11 @@ private void handle(KontaktadresseDTO kontaktadresse, PersonDTO person) {
9597

9698
if (FNR == IdenttypeUtility.getIdenttype(person.getIdent())) {
9799

98-
if (kontaktadresse.countAdresser() == 0) {
100+
if (STRENGT_FORTROLIG == person.getAdressebeskyttelse().stream()
101+
.findFirst().orElse(new AdressebeskyttelseDTO()).getGradering()) {
102+
return;
103+
104+
} else if (kontaktadresse.countAdresser() == 0) {
99105
kontaktadresse.setVegadresse(new VegadresseDTO());
100106
}
101107

apps/pdl-forvalter/src/main/java/no/nav/pdl/forvalter/service/OppholdsadresseService.java

+16-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import no.nav.pdl.forvalter.consumer.GenererNavnServiceConsumer;
66
import no.nav.pdl.forvalter.exception.InvalidRequestException;
77
import no.nav.pdl.forvalter.utils.IdenttypeUtility;
8+
import no.nav.testnav.libs.data.pdlforvalter.v1.AdressebeskyttelseDTO;
89
import no.nav.testnav.libs.data.pdlforvalter.v1.OppholdsadresseDTO;
910
import no.nav.testnav.libs.data.pdlforvalter.v1.PersonDTO;
1011
import no.nav.testnav.libs.data.pdlforvalter.v1.StatsborgerskapDTO;
@@ -22,6 +23,7 @@
2223
import static java.util.Objects.nonNull;
2324
import static no.nav.pdl.forvalter.utils.ArtifactUtils.getKilde;
2425
import static no.nav.pdl.forvalter.utils.ArtifactUtils.getMaster;
26+
import static no.nav.testnav.libs.data.pdlforvalter.v1.AdressebeskyttelseDTO.AdresseBeskyttelse.STRENGT_FORTROLIG;
2527
import static no.nav.testnav.libs.data.pdlforvalter.v1.Identtype.FNR;
2628
import static org.apache.commons.lang3.BooleanUtils.isTrue;
2729
import static org.apache.logging.log4j.util.Strings.isNotBlank;
@@ -31,6 +33,8 @@ public class OppholdsadresseService extends AdresseService<OppholdsadresseDTO, P
3133

3234
private static final String VALIDATION_AMBIGUITY_ERROR = "Oppholdsadresse: kun én adresse skal være satt (vegadresse, " +
3335
"matrikkeladresse, utenlandskAdresse)";
36+
private static final String VALIDATION_PROTECTED_ADDRESS = "Oppholdsadresse: Personer med adressebeskyttelse == " +
37+
"STRENGT_FORTROLIG skal ikke ha oppholdsadresse";
3438

3539
private final AdresseServiceConsumer adresseServiceConsumer;
3640
private final MapperFacade mapperFacade;
@@ -66,6 +70,12 @@ public void validate(OppholdsadresseDTO adresse, PersonDTO person) {
6670
throw new InvalidRequestException(VALIDATION_AMBIGUITY_ERROR);
6771

6872
}
73+
if (FNR == IdenttypeUtility.getIdenttype(person.getIdent()) &&
74+
STRENGT_FORTROLIG == person.getAdressebeskyttelse().stream()
75+
.findFirst().orElse(new AdressebeskyttelseDTO()).getGradering() &&
76+
adresse.countAdresser() > 0) {
77+
throw new InvalidRequestException(VALIDATION_PROTECTED_ADDRESS);
78+
}
6979

7080
if (nonNull(adresse.getVegadresse()) && isNotBlank(adresse.getVegadresse().getBruksenhetsnummer())) {
7181
validateBruksenhet(adresse.getVegadresse().getBruksenhetsnummer());
@@ -86,7 +96,12 @@ protected void handle(OppholdsadresseDTO oppholdsadresse, PersonDTO person) {
8696

8797
if (FNR == IdenttypeUtility.getIdenttype(person.getIdent())) {
8898

89-
if (oppholdsadresse.countAdresser() == 0) {
99+
if (STRENGT_FORTROLIG == person.getAdressebeskyttelse().stream()
100+
.findFirst().orElse(new AdressebeskyttelseDTO()).getGradering()) {
101+
102+
return;
103+
104+
} else if (oppholdsadresse.countAdresser() == 0) {
90105
oppholdsadresse.setVegadresse(new VegadresseDTO());
91106
}
92107

apps/pdl-forvalter/src/test/java/no/nav/pdl/forvalter/service/BostedAdresseServiceTest.java

+21
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import ma.glasnost.orika.MapperFacade;
44
import no.nav.pdl.forvalter.consumer.AdresseServiceConsumer;
5+
import no.nav.testnav.libs.data.pdlforvalter.v1.AdressebeskyttelseDTO;
56
import no.nav.testnav.libs.data.pdlforvalter.v1.BostedadresseDTO;
67
import no.nav.testnav.libs.data.pdlforvalter.v1.DbVersjonDTO.Master;
78
import no.nav.testnav.libs.data.pdlforvalter.v1.MatrikkeladresseDTO;
@@ -21,8 +22,10 @@
2122
import java.util.ArrayList;
2223
import java.util.List;
2324

25+
import static no.nav.testnav.libs.data.pdlforvalter.v1.AdressebeskyttelseDTO.AdresseBeskyttelse.STRENGT_FORTROLIG;
2426
import static org.hamcrest.MatcherAssert.assertThat;
2527
import static org.hamcrest.Matchers.containsString;
28+
import static org.hamcrest.Matchers.empty;
2629
import static org.hamcrest.Matchers.equalTo;
2730
import static org.hamcrest.Matchers.is;
2831
import static org.hamcrest.Matchers.notNullValue;
@@ -203,6 +206,24 @@ void whenPreviousOppholdHasEmptyTilDato_thenFixPreviousOppholdTilDato() {
203206
assertThat(target.get(1).getGyldigTilOgMed(), is(equalTo(LocalDate.of(2020, 2, 3).atStartOfDay())));
204207
}
205208

209+
@Test
210+
void whenIdenttypeFnrAndStrengtFortrolig_thenMakeNoAdress() {
211+
212+
var request = PersonDTO.builder()
213+
.ident(FNR_IDENT)
214+
.bostedsadresse(new ArrayList<>(List.of(BostedadresseDTO.builder()
215+
.isNew(true)
216+
.build())))
217+
.adressebeskyttelse(List.of(AdressebeskyttelseDTO.builder()
218+
.gradering(STRENGT_FORTROLIG)
219+
.build()))
220+
.build();
221+
222+
var target = bostedAdresseService.convert(request, null);
223+
224+
assertThat(target, is(empty()));
225+
}
226+
206227
@Test
207228
void whenIdenttypeFnrAndNoAdresseBeskyttelse_thenMakeAdress() {
208229

apps/pdl-forvalter/src/test/java/no/nav/pdl/forvalter/service/OppholdsadresseServiceTest.java

+40
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import ma.glasnost.orika.MapperFacade;
44
import no.nav.pdl.forvalter.consumer.AdresseServiceConsumer;
5+
import no.nav.testnav.libs.data.pdlforvalter.v1.AdressebeskyttelseDTO;
56
import no.nav.testnav.libs.data.pdlforvalter.v1.MatrikkeladresseDTO;
67
import no.nav.testnav.libs.data.pdlforvalter.v1.OppholdsadresseDTO;
78
import no.nav.testnav.libs.data.pdlforvalter.v1.PersonDTO;
@@ -18,6 +19,7 @@
1819
import java.util.ArrayList;
1920
import java.util.List;
2021

22+
import static no.nav.testnav.libs.data.pdlforvalter.v1.AdressebeskyttelseDTO.AdresseBeskyttelse.STRENGT_FORTROLIG;
2123
import static org.hamcrest.MatcherAssert.assertThat;
2224
import static org.hamcrest.Matchers.containsString;
2325
import static org.hamcrest.Matchers.is;
@@ -60,6 +62,26 @@ void whenMultipleAdressesProvided_thenThrowExecption() {
6062
"(vegadresse, matrikkeladresse, utenlandskAdresse)"));
6163
}
6264

65+
@Test
66+
void whenAddressProvidedAndStrengtFortrolig_thenThrowExecption() {
67+
68+
var request = OppholdsadresseDTO.builder()
69+
.vegadresse(new VegadresseDTO())
70+
.isNew(true)
71+
.build();
72+
73+
var exception = assertThrows(HttpClientErrorException.class, () ->
74+
oppholdsadresseService.validate(request, PersonDTO.builder()
75+
.ident(FNR_IDENT)
76+
.adressebeskyttelse(List.of(AdressebeskyttelseDTO.builder()
77+
.gradering(STRENGT_FORTROLIG)
78+
.build()))
79+
.build()));
80+
81+
assertThat(exception.getMessage(), containsString(
82+
"Oppholdsadresse: Personer med adressebeskyttelse == STRENGT_FORTROLIG skal ikke ha oppholdsadresse"));
83+
}
84+
6385
@Test
6486
void whenVegadresseWithBruksenhetsnummerInvalidFormat_thenThrowExecption() {
6587

@@ -114,6 +136,24 @@ void whenInvalidDateInterval_thenThrowExecption() {
114136
assertThat(exception.getMessage(), containsString("Adresse: Overlappende adressedatoer er ikke lov"));
115137
}
116138

139+
@Test
140+
void whenIdenttypeFnrAndStrengtFortrolig_thenMakeNoAdress() {
141+
142+
var request = PersonDTO.builder()
143+
.ident(FNR_IDENT)
144+
.oppholdsadresse(new ArrayList<>(List.of(OppholdsadresseDTO.builder()
145+
.isNew(true)
146+
.build())))
147+
.adressebeskyttelse(List.of(AdressebeskyttelseDTO.builder()
148+
.gradering(STRENGT_FORTROLIG)
149+
.build()))
150+
.build();
151+
152+
var target = oppholdsadresseService.convert(request).getFirst();
153+
154+
assertThat(target.countAdresser(), is(0));
155+
}
156+
117157
@Test
118158
void whenIdenttypeFnrAndNoAdresseBeskyttelse_thenMakeAdress() {
119159

0 commit comments

Comments
 (0)