@@ -3,6 +3,7 @@ package no.nav.etterlatte.brev
3
3
import io.kotest.matchers.shouldBe
4
4
import io.kotest.matchers.shouldNotBe
5
5
import io.mockk.clearAllMocks
6
+ import io.mockk.coEvery
6
7
import io.mockk.confirmVerified
7
8
import io.mockk.every
8
9
import io.mockk.mockk
@@ -22,10 +23,12 @@ import no.nav.etterlatte.brev.model.Brev
22
23
import no.nav.etterlatte.brev.model.BrevProsessType
23
24
import no.nav.etterlatte.brev.model.Mottaker
24
25
import no.nav.etterlatte.brev.model.MottakerType
26
+ import no.nav.etterlatte.brev.model.Pdf
25
27
import no.nav.etterlatte.brev.model.Spraak
26
28
import no.nav.etterlatte.brev.model.Status
27
29
import no.nav.etterlatte.brev.model.tomMottaker
28
30
import no.nav.etterlatte.brev.pdf.PDFGenerator
31
+ import no.nav.etterlatte.brev.vedtaksbrev.UgyldigAntallMottakere
29
32
import no.nav.etterlatte.ktor.token.simpleSaksbehandler
30
33
import no.nav.etterlatte.libs.common.feilhaandtering.UgyldigForespoerselException
31
34
import no.nav.etterlatte.libs.common.person.MottakerFoedselsnummer
@@ -469,6 +472,64 @@ internal class BrevServiceTest {
469
472
}
470
473
}
471
474
475
+ @Nested
476
+ inner class FerdigstillingAvBrev {
477
+ @ParameterizedTest
478
+ @EnumSource(Status ::class )
479
+ fun `Skal ikke kunne ferdigstille aktivitetspliktsbrev som medfører vurdering, uavhengig av status` (status : Status ) {
480
+ val brev =
481
+ opprettBrev(
482
+ status,
483
+ BrevProsessType .REDIGERBAR ,
484
+ ).copy(brevkoder = Brevkoder .OMSTILLINGSSTOENAD_AKTIVITETSPLIKT_INFORMASJON_10MND_INNHOLD )
485
+
486
+ every { db.hentBrev(any()) } returns brev
487
+
488
+ assertThrows<BrevKanIkkeEndres > {
489
+ runBlocking { brevService.ferdigstill(brev.id, bruker) }
490
+ }
491
+
492
+ verify {
493
+ db.hentBrev(brev.id)
494
+ }
495
+ }
496
+
497
+ @ParameterizedTest
498
+ @EnumSource(Status ::class , names = [" OPPRETTET" , " OPPDATERT" ], mode = EnumSource .Mode .INCLUDE )
499
+ fun `Kan ferdigstille brev med en hovedmottaker` (status : Status ) {
500
+ val brev = opprettBrev(status, BrevProsessType .REDIGERBAR )
501
+
502
+ every { db.hentBrev(any()) } returns brev
503
+ val pdf = Pdf (bytes = ByteArray (1 ))
504
+ coEvery { pdfGenerator.genererPdf(brev.id, any(), any(), any(), any()) } returns pdf
505
+ runBlocking { brevService.ferdigstill(brev.id, bruker) }
506
+
507
+ verify {
508
+ db.hentBrev(brev.id)
509
+ db.lagrePdfOgFerdigstillBrev(brev.id, pdf, any())
510
+ }
511
+ }
512
+
513
+ @ParameterizedTest
514
+ @EnumSource(Status ::class , names = [" OPPRETTET" , " OPPDATERT" ], mode = EnumSource .Mode .INCLUDE )
515
+ fun `Kan ikke ferdigstille brev med mer enn 2 mottakere` (status : Status ) {
516
+ val brev =
517
+ opprettBrev(status, BrevProsessType .REDIGERBAR )
518
+ .copy(mottakere = listOf (opprettMottaker(), opprettMottaker(), opprettMottaker()))
519
+
520
+ every { db.hentBrev(any()) } returns brev
521
+ val pdf = Pdf (bytes = ByteArray (1 ))
522
+ coEvery { pdfGenerator.genererPdf(brev.id, any(), any(), any(), any()) } returns pdf
523
+ assertThrows<UgyldigAntallMottakere > {
524
+ runBlocking { brevService.ferdigstill(brev.id, bruker) }
525
+ }
526
+
527
+ verify {
528
+ db.hentBrev(brev.id)
529
+ }
530
+ }
531
+ }
532
+
472
533
@Nested
473
534
inner class SlettingAvBrev {
474
535
@ParameterizedTest
0 commit comments