Skip to content

Commit 5d614e7

Browse files
Add motetidspunkt field for dialogmotevarsel (#561)
* Add motetidspunkt field for dialogmotevarsel * Fix datetime in tests --------- Co-authored-by: Anders Rognstad <[email protected]>
1 parent b4a2e68 commit 5d614e7

9 files changed

+46
-24
lines changed

src/main/kotlin/no/nav/syfo/brev/narmesteleder/NarmesteLederVarselService.kt

+5-2
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,21 @@ package no.nav.syfo.brev.narmesteleder
33
import no.nav.syfo.brev.esyfovarsel.*
44
import no.nav.syfo.client.narmesteleder.*
55
import no.nav.syfo.dialogmote.domain.*
6+
import java.time.LocalDateTime
67

78
class NarmesteLederVarselService(
89
private val esyfovarselProducer: EsyfovarselProducer,
910
) {
1011
fun sendVarsel(
1112
narmesteLeder: NarmesteLederRelasjonDTO,
12-
varseltype: MotedeltakerVarselType
13+
varseltype: MotedeltakerVarselType,
14+
motetidspunkt: LocalDateTime?,
1315
) {
1416
val hendelse = NarmesteLederHendelse(
1517
type = getNaermesteLederVarselType(varseltype),
1618
data = VarselData(
17-
narmesteLeder = VarselDataNarmesteLeder(narmesteLeder.narmesteLederNavn)
19+
narmesteLeder = VarselDataNarmesteLeder(narmesteLeder.narmesteLederNavn),
20+
motetidspunkt = motetidspunkt?.let { VarselDataMotetidspunkt(it) }
1821
),
1922
narmesteLederFnr = narmesteLeder.narmesteLederPersonIdentNumber,
2023
arbeidstakerFnr = narmesteLeder.arbeidstakerPersonIdentNumber,

src/main/kotlin/no/nav/syfo/dialogmote/VarselService.kt

+1
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ class VarselService(
7777
narmesteLederVarselService.sendVarsel(
7878
narmesteLeder = narmesteLeder,
7979
varseltype = varselType,
80+
motetidspunkt = motetidspunkt
8081
)
8182
}
8283
if (isDigitalVarselEnabledForArbeidstaker) {

src/test/kotlin/no/nav/syfo/dialogmote/VarselServiceSpek.kt

+7-5
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import no.nav.syfo.dialogmote.domain.MotedeltakerVarselType
2121
import no.nav.syfo.testhelper.UserConstants
2222
import no.nav.syfo.testhelper.UserConstants.VIRKSOMHETSNUMMER_HAS_NARMESTELEDER
2323
import no.nav.syfo.testhelper.UserConstants.VIRKSOMHETSNUMMER_NO_NARMESTELEDER
24+
import no.nav.syfo.testhelper.generator.DIALOGMOTE_TIDSPUNKT_FIXTURE
2425
import no.nav.syfo.testhelper.mock.narmesteLeder
2526
import org.spekframework.spek2.Spek
2627
import org.spekframework.spek2.style.specification.describe
@@ -54,7 +55,7 @@ object VarselServiceSpek : Spek({
5455
clearMocks(oppfolgingstilfelleClient)
5556

5657
justRun { arbeidstakerVarselService.sendVarsel(any(), any(), any(), any(), any()) }
57-
justRun { narmesteLederVarselService.sendVarsel(any(), any()) }
58+
justRun { narmesteLederVarselService.sendVarsel(any(), any(), any()) }
5859
justRun { behandlerVarselService.sendVarsel(any(), any(), any(), any(), any(), any(), any(), any()) }
5960
justRun { altinnClient.sendToVirksomhet(any()) }
6061
}
@@ -104,7 +105,8 @@ object VarselServiceSpek : Spek({
104105
verify(exactly = 1) {
105106
narmesteLederVarselService.sendVarsel(
106107
narmesteLeder,
107-
MotedeltakerVarselType.INNKALT
108+
MotedeltakerVarselType.INNKALT,
109+
DIALOGMOTE_TIDSPUNKT_FIXTURE
108110
)
109111
}
110112
}
@@ -156,7 +158,7 @@ object VarselServiceSpek : Spek({
156158
altinnMelding
157159
)
158160
}
159-
verify(exactly = 0) { narmesteLederVarselService.sendVarsel(any(), any()) }
161+
verify(exactly = 0) { narmesteLederVarselService.sendVarsel(any(), any(), DIALOGMOTE_TIDSPUNKT_FIXTURE) }
160162
}
161163
}
162164

@@ -206,7 +208,7 @@ object VarselServiceSpek : Spek({
206208
altinnMelding
207209
)
208210
}
209-
verify(exactly = 0) { narmesteLederVarselService.sendVarsel(any(), any()) }
211+
verify(exactly = 0) { narmesteLederVarselService.sendVarsel(any(), any(), any()) }
210212
}
211213
}
212214

@@ -253,7 +255,7 @@ object VarselServiceSpek : Spek({
253255
altinnMelding
254256
)
255257
}
256-
verify(exactly = 0) { narmesteLederVarselService.sendVarsel(any(), any()) }
258+
verify(exactly = 0) { narmesteLederVarselService.sendVarsel(any(), any(), any()) }
257259
}
258260
}
259261
}

