diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 00000000..8cc654a2
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,37 @@
+version: 2
+registries:
+ maven-github:
+ type: maven-repository
+ url: https://github-package-registry-mirror.gc.nav.no/cached/maven-release
+ username: x-access-token
+ password: no-secret-required
+updates:
+ - package-ecosystem: "maven"
+ directory: "/"
+ registries:
+ - "maven-github"
+ schedule:
+ interval: "weekly"
+ day: "monday"
+ time: "06:00"
+ timezone: "Europe/Oslo"
+ commit-message:
+ prefix: "[dependency] "
+ - package-ecosystem: "docker"
+ directory: "/"
+ schedule:
+ interval: "weekly"
+ day: "monday"
+ time: "06:00"
+ timezone: "Europe/Oslo"
+ commit-message:
+ prefix: "[docker] "
+ - package-ecosystem: "github-actions"
+ directory: "/"
+ schedule:
+ interval: "weekly"
+ day: "monday"
+ time: "06:00"
+ timezone: "Europe/Oslo"
+ commit-message:
+ prefix: "[github-actions] "
diff --git a/.github/workflows/build-and-deploy.yaml b/.github/workflows/build-and-deploy.yaml
index a57539c2..d358abaf 100644
--- a/.github/workflows/build-and-deploy.yaml
+++ b/.github/workflows/build-and-deploy.yaml
@@ -21,7 +21,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
- java-version: '17'
+ java-version: '21'
distribution: 'temurin'
- uses: actions/cache@v3
with:
@@ -190,7 +190,6 @@ jobs:
- name: feature ingresses
if: github.ref != 'refs/heads/main'
run: |
- echo "INGRESS_BEREGN_SAERTILSKUDD=https://bidrag-beregn-saertilskudd-rest-feature.intern.dev.nav.no" >> $GITHUB_ENV
echo "INGRESS_CUCUMBER=https://bidrag-cucumber-cloud-feature.ekstern.dev.nav.no" >> $GITHUB_ENV
- run: |
curl -H "Content-Type: application/json" -i \
@@ -237,7 +236,6 @@ jobs:
- name: feature ingresses
if: github.ref != 'refs/heads/main'
run: |
- echo "INGRESS_BEREGN_BARNEBIDRAG=https://bidrag-beregn-barnebidrag-rest-feature.intern.dev.nav.no" >> $GITHUB_ENV
echo "INGRESS_CUCUMBER=https://bidrag-cucumber-cloud-feature.ekstern.dev.nav.no" >> $GITHUB_ENV
- run: |
curl -H "Content-Type: application/json" -i \
diff --git a/.nais/feature.yaml b/.nais/feature.yaml
index c0cd90d6..f6bb414f 100644
--- a/.nais/feature.yaml
+++ b/.nais/feature.yaml
@@ -12,16 +12,16 @@ access:
grunnlag: bidrag-grunnlag-feature.intern.dev.nav.no
vedtak: bidrag-vedtak-feature.intern.dev.nav.no
stonad: bidrag-stonad-feature.intern.dev.nav.no
- barnebidrag: bidrag-beregn-barnebidrag-feature.intern.dev.nav.no
+ barnebidrag: bidrag-beregn-barnebidrag.intern.dev.nav.no
forskudd: bidrag-beregn-forskudd.intern.dev.nav.no
- saertilskudd: bidrag-beregn-saertilskudd-feature.intern.dev.nav.no
+ saertilskudd: bidrag-beregn-saertilskudd.intern.dev.nav.no
kafka-topic-journalpost: bidrag.journalpost-feature
scope:
oppgave: dev-fss.oppgavehandtering.oppgave-q1
sak: dev-fss.bidrag.bidrag-sak-feature
- beregn_saertilskudd: dev-gcp.bidrag.bidrag-beregn-saertilskudd-rest-feature
+ beregn_saertilskudd: dev-gcp.bidrag.bidrag-beregn-saertilskudd-rest
beregn_forskudd: dev-gcp.bidrag.bidrag-beregn-forskudd-rest
- beregn_barnebidrag: dev-gcp.bidrag.bidrag-beregn-barnebidrag-rest-feature
+ beregn_barnebidrag: dev-gcp.bidrag.bidrag-beregn-barnebidrag-rest
dokument_forsendelse: dev-gcp.bidrag.bidrag-dokument-forsendelse-feature
bidrag_vedtak: dev-gcp.bidrag.bidrag-vedtak-feature
bidrag_grunnlag: dev-gcp.bidrag.bidrag-grunnlag-feature
diff --git a/.nais/nais.yaml b/.nais/nais.yaml
index 16e42ef9..0775f1d8 100644
--- a/.nais/nais.yaml
+++ b/.nais/nais.yaml
@@ -48,7 +48,7 @@ spec:
cpu: 1000m
memory: 1024Mi
requests:
- cpu: 500m
+ cpu: 250m
memory: 512Mi
ingresses:
{{#each ingresses as |url|}}
diff --git a/Dockerfile b/Dockerfile
index 899fcf28..a4a0b540 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-FROM navikt/java:17
+FROM ghcr.io/navikt/baseimages/temurin:21
LABEL maintainer="Team Bidrag" \
email="nav.ikt.prosjekt.og.forvaltning.bidrag@nav.no"
diff --git a/pom.xml b/pom.xml
index 0c019722..adb550cb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.1.2
+ 3.2.1
@@ -20,22 +20,22 @@
- 5.2.1
- 20230427084654_4121ef0
- 20231010134706_52d8d27
- 7.13.0
+ 5.3
+ 2024.0111.144947
+ 7.15.0
2.8.0
- 4.1.0
+ 5.2.1
4.0.2
- 2.2.0
- 2.0
+ 2.3.0
+ 2.2
+ 3.1.8
+ 1.14.2
+ 4.2.0
+ 1.1.1
- 3.3.0
- 1.9.10
- 3.5.0
- 3.11.0
- 3.0.0
+ 3.5.0
+ 1.9.22
UTF-8
@@ -50,23 +50,23 @@
com.github.ben-manes.caffeine
caffeine
- 3.1.6
+ ${caffeine.version}
com.microsoft.azure
msal4j
- 1.13.10
+ ${msal4j.version}
no.nav.bidrag
- bidrag-commons
- ${bidrag-commons.version}
+ bidrag-commons-felles
+ ${bidrag-felles.version}
no.nav.bidrag
- bidrag-transport
- ${bidrag-transport.version}
+ bidrag-transport-felles
+ ${bidrag-felles.version}
@@ -225,7 +225,7 @@
org.awaitility
awaitility-kotlin
- 4.2.0
+ ${awaitility-kotlin.version}
@@ -280,7 +280,7 @@
org.apache.maven.plugins
maven-antrun-plugin
- 3.1.0
+ ${maven-antrun-plugin.version}
ktlint
@@ -318,9 +318,9 @@
- com.pinterest
- ktlint
- 0.47.1
+ com.pinterest.ktlint
+ ktlint-cli
+ ${ktlint.version}
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/BidragCucumberCloud.kt b/src/main/kotlin/no/nav/bidrag/cucumber/BidragCucumberCloud.kt
index 57a6298e..c287233c 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/BidragCucumberCloud.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/BidragCucumberCloud.kt
@@ -16,12 +16,13 @@ class BidragCucumberCloud {
@JvmStatic
fun main(args: Array) {
- val profile = if (args.isEmpty()) {
- PROFILE_LIVE
- } else {
- LOGGER.info("Starter med profil (argument): $args")
- args[0]
- }
+ val profile =
+ if (args.isEmpty()) {
+ PROFILE_LIVE
+ } else {
+ LOGGER.info("Starter med profil (argument): $args")
+ args[0]
+ }
val app = SpringApplication(BidragCucumberCloud::class.java)
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/Constants.kt b/src/main/kotlin/no/nav/bidrag/cucumber/Constants.kt
index 83b1b6af..59f4ea0d 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/Constants.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/Constants.kt
@@ -21,4 +21,5 @@ internal const val CORRELATION_ID = "correlationId"
internal const val FAGOMRADE_BIDRAG = "BID"
class AzureTokenException(message: String, exception: Exception? = null) : RuntimeException(message, exception)
+
fun usernameNotFound(): Nothing = throw RuntimeException("Fant ikke bruker")
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/Environment.kt b/src/main/kotlin/no/nav/bidrag/cucumber/Environment.kt
index 34de48b9..41b666f0 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/Environment.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/Environment.kt
@@ -20,8 +20,11 @@ internal object Environment {
val testUserAuth: String get() = fetchPropertyOrEnvironment(testAuthPropName()) ?: throw unknownState(testAuthPropName())
fun fetchPropertyOrEnvironment(key: String): String? = System.getProperty(key) ?: System.getenv(key)
+
private fun testAuthPropName() = TEST_AUTH + '_' + testUsername?.uppercase()
+
private fun unknownState(name: String) = IllegalStateException("Ukjent miljøvariabel ($name), kjente: ${listKnownVariables()}!")
+
private fun listKnownVariables() = ArrayList(System.getenv().keys).joinToString { it }
fun initCucumberEnvironment(cucumberTestsModel: CucumberTestsModel) {
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/ScenarioManager.kt b/src/main/kotlin/no/nav/bidrag/cucumber/ScenarioManager.kt
index 79900ff7..0eefb897 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/ScenarioManager.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/ScenarioManager.kt
@@ -55,7 +55,7 @@ object ScenarioManager {
--------------
=|> Starting ${scenarioMessage(scenario)} with correlationId:
=|> https://logs.adeo.no/app/kibana#/discover?_g=($time)&_a=($columns,$index,interval:auto,$query,$sort)
- """.trimIndent()
+ """.trimIndent(),
)
}
@@ -64,7 +64,11 @@ object ScenarioManager {
}
fun fetchCorrelationIdForScenario() = correlationIdForScenario ?: createCorrelationIdValue("unknown")
- fun errorLog(message: String, e: Exception) {
+
+ fun errorLog(
+ message: String,
+ e: Exception,
+ ) {
LOGGER.error(message)
CucumberTestRun.holdExceptionForTest(e)
}
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/SpringConfig.kt b/src/main/kotlin/no/nav/bidrag/cucumber/SpringConfig.kt
index 8f8beb02..6d3a2480 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/SpringConfig.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/SpringConfig.kt
@@ -22,20 +22,20 @@ import org.springframework.kafka.core.KafkaTemplate
@Configuration
@OpenAPIDefinition(
- info = io.swagger.v3.oas.annotations.info.Info(
- title = "bidrag-cucumber-cloud",
- description = "Funksjonelle tester for nais applikasjoner som er sikret med azure ad og bruker rest/kafka",
- version = "v1"
- ),
- security = [SecurityRequirement(name = "basicAuth")]
+ info =
+ io.swagger.v3.oas.annotations.info.Info(
+ title = "bidrag-cucumber-cloud",
+ description = "Funksjonelle tester for nais applikasjoner som er sikret med azure ad og bruker rest/kafka",
+ version = "v1",
+ ),
+ security = [SecurityRequirement(name = "basicAuth")],
)
@SecurityScheme(
name = "basicAuth",
type = SecuritySchemeType.HTTP,
- scheme = "basic"
+ scheme = "basic",
)
class SpringConfig {
-
@Bean
fun suppressStackTraceText() = SuppressStackTraceText()
@@ -43,11 +43,12 @@ class SpringConfig {
fun correlationIdFilter() = CorrelationIdFilter()
@Bean
- fun exceptionLogger() = ExceptionLogger(
- BidragCucumberCloud::class.java.simpleName,
- ExceptionLoggerAspect::class.java,
- TestFailedAdvice::class.java
- )
+ fun exceptionLogger() =
+ ExceptionLogger(
+ BidragCucumberCloud::class.java.simpleName,
+ ExceptionLoggerAspect::class.java,
+ TestFailedAdvice::class.java,
+ )
@Bean
@Scope("prototype")
@@ -59,11 +60,10 @@ class SpringConfig {
@Configuration
@Profile(PROFILE_LIVE)
class LiveSpringConfig {
-
@Bean
fun jornalpostKafkaHendelseProducer(
kafkaTemplate: KafkaTemplate,
@Value("\${TOPIC_JOURNALPOST}") topic: String,
- objectMapper: ObjectMapper
+ objectMapper: ObjectMapper,
) = JournalpostKafkaHendelseProducer(kafkaTemplate = kafkaTemplate, topic = topic, objectMapper = objectMapper)
}
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/aop/ExceptionLoggerAspect.kt b/src/main/kotlin/no/nav/bidrag/cucumber/aop/ExceptionLoggerAspect.kt
index e940c47a..25c5b803 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/aop/ExceptionLoggerAspect.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/aop/ExceptionLoggerAspect.kt
@@ -10,9 +10,11 @@ import org.springframework.stereotype.Component
@Aspect
@Component
class ExceptionLoggerAspect(private val exceptionLogger: ExceptionLogger) {
-
@AfterThrowing(pointcut = "within (no.nav.bidrag.cucumber.controller..*)", throwing = "exception")
- fun logException(joinPoint: JoinPoint, exception: Exception) {
+ fun logException(
+ joinPoint: JoinPoint,
+ exception: Exception,
+ ) {
val logMessages = exceptionLogger.logException(exception, joinPoint.sourceLocation.withinType.toString())
CucumberTestRun.hold(logMessages)
}
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/aop/TestFailedAdvice.kt b/src/main/kotlin/no/nav/bidrag/cucumber/aop/TestFailedAdvice.kt
index 510b09a8..413bebba 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/aop/TestFailedAdvice.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/aop/TestFailedAdvice.kt
@@ -10,20 +10,21 @@ import org.springframework.web.bind.annotation.RestControllerAdvice
@RestControllerAdvice
class TestFailedAdvice {
-
@ResponseBody
@ExceptionHandler
- fun handleTestFailedException(testFailedException: TestFailedException) = ResponseEntity
- .status(HttpStatus.NOT_ACCEPTABLE)
- .header(HttpHeaders.WARNING, warningFrom(testFailedException))
- .body(testFailedException.suppressedStackTraceLog)
+ fun handleTestFailedException(testFailedException: TestFailedException) =
+ ResponseEntity
+ .status(HttpStatus.NOT_ACCEPTABLE)
+ .header(HttpHeaders.WARNING, warningFrom(testFailedException))
+ .body(testFailedException.suppressedStackTraceLog)
@ResponseBody
@ExceptionHandler
- fun handleUnknownExceptions(runtimeException: RuntimeException) = ResponseEntity
- .status(HttpStatus.INTERNAL_SERVER_ERROR)
- .header(HttpHeaders.WARNING, warningFrom(runtimeException))
- .build()
+ fun handleUnknownExceptions(runtimeException: RuntimeException) =
+ ResponseEntity
+ .status(HttpStatus.INTERNAL_SERVER_ERROR)
+ .header(HttpHeaders.WARNING, warningFrom(runtimeException))
+ .build()
private fun warningFrom(runtimeException: RuntimeException) = "${runtimeException.javaClass.simpleName}: ${runtimeException.message}"
}
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/cloud/FellesEgenskaper.kt b/src/main/kotlin/no/nav/bidrag/cucumber/cloud/FellesEgenskaper.kt
index 8d1b72ce..1185a219 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/cloud/FellesEgenskaper.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/cloud/FellesEgenskaper.kt
@@ -9,7 +9,7 @@ import org.assertj.core.api.Assertions.assertThat
import org.slf4j.LoggerFactory
import org.springframework.http.HttpStatus
import java.io.File
-import java.util.*
+import java.util.EnumSet
@Suppress("unused") // brukes av cucumber
class FellesEgenskaper : No {
@@ -17,6 +17,7 @@ class FellesEgenskaper : No {
@JvmStatic
private val LOGGER = LoggerFactory.getLogger(FellesEgenskaper::class.java)
}
+
init {
Gitt("nais applikasjon {string}") { naisApplikasjon: String -> CucumberTestRun.settOppNaisAppTilTesting(naisApplikasjon) }
@@ -28,7 +29,10 @@ class FellesEgenskaper : No {
}
Når("jeg bruker endpoint {string} med json:") { endpoint: String, json: String ->
- hentRestTjenesteTilTesting().exchangePost(TestdataManager.erstattUrlMedParametereFraTestdata(endpoint), TestdataManager.erstattJsonMedParametereFraTestdata(json))
+ hentRestTjenesteTilTesting().exchangePost(
+ TestdataManager.erstattUrlMedParametereFraTestdata(endpoint),
+ TestdataManager.erstattJsonMedParametereFraTestdata(json),
+ )
}
Når("jeg kaller endepunkt {string}") { endpoint: String ->
@@ -49,8 +53,8 @@ class FellesEgenskaper : No {
Assertion(
"HttpStatus for ${hentRestTjenesteTilTesting().hentFullUrlMedEventuellWarning()}",
hentRestTjenesteTilTesting().hentHttpStatus(),
- HttpStatus.valueOf(enHttpStatus)
- ) { assertThat(it.value).`as`(it.message).isEqualTo(it.expectation) }
+ HttpStatus.valueOf(enHttpStatus),
+ ) { assertThat(it.value).`as`(it.message).isEqualTo(it.expectation) },
)
}
@@ -72,7 +76,9 @@ class FellesEgenskaper : No {
Så("skal http status ikke være {int} eller {int}") { enHttpStatus: Int, enAnnenHttpStatus: Int ->
assertThat(hentRestTjenesteTilTesting().hentHttpStatus())
.`as`("HttpStatus for " + hentRestTjenesteTilTesting().hentFullUrlMedEventuellWarning())
- .isNotIn(EnumSet.of(HttpStatus.valueOf(enHttpStatus), HttpStatus.valueOf(enAnnenHttpStatus)))
+ .isNotIn(
+ EnumSet.of(HttpStatus.valueOf(enHttpStatus), HttpStatus.valueOf(enAnnenHttpStatus)),
+ )
}
Og("responsen skal ikke være null") {
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/cloud/FellesEgenskaperService.kt b/src/main/kotlin/no/nav/bidrag/cucumber/cloud/FellesEgenskaperService.kt
index f952f2ea..0cdfd688 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/cloud/FellesEgenskaperService.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/cloud/FellesEgenskaperService.kt
@@ -12,7 +12,7 @@ object FellesEgenskaperService {
LOGGER.info(
"Assertion, actual: '${assertion.value}' - (${assertion.value?.javaClass}), " +
"wanted: '${assertion.expectation}' (${assertion.expectation?.javaClass}), " +
- "sanity check: ${CucumberTestRun.isSanityCheck}"
+ "sanity check: ${CucumberTestRun.isSanityCheck}",
)
if (CucumberTestRun.isNotSanityCheck) {
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/cloud/TestDataEgenskaper.kt b/src/main/kotlin/no/nav/bidrag/cucumber/cloud/TestDataEgenskaper.kt
index c42d1c74..fbd56c9d 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/cloud/TestDataEgenskaper.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/cloud/TestDataEgenskaper.kt
@@ -10,6 +10,7 @@ class TestDataEgenskaper : No {
@JvmStatic
private val LOGGER = LoggerFactory.getLogger(FellesEgenskaper::class.java)
}
+
init {
Og("nøkkel for testdata {string}") { nokkel: String ->
CucumberTestRun.thisRun().testData.initialiserData(nokkel)
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/cloud/TestdataManager.kt b/src/main/kotlin/no/nav/bidrag/cucumber/cloud/TestdataManager.kt
index c6870928..797cdd38 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/cloud/TestdataManager.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/cloud/TestdataManager.kt
@@ -3,7 +3,6 @@ package no.nav.bidrag.cucumber.cloud
import no.nav.bidrag.cucumber.model.CucumberTestRun
class TestdataManager {
-
companion object {
fun erstattUrlMedParametereFraTestdata(url: String): String {
if (url.contains("{") && url.contains("}")) {
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/cloud/arbeidsflyt/ArbeidsflytEgenskaper.kt b/src/main/kotlin/no/nav/bidrag/cucumber/cloud/arbeidsflyt/ArbeidsflytEgenskaper.kt
index 7578c43d..ad20a59a 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/cloud/arbeidsflyt/ArbeidsflytEgenskaper.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/cloud/arbeidsflyt/ArbeidsflytEgenskaper.kt
@@ -20,11 +20,12 @@ class ArbeidsflytEgenskaper : No {
init {
Og("en journalpostHendelse med journalpostId {long} og fagområde {string}") { journalpostId: Long, fagomrade: String ->
- journalpostHendelse = JournalpostHendelse(
- journalpostId = "$fagomrade-$journalpostId",
- enhet = "4812",
- fagomrade = fagomrade
- )
+ journalpostHendelse =
+ JournalpostHendelse(
+ journalpostId = "$fagomrade-$journalpostId",
+ enhet = "4812",
+ fagomrade = fagomrade,
+ )
}
Og("at det finnes en oppgave under behandling") {
@@ -49,7 +50,7 @@ class ArbeidsflytEgenskaper : No {
OppgaveOgHendelseService.sokOppgaverEtterBehandlingAvHendelse(
hendelse = journalpostHendelse,
tema = journalpostHendelse.fagomrade ?: throw IllegalStateException("Cucumber test må sørge for at fagområde er satt!"),
- sleepInMilliseconds = 4000
+ sleepInMilliseconds = 4000,
)
}
@@ -62,7 +63,7 @@ class ArbeidsflytEgenskaper : No {
OppgaveOgHendelseService.sokOppgaverEtterBehandlingAvHendelse(
hendelse = journalpostHendelse,
tema = fagomrade,
- sleepInMilliseconds = 4000
+ sleepInMilliseconds = 4000,
)
}
@@ -70,7 +71,7 @@ class ArbeidsflytEgenskaper : No {
OppgaveOgHendelseService.sokOpprettetOppgaveForHendelse(
journalpostId = journalpostHendelse.hentJournalpostIdUtenPrefix(),
tema = fagomrade,
- antallGjentakelser = 1
+ antallGjentakelser = 1,
)
}
@@ -78,7 +79,7 @@ class ArbeidsflytEgenskaper : No {
OppgaveOgHendelseService.sokOpprettetOppgaveForHendelse(
journalpostId = journalpostHendelse.hentJournalpostIdUtenPrefix(),
tema = fagomrade,
- antallGjentakelser = antallGanger
+ antallGjentakelser = antallGanger,
)
}
@@ -107,8 +108,8 @@ class ArbeidsflytEgenskaper : No {
Assertion(
message = "Forventet ikke å finne oppgaven",
value = CucumberTestRun.hentRestTjenesteTilTesting().hentResponseSomMap()["antallTreffTotalt"],
- expectation = 0
- ) { assertThat(it.value).`as`(it.message).isEqualTo(it.expectation) }
+ expectation = 0,
+ ) { assertThat(it.value).`as`(it.message).isEqualTo(it.expectation) },
)
}
@@ -116,7 +117,7 @@ class ArbeidsflytEgenskaper : No {
OppgaveOgHendelseService.ferdigstillEventuellOppgave(
journalpostIdMedPrefix = journalpostHendelse.journalpostId,
journalpostId = journalpostHendelse.hentJournalpostIdUtenPrefix(),
- tema = journalpostHendelse.fagomrade!!
+ tema = journalpostHendelse.fagomrade!!,
)
}
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/cloud/arbeidsflyt/OppgaveConsumer.kt b/src/main/kotlin/no/nav/bidrag/cucumber/cloud/arbeidsflyt/OppgaveConsumer.kt
index 6dc00860..50540bf6 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/cloud/arbeidsflyt/OppgaveConsumer.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/cloud/arbeidsflyt/OppgaveConsumer.kt
@@ -17,9 +17,12 @@ object OppgaveConsumer {
hentRestTjenesteTilTesting().exchangePost("/api/v1/oppgaver", oppgave)
}
- fun sokOppgaver(journalpostId: Long, tema: String): OppgaveSokResponse {
+ fun sokOppgaver(
+ journalpostId: Long,
+ tema: String,
+ ): OppgaveSokResponse {
hentRestTjenesteTilTesting().exchangeGet(
- "/api/v1/oppgaver?journalpostId=$journalpostId&journalpostId=$tema-$journalpostId&statuskategori=AAPEN&tema=$tema"
+ "/api/v1/oppgaver?journalpostId=$journalpostId&journalpostId=$tema-$journalpostId&statuskategori=AAPEN&tema=$tema",
)
try {
@@ -31,11 +34,12 @@ object OppgaveConsumer {
BidragCucumberSingletons.readValue(response, OppgaveSokResponse::class.java)
}
} finally {
- val oppgaveSokResponse = if (hentRestTjenesteTilTesting().responseEntity != null) {
- "Har OppgaveSokResponse (${hentRestTjenesteTilTesting().hentResponse()})"
- } else {
- "Mangler OppgaveSokResponse ${if (CucumberTestRun.isSanityCheck) "og det er" else "og det er ikke"} sanity check!"
- }
+ val oppgaveSokResponse =
+ if (hentRestTjenesteTilTesting().responseEntity != null) {
+ "Har OppgaveSokResponse (${hentRestTjenesteTilTesting().hentResponse()})"
+ } else {
+ "Mangler OppgaveSokResponse ${if (CucumberTestRun.isSanityCheck) "og det er" else "og det er ikke"} sanity check!"
+ }
LOGGER.info("$oppgaveSokResponse med http status: ${hentRestTjenesteTilTesting().hentHttpStatus()}")
}
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/cloud/arbeidsflyt/OppgaveOgHendelseService.kt b/src/main/kotlin/no/nav/bidrag/cucumber/cloud/arbeidsflyt/OppgaveOgHendelseService.kt
index fce30664..f41944b7 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/cloud/arbeidsflyt/OppgaveOgHendelseService.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/cloud/arbeidsflyt/OppgaveOgHendelseService.kt
@@ -12,13 +12,14 @@ import no.nav.bidrag.transport.dokument.JournalpostStatus
/**
* Service class in order to loosely couple logic from cucumber infrastructure
*/
-@Suppress("UNCHECKED_CAST")
object OppgaveOgHendelseService {
-
@JvmStatic
internal val GJENTA_OPPGAVE_SOK_REQUEST = ThreadLocal()
- fun tilbyOppgave(journalpostHendelse: JournalpostHendelse, oppgavetype: String? = null) {
+ fun tilbyOppgave(
+ journalpostHendelse: JournalpostHendelse,
+ oppgavetype: String? = null,
+ ) {
val sokResponse = OppgaveConsumer.sokOppgaver(journalpostHendelse.hentJournalpostIdUtenPrefix(), journalpostHendelse.fagomrade!!)
val fagomrade: String = journalpostHendelse.fagomrade ?: FAGOMRADE_BIDRAG
val enhetsnummer: String = journalpostHendelse.enhet ?: "4812"
@@ -29,8 +30,8 @@ object OppgaveOgHendelseService {
journalpostId = journalpostHendelse.hentJournalpostIdStrengUtenPrefix(),
tema = fagomrade,
tildeltEnhetsnr = enhetsnummer,
- oppgavetype = oppgavetype ?: "JFR"
- )
+ oppgavetype = oppgavetype ?: "JFR",
+ ),
)
} else if (sokResponse.oppgaver.isNotEmpty()) {
val oppgave = sokResponse.oppgaver.first()
@@ -44,8 +45,8 @@ object OppgaveOgHendelseService {
tema = fagomrade,
versjon = versjon.toInt(),
tildeltEnhetsnr = enhetsnummer,
- oppgavetype = oppgave.oppgavetype
- )
+ oppgavetype = oppgave.oppgavetype,
+ ),
)
} else {
throw IllegalStateException("Antall treff: ${sokResponse.antallTreffTotalt}, men liste i response er tom!!!")
@@ -56,23 +57,36 @@ object OppgaveOgHendelseService {
BidragCucumberSingletons.publiserHendelse(journalpostHendelse = journalpostHendelse)
}
- fun sokOppgaverEtterBehandlingAvHendelse(hendelse: JournalpostHendelse, tema: String, sleepInMilliseconds: Long) {
+ fun sokOppgaverEtterBehandlingAvHendelse(
+ hendelse: JournalpostHendelse,
+ tema: String,
+ sleepInMilliseconds: Long,
+ ) {
CucumberTestRun.sleepWhenNotSanityCheck(sleepInMilliseconds)
OppgaveConsumer.sokOppgaver(journalpostId = hendelse.hentJournalpostIdUtenPrefix(), tema = tema)
}
- fun sokOpprettetOppgaveForHendelse(journalpostId: Long, tema: String, antallGjentakelser: Int, sleepInMilleseconds: Long = 1500) {
+ fun sokOpprettetOppgaveForHendelse(
+ journalpostId: Long,
+ tema: String,
+ antallGjentakelser: Int,
+ sleepInMilleseconds: Long = 1500,
+ ) {
GJENTA_OPPGAVE_SOK_REQUEST.set(
GjentaOppgaveSokRequest(
antallGjentakelser = antallGjentakelser,
journalpostId = journalpostId,
tema = tema,
- sleepInMilleseconds = sleepInMilleseconds
- )
+ sleepInMilleseconds = sleepInMilleseconds,
+ ),
)
}
- fun ferdigstillEventuellOppgave(journalpostIdMedPrefix: String, journalpostId: Long, tema: String) {
+ fun ferdigstillEventuellOppgave(
+ journalpostIdMedPrefix: String,
+ journalpostId: Long,
+ tema: String,
+ ) {
val sokResponse = OppgaveConsumer.sokOppgaver(journalpostId, tema)
if (sokResponse.antallTreffTotalt > 0) {
@@ -82,8 +96,8 @@ object OppgaveOgHendelseService {
journalpostId = journalpostIdMedPrefix,
status = JournalpostStatus.JOURNALFØRT,
fagomrade = "BID",
- enhet = "4812"
- )
+ enhet = "4812",
+ ),
)
}
}
@@ -92,7 +106,11 @@ object OppgaveOgHendelseService {
Thread.sleep(2000)
}
- fun assertThatOppgaveHar(enhet: String? = null, oppgavetype: String? = null, aktorId: String? = null) {
+ fun assertThatOppgaveHar(
+ enhet: String? = null,
+ oppgavetype: String? = null,
+ aktorId: String? = null,
+ ) {
GJENTA_OPPGAVE_SOK_REQUEST.get().assertThatOppgaveHar(enhet, oppgavetype, aktorId)
}
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/cloud/beregn/BeregnEgenskaper.kt b/src/main/kotlin/no/nav/bidrag/cucumber/cloud/beregn/BeregnEgenskaper.kt
index e2769f1d..25341a15 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/cloud/beregn/BeregnEgenskaper.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/cloud/beregn/BeregnEgenskaper.kt
@@ -29,8 +29,8 @@ class BeregnEgenskaper : No {
Assertion(
message = "Resultatbeløp",
value = resultatBelop,
- expectation = belop
- ) { assertThat(it.expectation).`as`(it.message).isEqualTo(it.value) }
+ expectation = belop,
+ ) { assertThat(it.expectation).`as`(it.message).isEqualTo(it.value) },
)
}
@@ -42,13 +42,16 @@ class BeregnEgenskaper : No {
Assertion(
message = "Resultatkode",
value = resultatkode,
- expectation = kode
- ) { assertThat(it.expectation).`as`(it.message).isEqualTo(it.value) }
+ expectation = kode,
+ ) { assertThat(it.expectation).`as`(it.message).isEqualTo(it.value) },
)
}
}
- private fun parseJson(response: String?, sti: String): String? {
+ private fun parseJson(
+ response: String?,
+ sti: String,
+ ): String? {
if (response == null) {
return null
}
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/cloud/forsendelse/ForsendelseEgenskaper.kt b/src/main/kotlin/no/nav/bidrag/cucumber/cloud/forsendelse/ForsendelseEgenskaper.kt
index 6f96eb60..d7cc88df 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/cloud/forsendelse/ForsendelseEgenskaper.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/cloud/forsendelse/ForsendelseEgenskaper.kt
@@ -53,8 +53,8 @@ class ForsendelseEgenskaper : No {
Assertion(
message = "Dokument",
value = dokument?.get("status")?.asText(),
- expectation = status
- ) { assertThat(it.value).`as`(it.message).isEqualTo(it.expectation) }
+ expectation = status,
+ ) { assertThat(it.value).`as`(it.message).isEqualTo(it.expectation) },
)
}
}
@@ -71,8 +71,8 @@ class ForsendelseEgenskaper : No {
Assertion(
message = "Dokument",
value = dokumenter.size,
- expectation = antall
- ) { assertThat(it.value).`as`(it.message).isEqualTo(it.expectation) }
+ expectation = antall,
+ ) { assertThat(it.value).`as`(it.message).isEqualTo(it.expectation) },
)
}
Og("forsendelse inneholder joark journalpostid") {
@@ -86,15 +86,20 @@ class ForsendelseEgenskaper : No {
Assertion(
message = "Dokument",
value = journalpostId,
- expectation = journalpostId
- ) { assertThat(it.value).`as`(it.message).isNotNull() }
+ expectation = journalpostId,
+ ) { assertThat(it.value).`as`(it.message).isNotNull() },
)
}
}
private fun lagreDokumentreferanserFraRespons(journalpost: JsonNode) {
val dokumenter = journalpost.get("dokumenter").toList()
- dokumenter.forEachIndexed { i, it -> CucumberTestRun.thisRun().testData.lagreData("dokumentreferanse${i + 1}" to it.get("dokumentreferanse").asText()) }
+ dokumenter.forEachIndexed {
+ i,
+ it,
+ ->
+ CucumberTestRun.thisRun().testData.lagreData("dokumentreferanse${i + 1}" to it.get("dokumentreferanse").asText())
+ }
}
private fun parseJson(response: String?): JsonNode? {
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/cloud/stonad/StonadEgenskaper.kt b/src/main/kotlin/no/nav/bidrag/cucumber/cloud/stonad/StonadEgenskaper.kt
index d1abdd44..ec348afa 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/cloud/stonad/StonadEgenskaper.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/cloud/stonad/StonadEgenskaper.kt
@@ -24,7 +24,9 @@ class StonadEgenskaper : No {
}
Og("responsen under stien {string} skal være maks {long} sekunder gammel") { sti: String, antallSekunder: Long ->
- LOGGER.info("Sjekker at vedtak-hendelsen har oppdatert endretTidspunkt på stønaden og at denne er maks $antallSekunder sekunder gammel")
+ LOGGER.info(
+ "Sjekker at vedtak-hendelsen har oppdatert endretTidspunkt på stønaden og at denne er maks $antallSekunder sekunder gammel",
+ )
val response = hentRestTjenesteTilTesting().hentResponse()
val endretTidspunkt = LocalDateTime.parse(parseJson(response, sti)) ?: LocalDateTime.MIN
val naaTidspunkt = LocalDateTime.now()
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/controller/CucumberController.kt b/src/main/kotlin/no/nav/bidrag/cucumber/controller/CucumberController.kt
index aa292e81..b7b18467 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/controller/CucumberController.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/controller/CucumberController.kt
@@ -27,10 +27,12 @@ class CucumberController(private val cucumberService: CucumberService) {
@ApiResponses(
value = [
ApiResponse(responseCode = "200", description = "Angitte tester kjørt uten feil"),
- ApiResponse(responseCode = "406", description = "Testkjøring med cucumber feilet")
- ]
+ ApiResponse(responseCode = "406", description = "Testkjøring med cucumber feilet"),
+ ],
)
- fun run(@RequestBody cucumberTestsApi: CucumberTestsApi): ResponseEntity {
+ fun run(
+ @RequestBody cucumberTestsApi: CucumberTestsApi,
+ ): ResponseEntity {
LOGGER.info("Running cucumber tests with $cucumberTestsApi!")
val cucumberTestRun = CucumberTestRun(cucumberTestsApi).initEnvironment()
return ResponseEntity(cucumberService.run(cucumberTestRun), HttpStatus.OK)
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/controller/HendelseController.kt b/src/main/kotlin/no/nav/bidrag/cucumber/controller/HendelseController.kt
index 4d01c57c..bf54e79d 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/controller/HendelseController.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/controller/HendelseController.kt
@@ -21,7 +21,9 @@ class HendelseController(private val hendelseProducer: HendelseProducer) {
@PostMapping("/hendelse/opprett")
@Operation(summary = "Opprett en journalpost-hendelse")
@ApiResponse(responseCode = "200", description = "ny journalpost-hendelse er publisert")
- fun opprett(@RequestBody hendelseApi: HendelseApi): ResponseEntity {
+ fun opprett(
+ @RequestBody hendelseApi: HendelseApi,
+ ): ResponseEntity {
LOGGER.info("publiserer $hendelseApi")
hendelseProducer.publish(JournalpostHendelse(hendelseApi))
return ResponseEntity.ok().build()
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/dto/CucumberTestsApi.kt b/src/main/kotlin/no/nav/bidrag/cucumber/dto/CucumberTestsApi.kt
index 3089bc6c..8e03601d 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/dto/CucumberTestsApi.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/dto/CucumberTestsApi.kt
@@ -4,17 +4,25 @@ import io.swagger.v3.oas.annotations.media.Schema
@Schema(description = "Dto med data for en testkjøring (som gjøres av `io.cucumber.core.cli.Main`)")
data class CucumberTestsApi(
- @Schema(description = "liste med ingress@nais-app (kan også være en tag i en test, ingress som brukes for en gitt nais applikasjon)") var ingressesForApps: List = emptyList(),
- @Schema(description = "Nais applikasjoner som ikke skal bruke applikasjonsnavnet som \"context path\" etter ingressen") var noContextPathForApps: List = emptyList(),
- @Schema(description = "Om testkjøringen er en sanity check av *.feature-filer. Feiler ikke ved assertions, bare feil ved I/O") var sanityCheck: Boolean? = false,
+ @Schema(
+ description = "liste med ingress@nais-app (kan også være en tag i en test, ingress som brukes for en gitt nais applikasjon)",
+ ) var ingressesForApps: List = emptyList(),
+ @Schema(
+ description = "Nais applikasjoner som ikke skal bruke applikasjonsnavnet som \"context path\" etter ingressen",
+ ) var noContextPathForApps: List = emptyList(),
+ @Schema(
+ description = "Om testkjøringen er en sanity check av *.feature-filer. Feiler ikke ved assertions, bare feil ved I/O",
+ ) var sanityCheck: Boolean? = false,
@Schema(description = "Security (azure) token som skal brukes ved lokal kjøring") var securityToken: String? = null,
@Schema(description = "liste med tags som skal testes uten å oppgi ingress") var tags: List = emptyList(),
@Schema(description = "Brukernavn (test ident) for testkjøring, eks: z123456") var testUsername: String? = null,
@Schema(description = "Om autentisering skal brukes ved kall mot API") var skipAuth: Boolean? = false,
- @Schema(description = "Hvilken type saksbehandler som skal brukes ved autentiseringen") var medSaksbehandlerType: SaksbehandlerType? = null
+ @Schema(
+ description = "Hvilken type saksbehandler som skal brukes ved autentiseringen",
+ ) var medSaksbehandlerType: SaksbehandlerType? = null,
)
enum class SaksbehandlerType {
BIDRAG_BASIS,
- BIDRAG_VIKAFOSSEN
+ BIDRAG_VIKAFOSSEN,
}
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/dto/HendelseApi.kt b/src/main/kotlin/no/nav/bidrag/cucumber/dto/HendelseApi.kt
index 41fa6a9d..f7ba67e4 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/dto/HendelseApi.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/dto/HendelseApi.kt
@@ -10,5 +10,5 @@ data class HendelseApi(
@Schema(description = "Brukerident som kan brukes til sporing av hendelsen") val brukerident: String? = null,
@Schema(description = "Fagområdet som journalposten tilhører") var fagomrade: String? = null,
@Schema(description = "Enheten som journalposten tilhører") var enhet: String? = null,
- @Schema(description = "Journalposten journalstatus") var journalstatus: JournalpostStatus? = null
+ @Schema(description = "Journalposten journalstatus") var journalstatus: JournalpostStatus? = null,
)
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/hendelse/JournalpostKafkaHendelseProducer.kt b/src/main/kotlin/no/nav/bidrag/cucumber/hendelse/JournalpostKafkaHendelseProducer.kt
index 805736b6..73470617 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/hendelse/JournalpostKafkaHendelseProducer.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/hendelse/JournalpostKafkaHendelseProducer.kt
@@ -14,9 +14,8 @@ class JournalpostKafkaHendelseProducer(
private val kafkaTemplate: KafkaTemplate,
private val topic: String,
private val objectMapper: ObjectMapper,
- private val timeoutAfterSeconds: Long = 15
+ private val timeoutAfterSeconds: Long = 15,
) : HendelseProducer {
-
companion object {
@JvmStatic
private val LOGGER = LoggerFactory.getLogger(JournalpostKafkaHendelseProducer::class.java)
@@ -28,7 +27,7 @@ class JournalpostKafkaHendelseProducer(
LOGGER.info("Publish $journalpostHendelse til topic $topic")
publishWithTimeout(
publish = Publish(journalpostHendelse.journalpostId, objectMapper.writeValueAsString(journalpostHendelse)),
- doSend = this::sendKafkaMelding
+ doSend = this::sendKafkaMelding,
)
} else {
LOGGER.info("SanityCheck - Hendelse publiseres ikke: $journalpostHendelse")
@@ -43,12 +42,16 @@ class JournalpostKafkaHendelseProducer(
kafkaTemplate.send(topic, publish.journalpostId, publish.json)
}
- private fun publishWithTimeout(publish: Publish, doSend: (input: Publish) -> Unit) {
+ private fun publishWithTimeout(
+ publish: Publish,
+ doSend: (input: Publish) -> Unit,
+ ) {
val start = LocalDateTime.now()
val timeout = LocalDateTime.now().plusSeconds(timeoutAfterSeconds)
- val future = CompletableFuture.runAsync {
- doSend(publish)
- }
+ val future =
+ CompletableFuture.runAsync {
+ doSend(publish)
+ }
while (!future.isDone) {
if (LocalDateTime.now().isBefore(timeout)) {
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/logback/TestMessageBeforeLayoutHolder.kt b/src/main/kotlin/no/nav/bidrag/cucumber/logback/TestMessageBeforeLayoutHolder.kt
index 5de048ef..cd07ca91 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/logback/TestMessageBeforeLayoutHolder.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/logback/TestMessageBeforeLayoutHolder.kt
@@ -6,7 +6,6 @@ import no.nav.bidrag.cucumber.ScenarioManager
import no.nav.bidrag.cucumber.model.CucumberTestRun
class TestMessageBeforeLayoutHolder : LoggingEventCompositeJsonEncoder() {
-
override fun encode(event: ILoggingEvent?): ByteArray {
if (CucumberTestRun.isTestRunStarted) {
val message = event?.message ?: throw IllegalStateException("ILoggingEvent should not be null!")
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/model/BidragCucumberSingletons.kt b/src/main/kotlin/no/nav/bidrag/cucumber/model/BidragCucumberSingletons.kt
index e9b6c822..25f79c37 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/model/BidragCucumberSingletons.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/model/BidragCucumberSingletons.kt
@@ -24,7 +24,9 @@ internal object BidragCucumberSingletons {
@Suppress("UNCHECKED_CAST")
fun hentEllerInit(kClass: KClass<*>): T = applicationContext?.getBean(kClass.java) as T? ?: init(kClass)
+
fun hentPrototypeFraApplicationContext() = applicationContext?.getBean(HttpHeaderRestTemplate::class.java) ?: doManualInit()
+
private fun fetchObjectMapper() = objectMapper ?: ObjectMapper()
@Suppress("UNCHECKED_CAST")
@@ -42,7 +44,7 @@ internal object BidragCucumberSingletons {
fun publiserHendelse(journalpostHendelse: JournalpostHendelse) {
hendelseProducer?.publish(journalpostHendelse) ?: LOGGER.warn(
- "Cannot publish $journalpostHendelse when spring context is not initialized, sanity check: ${CucumberTestRun.isSanityCheck}"
+ "Cannot publish $journalpostHendelse when spring context is not initialized, sanity check: ${CucumberTestRun.isSanityCheck}",
)
}
@@ -55,16 +57,21 @@ internal object BidragCucumberSingletons {
}
@Suppress("UNCHECKED_CAST")
- private fun mapResponseSomMap(body: String): Map = try {
- fetchObjectMapper().readValue(body, Map::class.java) as Map
- } catch (e: Exception) {
- CucumberTestRun.holdExceptionForTest(e)
- throw e
- }
+ private fun mapResponseSomMap(body: String): Map =
+ try {
+ fetchObjectMapper().readValue(body, Map::class.java) as Map
+ } catch (e: Exception) {
+ CucumberTestRun.holdExceptionForTest(e)
+ throw e
+ }
- fun readValue(value: String, mapClass: Class): T = objectMapper?.readValue(value, mapClass) ?: throw IllegalStateException(
- "Kunne ikke mappe: $value"
- )
+ fun readValue(
+ value: String,
+ mapClass: Class,
+ ): T =
+ objectMapper?.readValue(value, mapClass) ?: throw IllegalStateException(
+ "Kunne ikke mappe: $value",
+ )
fun toJson(body: Any): String = objectMapper?.writeValueAsString(body) ?: """{ "noMappingAvailable":"$body" }"""
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/model/CucumberTestRun.kt b/src/main/kotlin/no/nav/bidrag/cucumber/model/CucumberTestRun.kt
index 84ae9769..152c7164 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/model/CucumberTestRun.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/model/CucumberTestRun.kt
@@ -45,7 +45,6 @@ class CucumberTestRun(private val cucumberTestsModel: CucumberTestsModel) {
}
companion object {
-
@JvmStatic
private val CUCUMBER_TEST_RUN = ThreadLocal()
@@ -54,15 +53,16 @@ class CucumberTestRun(private val cucumberTestsModel: CucumberTestsModel) {
@JvmStatic
private fun initFromEnvironment(): CucumberTestRun {
- val cucumberTestRun = CucumberTestRun(
- CucumberTestsModel(
- ingressesForApps = Environment.asList(INGRESSES_FOR_APPS),
- noContextPathForApps = Environment.asList(NO_CONTEXT_PATH_FOR_APPS),
- sanityCheck = fetchPropertyOrEnvironment(SANITY_CHECK)?.toBoolean(),
- securityToken = fetchPropertyOrEnvironment(SECURITY_TOKEN),
- tags = Environment.asList(TAGS)
+ val cucumberTestRun =
+ CucumberTestRun(
+ CucumberTestsModel(
+ ingressesForApps = Environment.asList(INGRESSES_FOR_APPS),
+ noContextPathForApps = Environment.asList(NO_CONTEXT_PATH_FOR_APPS),
+ sanityCheck = fetchPropertyOrEnvironment(SANITY_CHECK)?.toBoolean(),
+ securityToken = fetchPropertyOrEnvironment(SECURITY_TOKEN),
+ tags = Environment.asList(TAGS),
+ ),
)
- )
CUCUMBER_TEST_RUN.set(cucumberTestRun)
@@ -72,7 +72,10 @@ class CucumberTestRun(private val cucumberTestsModel: CucumberTestsModel) {
val isNotSanityCheck: Boolean get() = !isSanityCheck
val isSanityCheck: Boolean get() = Environment.isSanityCheck ?: thisRun().cucumberTestsModel.sanityCheck ?: false
val isTestRunStarted: Boolean get() = CUCUMBER_TEST_RUN.get() != null
- val isTestUserPresent: Boolean get() = fetchPropertyOrEnvironment(TEST_USER) != null || thisRun().cucumberTestsModel.testUsername != null
+ val isTestUserPresent: Boolean get() =
+ fetchPropertyOrEnvironment(
+ TEST_USER,
+ ) != null || thisRun().cucumberTestsModel.testUsername != null
val securityToken: String? get() = thisRun().cucumberTestsModel.securityToken
val testUsername: String? get() = thisRun().cucumberTestsModel.testUsername
val skipAuth: Boolean get() = thisRun().cucumberTestsModel.skipAuth
@@ -81,17 +84,29 @@ class CucumberTestRun(private val cucumberTestsModel: CucumberTestsModel) {
private var exceptionLogger: ExceptionLogger? = null
fun addToRunStats(scenario: Scenario) = thisRun().runStats.add(scenario)
+
fun fetchIngress(applicationName: String) = thisRun().cucumberTestsModel.fetchIngress(applicationName)
+
fun fetchTestMessagesWithRunStats() = thisRun().testMessagesHolder.fetchTestMessages() + "\n\n" + thisRun().runStats.get()
+
fun hentRestTjenste(applicationName: String) = thisRun().restTjenester.hentRestTjeneste(applicationName)
+
fun hentRestTjenesteTilTesting() = thisRun().restTjenester.hentRestTjenesteTilTesting()
+
fun hold(logMessages: List) = thisRun().testMessagesHolder.hold(logMessages)
+
fun holdTestMessage(message: String) = thisRun().testMessagesHolder.hold(message)
+
fun isApplicationConfigured(applicationName: String) = thisRun().restTjenester.isApplicationConfigured(applicationName)
+
fun isNoContextPathForApp(applicationName: String) = thisRun().cucumberTestsModel.noContextPathForApps.contains(applicationName)
+
fun settOppNaisApp(naisApplikasjon: String) = thisRun().restTjenester.settOppNaisApp(naisApplikasjon)
+
fun settOppNaisAppTilTesting(naisApplikasjon: String) = thisRun().restTjenester.settOppNaisAppTilTesting(naisApplikasjon)
+
fun sleepWhenNotSanityCheck(milliseconds: Long) = if (isNotSanityCheck) Thread.sleep(milliseconds) else Unit
+
fun updateSecurityToken(securityToken: String?) = thisRun().cucumberTestsModel.updateSecurityToken(securityToken)
fun holdExceptionForTest(throwable: Throwable) {
@@ -99,15 +114,16 @@ class CucumberTestRun(private val cucumberTestsModel: CucumberTestsModel) {
exceptionLogger = BidragCucumberSingletons.hentEllerInit(ExceptionLogger::class)
}
- val exceptionLog = exceptionLogger!!.logException(
- throwable,
- throwable.stackTrace.first {
- (it.className.contains("no.nav") || it?.fileName?.contains("feature") ?: false) &&
- !it.className.contains(CucumberTestRun::class.simpleName!!) &&
- !it.className.contains(FellesEgenskaper::class.simpleName!!) &&
- !it.className.contains(ScenarioManager::class.simpleName!!)
- }.className
- )
+ val exceptionLog =
+ exceptionLogger!!.logException(
+ throwable,
+ throwable.stackTrace.first {
+ (it.className.contains("no.nav") || it?.fileName?.contains("feature") ?: false) &&
+ !it.className.contains(CucumberTestRun::class.simpleName!!) &&
+ !it.className.contains(FellesEgenskaper::class.simpleName!!) &&
+ !it.className.contains(ScenarioManager::class.simpleName!!)
+ }.className,
+ )
val exceptionMessage = exceptionLog[0]
val cucumberTestRun = thisRun()
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/model/CucumberTestsModel.kt b/src/main/kotlin/no/nav/bidrag/cucumber/model/CucumberTestsModel.kt
index 39e36872..decf9694 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/model/CucumberTestsModel.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/model/CucumberTestsModel.kt
@@ -16,16 +16,20 @@ data class CucumberTestsModel(internal val cucumberTestsApi: CucumberTestsApi) {
private val LOGGER = LoggerFactory.getLogger(CucumberTestsModel::class.java)
@JvmStatic
- private val FEATURE_FILES = File(ABSOLUTE_CLOUD_PATH)
- .walkBottomUp()
- .filter { it.isFile }
- .filter { it.name.endsWith(".feature") }
- .toList()
+ private val FEATURE_FILES =
+ File(ABSOLUTE_CLOUD_PATH)
+ .walkBottomUp()
+ .filter { it.isFile }
+ .filter { it.name.endsWith(".feature") }
+ .toList()
@JvmStatic
private val NAMES_OF_FEATURE_FILES = FEATURE_FILES.joinToString(separator = ", ") { it.name }
- private fun isTagPresent(file: File, tag: String): Boolean {
+ private fun isTagPresent(
+ file: File,
+ tag: String,
+ ): Boolean {
val inputStream: InputStream = file.inputStream()
return inputStream.bufferedReader().use { it.readText() }
.contains(tag)
@@ -47,7 +51,7 @@ data class CucumberTestsModel(internal val cucumberTestsApi: CucumberTestsApi) {
sanityCheck: Boolean? = false,
securityToken: String? = null,
tags: List = emptyList(),
- testUsername: String? = null
+ testUsername: String? = null,
) : this(
CucumberTestsApi(
ingressesForApps = ingressesForApps,
@@ -55,24 +59,25 @@ data class CucumberTestsModel(internal val cucumberTestsApi: CucumberTestsApi) {
sanityCheck = sanityCheck,
securityToken = securityToken,
tags = tags,
- testUsername = testUsername
- )
+ testUsername = testUsername,
+ ),
)
fun getSanityCheck() = sanityCheck?.toString() ?: "false"
fun fetchTags(): String {
- val collectTags = ingressesForApps
- .filter { it.contains("@tag:") }
- .map { it.split("@tag:")[1] }
- .map { "@$it" } as MutableList
+ val collectTags =
+ ingressesForApps
+ .filter { it.contains("@tag:") }
+ .map { it.split("@tag:")[1] }
+ .map { "@$it" } as MutableList
collectTags.addAll(tags)
val tagsAsStrings = transformAssertedTagsToString(collectTags)
if (tagsAsStrings.isEmpty()) {
throw IllegalStateException(
- "Ingen tags er oppgitt. Bruk liste med tags eller liste med ingresser som har prefiksen 'tag:' etter @"
+ "Ingen tags er oppgitt. Bruk liste med tags eller liste med ingresser som har prefiksen 'tag:' etter @",
)
}
@@ -115,9 +120,10 @@ data class CucumberTestsModel(internal val cucumberTestsApi: CucumberTestsApi) {
}
}
- private fun isNotTagPresentInFeatureFile(tag: String) = FEATURE_FILES.stream()
- .filter { file: File -> isTagPresent(file, tag) }
- .findFirst().isEmpty
+ private fun isNotTagPresentInFeatureFile(tag: String) =
+ FEATURE_FILES.stream()
+ .filter { file: File -> isTagPresent(file, tag) }
+ .findFirst().isEmpty
internal fun initCucumberEnvironment(): CucumberTestsModel {
Environment.initCucumberEnvironment(this)
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/model/FilePath.kt b/src/main/kotlin/no/nav/bidrag/cucumber/model/FilePath.kt
index e1c6cc7a..905dd2ed 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/model/FilePath.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/model/FilePath.kt
@@ -9,11 +9,12 @@ data class FilePath(val fileName: String) {
private val LOGGER = LoggerFactory.getLogger(FilePath::class.java)
}
- internal fun findFile() = File(".")
- .walkBottomUp()
- .filterNot { it.absolutePath.contains("/target/") }
- .filter { it.name.endsWith(".path") }
- .find { isFileName(it) } ?: throw IllegalStateException("Cannot find $fileName located in ${File(".").absolutePath}")
+ internal fun findFile() =
+ File(".")
+ .walkBottomUp()
+ .filterNot { it.absolutePath.contains("/target/") }
+ .filter { it.name.endsWith(".path") }
+ .find { isFileName(it) } ?: throw IllegalStateException("Cannot find $fileName located in ${File(".").absolutePath}")
private fun isFileName(file: File): Boolean {
LOGGER.info("is $fileName?: $file")
@@ -21,6 +22,7 @@ data class FilePath(val fileName: String) {
return fileName == file.name
}
- fun findFolderPath() = File(findFile().parent)
- .absolutePath.replace("/./", "/")
+ fun findFolderPath() =
+ File(findFile().parent)
+ .absolutePath.replace("/./", "/")
}
diff --git a/src/main/kotlin/no/nav/bidrag/cucumber/model/GjentaOppgaveSokRequest.kt b/src/main/kotlin/no/nav/bidrag/cucumber/model/GjentaOppgaveSokRequest.kt
index 5bc3a598..ac76d932 100644
--- a/src/main/kotlin/no/nav/bidrag/cucumber/model/GjentaOppgaveSokRequest.kt
+++ b/src/main/kotlin/no/nav/bidrag/cucumber/model/GjentaOppgaveSokRequest.kt
@@ -8,13 +8,17 @@ class GjentaOppgaveSokRequest(
private val antallGjentakelser: Int,
private val journalpostId: Long,
private val tema: String,
- private val sleepInMilleseconds: Long = 750
+ private val sleepInMilleseconds: Long = 750,
) {
fun assertThatOppgaveFinnes() {
finnOppgaveResponseMedMaksGjentakelser()
}
- fun assertThatOppgaveHar(enhet: String?, oppgavetype: String?, aktorId: String?) {
+ fun assertThatOppgaveHar(
+ enhet: String?,
+ oppgavetype: String?,
+ aktorId: String?,
+ ) {
val responseSomMap = finnOppgaveResponseMedMaksGjentakelser()
if (enhet != null) {
@@ -65,12 +69,15 @@ class GjentaOppgaveSokRequest(
Assertion(
message = "Forventet å finne oppgaven",
value = responseSomMap["antallTreffTotalt"],
- expectation = 1
- ) { assertThat(it.value).`as`(it.message).isEqualTo(it.expectation) }
+ expectation = 1,
+ ) { assertThat(it.value).`as`(it.message).isEqualTo(it.expectation) },
)
}
- private fun assertTildeltEnhetsnummer(responseSomMap: Map, enhet: String) {
+ private fun assertTildeltEnhetsnummer(
+ responseSomMap: Map,
+ enhet: String,
+ ) {
@Suppress("UNCHECKED_CAST")
val tildeltEnhetsnr = (responseSomMap["oppgaver"] as List