Skip to content

Commit 6be81e4

Browse files
Skriver test for å sjekke at det faktisk kastes exception ved to aktive huskelapper på samme person
1 parent 426599b commit 6be81e4

File tree

1 file changed

+139
-109
lines changed

1 file changed

+139
-109
lines changed
Lines changed: 139 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -1,143 +1,173 @@
1-
package no.nav.pto.veilarbportefolje.huskelapp;
2-
3-
import no.nav.common.types.identer.EnhetId;
4-
import no.nav.common.types.identer.Fnr;
5-
import no.nav.pto.veilarbportefolje.config.ApplicationConfigTest;
6-
import no.nav.pto.veilarbportefolje.domene.value.VeilederId;
7-
import no.nav.pto.veilarbportefolje.huskelapp.controller.dto.HuskelappOpprettRequest;
8-
import no.nav.pto.veilarbportefolje.huskelapp.controller.dto.HuskelappRedigerRequest;
9-
import no.nav.pto.veilarbportefolje.huskelapp.domain.Huskelapp;
10-
import org.junit.jupiter.api.BeforeEach;
11-
import org.junit.jupiter.api.Test;
12-
import org.springframework.beans.factory.annotation.Autowired;
13-
import org.springframework.boot.test.context.SpringBootTest;
14-
import org.springframework.jdbc.core.JdbcTemplate;
15-
16-
import java.time.LocalDate;
17-
import java.util.List;
18-
import java.util.Optional;
19-
20-
import static org.assertj.core.api.Assertions.assertThat;
21-
22-
@SpringBootTest(classes = ApplicationConfigTest.class)
23-
public class HuskelappRepositoryTest {
1+
package no.nav.pto.veilarbportefolje.huskelapp
2+
3+
import no.nav.common.types.identer.EnhetId
4+
import no.nav.common.types.identer.Fnr
5+
import no.nav.pto.veilarbportefolje.config.ApplicationConfigTest
6+
import no.nav.pto.veilarbportefolje.domene.value.VeilederId
7+
import no.nav.pto.veilarbportefolje.huskelapp.controller.dto.HuskelappOpprettRequest
8+
import no.nav.pto.veilarbportefolje.huskelapp.controller.dto.HuskelappRedigerRequest
9+
import org.assertj.core.api.Assertions
10+
import org.junit.jupiter.api.BeforeEach
11+
import org.junit.jupiter.api.Test
12+
import org.junit.jupiter.api.Assertions.assertThrows
13+
import org.springframework.beans.factory.annotation.Autowired
14+
import org.springframework.boot.test.context.SpringBootTest
15+
import org.springframework.jdbc.core.JdbcTemplate
16+
import java.time.LocalDate
17+
18+
@SpringBootTest(classes = [ApplicationConfigTest::class])
19+
class HuskelappRepositoryTest {
2420
@Autowired
25-
private HuskelappRepository repo;
21+
private val repo: HuskelappRepository? = null
22+
2623
@Autowired
27-
private JdbcTemplate jdbcTemplate;
24+
private val jdbcTemplate: JdbcTemplate? = null
2825

2926

30-
Fnr fnr1 = Fnr.ofValidFnr("01010101010");
31-
Fnr fnr2 = Fnr.ofValidFnr("01010101015");
32-
Fnr fnr4 = Fnr.ofValidFnr("01010101013");
33-
LocalDate frist1 = LocalDate.of(2026, 1, 1);
27+
private final var fnr1: Fnr = Fnr.ofValidFnr("01010101010")
28+
private final var fnr2: Fnr = Fnr.ofValidFnr("01010101015")
29+
private final var fnr4: Fnr = Fnr.ofValidFnr("01010101013")
30+
private final var frist1: LocalDate = LocalDate.of(2026, 1, 1)
3431

35-
EnhetId enhet0010 = EnhetId.of("0010");
32+
var enhet0010: EnhetId = EnhetId.of("0010")
3633

37-
VeilederId veilederA = VeilederId.of("Z123456");
38-
VeilederId veilederB = VeilederId.of("Z987654");
34+
var veilederA: VeilederId = VeilederId.of("Z123456")
35+
var veilederB: VeilederId = VeilederId.of("Z987654")
3936

40-
private final HuskelappOpprettRequest huskelapp1 = new HuskelappOpprettRequest(fnr1,
41-
frist1, ("Huskelapp nr.1 sin kommentar"));
37+
private val huskelapp1 = HuskelappOpprettRequest(
38+
fnr1,
39+
frist1, ("Huskelapp nr.1 sin kommentar")
40+
)
4241

43-
private final HuskelappOpprettRequest huskelapp2 = new HuskelappOpprettRequest(fnr2,
44-
LocalDate.of(2017, 2, 27), ("Huskelapp nr.2 sin kommentar"));
42+
private val huskelapp2 = HuskelappOpprettRequest(
43+
fnr2,
44+
LocalDate.of(2017, 2, 27), ("Huskelapp nr.2 sin kommentar")
45+
)
4546

46-
private final HuskelappOpprettRequest huskelappUtenKommentar = new HuskelappOpprettRequest(fnr4,
47-
LocalDate.of(2030, 1, 1), (null));
47+
private val huskelappUtenKommentar = HuskelappOpprettRequest(
48+
fnr4,
49+
LocalDate.of(2030, 1, 1), (null)
50+
)
4851

4952
@BeforeEach
50-
public void setUp() {
51-
jdbcTemplate.execute("TRUNCATE TABLE HUSKELAPP");
52-
jdbcTemplate.execute("TRUNCATE TABLE oppfolging_data");
53-
jdbcTemplate.execute("TRUNCATE TABLE oppfolgingsbruker_arena_v2");
54-
jdbcTemplate.execute("TRUNCATE TABLE bruker_identer");
53+
fun setUp() {
54+
jdbcTemplate!!.execute("TRUNCATE TABLE HUSKELAPP")
55+
jdbcTemplate.execute("TRUNCATE TABLE oppfolging_data")
56+
jdbcTemplate.execute("TRUNCATE TABLE oppfolgingsbruker_arena_v2")
57+
jdbcTemplate.execute("TRUNCATE TABLE bruker_identer")
5558
}
5659

5760

5861
@Test
59-
public void skalKunneOppretteOgHenteHuskelapp() {
60-
repo.opprettHuskelapp(huskelapp1, veilederA, enhet0010);
61-
Optional<Huskelapp> result = repo.hentAktivHuskelapp(fnr1);
62-
assertThat(result.isPresent()).isTrue();
63-
Optional<Huskelapp> result2 = repo.hentAktivHuskelapp(result.get().huskelappId());
64-
assertThat(result2.isPresent()).isTrue();
65-
assertThat(result.get().enhetId().toString()).isEqualTo("0010").isEqualTo(result2.get().enhetId().toString());
66-
assertThat(result.get().frist()).isEqualTo(frist1).isEqualTo(result2.get().frist());
62+
fun skalKunneOppretteOgHenteHuskelapp() {
63+
repo!!.opprettHuskelapp(huskelapp1, veilederA, enhet0010)
64+
val result = repo.hentAktivHuskelapp(fnr1)
65+
Assertions.assertThat(result.isPresent).isTrue()
66+
val result2 = repo.hentAktivHuskelapp(result.get().huskelappId)
67+
Assertions.assertThat(result2.isPresent).isTrue()
68+
Assertions.assertThat(result.get().enhetId.toString()).isEqualTo("0010")
69+
.isEqualTo(result2.get().enhetId.toString())
70+
Assertions.assertThat(result.get().frist).isEqualTo(frist1).isEqualTo(result2.get().frist)
6771
}
6872

6973
@Test
70-
public void skalKunneOppretteOgRedigereOgHenteHuskelappUtenKommentar() {
71-
repo.opprettHuskelapp(huskelappUtenKommentar, veilederA, enhet0010);
72-
Optional<Huskelapp> huskelappUtenKommentar_ = repo.hentAktivHuskelapp(huskelappUtenKommentar.brukerFnr());
73-
assertThat(huskelappUtenKommentar_.isPresent()).isTrue();
74-
assertThat(huskelappUtenKommentar_.get().kommentar()).isEqualTo(null);
75-
LocalDate nyFrist = LocalDate.of(2025, 10, 11);
76-
HuskelappRedigerRequest huskelappRedigerRequest = new HuskelappRedigerRequest(huskelappUtenKommentar_.get().huskelappId(), huskelappUtenKommentar.brukerFnr(), nyFrist, null);
77-
repo.settSisteHuskelappRadIkkeAktiv(huskelappUtenKommentar_.get().huskelappId());
78-
repo.redigerHuskelapp(huskelappRedigerRequest, veilederB, enhet0010);
79-
Optional<Huskelapp> oppdatertHuskelappUtenKommentar = repo.hentAktivHuskelapp(fnr4);
80-
assertThat(oppdatertHuskelappUtenKommentar.isPresent()).isTrue();
81-
assertThat(oppdatertHuskelappUtenKommentar.get().kommentar()).isEqualTo(null);
74+
fun skalKunneOppretteOgRedigereOgHenteHuskelappUtenKommentar() {
75+
repo!!.opprettHuskelapp(huskelappUtenKommentar, veilederA, enhet0010)
76+
val huskelappUtenKommentar = repo.hentAktivHuskelapp(huskelappUtenKommentar.brukerFnr)
77+
Assertions.assertThat(huskelappUtenKommentar.isPresent).isTrue()
78+
Assertions.assertThat(huskelappUtenKommentar.get().kommentar).isEqualTo(null)
79+
val nyFrist = LocalDate.of(2025, 10, 11)
80+
val huskelappRedigerRequest = HuskelappRedigerRequest(
81+
huskelappUtenKommentar.get().huskelappId,
82+
this.huskelappUtenKommentar.brukerFnr,
83+
nyFrist,
84+
null
85+
)
86+
repo.settSisteHuskelappRadIkkeAktiv(huskelappUtenKommentar.get().huskelappId)
87+
repo.redigerHuskelapp(huskelappRedigerRequest, veilederB, enhet0010)
88+
val oppdatertHuskelappUtenKommentar = repo.hentAktivHuskelapp(fnr4)
89+
Assertions.assertThat(oppdatertHuskelappUtenKommentar.isPresent).isTrue()
90+
Assertions.assertThat(oppdatertHuskelappUtenKommentar.get().kommentar).isEqualTo(null)
8291
}
8392

8493
@Test
85-
public void skalKunneSletteHuskelapp() {
86-
repo.opprettHuskelapp(huskelapp2, veilederA, enhet0010);
87-
Optional<Huskelapp> huskelapp = repo.hentAktivHuskelapp(fnr2);
88-
assertThat(huskelapp.isPresent()).isTrue();
89-
assertThat(huskelapp.get().kommentar()).isEqualTo("Huskelapp nr.2 sin kommentar");
90-
repo.settSisteHuskelappRadIkkeAktiv(huskelapp.get().huskelappId());
91-
Optional<Huskelapp> huskelappEtter = repo.hentAktivHuskelapp(fnr2);
92-
assertThat(huskelappEtter.isPresent()).isFalse();
94+
fun skalKunneSletteHuskelapp() {
95+
repo!!.opprettHuskelapp(huskelapp2, veilederA, enhet0010)
96+
val huskelapp = repo.hentAktivHuskelapp(fnr2)
97+
Assertions.assertThat(huskelapp.isPresent).isTrue()
98+
Assertions.assertThat(huskelapp.get().kommentar).isEqualTo("Huskelapp nr.2 sin kommentar")
99+
repo.settSisteHuskelappRadIkkeAktiv(huskelapp.get().huskelappId)
100+
val huskelappEtter = repo.hentAktivHuskelapp(fnr2)
101+
Assertions.assertThat(huskelappEtter.isPresent).isFalse()
93102
}
94103

95104
@Test
96-
public void skalKunneInaktivereNyesteHuskelappRadNaarFlereRader() {
97-
repo.opprettHuskelapp(huskelapp2, veilederA, enhet0010);
98-
Optional<Huskelapp> huskelappFoer = repo.hentAktivHuskelapp(fnr2);
99-
assertThat(huskelappFoer.isPresent()).isTrue();
100-
assertThat(huskelappFoer.get().kommentar()).isEqualTo("Huskelapp nr.2 sin kommentar");
101-
HuskelappRedigerRequest huskelappRedigerRequest = new HuskelappRedigerRequest(huskelappFoer.get().huskelappId(), fnr2, huskelappFoer.get().frist(), "ny kommentar på huskelapp nr.2");
102-
repo.settSisteHuskelappRadIkkeAktiv(huskelappFoer.get().huskelappId());
103-
repo.redigerHuskelapp(huskelappRedigerRequest, veilederA, enhet0010);
104-
List<Huskelapp> alleHuskelappRader = repo.hentAlleRaderPaHuskelapp(huskelappFoer.get().huskelappId());
105-
assertThat(alleHuskelappRader.size()).isEqualTo(2);
106-
repo.settSisteHuskelappRadIkkeAktiv(huskelappFoer.get().huskelappId());
107-
Optional<Huskelapp> huskelappEtter = repo.hentAktivHuskelapp(fnr2);
108-
assertThat(huskelappEtter.isPresent()).isFalse();
105+
fun skalKunneInaktivereNyesteHuskelappRadNaarFlereRader() {
106+
repo!!.opprettHuskelapp(huskelapp2, veilederA, enhet0010)
107+
val huskelappFoer = repo.hentAktivHuskelapp(fnr2)
108+
Assertions.assertThat(huskelappFoer.isPresent).isTrue()
109+
Assertions.assertThat(huskelappFoer.get().kommentar).isEqualTo("Huskelapp nr.2 sin kommentar")
110+
val huskelappRedigerRequest = HuskelappRedigerRequest(
111+
huskelappFoer.get().huskelappId,
112+
fnr2,
113+
huskelappFoer.get().frist,
114+
"ny kommentar på huskelapp nr.2"
115+
)
116+
repo.settSisteHuskelappRadIkkeAktiv(huskelappFoer.get().huskelappId)
117+
repo.redigerHuskelapp(huskelappRedigerRequest, veilederA, enhet0010)
118+
val alleHuskelappRader = repo.hentAlleRaderPaHuskelapp(huskelappFoer.get().huskelappId)
119+
Assertions.assertThat(alleHuskelappRader.size).isEqualTo(2)
120+
repo.settSisteHuskelappRadIkkeAktiv(huskelappFoer.get().huskelappId)
121+
val huskelappEtter = repo.hentAktivHuskelapp(fnr2)
122+
Assertions.assertThat(huskelappEtter.isPresent).isFalse()
109123
}
110124

111125

112126
@Test
113-
public void sletterAlleHuskelappRader() {
114-
repo.opprettHuskelapp(huskelapp2, veilederA, enhet0010);
115-
Optional<Huskelapp> huskelappFoer = repo.hentAktivHuskelapp(huskelapp2.brukerFnr());
116-
assertThat(huskelappFoer.isPresent()).isTrue();
117-
assertThat(huskelappFoer.get().kommentar()).isEqualTo("Huskelapp nr.2 sin kommentar");
118-
119-
HuskelappRedigerRequest huskelappRedigerRequest = new HuskelappRedigerRequest(huskelappFoer.get().huskelappId(), huskelapp2.brukerFnr(), huskelappFoer.get().frist(), "ny kommentar på huskelapp nr.2");
120-
repo.settSisteHuskelappRadIkkeAktiv(huskelappFoer.get().huskelappId());
121-
repo.redigerHuskelapp(huskelappRedigerRequest, veilederA, enhet0010);
122-
repo.settSisteHuskelappRadIkkeAktiv(huskelappFoer.get().huskelappId());
123-
repo.redigerHuskelapp(huskelappRedigerRequest, veilederA, enhet0010);
124-
repo.settSisteHuskelappRadIkkeAktiv(huskelappFoer.get().huskelappId());
125-
repo.redigerHuskelapp(huskelappRedigerRequest, veilederA, enhet0010);
126-
127-
List<Huskelapp> alleHuskelappRader = repo.hentAlleRaderPaHuskelapp(huskelappFoer.get().huskelappId());
128-
assertThat(alleHuskelappRader.size()).isEqualTo(4);
129-
130-
repo.slettAlleHuskelappRaderPaaBruker(huskelapp2.brukerFnr());
131-
132-
List<Huskelapp> alleHuskelappRader2 = repo.hentAlleRaderPaHuskelapp(huskelappFoer.get().huskelappId());
133-
assertThat(alleHuskelappRader2.size()).isEqualTo(0);
127+
fun sletterAlleHuskelappRader() {
128+
repo!!.opprettHuskelapp(huskelapp2, veilederA, enhet0010)
129+
val huskelappFoer = repo.hentAktivHuskelapp(huskelapp2.brukerFnr)
130+
Assertions.assertThat(huskelappFoer.isPresent).isTrue()
131+
Assertions.assertThat(huskelappFoer.get().kommentar).isEqualTo("Huskelapp nr.2 sin kommentar")
132+
133+
val huskelappRedigerRequest = HuskelappRedigerRequest(
134+
huskelappFoer.get().huskelappId,
135+
huskelapp2.brukerFnr,
136+
huskelappFoer.get().frist,
137+
"ny kommentar på huskelapp nr.2"
138+
)
139+
repo.settSisteHuskelappRadIkkeAktiv(huskelappFoer.get().huskelappId)
140+
repo.redigerHuskelapp(huskelappRedigerRequest, veilederA, enhet0010)
141+
repo.settSisteHuskelappRadIkkeAktiv(huskelappFoer.get().huskelappId)
142+
repo.redigerHuskelapp(huskelappRedigerRequest, veilederA, enhet0010)
143+
repo.settSisteHuskelappRadIkkeAktiv(huskelappFoer.get().huskelappId)
144+
repo.redigerHuskelapp(huskelappRedigerRequest, veilederA, enhet0010)
145+
146+
val alleHuskelappRader = repo.hentAlleRaderPaHuskelapp(huskelappFoer.get().huskelappId)
147+
Assertions.assertThat(alleHuskelappRader.size).isEqualTo(4)
148+
149+
repo.slettAlleHuskelappRaderPaaBruker(huskelapp2.brukerFnr)
150+
151+
val alleHuskelappRader2 = repo.hentAlleRaderPaHuskelapp(huskelappFoer.get().huskelappId)
152+
Assertions.assertThat(alleHuskelappRader2.size).isEqualTo(0)
134153
}
135154

136155

137156
@Test
138-
public void faarHentetNavkontorPaHuskelapp() {
139-
repo.opprettHuskelapp(huskelapp2, veilederA, enhet0010);
140-
Optional<String> enhetId = repo.hentNavkontorPaHuskelapp(huskelapp2.brukerFnr());
141-
assertThat(enhetId.isPresent()).isTrue();
157+
fun faarHentetNavkontorPaHuskelapp() {
158+
repo!!.opprettHuskelapp(huskelapp2, veilederA, enhet0010)
159+
val enhetId = repo.hentNavkontorPaHuskelapp(huskelapp2.brukerFnr)
160+
Assertions.assertThat(enhetId.isPresent).isTrue()
161+
}
162+
163+
@Test
164+
fun kasterExceptionVedInsertAvToAktiveHuskelapperSammeBruker() {
165+
repo!!.opprettHuskelapp(huskelapp1, veilederA, enhet0010)
166+
val huskelapp = repo.hentAktivHuskelapp(fnr1)
167+
Assertions.assertThat(huskelapp.isPresent).isTrue()
168+
val exception = assertThrows(Exception::class.java) {
169+
repo.opprettHuskelapp(huskelapp1, veilederA, enhet0010)
170+
}
171+
Assertions.assertThat(exception.message).contains("duplicate key value violates unique constraint \"unique_fnr_active_status\"")
142172
}
143173
}

0 commit comments

Comments
 (0)