Skip to content

Commit

Permalink
Håndtering av manglende søknadstype (#51)
Browse files Browse the repository at this point in the history
  • Loading branch information
SandraLekve authored Jan 3, 2025
1 parent f77f609 commit eacb662
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 15 deletions.
14 changes: 8 additions & 6 deletions src/main/kotlin/no/nav/familie/pdf/pdf/PdfUtils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -230,15 +230,17 @@ object PdfUtils {
innholdsfortegnelseOppføringer: List<InnholdsfortegnelseOppføringer>,
) {
val tittel = overskrift.substringBefore(" (")
val søknadstype = overskrift.substringAfter(" (").trimEnd(')')
val søknadstype = overskrift.substringAfter(" (", "").trimEnd(')')
add(AreaBreak(AreaBreakType.NEXT_PAGE))
add(lagOverskriftH1(tittel))
add(navLogoBilde())
add(
Paragraph(søknadstype).apply {
setMarginTop(-10f)
},
)
if (søknadstype.isNotEmpty()) {
add(
Paragraph(søknadstype).apply {
setMarginTop(-10f)
}
)
}
add(lagOverskriftH2("Innholdsfortegnelse"))
add(lagInnholdsfortegnelse(innholdsfortegnelseOppføringer))
}
Expand Down
62 changes: 53 additions & 9 deletions src/test/kotlin/no/nav/familie/pdf/pdf/PdfServiceTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import no.nav.familie.pdf.no.nav.familie.pdf.pdf.utils.lagToSiderInnholdsfortegn
import no.nav.familie.pdf.pdf.PdfService
import no.nav.familie.pdf.pdf.domain.FeltMap
import org.junit.jupiter.api.Assertions.assertTrue
import org.junit.jupiter.api.Assertions.assertFalse
import org.junit.jupiter.api.Test
import org.junit.jupiter.params.ParameterizedTest
import org.junit.jupiter.params.provider.Arguments
Expand Down Expand Up @@ -47,7 +48,6 @@ class PdfServiceTest {
lagAdresseMedBareLinjeskift(),
lagMedTomAdresse(),
)

@JvmStatic
fun flereArbeidsforhold(): Stream<FeltMap> =
Stream.of(
Expand Down Expand Up @@ -100,6 +100,48 @@ class PdfServiceTest {
}
}

@Test
fun `Pdf har søknadstype i overskrift`(){
// Arrange
val feltMap = lagMedVerdiliste()

// Act
val pdfDoc = opprettPdf(feltMap)
val førsteSidePdf = PdfTextExtractor.getTextFromPage(pdfDoc.getPage(1))

// Assert
assertTrue(førsteSidePdf.contains("Søknad om overgangsstønad"))
assertTrue(førsteSidePdf.contains("NAV 15-00.01"))
}

@Test
fun `Overskrift dukker ikke opp som søknadstype`() {
// Arrange
val feltMap = lagMedFlereArbeidsforhold()

//Act
val pdfDoc = opprettPdf(feltMap)
val førsteSidePdf = PdfTextExtractor.getTextFromPage(pdfDoc.getPage(1))

// Assert
val antallForekomster = Regex("Arbeid, utdanning og andre aktiviteter").findAll(førsteSidePdf).count()
assertTrue(1 == antallForekomster, "Overskriften dukker opp to ganger")
}

@Test
fun `Pdf har ikke parenteser i overskrift`() {
// Arrange
val feltMap = lagMedVerdiliste()

// Act
val pdfDoc = opprettPdf(feltMap)
val førsteSidePdf = PdfTextExtractor.getTextFromPage(pdfDoc.getPage(1))

// Assert
assertFalse(førsteSidePdf.contains("("), "Overskriften inneholder '('");
assertFalse(førsteSidePdf.contains(")"), "Overskriften inneholder ')'");
}

@ParameterizedTest
@MethodSource("innholdsfortegnelseMedEnOgToSider")
fun `Pdf legger forside med innholdsfortegnelse først`(feltMap: FeltMap) {
Expand All @@ -111,9 +153,11 @@ class PdfServiceTest {
assertTrue(førsteSideTekst.contains("Søknad om overgangsstønad"))
}

@ParameterizedTest
@MethodSource("flereArbeidsforhold")
fun `Pdf lager tabell dersom du har flere arbeidsforhold`(feltMap: FeltMap) {
@Test
fun `Pdf lager tabell dersom du har flere arbeidsforhold`() {
// Arrange
val feltMap = lagMedFlereArbeidsforhold()

// Act
val pdfDoc = opprettPdf(feltMap)
val tekstIPdf = PdfTextExtractor.getTextFromPage(pdfDoc.getPage(2))
Expand All @@ -131,17 +175,17 @@ class PdfServiceTest {
) {
// Act
val pdfDoc = opprettPdf(feltMap)
val firstPageText = PdfTextExtractor.getTextFromPage(pdfDoc.getPage(1))
val førsteSideTekst = PdfTextExtractor.getTextFromPage(pdfDoc.getPage(1))

// Assert
val forventetInnholdsfortegnelse =
listOf(
"Innsendingsdetaljer" to forventetSide,
)
for ((label, forventetSide) in forventetInnholdsfortegnelse) {
assertTrue(firstPageText.contains("$label $forventetSide"))
val actualPageText = PdfTextExtractor.getTextFromPage(pdfDoc.getPage(forventetSide))
assertTrue(actualPageText.contains(label))
assertTrue(førsteSideTekst.contains("$label $forventetSide"))
val faktiskSideTekst = PdfTextExtractor.getTextFromPage(pdfDoc.getPage(forventetSide))
assertTrue(faktiskSideTekst.contains(label))
}
}

Expand Down Expand Up @@ -174,4 +218,4 @@ class PdfServiceTest {
val pdfDoc = PdfADocument(pdfReader, pdfWriter)
return pdfDoc
}
}
}

0 comments on commit eacb662

Please sign in to comment.