src/test/kotlin/no/nav/syfo/dialogmote/api/v2/PostDialogmoteApiV2AllowVarselMedFysiskBrevSpek.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import io.ktor.server.testing.handleRequest
1212
import io.ktor.server.testing.setBody
1313
import io.mockk.*
1414
import java.time.LocalDate
15-
import java.time.LocalDateTime
1615
import no.altinn.schemas.services.intermediary.receipt._2009._10.ReceiptExternal
1716
import no.altinn.schemas.services.intermediary.receipt._2009._10.ReceiptStatusEnum
1817
import no.altinn.services.serviceengine.correspondence._2009._10.ICorrespondenceAgencyExternalBasic
@@ -26,6 +25,7 @@ import no.nav.syfo.testhelper.*
2625
import no.nav.syfo.testhelper.UserConstants.ARBEIDSTAKER_IKKE_VARSEL
2726
import no.nav.syfo.testhelper.UserConstants.ENHET_NR
2827
import no.nav.syfo.testhelper.UserConstants.VEILEDER_IDENT
28+
import no.nav.syfo.testhelper.generator.DIALOGMOTE_TIDSPUNKT_FIXTURE
2929
import no.nav.syfo.testhelper.generator.generateInkallingHendelse
3030
import no.nav.syfo.testhelper.generator.generateNewDialogmoteDTO
3131
import no.nav.syfo.testhelper.generator.generateNewDialogmoteDTOWithMissingValues
@@ -95,7 +95,7 @@ class PostDialogmoteApiV2AllowVarselMedFysiskBrevSpek : Spek({
9595
val urlMoter = "$dialogmoteApiV2Basepath$dialogmoteApiPersonIdentUrlPath"
9696

9797
it("should return OK if request is successful even if ikke-varsle") {
98-
val moteTidspunkt = LocalDateTime.now().plusDays(30)
98+
val moteTidspunkt = DIALOGMOTE_TIDSPUNKT_FIXTURE
9999
val newDialogmoteDTO = generateNewDialogmoteDTO(
100100
personIdent = ARBEIDSTAKER_IKKE_VARSEL,
101101
dato = moteTidspunkt,

src/test/kotlin/no/nav/syfo/dialogmote/api/v2/PostDialogmoteApiV2Spek.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import io.ktor.server.testing.handleRequest
1212
import io.ktor.server.testing.setBody
1313
import io.mockk.*
1414
import java.time.LocalDate
15-
import java.time.LocalDateTime
1615
import no.altinn.schemas.services.intermediary.receipt._2009._10.ReceiptExternal
1716
import no.altinn.schemas.services.intermediary.receipt._2009._10.ReceiptStatusEnum
1817
import no.altinn.services.serviceengine.correspondence._2009._10.ICorrespondenceAgencyExternalBasic
@@ -35,6 +34,7 @@ import no.nav.syfo.testhelper.UserConstants.ENHET_NR
3534
import no.nav.syfo.testhelper.UserConstants.VEILEDER_IDENT
3635
import no.nav.syfo.testhelper.dropData
3736
import no.nav.syfo.testhelper.generateJWTNavIdent
37+
import no.nav.syfo.testhelper.generator.DIALOGMOTE_TIDSPUNKT_FIXTURE
3838
import no.nav.syfo.testhelper.generator.generateInkallingHendelse
3939
import no.nav.syfo.testhelper.generator.generateNewDialogmoteDTO
4040
import no.nav.syfo.testhelper.generator.generateNewDialogmoteDTOWithBehandler
@@ -118,7 +118,7 @@ class PostDialogmoteApiV2Spek : Spek({
118118
val urlMoter = "$dialogmoteApiV2Basepath$dialogmoteApiPersonIdentUrlPath"
119119

120120
it("should return OK if request is successful") {
121-
val moteTidspunkt = LocalDateTime.now().plusDays(30)
121+
val moteTidspunkt = DIALOGMOTE_TIDSPUNKT_FIXTURE
122122
val newDialogmoteDTO = generateNewDialogmoteDTO(
123123
personIdent = ARBEIDSTAKER_FNR,
124124
dato = moteTidspunkt,

src/test/kotlin/no/nav/syfo/dialogmote/api/v2/PostDialogmoteTidStedApiV2Spek.kt

+13-4
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ import no.altinn.services.serviceengine.correspondence._2009._10.ICorrespondence
1818
import no.nav.syfo.brev.behandler.BehandlerVarselService
1919
import no.nav.syfo.brev.behandler.kafka.BehandlerDialogmeldingProducer
2020
import no.nav.syfo.brev.behandler.kafka.KafkaBehandlerDialogmeldingDTO
21-
import no.nav.syfo.brev.esyfovarsel.EsyfovarselProducer
22-
import no.nav.syfo.brev.esyfovarsel.HendelseType
21+
import no.nav.syfo.brev.esyfovarsel.*
2322
import no.nav.syfo.client.oppfolgingstilfelle.toLatestOppfolgingstilfelle
2423
import no.nav.syfo.dialogmelding.DialogmeldingService
2524
import no.nav.syfo.dialogmelding.domain.ForesporselType
@@ -273,9 +272,10 @@ class PostDialogmoteTidStedApiV2Spek : Spek({
273272
}
274273
val urlMoteUUIDPostTidSted =
275274
"$dialogmoteApiV2Basepath/$createdDialogmoteUUID$dialogmoteApiMoteTidStedPath"
275+
val newDialogmoteTid = newDialogmoteDTO.tidSted.tid.plusDays(1)
276276
val newDialogmoteTidSted = EndreTidStedDialogmoteDTO(
277277
sted = "Et annet sted",
278-
tid = newDialogmoteDTO.tidSted.tid.plusDays(1),
278+
tid = newDialogmoteTid,
279279
videoLink = "https://meet.google.com/zyx",
280280
arbeidstaker = EndreTidStedBegrunnelseDTO(
281281
begrunnelse = "begrunnelse arbeidstaker",
@@ -391,7 +391,16 @@ class PostDialogmoteTidStedApiV2Spek : Spek({
391391
) {
392392
response.status() shouldBeEqualTo HttpStatusCode.OK
393393
esyfovarselEndringHendelse.type = HendelseType.NL_DIALOGMOTE_NYTT_TID_STED
394-
verify(exactly = 1) { esyfovarselProducerMock.sendVarselToEsyfovarsel(esyfovarselEndringHendelse) }
394+
verify(exactly = 1) {
395+
esyfovarselProducerMock.sendVarselToEsyfovarsel(
396+
esyfovarselEndringHendelse.copy(
397+
data = VarselData(
398+
narmesteLeder = VarselDataNarmesteLeder("narmesteLederNavn"),
399+
motetidspunkt = VarselDataMotetidspunkt(newDialogmoteTid)
400+
),
401+
)
402+
)
403+
}
395404
}
396405

397406
with(

src/test/kotlin/no/nav/syfo/testhelper/generator/DialogmoteDTOGenerator.kt

+4-4
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,12 @@ fun generateNewDialogmoteTidStedDTO(
4242

4343
fun generateNewDialogmoteTidStedDTONoVideoLink() = NewDialogmoteTidStedDTO(
4444
sted = "This is a very lang text that has a lot of characters and describes where the meeting will take place.",
45-
tid = LocalDateTime.now().plusDays(30),
45+
tid = DIALOGMOTE_TIDSPUNKT_FIXTURE,
4646
videoLink = null
4747
)
4848

4949
fun generateEndreDialogmoteTidStedDTO(
50-
tid: LocalDateTime = LocalDateTime.now().plusDays(30),
50+
tid: LocalDateTime = DIALOGMOTE_TIDSPUNKT_FIXTURE,
5151
) = EndreTidStedDialogmoteDTO(
5252
sted = "This is a very lang text that has a lot of characters and describes where the meeting will take place.",
5353
tid = tid,
@@ -65,7 +65,7 @@ fun generateEndreDialogmoteTidStedDTO(
6565

6666
fun generateEndreDialogmoteTidStedDTOWithBehandler() = EndreTidStedDialogmoteDTO(
6767
sted = "This is a very lang text that has a lot of characters and describes where the meeting will take place.",
68-
tid = LocalDateTime.now().plusDays(30),
68+
tid = DIALOGMOTE_TIDSPUNKT_FIXTURE,
6969
videoLink = "https://meet.google.com/xyz",
7070
arbeidstaker = EndreTidStedBegrunnelseDTO(
7171
begrunnelse = "",
@@ -153,7 +153,7 @@ fun generateMotedeltakerArbeidsgiverDTOMissingValues() = NewDialogmotedeltakerAr
153153
fun generateNewDialogmoteDTO(
154154
personIdent: PersonIdent,
155155
sted: String = "This is a very lang text that has a lot of characters and describes where the meeting will take place.",
156-
dato: LocalDateTime = LocalDateTime.now().plusDays(30),
156+
dato: LocalDateTime = DIALOGMOTE_TIDSPUNKT_FIXTURE,
157157
virksomhetsnummer: String = VIRKSOMHETSNUMMER_HAS_NARMESTELEDER.value,
158158
): NewDialogmoteDTO {
159159
return NewDialogmoteDTO(

src/test/kotlin/no/nav/syfo/testhelper/generator/DialogmoteGenerator.kt

+4-1
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,14 @@ import no.nav.syfo.domain.PersonIdent
55
import no.nav.syfo.testhelper.UserConstants
66
import no.nav.syfo.testhelper.UserConstants.VIRKSOMHETSNUMMER_HAS_NARMESTELEDER
77
import java.time.LocalDateTime
8+
import java.time.temporal.ChronoUnit
89
import java.util.*
910

11+
val DIALOGMOTE_TIDSPUNKT_FIXTURE = LocalDateTime.now().plusDays(30L).truncatedTo(ChronoUnit.MILLIS)
12+
1013
fun generateNewDialogmoteTidSted() = NewDialogmoteTidSted(
1114
sted = "This is a very lang text that has a lot of characters and describes where the meeting will take place.",
12-
tid = LocalDateTime.now().plusDays(30),
15+
tid = DIALOGMOTE_TIDSPUNKT_FIXTURE,
1316
videoLink = "https://meet.google.com/xyz"
1417
)
1518

src/test/kotlin/no/nav/syfo/testhelper/generator/EsyfovarselHendelseGenerator.kt

+8-4
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ fun generateAvlysningHendelse() =
1010
NarmesteLederHendelse(
1111
type = HendelseType.NL_DIALOGMOTE_AVLYST,
1212
data = VarselData(
13-
narmesteLeder = VarselDataNarmesteLeder("narmesteLederNavn")
13+
narmesteLeder = VarselDataNarmesteLeder("narmesteLederNavn"),
14+
motetidspunkt = VarselDataMotetidspunkt(DIALOGMOTE_TIDSPUNKT_FIXTURE)
1415
),
1516
narmesteLederFnr = NARMESTELEDER_FNR.value,
1617
arbeidstakerFnr = ARBEIDSTAKER_FNR.value,
@@ -22,7 +23,8 @@ fun generateInkallingHendelse() =
2223
type = HendelseType.NL_DIALOGMOTE_INNKALT,
2324
narmesteLederFnr = NARMESTELEDER_FNR.value,
2425
data = VarselData(
25-
narmesteLeder = VarselDataNarmesteLeder("narmesteLederNavn")
26+
narmesteLeder = VarselDataNarmesteLeder("narmesteLederNavn"),
27+
motetidspunkt = VarselDataMotetidspunkt(DIALOGMOTE_TIDSPUNKT_FIXTURE)
2628
),
2729
arbeidstakerFnr = ARBEIDSTAKER_FNR.value,
2830
orgnummer = VIRKSOMHETSNUMMER_HAS_NARMESTELEDER.value
@@ -33,7 +35,8 @@ fun generateEndringHendelse() =
3335
type = HendelseType.NL_DIALOGMOTE_NYTT_TID_STED,
3436
narmesteLederFnr = NARMESTELEDER_FNR.value,
3537
data = VarselData(
36-
narmesteLeder = VarselDataNarmesteLeder("narmesteLederNavn")
38+
narmesteLeder = VarselDataNarmesteLeder("narmesteLederNavn"),
39+
motetidspunkt = VarselDataMotetidspunkt(DIALOGMOTE_TIDSPUNKT_FIXTURE)
3740
),
3841
arbeidstakerFnr = ARBEIDSTAKER_FNR.value,
3942
orgnummer = VIRKSOMHETSNUMMER_HAS_NARMESTELEDER.value
@@ -44,7 +47,8 @@ fun generateInkallingHendelseOtherVirksomhet() =
4447
type = HendelseType.NL_DIALOGMOTE_INNKALT,
4548
narmesteLederFnr = NARMESTELEDER_FNR.value,
4649
data = VarselData(
47-
narmesteLeder = VarselDataNarmesteLeder("narmesteLederNavn")
50+
narmesteLeder = VarselDataNarmesteLeder("narmesteLederNavn"),
51+
motetidspunkt = VarselDataMotetidspunkt(DIALOGMOTE_TIDSPUNKT_FIXTURE)
4852
),
4953
arbeidstakerFnr = ARBEIDSTAKER_FNR.value,
5054
orgnummer = OTHER_VIRKSOMHETSNUMMER_HAS_NARMESTELEDER.value

0 commit comments

Comments
 (0)