|
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 { |
24 | 20 | @Autowired
|
25 |
| - private HuskelappRepository repo; |
| 21 | + private val repo: HuskelappRepository? = null |
| 22 | + |
26 | 23 | @Autowired
|
27 |
| - private JdbcTemplate jdbcTemplate; |
| 24 | + private val jdbcTemplate: JdbcTemplate? = null |
28 | 25 |
|
29 | 26 |
|
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) |
34 | 31 |
|
35 |
| - EnhetId enhet0010 = EnhetId.of("0010"); |
| 32 | + var enhet0010: EnhetId = EnhetId.of("0010") |
36 | 33 |
|
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") |
39 | 36 |
|
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 | + ) |
42 | 41 |
|
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 | + ) |
45 | 46 |
|
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 | + ) |
48 | 51 |
|
49 | 52 | @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") |
55 | 58 | }
|
56 | 59 |
|
57 | 60 |
|
58 | 61 | @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) |
67 | 71 | }
|
68 | 72 |
|
69 | 73 | @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) |
82 | 91 | }
|
83 | 92 |
|
84 | 93 | @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() |
93 | 102 | }
|
94 | 103 |
|
95 | 104 | @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() |
109 | 123 | }
|
110 | 124 |
|
111 | 125 |
|
112 | 126 | @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) |
134 | 153 | }
|
135 | 154 |
|
136 | 155 |
|
137 | 156 | @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\"") |
142 | 172 | }
|
143 | 173 | }
|
0 commit comments