diff --git a/pom.xml b/pom.xml
index b17b53cfb..f838360c4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -48,6 +48,8 @@
13.4.0
1.13.8
1.5.1
+ 1.19.3
+ 4.0.2
1.0.10
@@ -69,9 +71,9 @@
- io.zonky.test.postgres
- embedded-postgres-binaries-bom
- ${zonky-postgresql.version}
+ org.testcontainers
+ testcontainers-bom
+ ${testcontainers.version}
pom
import
@@ -99,6 +101,10 @@
org.springframework.boot
spring-boot-starter-validation
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
org.springframework.kafka
spring-kafka
@@ -218,9 +224,9 @@
- io.mockk
- mockk-jvm
- ${mockk.version}
+ com.ninja-squad
+ springmockk
+ ${springmockk.version}
test
@@ -235,9 +241,17 @@
test
- io.zonky.test
- embedded-postgres
- ${embedded-postgres.version}
+ no.nav.security
+ token-validation-spring-test
+ ${token-support.version}
+
+
+ org.testcontainers
+ postgresql
+
+
+ org.springframework.kafka
+ spring-kafka-test
test
diff --git a/src/main/kotlin/no/nav/k9punsj/K9PunsjApplication.kt b/src/main/kotlin/no/nav/k9punsj/K9PunsjApplication.kt
index ae367ed5c..a6377de90 100644
--- a/src/main/kotlin/no/nav/k9punsj/K9PunsjApplication.kt
+++ b/src/main/kotlin/no/nav/k9punsj/K9PunsjApplication.kt
@@ -4,12 +4,9 @@ import com.fasterxml.jackson.databind.PropertyNamingStrategies
import com.fasterxml.jackson.databind.SerializationFeature
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
import de.huxhorn.sulky.ulid.ULID
-import no.nav.k9punsj.configuration.DbConfiguration
-import no.nav.k9punsj.configuration.hikariConfig
import no.nav.k9punsj.utils.UlidDeserializer
import org.springframework.boot.Banner
import org.springframework.boot.autoconfigure.SpringBootApplication
-import org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration
import org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration
import org.springframework.boot.runApplication
import org.springframework.boot.web.embedded.netty.NettyReactiveWebServerFactory
@@ -17,10 +14,9 @@ import org.springframework.boot.web.reactive.server.ReactiveWebServerFactory
import org.springframework.context.annotation.Bean
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder
import org.springframework.scheduling.annotation.EnableScheduling
-import javax.sql.DataSource
@EnableScheduling
-@SpringBootApplication(exclude = [ErrorMvcAutoConfiguration::class, FlywayAutoConfiguration::class])
+@SpringBootApplication(exclude = [ErrorMvcAutoConfiguration::class])
class K9PunsjApplication {
@Bean
@@ -37,12 +33,6 @@ class K9PunsjApplication {
fun reactiveWebServerFactory(): ReactiveWebServerFactory {
return NettyReactiveWebServerFactory()
}
-
- @Bean
- @StandardProfil
- fun databaseInitializer(dbConfiguration: DbConfiguration): DataSource {
- return hikariConfig(dbConfiguration)
- }
}
fun main(args: Array) {
diff --git a/src/main/kotlin/no/nav/k9punsj/configuration/DbConfiguration.kt b/src/main/kotlin/no/nav/k9punsj/configuration/DbConfiguration.kt
deleted file mode 100644
index d832c3af2..000000000
--- a/src/main/kotlin/no/nav/k9punsj/configuration/DbConfiguration.kt
+++ /dev/null
@@ -1,36 +0,0 @@
-package no.nav.k9punsj.configuration
-
-import org.springframework.beans.factory.annotation.Value
-import org.springframework.context.annotation.Bean
-import org.springframework.context.annotation.Configuration
-
-@Configuration
-class DbConfiguration(
- @Value("\${no.nav.db.url}") private val url: String,
- @Value("\${no.nav.db.username}") private val username: String,
- @Value("\${no.nav.db.password}") private val password: String?,
- @Value("\${no.nav.db.vault_mountpath}") private val vaultMountpath: String
-) {
-
- @Bean
- fun hikariConfig() = createHikariConfig(url, username, password)
-
- @Bean
- fun isVaultEnabled(): Boolean {
- return vaultMountpath.isNotBlank()
- }
-
- @Bean
- fun getVaultDbPath(): String {
- return vaultMountpath
- }
-
- @Bean
- fun databaseName(): String {
- return getDbNameFromUrl(url)
- }
-}
-
-fun getDbNameFromUrl(urlWithDbName: String): String {
- return Regex("(?<=/)[a-zA-Z][-_a-zA-Z\\d]*\$").find(urlWithDbName)?.value ?: ""
-}
diff --git a/src/main/kotlin/no/nav/k9punsj/configuration/HikariConfig.kt b/src/main/kotlin/no/nav/k9punsj/configuration/HikariConfig.kt
deleted file mode 100644
index e1585aff4..000000000
--- a/src/main/kotlin/no/nav/k9punsj/configuration/HikariConfig.kt
+++ /dev/null
@@ -1,26 +0,0 @@
-package no.nav.k9punsj.configuration
-
-import com.zaxxer.hikari.HikariConfig
-import com.zaxxer.hikari.HikariDataSource
-
-fun createHikariConfig(
- jdbcUrl: String,
- username: String? = null,
- password: String? = null
-) = HikariConfig().apply {
- this.jdbcUrl = jdbcUrl
- maximumPoolSize = 10
- minimumIdle = 1
- idleTimeout = 10001
- connectionTimeout = 1000
- maxLifetime = 30001
- driverClassName = "org.postgresql.Driver"
- username?.let { this.username = it }
- password?.let { this.password = it }
- isAutoCommit = true
-}
-
-fun hikariConfig(hikariConfig: DbConfiguration): HikariDataSource {
- migrate(hikariConfig)
- return getDataSource(hikariConfig)
-}
diff --git a/src/main/kotlin/no/nav/k9punsj/configuration/Postgres.kt b/src/main/kotlin/no/nav/k9punsj/configuration/Postgres.kt
deleted file mode 100644
index 4b4739807..000000000
--- a/src/main/kotlin/no/nav/k9punsj/configuration/Postgres.kt
+++ /dev/null
@@ -1,49 +0,0 @@
-package no.nav.k9punsj.configuration
-
-import com.zaxxer.hikari.HikariDataSource
-import no.nav.vault.jdbc.hikaricp.HikariCPVaultUtil
-import org.flywaydb.core.Flyway
-import org.flywaydb.core.api.output.MigrateResult
-import java.util.Locale
-import javax.sql.DataSource
-
-enum class Role {
- Admin;
-
- override fun toString() = name.lowercase(Locale.getDefault())
-}
-
-fun getDataSource(configuration: DbConfiguration): HikariDataSource =
- if (configuration.isVaultEnabled()) {
- dataSourceFromVault(configuration, Role.Admin)
- } else {
- HikariDataSource(configuration.hikariConfig())
- }
-
-fun dataSourceFromVault(hikariConfig: DbConfiguration, role: Role): HikariDataSource =
- HikariCPVaultUtil.createHikariDataSourceWithVaultIntegration(
- hikariConfig.hikariConfig(),
- hikariConfig.getVaultDbPath(),
- "${hikariConfig.databaseName()}-$role"
- )
-
-fun migrate(configuration: DbConfiguration) =
- if (configuration.isVaultEnabled()) {
- runMigration(
- dataSourceFromVault(configuration, Role.Admin),
- "SET ROLE \'${configuration.databaseName()}-${Role.Admin}\'"
- )
- } else {
- runMigration(HikariDataSource(configuration.hikariConfig()))
- }
-
-fun loadFlyway(dataSource: DataSource, initSql: String? = null) =
- Flyway.configure()
- .locations("migreringer/")
- .dataSource(dataSource)
- .initSql(initSql)
- .load()!!
-
-fun runMigration(dataSource: DataSource, initSql: String? = null): MigrateResult? {
- return loadFlyway(dataSource, initSql).migrate()
-}
diff --git a/src/main/kotlin/no/nav/k9punsj/kafka/KafkaHendelseProducer.kt b/src/main/kotlin/no/nav/k9punsj/kafka/KafkaHendelseProducer.kt
index 86529d255..e622ce59b 100644
--- a/src/main/kotlin/no/nav/k9punsj/kafka/KafkaHendelseProducer.kt
+++ b/src/main/kotlin/no/nav/k9punsj/kafka/KafkaHendelseProducer.kt
@@ -1,13 +1,11 @@
package no.nav.k9punsj.kafka
-import no.nav.k9punsj.IkkeTestProfil
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.kafka.core.KafkaTemplate
import org.springframework.stereotype.Component
@Component
-@IkkeTestProfil
class KafkaHendelseProducer(
private val kafkaTemplate: KafkaTemplate
) : HendelseProducer {
diff --git a/src/main/kotlin/no/nav/k9punsj/tilgangskontroll/AuthenticationHandler.kt b/src/main/kotlin/no/nav/k9punsj/tilgangskontroll/AuthenticationHandler.kt
index a8c28d6ab..9e2a775e6 100644
--- a/src/main/kotlin/no/nav/k9punsj/tilgangskontroll/AuthenticationHandler.kt
+++ b/src/main/kotlin/no/nav/k9punsj/tilgangskontroll/AuthenticationHandler.kt
@@ -19,7 +19,7 @@ import org.springframework.web.reactive.function.server.ServerResponse
import org.springframework.web.reactive.function.server.buildAndAwait
@Service
-internal class AuthenticationHandler(
+class AuthenticationHandler(
multiIssuerProperties: MultiIssuerProperties
) {
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 93793f6c6..27fdcd2af 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,3 +1,14 @@
+spring:
+ datasource:
+ hikari:
+ connection-test-query: SELECT 1
+ url: ${DEFAULTDS_URL}
+ username: ${DEFAULTDS_USERNAME}
+ password: ${DEFAULTDS_PASSWORD}
+ driver-class-name: org.postgresql.Driver
+ flyway:
+ enabled: true
+
management:
health:
diskspace:
@@ -74,11 +85,6 @@ no.nav:
accepted_audience: ${APP_NAISSTS_aud}
proxyUrl:
- db:
- url: ${DEFAULTDS_URL}
- username: ${DEFAULTDS_USERNAME}
- password: ${DEFAULTDS_PASSWORD}
- vault_mountpath: ${DEFAULTDS_VAULT_MOUNTPATH}
abac:
system_user: ${SYSTEMBRUKER_USERNAME}
system_user_password: ${SYSTEMBRUKER_PASSWORD}
diff --git a/src/main/resources/migreringer/V1.01__Opprett_persontabell.sql b/src/main/resources/db/migration/V1.01__Opprett_persontabell.sql
similarity index 100%
rename from src/main/resources/migreringer/V1.01__Opprett_persontabell.sql
rename to src/main/resources/db/migration/V1.01__Opprett_persontabell.sql
diff --git a/src/main/resources/migreringer/V1.02__Opprette_mappetabell.sql b/src/main/resources/db/migration/V1.02__Opprette_mappetabell.sql
similarity index 100%
rename from src/main/resources/migreringer/V1.02__Opprette_mappetabell.sql
rename to src/main/resources/db/migration/V1.02__Opprette_mappetabell.sql
diff --git a/src/main/resources/migreringer/V1.03__Opprett_journalpost_tabell.sql b/src/main/resources/db/migration/V1.03__Opprett_journalpost_tabell.sql
similarity index 100%
rename from src/main/resources/migreringer/V1.03__Opprett_journalpost_tabell.sql
rename to src/main/resources/db/migration/V1.03__Opprett_journalpost_tabell.sql
diff --git a/src/main/resources/migreringer/V1.04__Opprett_bunke.sql b/src/main/resources/db/migration/V1.04__Opprett_bunke.sql
similarity index 100%
rename from src/main/resources/migreringer/V1.04__Opprett_bunke.sql
rename to src/main/resources/db/migration/V1.04__Opprett_bunke.sql
diff --git a/src/main/resources/migreringer/V1.05__Opprette_soknadstabell.sql b/src/main/resources/db/migration/V1.05__Opprette_soknadstabell.sql
similarity index 100%
rename from src/main/resources/migreringer/V1.05__Opprette_soknadstabell.sql
rename to src/main/resources/db/migration/V1.05__Opprette_soknadstabell.sql
diff --git a/src/main/resources/migreringer/V1.06__Legg_til_felt_soknadstabell.sql b/src/main/resources/db/migration/V1.06__Legg_til_felt_soknadstabell.sql
similarity index 100%
rename from src/main/resources/migreringer/V1.06__Legg_til_felt_soknadstabell.sql
rename to src/main/resources/db/migration/V1.06__Legg_til_felt_soknadstabell.sql
diff --git a/src/main/resources/migreringer/V1.07__Endre_felt_soknadstabell.sql b/src/main/resources/db/migration/V1.07__Endre_felt_soknadstabell.sql
similarity index 100%
rename from src/main/resources/migreringer/V1.07__Endre_felt_soknadstabell.sql
rename to src/main/resources/db/migration/V1.07__Endre_felt_soknadstabell.sql
diff --git a/src/main/resources/migreringer/V1.08__Legg_til_felt_journalpost.sql b/src/main/resources/db/migration/V1.08__Legg_til_felt_journalpost.sql
similarity index 100%
rename from src/main/resources/migreringer/V1.08__Legg_til_felt_journalpost.sql
rename to src/main/resources/db/migration/V1.08__Legg_til_felt_journalpost.sql
diff --git a/src/main/resources/migreringer/V1.09__Opprette_aksjonspunkt_tabell.sql b/src/main/resources/db/migration/V1.09__Opprette_aksjonspunkt_tabell.sql
similarity index 100%
rename from src/main/resources/migreringer/V1.09__Opprette_aksjonspunkt_tabell.sql
rename to src/main/resources/db/migration/V1.09__Opprette_aksjonspunkt_tabell.sql
diff --git a/src/main/resources/migreringer/V1.10__Endre_felt_journalpost.sql b/src/main/resources/db/migration/V1.10__Endre_felt_journalpost.sql
similarity index 100%
rename from src/main/resources/migreringer/V1.10__Endre_felt_journalpost.sql
rename to src/main/resources/db/migration/V1.10__Endre_felt_journalpost.sql
diff --git a/src/main/resources/migreringer/V1.11__Legger_til_saksnummer.sql b/src/main/resources/db/migration/V1.11__Legger_til_saksnummer.sql
similarity index 100%
rename from src/main/resources/migreringer/V1.11__Legger_til_saksnummer.sql
rename to src/main/resources/db/migration/V1.11__Legger_til_saksnummer.sql
diff --git a/src/main/resources/migreringer/V1.12__Fjern_saksnummer.sql b/src/main/resources/db/migration/V1.12__Fjern_saksnummer.sql
similarity index 100%
rename from src/main/resources/migreringer/V1.12__Fjern_saksnummer.sql
rename to src/main/resources/db/migration/V1.12__Fjern_saksnummer.sql
diff --git a/src/main/resources/migreringer/V1.13__Opprette_brev_tabell.sql b/src/main/resources/db/migration/V1.13__Opprette_brev_tabell.sql
similarity index 100%
rename from src/main/resources/migreringer/V1.13__Opprette_brev_tabell.sql
rename to src/main/resources/db/migration/V1.13__Opprette_brev_tabell.sql
diff --git a/src/main/resources/migreringer/V1.14__Oeke_bunke_ytelse_type_stoerellse.sql b/src/main/resources/db/migration/V1.14__Oeke_bunke_ytelse_type_stoerellse.sql
similarity index 100%
rename from src/main/resources/migreringer/V1.14__Oeke_bunke_ytelse_type_stoerellse.sql
rename to src/main/resources/db/migration/V1.14__Oeke_bunke_ytelse_type_stoerellse.sql
diff --git a/src/test/kotlin/no/nav/k9punsj/AbstractContainerBaseTest.kt b/src/test/kotlin/no/nav/k9punsj/AbstractContainerBaseTest.kt
new file mode 100644
index 000000000..bd7f64b82
--- /dev/null
+++ b/src/test/kotlin/no/nav/k9punsj/AbstractContainerBaseTest.kt
@@ -0,0 +1,148 @@
+package no.nav.k9punsj
+
+import com.github.kittinunf.fuel.coroutines.awaitStringResponseResult
+import com.github.kittinunf.fuel.httpGet
+import com.github.tomakehurst.wiremock.WireMockServer
+import jakarta.annotation.PostConstruct
+import kotlinx.coroutines.runBlocking
+import no.nav.helse.dusseldorf.testsupport.jws.Azure
+import no.nav.k9punsj.akjonspunkter.AksjonspunktRepository
+import no.nav.k9punsj.domenetjenester.repository.BunkeRepository
+import no.nav.k9punsj.domenetjenester.repository.MappeRepository
+import no.nav.k9punsj.domenetjenester.repository.PersonRepository
+import no.nav.k9punsj.domenetjenester.repository.SøknadRepository
+import no.nav.k9punsj.journalpost.JournalpostRepository
+import no.nav.k9punsj.wiremock.initWireMock
+import no.nav.k9punsj.wiremock.saksbehandlerAccessToken
+import org.assertj.core.api.Assertions.assertThat
+import org.junit.jupiter.api.AfterAll
+import org.junit.jupiter.api.BeforeAll
+import org.junit.jupiter.api.Test
+import org.junit.jupiter.api.TestInstance
+import org.junit.jupiter.api.extension.ExtendWith
+import org.slf4j.LoggerFactory
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient
+import org.springframework.boot.test.context.SpringBootTest
+import org.springframework.jdbc.core.JdbcTemplate
+import org.springframework.kafka.test.context.EmbeddedKafka
+import org.springframework.test.annotation.DirtiesContext
+import org.springframework.test.context.ActiveProfiles
+import org.springframework.test.context.junit.jupiter.SpringExtension
+import org.springframework.test.jdbc.JdbcTestUtils
+import org.springframework.test.web.reactive.server.WebTestClient
+import org.testcontainers.containers.PostgreSQLContainer
+import java.net.URI
+import kotlin.concurrent.thread
+
+
+private class PostgreSQLContainer12 : PostgreSQLContainer("postgres:12.2-alpine")
+
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
+@DirtiesContext
+@SpringBootTest(
+ classes = [K9PunsjApplication::class],
+ webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT
+)
+@ExtendWith(SpringExtension::class)
+@AutoConfigureWebTestClient
+@ActiveProfiles("test")
+@EmbeddedKafka
+abstract class AbstractContainerBaseTest {
+
+ private lateinit var postgreSQLContainer12: PostgreSQLContainer12
+
+ lateinit var wireMockServer: WireMockServer
+
+ @Autowired
+ protected lateinit var webTestClient: WebTestClient
+
+ @Autowired
+ lateinit var jdbcTemplate: JdbcTemplate
+
+ init {
+ val threads = mutableListOf()
+ thread {
+ PostgreSQLContainer12().apply {
+ // Cloud SQL har wal_level = 'logical' på grunn av flagget cloudsql.logical_decoding i
+ // naiserator.yaml. Vi må sette det samme lokalt for at flyway migrering skal fungere.
+ withCommand("postgres", "-c", "wal_level=logical")
+ start()
+ System.setProperty("spring.datasource.url", jdbcUrl)
+ System.setProperty("spring.datasource.username", username)
+ System.setProperty("spring.datasource.password", password)
+ }
+ }.also { threads.add(it) }
+
+ threads.forEach { it.join() }
+
+ wireMockServer = initWireMock(rootDirectory = "src/test/resources")
+
+ MockConfiguration.config(
+ wireMockServer = wireMockServer,
+ port = 8085,
+ azureV2Url = lokaltKjørendeAzureV2OrNull()
+ ).forEach { t, u ->
+ System.setProperty(t, u)
+ }
+ }
+
+ @PostConstruct
+ fun setupRestServiceServers() {
+ }
+
+ @BeforeAll
+ fun setup() {
+ cleanUpDB()
+ }
+
+ @AfterAll
+ fun opprydning() {
+ wireMockServer.stop()
+ cleanUpDB()
+ }
+
+ @Test
+ fun contextLoads(): Unit = runBlocking {
+ assertThat(webTestClient).isNotNull
+ healthCheck()
+ }
+
+ companion object {
+ private val logger = LoggerFactory.getLogger(AbstractContainerBaseTest::class.java)
+ val saksbehandlerAuthorizationHeader = "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}"
+
+ fun lokaltKjørendeAzureV2OrNull(): URI? {
+ val potensiellUrl = URI("http://localhost:8100/v2.0")
+ val kjørerLokalt = runBlocking {
+ val (_, response, _) = "$potensiellUrl/.well-known/openid-configuration"
+ .httpGet()
+ .timeout(200)
+ .awaitStringResponseResult()
+ response.statusCode == 200
+ }
+ return when (kjørerLokalt) {
+ true -> potensiellUrl
+ false -> null
+ }
+ }
+ }
+
+ protected fun cleanUpDB() {
+ JdbcTestUtils.deleteFromTables(jdbcTemplate, SøknadRepository.SØKNAD_TABLE)
+ JdbcTestUtils.deleteFromTables(jdbcTemplate, BunkeRepository.BUNKE_TABLE)
+ JdbcTestUtils.deleteFromTables(jdbcTemplate, MappeRepository.MAPPE_TABLE)
+ JdbcTestUtils.deleteFromTables(jdbcTemplate, PersonRepository.PERSON_TABLE)
+ JdbcTestUtils.deleteFromTables(jdbcTemplate, AksjonspunktRepository.AKSJONSPUNKT_TABLE)
+ JdbcTestUtils.deleteFromTables(jdbcTemplate, JournalpostRepository.JOURNALPOST_TABLE)
+ }
+
+ fun healthCheck() {
+ webTestClient
+ .get()
+ .uri { it.path("/internal/actuator/info").build() }
+ .exchange()
+ .expectStatus().isOk
+ .expectBody(String::class.java).isEqualTo("{}")
+ }
+}
diff --git a/src/test/kotlin/no/nav/k9punsj/K9PunsjApplicationTests.kt b/src/test/kotlin/no/nav/k9punsj/K9PunsjApplicationTests.kt
index 4aabd1bee..e0d57d9b2 100644
--- a/src/test/kotlin/no/nav/k9punsj/K9PunsjApplicationTests.kt
+++ b/src/test/kotlin/no/nav/k9punsj/K9PunsjApplicationTests.kt
@@ -1,162 +1,162 @@
package no.nav.k9punsj
import kotlinx.coroutines.runBlocking
-import no.nav.helse.dusseldorf.testsupport.jws.Azure
-import no.nav.k9punsj.util.WebClientUtils.awaitBodyWithType
-import no.nav.k9punsj.util.WebClientUtils.awaitStatusWithBody
-import no.nav.k9punsj.util.WebClientUtils.awaitStatuscode
import no.nav.k9punsj.wiremock.JournalpostIds
-import no.nav.k9punsj.wiremock.saksbehandlerAccessToken
import org.junit.jupiter.api.Assertions.assertArrayEquals
-import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
-import org.skyscreamer.jsonassert.JSONAssert
import org.springframework.core.io.ClassPathResource
import org.springframework.http.HttpHeaders
-import org.springframework.http.HttpStatus
-class K9PunsjApplicationTests {
+class K9PunsjApplicationTests : AbstractContainerBaseTest() {
- private val saksbehandlerAuthorizationHeader = "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}"
private val dummyPdf = ClassPathResource("__files/dummy_soknad.pdf").inputStream.readBytes()
- val client = TestSetup.client
-
@Test
fun `Endepunkt brukt for isReady og isAlive fungerer`(): Unit = runBlocking {
- val httpStatus =
- client.get().uri {
- it.pathSegment("internal", "actuator", "info").build()
- }.awaitStatuscode()
-
- assertEquals(HttpStatus.OK, httpStatus)
+ webTestClient.get()
+ .uri { it.path("/internal/actuator/health").build() }
+ .exchange()
+ .expectStatus().isOk
+ .expectBody()
+ .json(
+ """
+ {
+ "status": "UP"
+ }
+ """.trimIndent()
+ )
}
@Test
fun `Hente et dokument fra Journalpost uten credentials feiler`(): Unit = runBlocking {
- val httpStatus = client.get().uri {
- it.pathSegment("api", "journalpost", "1", "dokument", "1").build()
- }.awaitStatuscode()
-
- assertEquals(HttpStatus.UNAUTHORIZED, httpStatus)
+ webTestClient.get()
+ .uri { it.path("/api/journalpost/1/dokument/1").build() }
+ .exchange()
+ .expectStatus().isUnauthorized
}
@Test
fun `Hente et dokument fra Journalpost fungerer`(): Unit = runBlocking {
- val (httpStatus, body) = client.get().uri {
- it.pathSegment("api", "journalpost", JournalpostIds.Ok, "dokument", "1").build()
- }.header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader).awaitStatusWithBody()
-
- assertEquals(HttpStatus.OK, httpStatus)
- assertArrayEquals(body, dummyPdf)
+ webTestClient.get()
+ .uri { it.path("/api/journalpost/${JournalpostIds.Ok}/dokument/1").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .exchange()
+ .expectStatus().isOk
+ .expectBody()
+ .consumeWith {
+ assertArrayEquals(it.responseBody, dummyPdf)
+ }
}
@Test
fun `Hente et dokument fra Journalpost som ikke finnes håndteres`(): Unit = runBlocking {
- val httpStatus = client.get().uri {
- it.pathSegment("api", "journalpost", JournalpostIds.FinnesIkke, "dokument", "1").build()
- }.header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader).awaitStatuscode()
-
- assertEquals(HttpStatus.NOT_FOUND, httpStatus)
+ webTestClient.get()
+ .uri { it.path("/api/journalpost/${JournalpostIds.FinnesIkke}/dokument/1").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .exchange()
+ .expectStatus().isNotFound
}
@Test
fun `Hente et dokument fra Journalpost uten tilgang håndteres`(): Unit = runBlocking {
- val httpStatus = client.get().uri {
- it.pathSegment("api", "journalpost", JournalpostIds.AbacError, "dokument", "1").build()
- }.header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader).awaitStatuscode()
-
- assertEquals(HttpStatus.FORBIDDEN, httpStatus)
+ webTestClient.get()
+ .uri { it.path("/api/journalpost/${JournalpostIds.AbacError}/dokument/1").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .exchange()
+ .expectStatus().isForbidden
}
@Test
fun `Hente journalpostinfo fungerer`(): Unit = runBlocking {
- val body: String = client.get().uri {
- it.pathSegment("api", "journalpost", "1").build()
- }.header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader).awaitBodyWithType()
- JSONAssert.assertEquals(
- """{
- "journalpostId": "1",
- "norskIdent": "29099000129",
- "dokumenter": [
- {
- "dokumentId": "470164680"
- },
+ webTestClient.get()
+ .uri { it.path("/api/journalpost/1").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .exchange()
+ .expectStatus().isOk
+ .expectBody()
+ .json(
+ """
{
- "dokumentId": "470164681"
+ "journalpostId": "1",
+ "norskIdent": "29099000129",
+ "dokumenter": [
+ {
+ "dokumentId": "470164680"
+ },
+ {
+ "dokumentId": "470164681"
+ }
+ ],
+ "venter": null,
+ "punsjInnsendingType": null,
+ "kanSendeInn": true,
+ "erSaksbehandler": true,
+ "journalpostStatus": "MOTTATT",
+ "kanOpprettesJournalføringsoppgave": true,
+ "kanKopieres": true,
+ "gosysoppgaveId": null,
+ "erFerdigstilt": false
}
- ],
- "venter": null,
- "punsjInnsendingType": null,
- "kanSendeInn": true,
- "erSaksbehandler": true,
- "journalpostStatus": "MOTTATT",
- "kanOpprettesJournalføringsoppgave": true,
- "kanKopieres": true,
- "gosysoppgaveId": null,
- "erFerdigstilt": false
- }
- """.trimIndent(),
- body,
- true
- )
+ """.trimIndent()
+ )
}
@Test
fun `Hente journalpostinfo for ikke eksisterende journalpost håndteres`(): Unit = runBlocking {
- val httpStatus = client.get().uri {
- it.pathSegment("api", "journalpost", JournalpostIds.FinnesIkke).build()
- }.header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader).awaitStatuscode()
-
- assertEquals(HttpStatus.NOT_FOUND, httpStatus)
+ webTestClient.get()
+ .uri { it.path("/api/journalpost/${JournalpostIds.FinnesIkke}").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .exchange()
+ .expectStatus().isNotFound
}
@Test
fun `Hente journalpostinfo på journalpost uten tilgang på journalpostnivå håndteres`(): Unit = runBlocking {
- val httpStatus = client.get().uri {
- it.pathSegment("api", "journalpost", JournalpostIds.AbacError).build()
- }.header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader).awaitStatuscode()
-
- assertEquals(HttpStatus.FORBIDDEN, httpStatus)
+ webTestClient.get()
+ .uri { it.path("/api/journalpost/${JournalpostIds.AbacError}").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .exchange()
+ .expectStatus().isForbidden
}
@Test
fun `Hente journalpostinfo på journalpost uten tilgang på alle dokumenter håndteres`(): Unit = runBlocking {
- val httpStatus = client.get().uri {
- it.pathSegment("api", "journalpost", JournalpostIds.IkkeKomplettTilgang).build()
- }.header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader).awaitStatuscode()
-
- assertEquals(HttpStatus.FORBIDDEN, httpStatus)
+ webTestClient.get()
+ .uri { it.path("/api/journalpost/${JournalpostIds.IkkeKomplettTilgang}").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .exchange()
+ .expectStatus().isForbidden
}
@Test
fun `journalposter med status ferdigstilt eller journalfort for erFerdigstilt true`(): Unit = runBlocking {
- val body: String = client.get().uri {
- it.pathSegment("api", "journalpost", "7523521").build()
- }.header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader).awaitBodyWithType()
-
- JSONAssert.assertEquals(
- """{
- "journalpostId": "7523521",
- "norskIdent": "02020050123",
- "dokumenter": [
+ webTestClient.get()
+ .uri { it.path("/api/journalpost/7523521").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .exchange()
+ .expectStatus().isOk
+ .expectBody()
+ .json(
+ """
{
- "dokumentId": "470164680"
- },
- ],
- "venter": null,
- "punsjInnsendingType": null,
- "kanSendeInn": true,
- "erSaksbehandler": true,
- "journalpostStatus": "FERDIGSTILT",
- "kanOpprettesJournalføringsoppgave": false,
- "kanKopieres": false,
- "gosysoppgaveId": null,
- "erFerdigstilt": true
- }
- """.trimIndent(),
- body,
- true
- )
+ "journalpostId": "7523521",
+ "norskIdent": "02020050123",
+ "dokumenter": [
+ {
+ "dokumentId": "470164680"
+ },
+ ],
+ "venter": null,
+ "punsjInnsendingType": null,
+ "kanSendeInn": true,
+ "erSaksbehandler": true,
+ "journalpostStatus": "FERDIGSTILT",
+ "kanOpprettesJournalføringsoppgave": false,
+ "kanKopieres": false,
+ "gosysoppgaveId": null,
+ "erFerdigstilt": true
+ }
+ """.trimIndent()
+ )
}
}
diff --git a/src/test/kotlin/no/nav/k9punsj/K9PunsjApplicationWithMocks.kt b/src/test/kotlin/no/nav/k9punsj/K9PunsjApplicationWithMocks.kt
index 0ad6af518..00f4342c1 100644
--- a/src/test/kotlin/no/nav/k9punsj/K9PunsjApplicationWithMocks.kt
+++ b/src/test/kotlin/no/nav/k9punsj/K9PunsjApplicationWithMocks.kt
@@ -6,7 +6,7 @@ import com.github.tomakehurst.wiremock.WireMockServer
import kotlinx.coroutines.runBlocking
import no.nav.k9punsj.journalpost.JournalpostService
import no.nav.k9punsj.journalpost.dto.PunsjJournalpost
-import no.nav.k9punsj.util.DatabaseUtil
+import no.nav.k9punsj.util.DbContainerInitializer
import no.nav.k9punsj.wiremock.initWireMock
import org.springframework.boot.Banner
import org.springframework.boot.builder.SpringApplicationBuilder
@@ -65,7 +65,7 @@ internal class K9PunsjApplicationWithMocks {
Runtime.getRuntime().addShutdownHook(
Thread {
- DatabaseUtil.embeddedPostgres.close()
+ DbContainerInitializer.postgresContainer.close()
wireMockServer.stop()
}
)
diff --git a/src/test/kotlin/no/nav/k9punsj/LokalProfil.kt b/src/test/kotlin/no/nav/k9punsj/LokalProfil.kt
index 8176f8dd4..701aaed73 100644
--- a/src/test/kotlin/no/nav/k9punsj/LokalProfil.kt
+++ b/src/test/kotlin/no/nav/k9punsj/LokalProfil.kt
@@ -1,50 +1,6 @@
package no.nav.k9punsj
-import com.zaxxer.hikari.HikariDataSource
-import no.nav.k9punsj.configuration.DbConfiguration
-import no.nav.k9punsj.configuration.getDataSource
-import org.flywaydb.core.Flyway
-import org.flywaydb.core.api.FlywayException
-import org.flywaydb.core.api.output.MigrateResult
-import org.springframework.boot.test.context.TestConfiguration
-import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Profile
-import javax.sql.DataSource
@Profile("local")
annotation class LokalProfil
-
-@TestConfiguration
-@LokalProfil
-class LokalBeans {
-
- @Bean
- fun lokalDataSource(dbConfiguration: DbConfiguration): DataSource {
- return hikariConfigLocal(dbConfiguration)
- }
-
- private fun hikariConfigLocal(hikariConfig: DbConfiguration): HikariDataSource {
- runMigrationLocal(hikariConfig)
- return getDataSource(hikariConfig)
- }
-
- private fun runMigrationLocal(configuration: DbConfiguration): MigrateResult? {
- val hikariDataSource = HikariDataSource(configuration.hikariConfig())
- val load = Flyway.configure()
- .cleanDisabled(false)
- .locations("migreringer/")
- .dataSource(hikariDataSource)
- .load()
- return try {
- load.migrate()
- } catch (fwe: FlywayException) {
- // prøver igjen siden kjører lokalt
- load.clean()
- try {
- load.migrate()
- } catch (fwe: FlywayException) {
- throw IllegalStateException("Migrering feiler", fwe)
- }
- }
- }
-}
diff --git a/src/test/kotlin/no/nav/k9punsj/MockConfiguration.kt b/src/test/kotlin/no/nav/k9punsj/MockConfiguration.kt
index a48407a61..ffd91f1f7 100644
--- a/src/test/kotlin/no/nav/k9punsj/MockConfiguration.kt
+++ b/src/test/kotlin/no/nav/k9punsj/MockConfiguration.kt
@@ -6,7 +6,7 @@ import no.nav.helse.dusseldorf.testsupport.wiremock.getAzureV2TokenUrl
import no.nav.helse.dusseldorf.testsupport.wiremock.getAzureV2WellKnownUrl
import no.nav.helse.dusseldorf.testsupport.wiremock.getNaisStsTokenUrl
import no.nav.helse.dusseldorf.testsupport.wiremock.getNaisStsWellKnownUrl
-import no.nav.k9punsj.util.DatabaseUtil
+import no.nav.k9punsj.util.DbContainerInitializer
import no.nav.k9punsj.wiremock.getAaregBaseUrl
import no.nav.k9punsj.wiremock.getDokarkivBaseUrl
import no.nav.k9punsj.wiremock.getEregBaseUrl
@@ -49,9 +49,6 @@ internal object MockConfiguration {
"SAF_HENTE_DOKUMENT_SCOPES" to "saf-client-id/.default",
"SWAGGER_SERVER_BASE_URL" to "http://localhost:$port",
"KAFKA_BOOTSTRAP_SERVERS" to "localhost:9093",
- "DEFAULTDS_USERNAME" to "postgres",
- "DEFAULTDS_PASSWORD" to "postgres",
- "DEFAULTDS_URL" to "jdbc:postgresql://localhost:${DatabaseUtil.embeddedPostgres.port}/postgres",
"DEFAULTDS_VAULT_MOUNTPATH" to "",
"NAIS_STS_TOKEN_ENDPOINT" to wireMockServer.getNaisStsTokenUrl(),
"AUDITLOGGER_ENABLED" to "false",
diff --git a/src/test/kotlin/no/nav/k9punsj/TestProfil.kt b/src/test/kotlin/no/nav/k9punsj/TestProfil.kt
deleted file mode 100644
index e977f15a0..000000000
--- a/src/test/kotlin/no/nav/k9punsj/TestProfil.kt
+++ /dev/null
@@ -1,27 +0,0 @@
-package no.nav.k9punsj
-
-import no.nav.k9punsj.kafka.HendelseProducer
-import no.nav.k9punsj.util.DatabaseUtil
-import org.springframework.boot.test.context.TestConfiguration
-import org.springframework.context.annotation.Bean
-import org.springframework.context.annotation.Profile
-import javax.sql.DataSource
-
-@Profile("test")
-annotation class TestProfil
-
-@TestConfiguration
-@TestProfil
-class TestBeans {
- @Bean
- fun testDataSource(): DataSource = DatabaseUtil.dataSource
-
- @Bean
- fun testHendelseProducer() = object : HendelseProducer {
- override fun send(topicName: String, data: String, key: String) {
- }
- override fun sendMedOnSuccess(topicName: String, data: String, key: String, onSuccess: () -> Unit) {
- onSuccess.invoke()
- }
- }
-}
diff --git a/src/test/kotlin/no/nav/k9punsj/abac/AlltidTilgangPepClient.kt b/src/test/kotlin/no/nav/k9punsj/abac/AlltidTilgangPepClient.kt
index 5fb1e33a0..c68066d40 100644
--- a/src/test/kotlin/no/nav/k9punsj/abac/AlltidTilgangPepClient.kt
+++ b/src/test/kotlin/no/nav/k9punsj/abac/AlltidTilgangPepClient.kt
@@ -1,13 +1,13 @@
package no.nav.k9punsj.abac
import no.nav.k9punsj.LokalProfil
-import no.nav.k9punsj.TestProfil
import no.nav.k9punsj.tilgangskontroll.abac.IPepClient
+import org.springframework.context.annotation.Profile
import org.springframework.stereotype.Component
@Component
-@TestProfil
@LokalProfil
+@Profile("test") // TODO Fjern denne når vi har fått ordnet opp i MockkBean for IPepClient.
internal class AlltidTilgangPepClient : IPepClient {
override suspend fun harBasisTilgang(fnr: List, urlKallet: String) = true
override suspend fun harBasisTilgang(fnr: String, urlKallet: String) = true
diff --git a/src/test/kotlin/no/nav/k9punsj/akjonspunkter/AksjonspunktRepositoryTest.kt b/src/test/kotlin/no/nav/k9punsj/akjonspunkter/AksjonspunktRepositoryTest.kt
index 6e71ef3c8..77db7cf85 100644
--- a/src/test/kotlin/no/nav/k9punsj/akjonspunkter/AksjonspunktRepositoryTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/akjonspunkter/AksjonspunktRepositoryTest.kt
@@ -1,28 +1,37 @@
package no.nav.k9punsj.akjonspunkter
import kotlinx.coroutines.runBlocking
+import no.nav.k9punsj.AbstractContainerBaseTest
import no.nav.k9punsj.fordel.FordelPunsjEventDto
+import no.nav.k9punsj.journalpost.JournalpostRepository
import no.nav.k9punsj.journalpost.dto.PunsjJournalpost
-import no.nav.k9punsj.util.DatabaseUtil
import org.assertj.core.api.Assertions
+import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
-import org.junit.jupiter.api.extension.ExtendWith
-import org.springframework.test.context.junit.jupiter.SpringExtension
-import java.util.UUID
+import org.springframework.beans.factory.annotation.Autowired
+import java.util.*
-@ExtendWith(SpringExtension::class)
-internal class AksjonspunktRepositoryTest {
+internal class AksjonspunktRepositoryTest: AbstractContainerBaseTest() {
+
+ @Autowired
+ lateinit var journalpostRepository : JournalpostRepository
+
+ @Autowired
+ lateinit var aksjonspunktRepository : AksjonspunktRepository
+
+ @BeforeEach
+ fun setUp() {
+ cleanUpDB()
+ }
@Test
fun `skal overskrive aksjonspunkt hvis det matcher på journalpostId + kode og status`(): Unit = runBlocking {
- val journalpostRepo = DatabaseUtil.getJournalpostRepo()
- val melding = FordelPunsjEventDto(aktørId = "1234567890", journalpostId = "666", type = "test", ytelse = "test")
- journalpostRepo.opprettJournalpost(PunsjJournalpost(UUID.randomUUID(), journalpostId = melding.journalpostId, aktørId = melding.aktørId))
+ val melding = FordelPunsjEventDto(aktørId = "1234567890", journalpostId = "666", type = "test", ytelse = "test")
- val aksjonspunktRepo = DatabaseUtil.getAksjonspunktRepo()
+ journalpostRepository.opprettJournalpost(PunsjJournalpost(UUID.randomUUID(), journalpostId = melding.journalpostId, aktørId = melding.aktørId))
- aksjonspunktRepo.opprettAksjonspunkt(
+ aksjonspunktRepository.opprettAksjonspunkt(
AksjonspunktEntitet(
aksjonspunktId = UUID.randomUUID().toString(),
aksjonspunktKode = AksjonspunktKode.PUNSJ,
@@ -31,10 +40,10 @@ internal class AksjonspunktRepositoryTest {
)
)
- val hentAlleAksjonspunkter = aksjonspunktRepo.hentAlleAksjonspunkter(melding.journalpostId)
+ val hentAlleAksjonspunkter = aksjonspunktRepository.hentAlleAksjonspunkter(melding.journalpostId)
Assertions.assertThat(hentAlleAksjonspunkter).hasSize(1)
- aksjonspunktRepo.opprettAksjonspunkt(
+ aksjonspunktRepository.opprettAksjonspunkt(
AksjonspunktEntitet(
aksjonspunktId = UUID.randomUUID().toString(),
aksjonspunktKode = AksjonspunktKode.PUNSJ,
@@ -43,21 +52,18 @@ internal class AksjonspunktRepositoryTest {
)
)
- val hentAlleAksjonspunkter2 = aksjonspunktRepo.hentAlleAksjonspunkter(melding.journalpostId)
+ val hentAlleAksjonspunkter2 = aksjonspunktRepository.hentAlleAksjonspunkter(melding.journalpostId)
Assertions.assertThat(hentAlleAksjonspunkter2).hasSize(1)
}
@Test
fun `skal kunne opprette ny aksjonspunkt med samme kode hvis det ligger et der fra før med annen status`(): Unit = runBlocking {
- val journalpostRepo = DatabaseUtil.getJournalpostRepo()
val melding = FordelPunsjEventDto(aktørId = "1234567891", journalpostId = "667", type = "test", ytelse = "test")
- journalpostRepo.opprettJournalpost(PunsjJournalpost(UUID.randomUUID(), journalpostId = melding.journalpostId, aktørId = melding.aktørId))
-
- val aksjonspunktRepo = DatabaseUtil.getAksjonspunktRepo()
+ journalpostRepository.opprettJournalpost(PunsjJournalpost(UUID.randomUUID(), journalpostId = melding.journalpostId, aktørId = melding.aktørId))
val aksjonspunktId = UUID.randomUUID().toString()
- aksjonspunktRepo.opprettAksjonspunkt(
+ aksjonspunktRepository.opprettAksjonspunkt(
AksjonspunktEntitet(
aksjonspunktId = aksjonspunktId,
aksjonspunktKode = AksjonspunktKode.PUNSJ,
@@ -66,12 +72,12 @@ internal class AksjonspunktRepositoryTest {
)
)
- aksjonspunktRepo.settStatus(aksjonspunktId, AksjonspunktStatus.UTFØRT)
+ aksjonspunktRepository.settStatus(aksjonspunktId, AksjonspunktStatus.UTFØRT)
- val hentAlleAksjonspunkter = aksjonspunktRepo.hentAlleAksjonspunkter(melding.journalpostId)
+ val hentAlleAksjonspunkter = aksjonspunktRepository.hentAlleAksjonspunkter(melding.journalpostId)
Assertions.assertThat(hentAlleAksjonspunkter).hasSize(1)
- aksjonspunktRepo.opprettAksjonspunkt(
+ aksjonspunktRepository.opprettAksjonspunkt(
AksjonspunktEntitet(
aksjonspunktId = UUID.randomUUID().toString(),
aksjonspunktKode = AksjonspunktKode.PUNSJ,
@@ -80,7 +86,7 @@ internal class AksjonspunktRepositoryTest {
)
)
- val hentAlleAksjonspunkter2 = aksjonspunktRepo.hentAlleAksjonspunkter(melding.journalpostId)
+ val hentAlleAksjonspunkter2 = aksjonspunktRepository.hentAlleAksjonspunkter(melding.journalpostId)
Assertions.assertThat(hentAlleAksjonspunkter2).hasSize(2)
}
}
diff --git a/src/test/kotlin/no/nav/k9punsj/akjonspunkter/AksjonspunktServiceImplTest.kt b/src/test/kotlin/no/nav/k9punsj/akjonspunkter/AksjonspunktServiceImplTest.kt
index b7c83e64d..f955283b5 100644
--- a/src/test/kotlin/no/nav/k9punsj/akjonspunkter/AksjonspunktServiceImplTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/akjonspunkter/AksjonspunktServiceImplTest.kt
@@ -1,10 +1,8 @@
package no.nav.k9punsj.akjonspunkter
-import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.module.kotlin.readValue
import kotlinx.coroutines.runBlocking
-import no.nav.k9punsj.TestBeans
-import no.nav.k9punsj.domenetjenester.PersonService
+import no.nav.k9punsj.AbstractContainerBaseTest
import no.nav.k9punsj.domenetjenester.SoknadService
import no.nav.k9punsj.domenetjenester.repository.BunkeRepository
import no.nav.k9punsj.domenetjenester.repository.MappeRepository
@@ -18,49 +16,20 @@ import no.nav.k9punsj.innsending.InnsendingClient
import no.nav.k9punsj.integrasjoner.dokarkiv.DokarkivGateway
import no.nav.k9punsj.integrasjoner.dokarkiv.SafGateway
import no.nav.k9punsj.integrasjoner.k9sak.K9SakService
-import no.nav.k9punsj.journalpost.JournalpostRepository
import no.nav.k9punsj.journalpost.JournalpostService
import no.nav.k9punsj.journalpost.dto.PunsjJournalpost
import no.nav.k9punsj.kafka.HendelseProducer
import no.nav.k9punsj.metrikker.SøknadMetrikkService
import no.nav.k9punsj.utils.objectMapper
-import no.nav.k9punsj.rest.eksternt.pdl.TestPdlService
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test
-import org.junit.jupiter.api.extension.ExtendWith
import org.mockito.ArgumentCaptor
import org.mockito.Mockito
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.mock.mockito.MockBean
-import org.springframework.test.context.ActiveProfiles
-import org.springframework.test.context.ContextConfiguration
-import org.springframework.test.context.junit.jupiter.SpringExtension
-import java.util.UUID
-
-@ExtendWith(SpringExtension::class)
-@ActiveProfiles("test")
-@ContextConfiguration(
- classes = [
- AksjonspunktServiceImpl::class,
- JournalpostRepository::class,
- JournalpostService::class,
- SafGateway::class,
- DokarkivGateway::class,
- ObjectMapper::class,
- AksjonspunktRepository::class,
- MappeRepository::class,
- BunkeRepository::class,
- SøknadRepository::class,
- SoknadService::class,
- InnsendingClient::class,
- K9SakService::class,
- PersonService::class,
- PersonRepository::class,
- TestPdlService::class,
- TestBeans::class
- ]
-)
-internal class AksjonspunktServiceImplTest {
+import java.util.*
+
+internal class AksjonspunktServiceImplTest: AbstractContainerBaseTest() {
@MockBean
private lateinit var hendelseProducer: HendelseProducer
diff --git a/src/test/kotlin/no/nav/k9punsj/brev/BrevRoutesTest.kt b/src/test/kotlin/no/nav/k9punsj/brev/BrevRoutesConfigurationTest.kt
similarity index 60%
rename from src/test/kotlin/no/nav/k9punsj/brev/BrevRoutesTest.kt
rename to src/test/kotlin/no/nav/k9punsj/brev/BrevRoutesConfigurationTest.kt
index acff869fc..9a857752c 100644
--- a/src/test/kotlin/no/nav/k9punsj/brev/BrevRoutesTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/brev/BrevRoutesConfigurationTest.kt
@@ -1,34 +1,27 @@
package no.nav.k9punsj.brev
-import io.mockk.junit5.MockKExtension
import kotlinx.coroutines.runBlocking
-import no.nav.helse.dusseldorf.testsupport.jws.Azure
import no.nav.k9.formidling.kontrakt.kodeverk.FagsakYtelseType
-import no.nav.k9punsj.TestSetup
+import no.nav.k9punsj.AbstractContainerBaseTest
+import no.nav.k9punsj.brev.BrevRoutes.Urls.BestillBrev
import no.nav.k9punsj.brev.dto.DokumentbestillingDto
import no.nav.k9punsj.brev.dto.MottakerDto
import no.nav.k9punsj.fordel.PunsjInnsendingType
+import no.nav.k9punsj.journalpost.JournalpostRepository
import no.nav.k9punsj.journalpost.dto.PunsjJournalpost
-import no.nav.k9punsj.utils.objectMapper
-import no.nav.k9punsj.util.DatabaseUtil
import no.nav.k9punsj.util.IdGenerator
-import no.nav.k9punsj.wiremock.saksbehandlerAccessToken
-import org.assertj.core.api.Assertions.assertThat
+import no.nav.k9punsj.utils.objectMapper
import org.junit.jupiter.api.Test
-import org.junit.jupiter.api.extension.ExtendWith
-import org.springframework.http.HttpStatus
+import org.springframework.beans.factory.annotation.Autowired
import org.springframework.http.MediaType
-import org.springframework.test.context.junit.jupiter.SpringExtension
import org.springframework.web.reactive.function.BodyInserters
-import org.springframework.web.reactive.function.client.awaitBodyOrNull
-import org.springframework.web.reactive.function.client.awaitExchange
import java.util.*
-@ExtendWith(SpringExtension::class, MockKExtension::class)
-internal class BrevRoutesTest {
- private val client = TestSetup.client
- private val saksbehandlerAuthorizationHeader = "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}"
+internal class BrevRoutesConfigurationTest : AbstractContainerBaseTest() {
+
+ @Autowired
+ lateinit var journalpostRepository: JournalpostRepository
@Test
fun `Bestill brev og send til k9-formidling på kafka`(): Unit = runBlocking {
@@ -43,15 +36,14 @@ internal class BrevRoutesTest {
val dokumentBestillingDtoJson = objectMapper().writeValueAsString(dokumentbestillingDto)
- val (httpStatus, body) = client.post()
- .uri { it.path("api/brev/bestill").build() }
+ webTestClient.post()
+ .uri { it.path("/api${BestillBrev}").build() }
.header("Authorization", saksbehandlerAuthorizationHeader)
.contentType(MediaType.APPLICATION_JSON)
.body(BodyInserters.fromValue(dokumentBestillingDtoJson))
- .awaitExchange { it.statusCode() to it.awaitBodyOrNull() }
-
- assertThat(body).isNotNull
- assertThat(httpStatus).isEqualTo(HttpStatus.OK)
+ .exchange()
+ .expectStatus().isOk
+ .expectBody().consumeWith { it !== null }
}
private suspend fun lagJournalpost(): String {
@@ -65,7 +57,7 @@ internal class BrevRoutesTest {
type = PunsjInnsendingType.INNTEKTSMELDING_UTGÅTT.kode
)
- DatabaseUtil.getJournalpostRepo().lagre(jp) {
+ journalpostRepository.lagre(jp) {
jp
}
return journalpostId
diff --git a/src/test/kotlin/no/nav/k9punsj/brev/BrevServiceImplTest.kt b/src/test/kotlin/no/nav/k9punsj/brev/BrevServiceImplTest.kt
index 8f6cd19c6..82ba62a8a 100644
--- a/src/test/kotlin/no/nav/k9punsj/brev/BrevServiceImplTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/brev/BrevServiceImplTest.kt
@@ -6,41 +6,24 @@ import no.nav.k9.formidling.kontrakt.hendelse.Dokumentbestilling
import no.nav.k9.formidling.kontrakt.kodeverk.DokumentMalType
import no.nav.k9.formidling.kontrakt.kodeverk.FagsakYtelseType
import no.nav.k9.formidling.kontrakt.kodeverk.IdType
-import no.nav.k9punsj.TestBeans
+import no.nav.k9punsj.AbstractContainerBaseTest
import no.nav.k9punsj.brev.dto.DokumentbestillingDto
import no.nav.k9punsj.brev.dto.MottakerDto
import no.nav.k9punsj.domenetjenester.PersonService
import no.nav.k9punsj.felles.dto.Person
-import no.nav.k9punsj.journalpost.JournalpostRepository
import no.nav.k9punsj.journalpost.JournalpostService
import no.nav.k9punsj.kafka.HendelseProducer
-import no.nav.k9punsj.utils.objectMapper
import no.nav.k9punsj.util.IdGenerator
+import no.nav.k9punsj.utils.objectMapper
import org.assertj.core.api.Assertions
import org.junit.jupiter.api.Test
-import org.junit.jupiter.api.extension.ExtendWith
import org.mockito.ArgumentCaptor
import org.mockito.Mockito
import org.springframework.beans.factory.annotation.Autowired
-import org.springframework.boot.test.context.SpringBootTest
import org.springframework.boot.test.mock.mockito.MockBean
-import org.springframework.test.context.ActiveProfiles
-import org.springframework.test.context.ContextConfiguration
-import org.springframework.test.context.TestPropertySource
-import org.springframework.test.context.junit.jupiter.SpringExtension
-
-@ExtendWith(SpringExtension::class)
-@ActiveProfiles("test")
-@SpringBootTest
-@TestPropertySource(properties = ["spring.config.location = classpath:application.yml"])
-@ContextConfiguration(
- classes = [
- JournalpostRepository::class,
- BrevServiceImpl::class,
- TestBeans::class
- ]
-)
-internal class BrevServiceImplTest {
+
+
+internal class BrevServiceImplTest: AbstractContainerBaseTest() {
@MockBean
private lateinit var hendelseProducer: HendelseProducer
diff --git "a/src/test/kotlin/no/nav/k9punsj/db/repository/S\303\270knadRepositoryTest.kt" "b/src/test/kotlin/no/nav/k9punsj/db/repository/S\303\270knadRepositoryTest.kt"
index 9cf6211fd..2047eea00 100644
--- "a/src/test/kotlin/no/nav/k9punsj/db/repository/S\303\270knadRepositoryTest.kt"
+++ "b/src/test/kotlin/no/nav/k9punsj/db/repository/S\303\270knadRepositoryTest.kt"
@@ -1,20 +1,23 @@
package no.nav.k9punsj.db.repository
import kotlinx.coroutines.runBlocking
+import no.nav.k9punsj.AbstractContainerBaseTest
+import no.nav.k9punsj.domenetjenester.repository.BunkeRepository
+import no.nav.k9punsj.domenetjenester.repository.MappeRepository
+import no.nav.k9punsj.domenetjenester.repository.PersonRepository
+import no.nav.k9punsj.domenetjenester.repository.SøknadRepository
import no.nav.k9punsj.felles.FagsakYtelseType
import no.nav.k9punsj.felles.dto.SøknadEntitet
-import no.nav.k9punsj.util.DatabaseUtil
import no.nav.k9punsj.util.LesFraFilUtil
import org.assertj.core.api.Assertions.assertThat
-import org.junit.jupiter.api.AfterEach
+import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
-import org.junit.jupiter.api.extension.ExtendWith
-import org.springframework.test.context.junit.jupiter.SpringExtension
+import org.springframework.beans.factory.annotation.Autowired
import java.time.LocalDate
import java.util.*
-@ExtendWith(SpringExtension::class)
-internal class SøknadRepositoryTest {
+
+internal class SøknadRepositoryTest: AbstractContainerBaseTest() {
private val standardIdent = "01122334410"
private val standardAktørId = "1000000000000"
@@ -25,17 +28,21 @@ internal class SøknadRepositoryTest {
private val journalpostid1 = "29486889"
private val journalpostid2 = "29486887"
- val søknadRepository = DatabaseUtil.getSøknadRepo()
- val personRepository = DatabaseUtil.getPersonRepo()
- val bunkeRepository = DatabaseUtil.getBunkeRepo()
- val mappeRepo = DatabaseUtil.getMappeRepo()
-
- @AfterEach
- internal fun tearDown() {
- DatabaseUtil.cleanSøknadRepo()
- DatabaseUtil.cleanBunkeRepo()
- DatabaseUtil.cleanMappeRepo()
- DatabaseUtil.cleanPersonRepo()
+ @Autowired
+ lateinit var personRepository: PersonRepository
+
+ @Autowired
+ lateinit var mappeRepo: MappeRepository
+
+ @Autowired
+ lateinit var søknadRepository: SøknadRepository
+
+ @Autowired
+ lateinit var bunkeRepository: BunkeRepository
+
+ @BeforeEach
+ fun setUp() {
+ cleanUpDB()
}
@Test
diff --git a/src/test/kotlin/no/nav/k9punsj/domenetjenester/SoknadIntegrasjonsTest.kt b/src/test/kotlin/no/nav/k9punsj/domenetjenester/SoknadIntegrasjonsTest.kt
index 5f2c469e7..ab5027952 100644
--- a/src/test/kotlin/no/nav/k9punsj/domenetjenester/SoknadIntegrasjonsTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/domenetjenester/SoknadIntegrasjonsTest.kt
@@ -1,38 +1,27 @@
package no.nav.k9punsj.domenetjenester
-import io.mockk.junit5.MockKExtension
import kotlinx.coroutines.runBlocking
-import no.nav.helse.dusseldorf.testsupport.jws.Azure
-import no.nav.k9punsj.TestSetup
+import no.nav.k9punsj.AbstractContainerBaseTest
import no.nav.k9punsj.felles.IdentOgJournalpost
import no.nav.k9punsj.felles.dto.SendSøknad
+import no.nav.k9punsj.journalpost.JournalpostRepository
import no.nav.k9punsj.omsorgspengerutbetaling.OmsorgspengerutbetalingSøknadDto
-import no.nav.k9punsj.openapi.OasSoknadsfeil
-import no.nav.k9punsj.util.DatabaseUtil
import no.nav.k9punsj.util.IdGenerator
import no.nav.k9punsj.util.LesFraFilUtil
import no.nav.k9punsj.util.SøknadJson
-import no.nav.k9punsj.util.WebClientUtils.postAndAssert
-import no.nav.k9punsj.util.WebClientUtils.postAndAssertAwaitWithStatusAndBody
-import no.nav.k9punsj.util.WebClientUtils.putAndAssert
-import no.nav.k9punsj.wiremock.saksbehandlerAccessToken
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
-import org.junit.jupiter.api.extension.ExtendWith
+import org.springframework.beans.factory.annotation.Autowired
import org.springframework.http.HttpStatus
-import org.springframework.test.context.junit.jupiter.SpringExtension
-import org.springframework.web.reactive.function.BodyInserters
import java.net.URI
import kotlin.math.abs
import kotlin.random.Random
-@ExtendWith(SpringExtension::class, MockKExtension::class)
-internal class SoknadIntegrasjonsTest {
+internal class SoknadIntegrasjonsTest : AbstractContainerBaseTest() {
- private val client = TestSetup.client
- private val saksbehandlerAuthorizationHeader = "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}"
- private val journalpostRepository = DatabaseUtil.getJournalpostRepo()
+ @Autowired
+ lateinit var journalpostRepository: JournalpostRepository
private val api = "api"
private val søknadTypeUri = "omsorgspengerutbetaling-soknad"
@@ -45,15 +34,7 @@ internal class SoknadIntegrasjonsTest {
tilpasserSøknadsMalTilTesten(soeknadJson, norskIdent, journalpostid)
val soeknad = opprettOgLagreSoeknad(soeknadJson = soeknadJson, ident = norskIdent, journalpostid)
- client.postAndAssertAwaitWithStatusAndBody(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- navNorskIdentHeader = null,
- assertStatus = HttpStatus.ACCEPTED,
- requestBody = BodyInserters.fromValue(soeknadJson),
- api,
- søknadTypeUri,
- "valider"
- )
+ validerSøknad(soeknadJson)
val søknadId = soeknad.soeknadId
val sendSøknad = SendSøknad(norskIdent = norskIdent, soeknadId = søknadId)
@@ -64,23 +45,13 @@ internal class SoknadIntegrasjonsTest {
assertThat(kanSendeInn).isTrue
// sender en søknad
- val body = client.postAndAssertAwaitWithStatusAndBody(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- navNorskIdentHeader = null,
- assertStatus = HttpStatus.ACCEPTED,
- requestBody = BodyInserters.fromValue(sendSøknad),
- api,
- søknadTypeUri,
- "send"
- )
-
- Assertions.assertTrue(body.feil.isNullOrEmpty())
+ sendInnSøknad(sendSøknad)
}
private fun tilpasserSøknadsMalTilTesten(
søknad: MutableMap,
norskIdent: String,
- journalpostId: String? = null
+ journalpostId: String? = null,
) {
søknad.replace("soekerId", norskIdent)
if (journalpostId != null) søknad.replace("journalposter", arrayOf(journalpostId))
@@ -89,39 +60,60 @@ internal class SoknadIntegrasjonsTest {
private suspend fun opprettOgLagreSoeknad(
soeknadJson: SøknadJson,
ident: String,
- journalpostid: String = IdGenerator.nesteId()
+ journalpostid: String = IdGenerator.nesteId(),
): OmsorgspengerutbetalingSøknadDto {
val innsendingForOpprettelseAvMappe = IdentOgJournalpost(ident, journalpostid)
// oppretter en søknad
- val resPost = client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(innsendingForOpprettelseAvMappe),
- api,
- søknadTypeUri
- )
-
- val location = resPost.headers().asHttpHeaders().location
- Assertions.assertNotNull(location)
+ val location = opprettNySøknad(innsendingForOpprettelseAvMappe)
leggerPåNySøknadId(soeknadJson, location)
// fyller ut en søknad
- val søknadDtoFyltUt = client.putAndAssert(
- norskIdent = null,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- requestBody = BodyInserters.fromValue(soeknadJson),
- api,
- søknadTypeUri,
- "oppdater"
- )
+ val søknadDtoFyltUt = oppdaterSøknad(soeknadJson)
+ .expectStatus().isOk
+ .expectBody(OmsorgspengerutbetalingSøknadDto::class.java)
+ .returnResult().responseBody!!
Assertions.assertNotNull(søknadDtoFyltUt.soekerId)
+
return søknadDtoFyltUt
}
+ private fun opprettNySøknad(innsendingForOpprettelseAvMappe: IdentOgJournalpost): URI = webTestClient.post()
+ .uri { it.path("/$api/$søknadTypeUri").build() }
+ .header("Authorization", saksbehandlerAuthorizationHeader)
+ .bodyValue(innsendingForOpprettelseAvMappe)
+ .exchange()
+ .expectStatus().isCreated
+ .expectHeader().exists("Location")
+ .expectBody()
+ .returnResult().responseHeaders.location!!
+
+ private fun validerSøknad(soeknadJson: SøknadJson) {
+ webTestClient.post()
+ .uri { it.path("/$api/$søknadTypeUri/valider").build() }
+ .header("Authorization", saksbehandlerAuthorizationHeader)
+ .bodyValue(soeknadJson)
+ .exchange()
+ .expectStatus().isEqualTo(HttpStatus.ACCEPTED)
+ }
+
+ private fun sendInnSøknad(sendSøknad: SendSøknad) {
+ webTestClient.post()
+ .uri { it.path("/$api/$søknadTypeUri/send").build() }
+ .header("Authorization", saksbehandlerAuthorizationHeader)
+ .bodyValue(sendSøknad)
+ .exchange()
+ .expectStatus().isAccepted
+ }
+
+ private fun oppdaterSøknad(soeknadJson: SøknadJson) = webTestClient.put()
+ .uri { it.path("/$api/$søknadTypeUri/oppdater").build() }
+ .header("Authorization", saksbehandlerAuthorizationHeader)
+ .bodyValue(soeknadJson)
+ .exchange()
+
private fun leggerPåNySøknadId(søknadFraFrontend: MutableMap, location: URI?) {
val path = location?.path
val søknadId = path?.substring(path.lastIndexOf('/'))
diff --git a/src/test/kotlin/no/nav/k9punsj/felles/PeriodeDtoTest.kt b/src/test/kotlin/no/nav/k9punsj/felles/PeriodeDtoTest.kt
index 6deb8b44b..59d4764a7 100644
--- a/src/test/kotlin/no/nav/k9punsj/felles/PeriodeDtoTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/felles/PeriodeDtoTest.kt
@@ -15,7 +15,7 @@ class PeriodeDtoTest {
tom = null
).utledDato()
- assertThat(periodeEldreEnn2År.fom).isEqualTo(LocalDate.parse("2022-01-01"))
+ assertThat(periodeEldreEnn2År.fom).isEqualTo(LocalDate.parse("2023-01-01"))
}
@Test
@@ -25,7 +25,7 @@ class PeriodeDtoTest {
tom = null
).utledDato()
- assertThat(periodeNøyaktig2ÅrSiden.fom).isEqualTo(LocalDate.parse("2022-01-01"))
+ assertThat(periodeNøyaktig2ÅrSiden.fom).isEqualTo(LocalDate.parse("2023-01-01"))
}
@Test
diff --git a/src/test/kotlin/no/nav/k9punsj/fordel/FordelKafkaTest.kt b/src/test/kotlin/no/nav/k9punsj/fordel/FordelKafkaTest.kt
index be484e4e8..7e16c705c 100644
--- a/src/test/kotlin/no/nav/k9punsj/fordel/FordelKafkaTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/fordel/FordelKafkaTest.kt
@@ -1,65 +1,28 @@
package no.nav.k9punsj.fordel
-import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.module.kotlin.readValue
-import io.micrometer.core.instrument.MockClock
-import io.micrometer.core.instrument.simple.SimpleMeterRegistry
import kotlinx.coroutines.runBlocking
-import no.nav.k9punsj.TestBeans
+import no.nav.k9punsj.AbstractContainerBaseTest
import no.nav.k9punsj.akjonspunkter.AksjonspunktKode
-import no.nav.k9punsj.akjonspunkter.AksjonspunktRepository
import no.nav.k9punsj.akjonspunkter.AksjonspunktServiceImpl
import no.nav.k9punsj.akjonspunkter.AksjonspunktStatus
-import no.nav.k9punsj.domenetjenester.PersonService
import no.nav.k9punsj.domenetjenester.SoknadService
-import no.nav.k9punsj.domenetjenester.repository.PersonRepository
-import no.nav.k9punsj.domenetjenester.repository.SøknadRepository
import no.nav.k9punsj.innsending.InnsendingClient
import no.nav.k9punsj.integrasjoner.dokarkiv.DokarkivGateway
import no.nav.k9punsj.integrasjoner.dokarkiv.SafGateway
-import no.nav.k9punsj.journalpost.JournalpostRepository
-import no.nav.k9punsj.journalpost.JournalpostService
import no.nav.k9punsj.journalpost.dto.PunsjJournalpost
import no.nav.k9punsj.kafka.HendelseProducer
import no.nav.k9punsj.utils.objectMapper
-import no.nav.k9punsj.rest.eksternt.pdl.TestPdlService
import org.assertj.core.api.Assertions
import org.junit.jupiter.api.Test
-import org.junit.jupiter.api.extension.ExtendWith
import org.mockito.ArgumentCaptor
import org.mockito.Mockito.doNothing
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.mock.mockito.MockBean
-import org.springframework.test.context.ActiveProfiles
-import org.springframework.test.context.ContextConfiguration
-import org.springframework.test.context.junit.jupiter.SpringExtension
-import java.util.UUID
-
-@ExtendWith(SpringExtension::class)
-@ActiveProfiles("test")
-@ContextConfiguration(
- classes = [
- TestBeans::class,
- HendelseMottaker::class,
- AksjonspunktServiceImpl::class,
- JournalpostRepository::class,
- JournalpostService::class,
- SafGateway::class,
- DokarkivGateway::class,
- ObjectMapper::class,
- AksjonspunktRepository::class,
- PersonService::class,
- PersonRepository::class,
- TestPdlService::class,
- SøknadRepository::class,
- AksjonspunktServiceImpl::class,
- SoknadService::class,
- InnsendingClient::class,
- SimpleMeterRegistry::class,
- MockClock::class
- ]
-)
-internal class FordelKafkaTest {
+import java.util.*
+
+
+internal class FordelKafkaTest: AbstractContainerBaseTest() {
@MockBean
private lateinit var hendelseProducer: HendelseProducer
diff --git a/src/test/kotlin/no/nav/k9punsj/fordel/HendelseMottakerTest.kt b/src/test/kotlin/no/nav/k9punsj/fordel/HendelseMottakerTest.kt
index ba71c0c0f..568f4151b 100644
--- a/src/test/kotlin/no/nav/k9punsj/fordel/HendelseMottakerTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/fordel/HendelseMottakerTest.kt
@@ -1,62 +1,29 @@
package no.nav.k9punsj.fordel
-import com.fasterxml.jackson.databind.ObjectMapper
import io.micrometer.core.instrument.simple.SimpleMeterRegistry
import kotlinx.coroutines.runBlocking
-import no.nav.k9punsj.TestBeans
+import no.nav.k9punsj.AbstractContainerBaseTest
import no.nav.k9punsj.akjonspunkter.AksjonspunktRepository
import no.nav.k9punsj.akjonspunkter.AksjonspunktService
-import no.nav.k9punsj.akjonspunkter.AksjonspunktServiceImpl
import no.nav.k9punsj.akjonspunkter.AksjonspunktStatus
-import no.nav.k9punsj.domenetjenester.PersonService
import no.nav.k9punsj.domenetjenester.SoknadService
-import no.nav.k9punsj.domenetjenester.repository.PersonRepository
-import no.nav.k9punsj.domenetjenester.repository.SøknadRepository
import no.nav.k9punsj.innsending.InnsendingClient
import no.nav.k9punsj.integrasjoner.dokarkiv.DokarkivGateway
import no.nav.k9punsj.integrasjoner.dokarkiv.SafGateway
-import no.nav.k9punsj.journalpost.JournalpostRepository
import no.nav.k9punsj.journalpost.JournalpostService
import no.nav.k9punsj.journalpost.dto.PunsjJournalpost
import no.nav.k9punsj.metrikker.Metrikk
-import no.nav.k9punsj.rest.eksternt.pdl.TestPdlService
-import no.nav.k9punsj.util.DatabaseUtil
import no.nav.k9punsj.util.IdGenerator
import no.nav.k9punsj.util.MetricUtils.Companion.assertCounter
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
-import org.junit.jupiter.api.extension.ExtendWith
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.actuate.metrics.MetricsEndpoint
import org.springframework.boot.test.mock.mockito.MockBean
-import org.springframework.test.context.ActiveProfiles
-import org.springframework.test.context.ContextConfiguration
-import org.springframework.test.context.junit.jupiter.SpringExtension
import java.util.*
-@ExtendWith(SpringExtension::class)
-@ActiveProfiles("test")
-@ContextConfiguration(
- classes = [
- TestBeans::class,
- AksjonspunktServiceImpl::class,
- JournalpostRepository::class,
- JournalpostService::class,
- SafGateway::class,
- DokarkivGateway::class,
- ObjectMapper::class,
- AksjonspunktRepository::class,
- AksjonspunktServiceImpl::class,
- SoknadService::class,
- InnsendingClient::class,
- PersonService::class,
- PersonRepository::class,
- TestPdlService::class,
- SøknadRepository::class
- ]
-)
-internal class HendelseMottakerTest {
+internal class HendelseMottakerTest: AbstractContainerBaseTest() {
@MockBean
private lateinit var safGateway: SafGateway
@@ -76,6 +43,9 @@ internal class HendelseMottakerTest {
@Autowired
private lateinit var aksjonspunktService: AksjonspunktService
+ @Autowired
+ lateinit var aksjonspunktRepository: AksjonspunktRepository
+
private lateinit var hendelseMottaker: HendelseMottaker
private lateinit var metricsEndpoint: MetricsEndpoint
@@ -151,8 +121,7 @@ internal class HendelseMottakerTest {
val journalpost = journalpostService.hent(meldingSomSkalLukkeOppgave.journalpostId)
assertThat(journalpost.type).isEqualTo(PunsjInnsendingType.PUNSJOPPGAVE_IKKE_LENGER_NØDVENDIG.kode)
- val alleAksjonspunkter =
- DatabaseUtil.getAksjonspunktRepo().hentAlleAksjonspunkter(journalpostId = førsteMelding.journalpostId)
+ val alleAksjonspunkter = aksjonspunktRepository.hentAlleAksjonspunkter(journalpostId = førsteMelding.journalpostId)
assertThat(alleAksjonspunkter).hasSize(1)
assertThat(alleAksjonspunkter[0].aksjonspunktStatus).isEqualTo(AksjonspunktStatus.UTFØRT)
diff --git a/src/test/kotlin/no/nav/k9punsj/gosys/GosysRoutesTest.kt b/src/test/kotlin/no/nav/k9punsj/gosys/GosysRoutesTest.kt
index ec253ea24..4f23ef9f8 100644
--- a/src/test/kotlin/no/nav/k9punsj/gosys/GosysRoutesTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/gosys/GosysRoutesTest.kt
@@ -1,35 +1,25 @@
package no.nav.k9punsj.gosys
-import io.mockk.junit5.MockKExtension
-import kotlinx.coroutines.runBlocking
import no.nav.helse.dusseldorf.testsupport.jws.Azure
-import no.nav.k9punsj.TestSetup
+import no.nav.k9punsj.AbstractContainerBaseTest
import no.nav.k9punsj.integrasjoner.gosys.Gjelder
import no.nav.k9punsj.wiremock.saksbehandlerAccessToken
import org.intellij.lang.annotations.Language
-import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
-import org.junit.jupiter.api.extension.ExtendWith
-import org.skyscreamer.jsonassert.JSONAssert
-import org.springframework.http.HttpStatus
-import org.springframework.http.HttpStatusCode
+import org.springframework.http.HttpHeaders
import org.springframework.http.MediaType
-import org.springframework.test.context.junit.jupiter.SpringExtension
import org.springframework.web.reactive.function.BodyInserters
-import org.springframework.web.reactive.function.client.awaitBodyOrNull
-import org.springframework.web.reactive.function.client.awaitExchange
-@ExtendWith(SpringExtension::class, MockKExtension::class)
-internal class GosysRoutesTest {
-
- private val client = TestSetup.client
+internal class GosysRoutesTest: AbstractContainerBaseTest() {
private val saksbehandlerAuthorizationHeader = "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}"
@Test
fun `hente gyldige verdier for gjelder`() {
- val (statusCode, json) = "api/gosys/gjelder".get()
- assertEquals(HttpStatus.OK, statusCode)
- JSONAssert.assertEquals(Gjelder.JSON, json, true)
+ webTestClient.get()
+ .uri{ it.path("/api/gosys/gjelder").build() }
+ .exchange()
+ .expectStatus().isOk
+ .expectBody().json(Gjelder.JSON)
}
@Test
@@ -42,8 +32,13 @@ internal class GosysRoutesTest {
}
""".trimIndent()
- val (statusCode, _) = "api/gosys/opprettJournalforingsoppgave/".post(body)
- assertEquals(HttpStatus.OK, statusCode)
+ webTestClient.post()
+ .uri { it.path("/api/gosys/opprettJournalforingsoppgave/").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .contentType(MediaType.APPLICATION_JSON)
+ .body(BodyInserters.fromValue(body))
+ .exchange()
+ .expectStatus().isOk
}
@Test
@@ -57,26 +52,12 @@ internal class GosysRoutesTest {
}
""".trimIndent()
- val (statusCode, _) = "api/gosys/opprettJournalforingsoppgave/".post(body)
- assertEquals(HttpStatus.OK, statusCode)
- }
-
- private fun String.get(): Pair = this.let { path ->
- runBlocking {
- client.get()
- .uri { it.path(path).build() }
- .awaitExchange { it.statusCode() to it.awaitBodyOrNull() }
- }
- }
-
- private fun String.post(body: String): Pair = this.let { path ->
- runBlocking {
- client.post()
- .uri { it.path(path).build() }
- .header("Authorization", saksbehandlerAuthorizationHeader)
- .contentType(MediaType.APPLICATION_JSON)
- .body(BodyInserters.fromValue(body))
- .awaitExchange { it.statusCode() to it.awaitBodyOrNull() }
- }
+ webTestClient.post()
+ .uri { it.path("/api/gosys/opprettJournalforingsoppgave/").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .contentType(MediaType.APPLICATION_JSON)
+ .body(BodyInserters.fromValue(body))
+ .exchange()
+ .expectStatus().isOk
}
}
diff --git a/src/test/kotlin/no/nav/k9punsj/integrasjoner/arbeidsgivere/ArbeidsgivereRoutesTest.kt b/src/test/kotlin/no/nav/k9punsj/integrasjoner/arbeidsgivere/ArbeidsgivereRoutesTest.kt
index db419fb6b..503306b07 100644
--- a/src/test/kotlin/no/nav/k9punsj/integrasjoner/arbeidsgivere/ArbeidsgivereRoutesTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/integrasjoner/arbeidsgivere/ArbeidsgivereRoutesTest.kt
@@ -1,29 +1,12 @@
package no.nav.k9punsj.integrasjoner.arbeidsgivere
-import io.mockk.junit5.MockKExtension
-import kotlinx.coroutines.runBlocking
-import no.nav.helse.dusseldorf.testsupport.jws.Azure
-import no.nav.k9punsj.TestSetup
-import no.nav.k9punsj.wiremock.saksbehandlerAccessToken
+import no.nav.k9punsj.AbstractContainerBaseTest
import org.intellij.lang.annotations.Language
-import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
-import org.junit.jupiter.api.extension.ExtendWith
-import org.skyscreamer.jsonassert.JSONAssert
import org.springframework.http.HttpHeaders
-import org.springframework.http.HttpStatus
-import org.springframework.http.HttpStatusCode
import org.springframework.http.MediaType
-import org.springframework.test.context.junit.jupiter.SpringExtension
-import org.springframework.web.reactive.function.client.awaitBodyOrNull
-import org.springframework.web.reactive.function.client.awaitExchange
-import java.time.LocalDate
-@ExtendWith(SpringExtension::class, MockKExtension::class)
-internal class ArbeidsgivereRoutesTest {
-
- private val client = TestSetup.client
- private val saksbehandlerAuthorizationHeader = "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}"
+internal class ArbeidsgivereRoutesTest : AbstractContainerBaseTest() {
@Test
fun `hente arbeidsgivere for person som har arbeidsgivere`() {
@@ -36,9 +19,15 @@ internal class ArbeidsgivereRoutesTest {
}]
}
""".trimIndent()
- val (httpStatus, response) = getArbeidsgivere("11111111111")
- assertEquals(HttpStatus.OK, httpStatus)
- JSONAssert.assertEquals(forventetResponse, response, true)
+
+ webTestClient.get()
+ .uri { it.path("/api/arbeidsgivere").build() }
+ .accept(MediaType.APPLICATION_JSON)
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .header("X-Nav-NorskIdent", "11111111111")
+ .exchange()
+ .expectStatus().isOk
+ .expectBody().json(forventetResponse)
}
@Test
@@ -49,28 +38,35 @@ internal class ArbeidsgivereRoutesTest {
"organisasjoner": []
}
""".trimIndent()
- val (httpStatus, response) = getArbeidsgivere("22222222222")
- assertEquals(HttpStatus.OK, httpStatus)
- JSONAssert.assertEquals(forventetResponse, response, true)
+ webTestClient.get()
+ .uri { it.path("/api/arbeidsgivere").build() }
+ .accept(MediaType.APPLICATION_JSON)
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .header("X-Nav-NorskIdent", "22222222222")
+ .exchange()
+ .expectStatus().isOk
+ .expectBody().json(forventetResponse)
}
@Test
fun `hente navn på arbeidsgiver som finnes`() {
- val (httpStatus, response) = getArbeidsgiverNavn("979312059")
- assertEquals(HttpStatus.OK, httpStatus)
- JSONAssert.assertEquals("""{"navn":"NAV AS"}""", response, true)
+ webTestClient.get()
+ .uri { it.path("/api/arbeidsgiver").queryParam("organisasjonsnummer", "979312059").build() }
+ .exchange()
+ .expectStatus().isOk
+ .expectBody().json("""{"navn":"NAV AS"}""")
}
@Test
fun `hente navn på arbeidsgiver som ikke finnes`() {
- val (httpStatus, _) = getArbeidsgiverNavn("993110469")
- assertEquals(HttpStatus.NOT_FOUND, httpStatus)
+ webTestClient.get()
+ .uri { it.path("/api/arbeidsgiver").queryParam("organisasjonsnummer", "993110469").build() }
+ .exchange()
+ .expectStatus().isNotFound
}
@Test
fun `henter historiske arbeidsgivere fra siste 6 mån, tar kun med de som har orgnr`() {
- val (status, body) = getArbeidsgiverListeMedHistoriske("22053826656")
- assertEquals(HttpStatus.OK, status)
val forventetResponse = """
{
"organisasjoner": [
@@ -89,37 +85,16 @@ internal class ArbeidsgivereRoutesTest {
]
}
""".trimIndent()
- JSONAssert.assertEquals(forventetResponse, body, true)
- }
-
- private fun getArbeidsgivere(
- identitetsnummer: String
- ): Pair = runBlocking {
- client.get()
- .uri { it.path("/api/arbeidsgivere").build() }
- .accept(MediaType.APPLICATION_JSON)
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .header("X-Nav-NorskIdent", identitetsnummer)
- .awaitExchange { it.statusCode() to it.awaitBodyOrNull() }
- }
-
- private fun getArbeidsgiverNavn(organisasjonsnummer: String): Pair = runBlocking {
- client.get()
- .uri { it.path("/api/arbeidsgiver").queryParam("organisasjonsnummer", organisasjonsnummer).build() }
- .awaitExchange { it.statusCode() to it.awaitBodyOrNull() }
- }
- private fun getArbeidsgiverListeMedHistoriske(
- identitetsnummer: String
- ): Pair = runBlocking {
- client.get()
- .uri { it.path("/api/arbeidsgivere-historikk")
- .queryParam("historikk", "true")
- .build()
+ webTestClient.get()
+ .uri {
+ it.path("/api/arbeidsgivere-historikk").queryParam("historikk", "true").build()
}
.accept(MediaType.APPLICATION_JSON)
.header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .header("X-Nav-NorskIdent", identitetsnummer)
- .awaitExchange { it.statusCode() to it.awaitBodyOrNull() }
+ .header("X-Nav-NorskIdent", "22053826656")
+ .exchange()
+ .expectStatus().isOk
+ .expectBody().json(forventetResponse)
}
}
diff --git a/src/test/kotlin/no/nav/k9punsj/jobber/MetrikkJobbTest.kt b/src/test/kotlin/no/nav/k9punsj/jobber/MetrikkJobbTest.kt
index d6fcb7d78..092050efc 100644
--- a/src/test/kotlin/no/nav/k9punsj/jobber/MetrikkJobbTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/jobber/MetrikkJobbTest.kt
@@ -2,39 +2,46 @@ package no.nav.k9punsj.jobber
import io.micrometer.core.instrument.simple.SimpleMeterRegistry
import kotlinx.coroutines.runBlocking
+import no.nav.k9punsj.AbstractContainerBaseTest
import no.nav.k9punsj.fordel.PunsjInnsendingType
+import no.nav.k9punsj.journalpost.JournalpostRepository
import no.nav.k9punsj.journalpost.dto.PunsjJournalpost
+import no.nav.k9punsj.metrikker.JournalpostMetrikkRepository
import no.nav.k9punsj.metrikker.Metrikk
-import no.nav.k9punsj.util.DatabaseUtil
import no.nav.k9punsj.util.IdGenerator
import no.nav.k9punsj.util.MetricUtils
import no.nav.k9punsj.util.MetricUtils.MetrikkTag
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
+import org.slf4j.LoggerFactory
+import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.actuate.metrics.MetricsEndpoint
import java.util.*
import java.util.stream.IntStream
-internal class MetrikkJobbTest {
+internal class MetrikkJobbTest: AbstractContainerBaseTest() {
private lateinit var metrikkJobb: MetrikkJobb
-
private lateinit var metricsEndpoint: MetricsEndpoint
- private val simpleMeterRegistry = SimpleMeterRegistry()
- private val journalpostRepo = DatabaseUtil.getJournalpostRepo()
+ @Autowired
+ lateinit var journalpostRepository: JournalpostRepository
+
+ @Autowired
+ lateinit var journalpostMetrikkRepository: JournalpostMetrikkRepository
@BeforeEach
internal fun setUp() {
- DatabaseUtil.cleanDB()
- metrikkJobb = MetrikkJobb(DatabaseUtil.journalpostMetrikkRepository(), simpleMeterRegistry)
+ cleanUpDB()
+ val simpleMeterRegistry = SimpleMeterRegistry()
+ metrikkJobb = MetrikkJobb(journalpostMetrikkRepository, simpleMeterRegistry)
metricsEndpoint = MetricsEndpoint(simpleMeterRegistry)
}
@AfterEach
internal fun tearDown() {
- DatabaseUtil.cleanDB()
+ cleanUpDB()
}
@Test
@@ -47,8 +54,8 @@ internal class MetrikkJobbTest {
type = PunsjInnsendingType.PAPIRSØKNAD.kode
)
- journalpostRepo.lagre(punsjJournalpost) { punsjJournalpost }
- journalpostRepo.ferdig(punsjJournalpost.journalpostId)
+ journalpostRepository.lagre(punsjJournalpost) { punsjJournalpost }
+ journalpostRepository.ferdig(punsjJournalpost.journalpostId)
metrikkJobb.oppdaterMetrikkMåling()
MetricUtils.assertGuage(
@@ -68,7 +75,7 @@ internal class MetrikkJobbTest {
type = PunsjInnsendingType.PAPIRSØKNAD.kode
)
- journalpostRepo.lagre(punsjJournalpost) { punsjJournalpost }
+ journalpostRepository.lagre(punsjJournalpost) { punsjJournalpost }
metrikkJobb.oppdaterMetrikkMåling()
MetricUtils.assertGuage(
@@ -119,7 +126,7 @@ internal class MetrikkJobbTest {
aktørId = dummyAktørId,
type = type.kode
)
- journalpostRepo.lagre(punsjJournalpost) { punsjJournalpost }
+ journalpostRepository.lagre(punsjJournalpost) { punsjJournalpost }
return punsjJournalpost
}
diff --git "a/src/test/kotlin/no/nav/k9punsj/jobber/SjekkOmUtl\303\270ptJobbTest.kt" "b/src/test/kotlin/no/nav/k9punsj/jobber/SjekkOmUtl\303\270ptJobbTest.kt"
index 9eb5434ca..669034176 100644
--- "a/src/test/kotlin/no/nav/k9punsj/jobber/SjekkOmUtl\303\270ptJobbTest.kt"
+++ "b/src/test/kotlin/no/nav/k9punsj/jobber/SjekkOmUtl\303\270ptJobbTest.kt"
@@ -1,39 +1,39 @@
package no.nav.k9punsj.jobber
-import io.mockk.junit5.MockKExtension
import kotlinx.coroutines.runBlocking
+import no.nav.k9punsj.AbstractContainerBaseTest
import no.nav.k9punsj.akjonspunkter.AksjonspunktEntitet
import no.nav.k9punsj.akjonspunkter.AksjonspunktKode
+import no.nav.k9punsj.akjonspunkter.AksjonspunktRepository
import no.nav.k9punsj.akjonspunkter.AksjonspunktStatus
import no.nav.k9punsj.akjonspunkter.VentÅrsakType
+import no.nav.k9punsj.journalpost.JournalpostRepository
import no.nav.k9punsj.journalpost.dto.PunsjJournalpost
import no.nav.k9punsj.kafka.HendelseProducer
-import no.nav.k9punsj.util.DatabaseUtil.Companion.getAksjonspunktRepo
-import no.nav.k9punsj.util.DatabaseUtil.Companion.getJournalpostRepo
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test
-import org.junit.jupiter.api.extension.ExtendWith
+import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.mock.mockito.MockBean
-import org.springframework.test.context.ActiveProfiles
-import org.springframework.test.context.junit.jupiter.SpringExtension
import java.time.LocalDateTime
-import java.util.UUID
+import java.util.*
-@ActiveProfiles("test")
-@ExtendWith(SpringExtension::class, MockKExtension::class)
-internal class SjekkOmUtløptJobbTest {
+internal class SjekkOmUtløptJobbTest : AbstractContainerBaseTest() {
@MockBean
lateinit var hendelseProducer: HendelseProducer
+ @Autowired
+ lateinit var aksonspunktRepository: AksjonspunktRepository
+
+ @Autowired
+ lateinit var journalpostRepository: JournalpostRepository
+
+
@Test
fun `Skal finne alle aksjonspunkter som har utløpt og sende oppgaver på disse`(): Unit = runBlocking {
- // Arrange
- val aksjonspunktRepository = getAksjonspunktRepo()
- val journalpostRepository = getJournalpostRepo()
val sjekkOmUtløptJobb = SjekkOmUtløptJobb(
- aksjonspunktRepository = aksjonspunktRepository,
+ aksjonspunktRepository = aksonspunktRepository,
hendelseProducer = hendelseProducer,
journalpostRepository = journalpostRepository,
k9losAksjonspunkthendelseTopic = "test",
@@ -52,7 +52,7 @@ internal class SjekkOmUtløptJobbTest {
}
val aksjonspunktId = UUID.randomUUID().toString()
- aksjonspunktRepository.opprettAksjonspunkt(
+ aksonspunktRepository.opprettAksjonspunkt(
AksjonspunktEntitet(
aksjonspunktId,
AksjonspunktKode.VENTER_PÅ_INFORMASJON,
@@ -67,7 +67,7 @@ internal class SjekkOmUtløptJobbTest {
sjekkOmUtløptJobb.sjekkeOmAksjonspunktHarLøptUt()
// Assert
- val hentAlleAksjonspunkter = aksjonspunktRepository.hentAlleAksjonspunkter(punsjJournalpost.journalpostId)
+ val hentAlleAksjonspunkter = aksonspunktRepository.hentAlleAksjonspunkter(punsjJournalpost.journalpostId)
assertThat(hentAlleAksjonspunkter).hasSize(2)
val venterPåInformasjon =
diff --git a/src/test/kotlin/no/nav/k9punsj/journalpost/JournalpostServiceTest.kt b/src/test/kotlin/no/nav/k9punsj/journalpost/JournalpostServiceTest.kt
index 1914faadd..e35e2efe4 100644
--- a/src/test/kotlin/no/nav/k9punsj/journalpost/JournalpostServiceTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/journalpost/JournalpostServiceTest.kt
@@ -4,8 +4,8 @@ import com.fasterxml.jackson.databind.ObjectMapper
import io.mockk.coVerify
import io.mockk.impl.annotations.InjectMockKs
import io.mockk.impl.annotations.MockK
-import io.mockk.junit5.MockKExtension
import kotlinx.coroutines.runBlocking
+import no.nav.k9punsj.AbstractContainerBaseTest
import no.nav.k9punsj.felles.Identitetsnummer.Companion.somIdentitetsnummer
import no.nav.k9punsj.felles.Sak
import no.nav.k9punsj.integrasjoner.dokarkiv.DokarkivGateway
@@ -13,10 +13,8 @@ import no.nav.k9punsj.integrasjoner.dokarkiv.SafGateway
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.assertThrows
-import org.junit.jupiter.api.extension.ExtendWith
-@ExtendWith(MockKExtension::class)
-internal class JournalpostServiceTest {
+internal class JournalpostServiceTest: AbstractContainerBaseTest() {
@MockK
private lateinit var safGateway: SafGateway
diff --git a/src/test/kotlin/no/nav/k9punsj/journalpost/KopierJournalpostRouteTest.kt b/src/test/kotlin/no/nav/k9punsj/journalpost/KopierJournalpostRouteTest.kt
index e2c9e3fee..9dbc5f2ee 100644
--- a/src/test/kotlin/no/nav/k9punsj/journalpost/KopierJournalpostRouteTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/journalpost/KopierJournalpostRouteTest.kt
@@ -1,18 +1,11 @@
package no.nav.k9punsj.journalpost
-import com.fasterxml.jackson.databind.ObjectMapper
import io.micrometer.core.instrument.simple.SimpleMeterRegistry
import kotlinx.coroutines.runBlocking
import no.nav.helse.dusseldorf.testsupport.jws.Azure
-import no.nav.k9punsj.TestBeans
-import no.nav.k9punsj.TestSetup
-import no.nav.k9punsj.akjonspunkter.AksjonspunktRepository
+import no.nav.k9punsj.AbstractContainerBaseTest
import no.nav.k9punsj.akjonspunkter.AksjonspunktService
-import no.nav.k9punsj.akjonspunkter.AksjonspunktServiceImpl
-import no.nav.k9punsj.domenetjenester.PersonService
import no.nav.k9punsj.domenetjenester.SoknadService
-import no.nav.k9punsj.domenetjenester.repository.PersonRepository
-import no.nav.k9punsj.domenetjenester.repository.SøknadRepository
import no.nav.k9punsj.fordel.FordelPunsjEventDto
import no.nav.k9punsj.fordel.HendelseMottaker
import no.nav.k9punsj.fordel.PunsjInnsendingType
@@ -21,52 +14,22 @@ import no.nav.k9punsj.integrasjoner.dokarkiv.DokarkivGateway
import no.nav.k9punsj.integrasjoner.dokarkiv.SafGateway
import no.nav.k9punsj.journalpost.dto.BehandlingsAarDto
import no.nav.k9punsj.journalpost.dto.KopierJournalpostDto
-import no.nav.k9punsj.rest.eksternt.pdl.TestPdlService
-import no.nav.k9punsj.util.DatabaseUtil
import no.nav.k9punsj.util.IdGenerator
-import no.nav.k9punsj.util.WebClientUtils.postAndAssert
-import no.nav.k9punsj.util.WebClientUtils.postAndAssertAwaitWithStatusAndBody
import no.nav.k9punsj.wiremock.saksbehandlerAccessToken
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
-import org.junit.jupiter.api.extension.ExtendWith
import org.junit.jupiter.params.ParameterizedTest
import org.junit.jupiter.params.provider.ValueSource
-import org.skyscreamer.jsonassert.JSONAssert
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.actuate.metrics.MetricsEndpoint
import org.springframework.boot.test.mock.mockito.MockBean
-import org.springframework.http.HttpStatus
-import org.springframework.test.context.ActiveProfiles
-import org.springframework.test.context.ContextConfiguration
-import org.springframework.test.context.junit.jupiter.SpringExtension
+import org.springframework.http.HttpHeaders
import org.springframework.web.reactive.function.BodyInserters
import java.time.LocalDate
-@ExtendWith(SpringExtension::class)
-@ActiveProfiles("test")
-@ContextConfiguration(
- classes = [
- TestBeans::class,
- AksjonspunktServiceImpl::class,
- JournalpostRepository::class,
- JournalpostService::class,
- SafGateway::class,
- DokarkivGateway::class,
- ObjectMapper::class,
- AksjonspunktRepository::class,
- AksjonspunktServiceImpl::class,
- SoknadService::class,
- InnsendingClient::class,
- PersonService::class,
- PersonRepository::class,
- TestPdlService::class,
- SøknadRepository::class
- ]
-)
-internal class KopierJournalpostRouteTest {
+internal class KopierJournalpostRouteTest : AbstractContainerBaseTest() {
@MockBean
private lateinit var safGateway: SafGateway
@@ -85,15 +48,17 @@ internal class KopierJournalpostRouteTest {
@Autowired
private lateinit var aksjonspunktService: AksjonspunktService
+
+ @Autowired
+ lateinit var journalpostRepository: JournalpostRepository
+
private lateinit var hendelseMottaker: HendelseMottaker
private lateinit var metricsEndpoint: MetricsEndpoint
- private val client = TestSetup.client
private val api = "api"
private val journalpostUri = "journalpost"
private val saksbehandlerAuthorizationHeader = "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}"
- private val journalpostRepository = DatabaseUtil.getJournalpostRepo()
@BeforeEach
internal fun setUp() {
@@ -108,11 +73,11 @@ internal class KopierJournalpostRouteTest {
@AfterEach
fun tearDown() {
- DatabaseUtil.cleanDB()
+ cleanUpDB()
}
@Test
- fun `Mapper kopierjournalpostinfo med barn og sender inn`() = runBlocking {
+ fun `Mapper kopierjournalpostinfo med barn og sender inn`(): Unit = runBlocking {
val journalpostId = IdGenerator.nesteId()
val melding = FordelPunsjEventDto(
@@ -132,17 +97,13 @@ internal class KopierJournalpostRouteTest {
annenPart = null
)
- val body = client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.ACCEPTED,
- requestBody = BodyInserters.fromValue(kopierJournalpostDto),
- api,
- journalpostUri,
- "kopier",
- journalpostId
- )
-
- Assertions.assertTrue(body.statusCode().is2xxSuccessful)
+ webTestClient
+ .post()
+ .uri { it.path("/api/journalpost/kopier/$journalpostId").build() }
+ .body(BodyInserters.fromValue(kopierJournalpostDto))
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .exchange()
+ .expectStatus().isAccepted
}
@ParameterizedTest
@@ -154,7 +115,7 @@ internal class KopierJournalpostRouteTest {
"""{"behandlingsAar": -1}""",
]
)
- fun `Sett behandlingår med ugyldige verdier defaulter til nåværende år`(payload: String) = runBlocking {
+ fun `Sett behandlingår med ugyldige verdier defaulter til nåværende år`(payload: String): Unit = runBlocking {
val journalpostId = IdGenerator.nesteId()
val melding = FordelPunsjEventDto(
@@ -168,27 +129,25 @@ internal class KopierJournalpostRouteTest {
val journalpost = journalpostRepository.hent(journalpostId)
Assertions.assertNotNull(journalpost)
- val body = client.postAndAssertAwaitWithStatusAndBody(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- navNorskIdentHeader = journalpost.aktørId,
- assertStatus = HttpStatus.OK,
- requestBody = BodyInserters.fromValue(payload),
- api,
- journalpostUri,
- "settBehandlingsAar",
- journalpostId
- )
-
- val forventetRespons = """
- {
- "behandlingsAar": ${LocalDate.now().year}
- }""".trimIndent()
-
- JSONAssert.assertEquals(forventetRespons, body, true)
+ webTestClient
+ .post()
+ .uri { it.path("/api/journalpost/settBehandlingsAar/${journalpostId}").build() }
+ .body(BodyInserters.fromValue(payload))
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .header("X-Nav-NorskIdent", journalpost.aktørId)
+ .exchange()
+ .expectStatus().isOk
+ .expectBody().json(
+ """
+ {
+ "behandlingsAar": ${LocalDate.now().year}
+ }
+ """.trimIndent()
+ )
}
@Test
- fun `Sett behandlingår med gyldig verdi`() = runBlocking {
+ fun `Sett behandlingår med gyldig verdi`(): Unit = runBlocking {
val journalpostId = IdGenerator.nesteId()
val melding = FordelPunsjEventDto(
aktørId = "1234567890",
@@ -204,22 +163,20 @@ internal class KopierJournalpostRouteTest {
val gyldigÅr = LocalDate.now().year + 1
val payload = BehandlingsAarDto(behandlingsAar = gyldigÅr)
- val body = client.postAndAssertAwaitWithStatusAndBody(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- navNorskIdentHeader = journalpost.aktørId,
- assertStatus = HttpStatus.OK,
- requestBody = BodyInserters.fromValue(payload),
- api,
- journalpostUri,
- "settBehandlingsAar",
- journalpostId
- )
-
- val forventetRespons = """
- {
- "behandlingsAar": $gyldigÅr
- }""".trimIndent()
-
- JSONAssert.assertEquals(forventetRespons, body, true)
+ webTestClient
+ .post()
+ .uri { it.path("/api/journalpost/settBehandlingsAar/$journalpostId").build() }
+ .body(BodyInserters.fromValue(payload))
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .header("X-Nav-NorskIdent", journalpost.aktørId)
+ .exchange()
+ .expectStatus().isOk
+ .expectBody().json(
+ """
+ {
+ "behandlingsAar": $gyldigÅr
+ }
+ """.trimIndent()
+ )
}
}
diff --git a/src/test/kotlin/no/nav/k9punsj/journalpost/PunsjJournalpostMetrikkRepositoryTest.kt b/src/test/kotlin/no/nav/k9punsj/journalpost/PunsjJournalpostMetrikkRepositoryTest.kt
index 6b6491420..766ee27f2 100644
--- a/src/test/kotlin/no/nav/k9punsj/journalpost/PunsjJournalpostMetrikkRepositoryTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/journalpost/PunsjJournalpostMetrikkRepositoryTest.kt
@@ -1,36 +1,36 @@
package no.nav.k9punsj.journalpost
-import io.mockk.junit5.MockKExtension
import kotlinx.coroutines.runBlocking
+import no.nav.k9punsj.AbstractContainerBaseTest
import no.nav.k9punsj.fordel.PunsjInnsendingType
import no.nav.k9punsj.journalpost.dto.PunsjJournalpost
-import no.nav.k9punsj.util.DatabaseUtil
+import no.nav.k9punsj.metrikker.JournalpostMetrikkRepository
+import no.nav.k9punsj.util.DbContainerInitializer
import no.nav.k9punsj.util.IdGenerator
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
-import org.junit.jupiter.api.extension.ExtendWith
-import org.springframework.test.context.TestPropertySource
-import org.springframework.test.context.junit.jupiter.SpringExtension
+import org.springframework.beans.factory.annotation.Autowired
import java.util.*
import java.util.stream.IntStream
-@ExtendWith(SpringExtension::class, MockKExtension::class)
-@TestPropertySource(locations = ["classpath:application.yml"])
-internal class PunsjJournalpostMetrikkRepositoryTest {
+internal class PunsjJournalpostMetrikkRepositoryTest: AbstractContainerBaseTest() {
- private val journalpostRepo = DatabaseUtil.getJournalpostRepo()
- private val journalpostMetrikkRepository = DatabaseUtil.journalpostMetrikkRepository()
+ @Autowired
+ lateinit var journalpostRepo: JournalpostRepository
+
+ @Autowired
+ lateinit var journalpostMetrikkRepository: JournalpostMetrikkRepository
@BeforeEach
internal fun setUp() {
- DatabaseUtil.cleanDB()
+ cleanUpDB()
}
@AfterEach
internal fun tearDown() {
- DatabaseUtil.cleanDB()
+ cleanUpDB()
}
@Test
diff --git a/src/test/kotlin/no/nav/k9punsj/journalpost/PunsjJournalpostRepositoryTest.kt b/src/test/kotlin/no/nav/k9punsj/journalpost/PunsjJournalpostRepositoryTest.kt
index 12418304e..c1f41370a 100644
--- a/src/test/kotlin/no/nav/k9punsj/journalpost/PunsjJournalpostRepositoryTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/journalpost/PunsjJournalpostRepositoryTest.kt
@@ -1,46 +1,46 @@
package no.nav.k9punsj.journalpost
-import io.mockk.junit5.MockKExtension
import kotlinx.coroutines.runBlocking
-import no.nav.helse.dusseldorf.testsupport.jws.Azure
-import no.nav.k9punsj.TestSetup
+import no.nav.k9punsj.AbstractContainerBaseTest
import no.nav.k9punsj.fordel.PunsjInnsendingType
import no.nav.k9punsj.journalpost.dto.PunsjJournalpost
import no.nav.k9punsj.journalpost.dto.PunsjJournalpostKildeType
-import no.nav.k9punsj.util.DatabaseUtil
import no.nav.k9punsj.util.IdGenerator
-import no.nav.k9punsj.util.WebClientUtils.awaitExchangeBlocking
-import no.nav.k9punsj.wiremock.saksbehandlerAccessToken
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
-import org.junit.jupiter.api.extension.ExtendWith
+import org.springframework.beans.factory.annotation.Autowired
import org.springframework.http.HttpHeaders
-import org.springframework.http.HttpStatus
-import org.springframework.test.context.TestPropertySource
-import org.springframework.test.context.junit.jupiter.SpringExtension
-import java.util.UUID
+import java.util.*
-@ExtendWith(SpringExtension::class, MockKExtension::class)
-@TestPropertySource(locations = ["classpath:application.yml"])
-internal class PunsjJournalpostRepositoryTest {
- val client = TestSetup.client
- private val saksbehandlerAuthorizationHeader = "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}"
+internal class PunsjJournalpostRepositoryTest : AbstractContainerBaseTest() {
+
+ @Autowired
+ private lateinit var journalpostRepository: JournalpostRepository
@Test
fun `Skal finne alle journalposter på personen`(): Unit = runBlocking {
val dummyAktørId = IdGenerator.nesteId()
- val journalpostRepository = DatabaseUtil.getJournalpostRepo()
val punsjJournalpost1 =
- PunsjJournalpost(uuid = UUID.randomUUID(), journalpostId = IdGenerator.nesteId(), aktørId = dummyAktørId, type = PunsjInnsendingType.PAPIRSØKNAD.kode)
+ PunsjJournalpost(
+ uuid = UUID.randomUUID(),
+ journalpostId = IdGenerator.nesteId(),
+ aktørId = dummyAktørId,
+ type = PunsjInnsendingType.PAPIRSØKNAD.kode
+ )
journalpostRepository.lagre(punsjJournalpost1) {
punsjJournalpost1
}
val punsjJournalpost2 =
- PunsjJournalpost(uuid = UUID.randomUUID(), journalpostId = IdGenerator.nesteId(), aktørId = dummyAktørId, type = PunsjInnsendingType.PAPIRSØKNAD.kode)
+ PunsjJournalpost(
+ uuid = UUID.randomUUID(),
+ journalpostId = IdGenerator.nesteId(),
+ aktørId = dummyAktørId,
+ type = PunsjInnsendingType.PAPIRSØKNAD.kode
+ )
journalpostRepository.lagre(punsjJournalpost2) {
punsjJournalpost2
}
@@ -59,16 +59,25 @@ internal class PunsjJournalpostRepositoryTest {
@Test
fun `Skal bare finne de fra fordel`(): Unit = runBlocking {
val dummyAktørId = IdGenerator.nesteId()
- val journalpostRepository = DatabaseUtil.getJournalpostRepo()
val punsjJournalpost1 =
- PunsjJournalpost(uuid = UUID.randomUUID(), journalpostId = IdGenerator.nesteId(), aktørId = dummyAktørId, type = PunsjInnsendingType.PAPIRSØKNAD.kode)
+ PunsjJournalpost(
+ uuid = UUID.randomUUID(),
+ journalpostId = IdGenerator.nesteId(),
+ aktørId = dummyAktørId,
+ type = PunsjInnsendingType.PAPIRSØKNAD.kode
+ )
journalpostRepository.lagre(punsjJournalpost1, PunsjJournalpostKildeType.SAKSBEHANDLER) {
punsjJournalpost1
}
val punsjJournalpost2 =
- PunsjJournalpost(uuid = UUID.randomUUID(), journalpostId = IdGenerator.nesteId(), aktørId = dummyAktørId, type = PunsjInnsendingType.PAPIRSØKNAD.kode)
+ PunsjJournalpost(
+ uuid = UUID.randomUUID(),
+ journalpostId = IdGenerator.nesteId(),
+ aktørId = dummyAktørId,
+ type = PunsjInnsendingType.PAPIRSØKNAD.kode
+ )
journalpostRepository.lagre(punsjJournalpost2, PunsjJournalpostKildeType.FORDEL) {
punsjJournalpost2
}
@@ -87,7 +96,6 @@ internal class PunsjJournalpostRepositoryTest {
@Test
fun `Skal sette status til ferdig`(): Unit = runBlocking {
val dummyAktørId = IdGenerator.nesteId()
- val journalpostRepository = DatabaseUtil.getJournalpostRepo()
val punsjJournalpost1 =
PunsjJournalpost(uuid = UUID.randomUUID(), journalpostId = IdGenerator.nesteId(), aktørId = dummyAktørId)
@@ -110,7 +118,12 @@ internal class PunsjJournalpostRepositoryTest {
val finnJournalposterPåPerson = journalpostRepository.finnJournalposterPåPerson(dummyAktørId)
assertThat(finnJournalposterPåPerson).hasSize(2)
- journalpostRepository.settAlleTilFerdigBehandlet(listOf(punsjJournalpost1.journalpostId, punsjJournalpost2.journalpostId))
+ journalpostRepository.settAlleTilFerdigBehandlet(
+ listOf(
+ punsjJournalpost1.journalpostId,
+ punsjJournalpost2.journalpostId
+ )
+ )
val finnJournalposterPåPersonSkalGiTom = journalpostRepository.finnJournalposterPåPerson(dummyAktørId)
assertThat(finnJournalposterPåPersonSkalGiTom).isEmpty()
@@ -119,30 +132,28 @@ internal class PunsjJournalpostRepositoryTest {
@Test
fun `Endepunkt brukt for resett av journalpost fungerer`(): Unit = runBlocking {
val dummyAktørId = IdGenerator.nesteId()
- val journalpostRepository = DatabaseUtil.getJournalpostRepo()
- val punsjJournalpost1 =
- PunsjJournalpost(uuid = UUID.randomUUID(), journalpostId = IdGenerator.nesteId(), aktørId = dummyAktørId, skalTilK9 = false)
- journalpostRepository.lagre(punsjJournalpost1) {
- punsjJournalpost1
- }
-
- val res =
- client.get().uri {
- it.pathSegment("api", "journalpost", "resett", punsjJournalpost1.journalpostId).build()
- }.header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader).awaitExchangeBlocking()
+ val punsjJournalpost = PunsjJournalpost(
+ uuid = UUID.randomUUID(),
+ journalpostId = IdGenerator.nesteId(),
+ aktørId = dummyAktørId,
+ skalTilK9 = false
+ )
+ journalpostRepository.lagre(punsjJournalpost) { punsjJournalpost }
- Assertions.assertEquals(HttpStatus.OK, res.statusCode())
+ webTestClient.get()
+ .uri { it.path("/api/journalpost/resett/${punsjJournalpost.journalpostId}").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .exchange()
+ .expectStatus().isOk
val finnJournalposterPåPerson = journalpostRepository.finnJournalposterPåPerson(dummyAktørId)
-
Assertions.assertEquals(finnJournalposterPåPerson[0].skalTilK9, null)
}
@Test
fun `Skal sjekke om punsj kan sende inn`(): Unit = runBlocking {
val dummyAktørId = IdGenerator.nesteId()
- val journalpostRepository = DatabaseUtil.getJournalpostRepo()
val punsjJournalpost1 =
PunsjJournalpost(uuid = UUID.randomUUID(), journalpostId = IdGenerator.nesteId(), aktørId = dummyAktørId)
@@ -169,7 +180,12 @@ internal class PunsjJournalpostRepositoryTest {
journalpostRepository.kanSendeInn(listOf(punsjJournalpost1.journalpostId, punsjJournalpost2.journalpostId))
assertThat(kanSendeInn).isTrue
- journalpostRepository.settAlleTilFerdigBehandlet(listOf(punsjJournalpost1.journalpostId, punsjJournalpost2.journalpostId))
+ journalpostRepository.settAlleTilFerdigBehandlet(
+ listOf(
+ punsjJournalpost1.journalpostId,
+ punsjJournalpost2.journalpostId
+ )
+ )
val kanSendeInn2 =
journalpostRepository.kanSendeInn(listOf(punsjJournalpost1.journalpostId, punsjJournalpost2.journalpostId))
@@ -180,7 +196,6 @@ internal class PunsjJournalpostRepositoryTest {
@Test
fun `skal sette kilde hvis journalposten ikke finnes i databasen fra før`(): Unit = runBlocking {
val dummyAktørId = IdGenerator.nesteId()
- val journalpostRepository = DatabaseUtil.getJournalpostRepo()
val punsjJournalpost2 =
PunsjJournalpost(uuid = UUID.randomUUID(), journalpostId = IdGenerator.nesteId(), aktørId = dummyAktørId)
@@ -192,7 +207,12 @@ internal class PunsjJournalpostRepositoryTest {
val punsjJournalpost1 =
PunsjJournalpost(uuid = UUID.randomUUID(), journalpostId = IdGenerator.nesteId(), aktørId = dummyAktørId)
- journalpostRepository.settKildeHvisIkkeFinnesFraFør(listOf(punsjJournalpost1.journalpostId, punsjJournalpost2.journalpostId), dummyAktørId)
+ journalpostRepository.settKildeHvisIkkeFinnesFraFør(
+ listOf(
+ punsjJournalpost1.journalpostId,
+ punsjJournalpost2.journalpostId
+ ), dummyAktørId
+ )
assertThat(journalpostRepository.finnJournalposterPåPerson(dummyAktørId)).hasSize(2)
}
@@ -200,10 +220,14 @@ internal class PunsjJournalpostRepositoryTest {
@Test
fun `skal vise om journalposten må til infotrygd`(): Unit = runBlocking {
val dummyAktørId = IdGenerator.nesteId()
- val journalpostRepository = DatabaseUtil.getJournalpostRepo()
val punsjJournalpost2 =
- PunsjJournalpost(uuid = UUID.randomUUID(), journalpostId = IdGenerator.nesteId(), aktørId = dummyAktørId, skalTilK9 = false)
+ PunsjJournalpost(
+ uuid = UUID.randomUUID(),
+ journalpostId = IdGenerator.nesteId(),
+ aktørId = dummyAktørId,
+ skalTilK9 = false
+ )
journalpostRepository.lagre(punsjJournalpost2) {
punsjJournalpost2
}
@@ -214,7 +238,6 @@ internal class PunsjJournalpostRepositoryTest {
@Test
fun `skal kunne sette alle til ferdig`(): Unit = runBlocking {
val dummyAktørId = IdGenerator.nesteId()
- val journalpostRepository = DatabaseUtil.getJournalpostRepo()
val punsjJournalpost1 =
PunsjJournalpost(uuid = UUID.randomUUID(), journalpostId = IdGenerator.nesteId(), aktørId = dummyAktørId)
@@ -228,14 +251,25 @@ internal class PunsjJournalpostRepositoryTest {
punsjJournalpost2
}
- journalpostRepository.settAlleTilFerdigBehandlet(listOf(punsjJournalpost1.journalpostId, punsjJournalpost2.journalpostId))
- assertThat(journalpostRepository.kanSendeInn(listOf(punsjJournalpost1.journalpostId, punsjJournalpost2.journalpostId))).isFalse()
+ journalpostRepository.settAlleTilFerdigBehandlet(
+ listOf(
+ punsjJournalpost1.journalpostId,
+ punsjJournalpost2.journalpostId
+ )
+ )
+ assertThat(
+ journalpostRepository.kanSendeInn(
+ listOf(
+ punsjJournalpost1.journalpostId,
+ punsjJournalpost2.journalpostId
+ )
+ )
+ ).isFalse()
}
@Test
fun `skal feil hvis ikke alle kan settes til ferdig`(): Unit = runBlocking {
val dummyAktørId = IdGenerator.nesteId()
- val journalpostRepository = DatabaseUtil.getJournalpostRepo()
val punsjJournalpost1 =
PunsjJournalpost(uuid = UUID.randomUUID(), journalpostId = IdGenerator.nesteId(), aktørId = dummyAktørId)
@@ -243,7 +277,8 @@ internal class PunsjJournalpostRepositoryTest {
punsjJournalpost1
}
- val punsjJournalpost2 = PunsjJournalpost(uuid = UUID.randomUUID(), journalpostId = IdGenerator.nesteId(), aktørId = dummyAktørId)
+ val punsjJournalpost2 =
+ PunsjJournalpost(uuid = UUID.randomUUID(), journalpostId = IdGenerator.nesteId(), aktørId = dummyAktørId)
var harFåttEx = false
try {
@@ -264,15 +299,14 @@ internal class PunsjJournalpostRepositoryTest {
fun `Forventer at gosysoppgaveId blir persistert på journalpost`(): Unit = runBlocking {
val dummyAktørId = IdGenerator.nesteId()
val forventetGosysoppgaveId = IdGenerator.nesteId()
- val journalpostRepository = DatabaseUtil.getJournalpostRepo()
val punsjJournalpost = PunsjJournalpost(
- uuid = UUID.randomUUID(),
- journalpostId = IdGenerator.nesteId(),
- aktørId = dummyAktørId,
- type = PunsjInnsendingType.SAMTALEREFERAT.kode,
- gosysoppgaveId = forventetGosysoppgaveId
- )
+ uuid = UUID.randomUUID(),
+ journalpostId = IdGenerator.nesteId(),
+ aktørId = dummyAktørId,
+ type = PunsjInnsendingType.SAMTALEREFERAT.kode,
+ gosysoppgaveId = forventetGosysoppgaveId
+ )
journalpostRepository.lagre(punsjJournalpost) { punsjJournalpost }
diff --git a/src/test/kotlin/no/nav/k9punsj/korrigeringinntektsmelding/KorrigeringInntektsmeldingDtoRoutesTest.kt b/src/test/kotlin/no/nav/k9punsj/korrigeringinntektsmelding/KorrigeringInntektsmeldingDtoRoutesTest.kt
index f198fa154..481dea95a 100644
--- a/src/test/kotlin/no/nav/k9punsj/korrigeringinntektsmelding/KorrigeringInntektsmeldingDtoRoutesTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/korrigeringinntektsmelding/KorrigeringInntektsmeldingDtoRoutesTest.kt
@@ -1,33 +1,28 @@
package no.nav.k9punsj.korrigeringinntektsmelding
-import io.mockk.junit5.MockKExtension
import kotlinx.coroutines.runBlocking
import no.nav.helse.dusseldorf.testsupport.jws.Azure
-import no.nav.k9punsj.TestSetup
+import no.nav.k9.søknad.Søknad
+import no.nav.k9punsj.AbstractContainerBaseTest
import no.nav.k9punsj.felles.IdentOgJournalpost
import no.nav.k9punsj.felles.dto.ArbeidsgiverMedArbeidsforholdId
import no.nav.k9punsj.felles.dto.MatchFagsakMedPeriode
import no.nav.k9punsj.felles.dto.PeriodeDto
import no.nav.k9punsj.felles.dto.SendSøknad
+import no.nav.k9punsj.journalpost.JournalpostRepository
import no.nav.k9punsj.openapi.OasSoknadsfeil
-import no.nav.k9punsj.pleiepengersyktbarn.PleiepengerSyktBarnSøknadDto
-import no.nav.k9punsj.util.DatabaseUtil
import no.nav.k9punsj.util.IdGenerator
import no.nav.k9punsj.util.LesFraFilUtil
import no.nav.k9punsj.util.SøknadJson
import no.nav.k9punsj.util.TestUtils.hentSøknadId
-import no.nav.k9punsj.util.WebClientUtils.getAndAssert
-import no.nav.k9punsj.util.WebClientUtils.postAndAssert
-import no.nav.k9punsj.util.WebClientUtils.postAndAssertAwaitWithStatusAndBody
-import no.nav.k9punsj.util.WebClientUtils.putAndAssert
import no.nav.k9punsj.wiremock.saksbehandlerAccessToken
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
-import org.junit.jupiter.api.extension.ExtendWith
-import org.springframework.http.HttpStatus
-import org.springframework.test.context.junit.jupiter.SpringExtension
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.test.web.reactive.server.WebTestClient
+import org.springframework.test.web.reactive.server.returnResult
import org.springframework.web.reactive.function.BodyInserters
import java.net.URI
import java.time.LocalDate
@@ -35,33 +30,25 @@ import java.util.*
import kotlin.math.abs
import kotlin.random.Random
-@ExtendWith(SpringExtension::class, MockKExtension::class)
-class KorrigeringInntektsmeldingDtoRoutesTest {
+class KorrigeringInntektsmeldingDtoRoutesTest : AbstractContainerBaseTest() {
- private val client = TestSetup.client
private val api = "api"
private val søknadTypeUri = "omsorgspenger-soknad"
- private val saksbehandlerAuthorizationHeader = "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}"
- private val journalpostRepository = DatabaseUtil.getJournalpostRepo()
+
+ @Autowired
+ lateinit var journalpostRepository: JournalpostRepository
@AfterEach
internal fun tearDown() {
- DatabaseUtil.cleanDB()
+ cleanUpDB()
}
@Test
fun `Får tom liste når personen ikke har en eksisterende mappe`(): Unit = runBlocking {
val norskIdent = "01110050053"
- val body = client.getAndAssert(
- norskIdent = norskIdent,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- api,
- søknadTypeUri,
- "mappe"
- )
-
- Assertions.assertTrue(body.søknader!!.isEmpty())
+ hentMappe(norskIdent)
+ .expectStatus().isOk
+ .expectBody().jsonPath("$.søknader").isEmpty
}
@Test
@@ -69,13 +56,7 @@ class KorrigeringInntektsmeldingDtoRoutesTest {
val norskIdent = "01010050053"
val opprettNySøknad = opprettSøknad(norskIdent, UUID.randomUUID().toString())
- client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(opprettNySøknad),
- api,
- søknadTypeUri
- )
+ opprettNySøknad(opprettNySøknad)
}
@Test
@@ -84,25 +65,15 @@ class KorrigeringInntektsmeldingDtoRoutesTest {
val journalpostId = UUID.randomUUID().toString()
val opprettNySøknad = opprettSøknad(norskIdent, journalpostId)
- client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(opprettNySøknad),
- api,
- søknadTypeUri
- )
-
- val body = client.getAndAssert(
- norskIdent = norskIdent,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- api,
- søknadTypeUri,
- "mappe"
- )
-
- val journalposterDto = body.søknader?.first()?.journalposter
- Assertions.assertEquals(journalpostId, journalposterDto?.first())
+ opprettNySøknad(opprettNySøknad)
+
+ hentMappe(norskIdent)
+ .expectStatus().isOk
+ .expectBody(SvarOmsDto::class.java)
+ .consumeWith {
+ val journalposter = it.responseBody?.søknader?.first()?.journalposter
+ Assertions.assertEquals(journalpostId, journalposter?.first())
+ }
}
@Test
@@ -114,29 +85,15 @@ class KorrigeringInntektsmeldingDtoRoutesTest {
val opprettNySøknad = opprettSøknad(norskIdent, journalpostid)
- val resPost = client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(opprettNySøknad),
- api,
- søknadTypeUri
- )
-
- val location = resPost.headers().asHttpHeaders().location
- Assertions.assertNotNull(location)
-
- val søknadViaGet = client.getAndAssert(
- norskIdent = norskIdent,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- api,
- søknadTypeUri,
- "mappe",
- hentSøknadId(location)!!
- )
-
- Assertions.assertNotNull(søknadViaGet)
- Assertions.assertEquals(journalpostid, søknadViaGet.journalposter?.first())
+ val location = opprettNySøknad(opprettNySøknad)
+
+ hentMappeGittSøknadIdFraLocation(location, norskIdent)
+ .expectStatus().isOk
+ .expectBody(KorrigeringInntektsmeldingDto::class.java)
+ .consumeWith {
+ val journalposter = it.responseBody?.journalposter
+ Assertions.assertEquals(journalpostid, journalposter?.first())
+ }
}
@Test
@@ -148,31 +105,17 @@ class KorrigeringInntektsmeldingDtoRoutesTest {
val opprettNySøknad = opprettSøknad(norskIdent, journalpostid)
- val resPost = client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(opprettNySøknad),
- api,
- søknadTypeUri
- )
-
- val location = resPost.headers().asHttpHeaders().location
- Assertions.assertNotNull(location)
+ val location = opprettNySøknad(opprettNySøknad)
leggerPåNySøknadId(søknadFraFrontend, location)
- val body = client.putAndAssert, KorrigeringInntektsmeldingDto>(
- norskIdent = null,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- requestBody = BodyInserters.fromValue(søknadFraFrontend),
- api,
- søknadTypeUri,
- "oppdater"
- )
-
- Assertions.assertNotNull(body)
- Assertions.assertEquals(norskIdent, body.soekerId)
+ oppdaterEksisterendeSøknad(søknadFraFrontend)
+ .expectStatus().isOk
+ .expectBody(KorrigeringInntektsmeldingDto::class.java)
+ .consumeWith {
+ Assertions.assertNotNull(it.responseBody)
+ Assertions.assertEquals(norskIdent, it.responseBody!!.soekerId)
+ }
}
@Test
@@ -182,8 +125,7 @@ class KorrigeringInntektsmeldingDtoRoutesTest {
val journalpostid = abs(Random(56234).nextInt()).toString()
tilpasserSøknadsMalTilTesten(gyldigSoeknad, norskIdent, journalpostid)
- val body = opprettOgSendInnSoeknad(soeknadJson = gyldigSoeknad, ident = norskIdent, journalpostid)
- assertThat(body.feil).isNull()
+ opprettOgSendInnSoeknad(soeknadJson = gyldigSoeknad, ident = norskIdent, journalpostid)
assertThat(journalpostRepository.kanSendeInn(listOf(journalpostid))).isFalse
}
@@ -194,8 +136,7 @@ class KorrigeringInntektsmeldingDtoRoutesTest {
val journalpostid = abs(Random(2234).nextInt()).toString()
tilpasserSøknadsMalTilTesten(gyldigSoeknad, norskIdent, journalpostid)
- val body = opprettOgSendInnSoeknad(soeknadJson = gyldigSoeknad, ident = norskIdent, journalpostid)
- assertThat(body.feil).isNull()
+ opprettOgSendInnSoeknad(soeknadJson = gyldigSoeknad, ident = norskIdent, journalpostid)
assertThat(journalpostRepository.kanSendeInn(listOf(journalpostid))).isFalse
}
@@ -207,17 +148,12 @@ class KorrigeringInntektsmeldingDtoRoutesTest {
tilpasserSøknadsMalTilTesten(soeknad, norskIdent, journalpostid)
opprettOgLagreSoeknad(soeknadJson = soeknad, ident = norskIdent, journalpostid)
- val body = client.postAndAssertAwaitWithStatusAndBody(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- navNorskIdentHeader = null,
- assertStatus = HttpStatus.ACCEPTED,
- requestBody = BodyInserters.fromValue(soeknad),
- api,
- søknadTypeUri,
- "valider"
- )
-
- assertThat(body.feil).isNull()
+ validerSøknad(soeknad)
+ .expectStatus().isAccepted
+ .expectBody(OasSoknadsfeil::class.java)
+ .consumeWith {
+ Assertions.assertNull(it.responseBody?.feil)
+ }
}
@Test
@@ -228,17 +164,12 @@ class KorrigeringInntektsmeldingDtoRoutesTest {
tilpasserSøknadsMalTilTesten(soeknad, norskIdent, journalpostid)
opprettOgLagreSoeknad(soeknadJson = soeknad, ident = norskIdent, journalpostid)
- val body = client.postAndAssertAwaitWithStatusAndBody(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- navNorskIdentHeader = null,
- assertStatus = HttpStatus.BAD_REQUEST,
- requestBody = BodyInserters.fromValue(soeknad),
- api,
- søknadTypeUri,
- "valider"
- )
-
- assertThat(body.feil?.get(0)?.feilkode).isEqualTo("mottattDato")
+ validerSøknad(soeknad)
+ .expectStatus().isBadRequest
+ .expectBody(OasSoknadsfeil::class.java)
+ .consumeWith {
+ Assertions.assertEquals("mottattDato", it.responseBody?.feil?.get(0)?.feilkode)
+ }
}
@Test
@@ -248,8 +179,7 @@ class KorrigeringInntektsmeldingDtoRoutesTest {
val journalpostid = abs(Random(2256234).nextInt()).toString()
tilpasserSøknadsMalTilTesten(gyldigSoeknad, norskIdent, journalpostid)
- val body = opprettOgSendInnSoeknad(soeknadJson = gyldigSoeknad, ident = norskIdent, journalpostid)
- assertThat(body.feil).isNull()
+ opprettOgSendInnSoeknad(soeknadJson = gyldigSoeknad, ident = norskIdent, journalpostid)
assertThat(journalpostRepository.kanSendeInn(listOf(journalpostid))).isFalse
}
@@ -262,24 +192,21 @@ class KorrigeringInntektsmeldingDtoRoutesTest {
PeriodeDto(LocalDate.now(), LocalDate.now().plusDays(1))
)
- val oppdatertSoeknadDto =
- client.postAndAssertAwaitWithStatusAndBody>(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- navNorskIdentHeader = null,
- assertStatus = HttpStatus.OK,
- requestBody = BodyInserters.fromValue(dtoSpørring),
- api,
- søknadTypeUri,
- "k9sak",
- "arbeidsforholdIder"
- )
-
- Assertions.assertEquals("randomArbeidsforholdId", oppdatertSoeknadDto[0].arbeidsforholdId[0])
+ webTestClient.post()
+ .uri { it.path("/$api/$søknadTypeUri/k9sak/arbeidsforholdIder").build() }
+ .header("Authorization", "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}")
+ .body(BodyInserters.fromValue(dtoSpørring))
+ .exchange()
+ .expectStatus().isOk
+ .expectBodyList(ArbeidsgiverMedArbeidsforholdId::class.java)
+ .consumeWith> {
+ Assertions.assertEquals("randomArbeidsforholdId", it.responseBody?.first()?.arbeidsforholdId?.first())
+ }
}
private fun opprettSøknad(
personnummer: String,
- journalpostId: String
+ journalpostId: String,
): IdentOgJournalpost {
return IdentOgJournalpost(personnummer, journalpostId)
}
@@ -287,7 +214,7 @@ class KorrigeringInntektsmeldingDtoRoutesTest {
private fun tilpasserSøknadsMalTilTesten(
søknad: MutableMap,
norskIdent: String,
- journalpostId: String? = null
+ journalpostId: String? = null,
) {
søknad.replace("soekerId", norskIdent)
if (journalpostId != null) søknad.replace("journalposter", arrayOf(journalpostId))
@@ -302,7 +229,7 @@ class KorrigeringInntektsmeldingDtoRoutesTest {
private fun lagSendSøknad(
norskIdent: String,
- søknadId: String
+ søknadId: String,
): SendSøknad {
return SendSøknad(norskIdent, søknadId)
}
@@ -310,37 +237,24 @@ class KorrigeringInntektsmeldingDtoRoutesTest {
private suspend fun opprettOgSendInnSoeknad(
soeknadJson: SøknadJson,
ident: String,
- journalpostid: String = IdGenerator.nesteId()
- ): OasSoknadsfeil {
+ journalpostid: String = IdGenerator.nesteId(),
+ ) {
val innsendingForOpprettelseAvMappe = opprettSøknad(ident, journalpostid)
// oppretter en søknad
- val response = client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(innsendingForOpprettelseAvMappe),
- api,
- søknadTypeUri
- )
-
- val location = response.headers().asHttpHeaders().location
- Assertions.assertEquals(HttpStatus.CREATED, response.statusCode())
- Assertions.assertNotNull(location)
+ val location = opprettNySøknad(innsendingForOpprettelseAvMappe)
leggerPåNySøknadId(soeknadJson, location)
// fyller ut en søknad
- val søknadDtoFyltUt: KorrigeringInntektsmeldingDto = client.putAndAssert(
- norskIdent = null,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- requestBody = BodyInserters.fromValue(soeknadJson),
- api,
- søknadTypeUri,
- "oppdater"
- )
-
- Assertions.assertNotNull(søknadDtoFyltUt.soekerId)
+ val søknadDtoFyltUt = oppdaterEksisterendeSøknad(soeknadJson)
+ .expectStatus().isOk
+ .expectBody(KorrigeringInntektsmeldingDto::class.java)
+ .returnResult()
+ .responseBody
+
+ Assertions.assertNotNull(søknadDtoFyltUt)
+ Assertions.assertNotNull(søknadDtoFyltUt!!.soekerId)
val søknadId = søknadDtoFyltUt.soeknadId
val sendSøknad = lagSendSøknad(norskIdent = ident, søknadId = søknadId)
@@ -351,52 +265,72 @@ class KorrigeringInntektsmeldingDtoRoutesTest {
assertThat(kanSendeInn).isTrue
// sender en søknad
- val body = client.postAndAssertAwaitWithStatusAndBody(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- navNorskIdentHeader = null,
- assertStatus = HttpStatus.ACCEPTED,
- requestBody = BodyInserters.fromValue(sendSøknad),
- api,
- søknadTypeUri,
- "send"
- )
-
- return body
+ webTestClient.post()
+ .uri { it.path("/$api/$søknadTypeUri/send").build() }
+ .header("Authorization", "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}")
+ .body(BodyInserters.fromValue(sendSøknad))
+ .exchange()
+ .expectStatus().isAccepted
+ .expectBody(Søknad::class.java)
}
private suspend fun opprettOgLagreSoeknad(
soeknadJson: SøknadJson,
ident: String,
- journalpostid: String = IdGenerator.nesteId()
- ): PleiepengerSyktBarnSøknadDto {
+ journalpostid: String = IdGenerator.nesteId(),
+ ) {
val innsendingForOpprettelseAvMappe = opprettSøknad(ident, journalpostid)
// oppretter en søknad
- val resPost = client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(innsendingForOpprettelseAvMappe),
- api,
- søknadTypeUri
- )
-
- val location = resPost.headers().asHttpHeaders().location
- Assertions.assertNotNull(location)
+ val location = opprettNySøknad(innsendingForOpprettelseAvMappe)
leggerPåNySøknadId(soeknadJson, location)
// fyller ut en søknad
- val søknadDtoFyltUt = client.putAndAssert(
- norskIdent = null,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- requestBody = BodyInserters.fromValue(soeknadJson),
- api,
- søknadTypeUri,
- "oppdater"
- )
-
- Assertions.assertNotNull(søknadDtoFyltUt.soekerId)
- return søknadDtoFyltUt
+ val responseBody = oppdaterEksisterendeSøknad(soeknadJson)
+ .expectStatus().isOk
+ .expectBody(KorrigeringInntektsmeldingDto::class.java)
+ .returnResult()
+ .responseBody
+
+ Assertions.assertNotNull(responseBody)
+ Assertions.assertNotNull(responseBody!!.soekerId)
}
+
+ private fun opprettNySøknad(requestBody: IdentOgJournalpost): URI? = webTestClient.post()
+ .uri { it.path("/$api/$søknadTypeUri").build() }
+ .header("Authorization", "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}")
+ .body(BodyInserters.fromValue(requestBody))
+ .exchange()
+ .expectStatus().isCreated
+ .expectHeader().exists("Location")
+ .returnResult()
+ .responseHeaders.location
+
+ private fun hentMappe(norskIdent: String) = webTestClient.get()
+ .uri { it.path("/$api/$søknadTypeUri/mappe").build() }
+ .header("Authorization", "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}")
+ .header("X-Nav-NorskIdent", norskIdent)
+ .exchange()
+
+ private fun hentMappeGittSøknadIdFraLocation(
+ location: URI?,
+ norskIdent: String,
+ ) = webTestClient.get()
+ .uri { it.path("/$api/$søknadTypeUri/mappe/${hentSøknadId(location)}").build() }
+ .header("Authorization", "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}")
+ .header("X-Nav-NorskIdent", norskIdent)
+ .exchange()
+
+ private fun oppdaterEksisterendeSøknad(søknadFraFrontend: SøknadJson) = webTestClient.put()
+ .uri { it.path("/$api/$søknadTypeUri/oppdater").build() }
+ .header("Authorization", "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}")
+ .body(BodyInserters.fromValue(søknadFraFrontend))
+ .exchange()
+
+ private fun validerSøknad(soeknad: SøknadJson) = webTestClient.post()
+ .uri { it.path("/$api/$søknadTypeUri/valider").build() }
+ .header("Authorization", "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}")
+ .body(BodyInserters.fromValue(soeknad))
+ .exchange()
}
diff --git a/src/test/kotlin/no/nav/k9punsj/notat/NotatRoutesTest.kt b/src/test/kotlin/no/nav/k9punsj/notat/NotatRoutesTest.kt
index 40857ecf2..9b27c3f7f 100644
--- a/src/test/kotlin/no/nav/k9punsj/notat/NotatRoutesTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/notat/NotatRoutesTest.kt
@@ -2,41 +2,32 @@ package no.nav.k9punsj.notat
import kotlinx.coroutines.runBlocking
import no.nav.helse.dusseldorf.testsupport.jws.Azure
-import no.nav.k9punsj.TestSetup
-import no.nav.k9punsj.integrasjoner.dokarkiv.JournalPostResponse
-import no.nav.k9punsj.util.WebClientUtils.postAndAssertAwaitWithStatusAndBody
+import no.nav.k9punsj.AbstractContainerBaseTest
import no.nav.k9punsj.wiremock.saksbehandlerAccessToken
-import org.assertj.core.api.Assertions
import org.junit.jupiter.api.Test
-import org.springframework.http.HttpStatus
import org.springframework.web.reactive.function.BodyInserters
-internal class NotatRoutesTest {
+internal class NotatRoutesTest: AbstractContainerBaseTest() {
private companion object {
- private val client = TestSetup.client
private val api = "api"
- private val saksbehandlerAuthorizationHeader = "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}"
}
@Test
fun `Journalføring av notat`(): Unit = runBlocking {
val søkerIdent = "66666666666" // no.nav.k9punsj.rest.eksternt.pdl.TestPdlService.harBarn
- val body = client.postAndAssertAwaitWithStatusAndBody(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- navNorskIdentHeader = null,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(
- NyNotat(
- søkerIdentitetsnummer = søkerIdent,
- fagsakId = "ABC123",
- tittel = "Journalføring av notat",
- notat = "lorem ipmsum osv..."
- )
- ),
- api,
- "notat",
- "opprett"
+ val nyNotat = NyNotat(
+ søkerIdentitetsnummer = søkerIdent,
+ fagsakId = "ABC123",
+ tittel = "Journalføring av notat",
+ notat = "lorem ipmsum osv..."
)
- Assertions.assertThat(body.journalpostId).isEqualTo("201")
+
+ webTestClient.post()
+ .uri { it.path("/$api/notat/opprett").build() }
+ .header("Authorization", "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}")
+ .body(BodyInserters.fromValue(nyNotat))
+ .exchange()
+ .expectStatus().isCreated
+ .expectBody().jsonPath("$.journalpostId").isEqualTo("201")
}
}
diff --git a/src/test/kotlin/no/nav/k9punsj/omsorgspengeraleneomsorg/OmsorgspengerAleneOmsorgRoutesTest.kt b/src/test/kotlin/no/nav/k9punsj/omsorgspengeraleneomsorg/OmsorgspengerAleneOmsorgRoutesTest.kt
index 788db9112..2b29f3586 100644
--- a/src/test/kotlin/no/nav/k9punsj/omsorgspengeraleneomsorg/OmsorgspengerAleneOmsorgRoutesTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/omsorgspengeraleneomsorg/OmsorgspengerAleneOmsorgRoutesTest.kt
@@ -1,61 +1,48 @@
package no.nav.k9punsj.omsorgspengeraleneomsorg
-import io.mockk.junit5.MockKExtension
import kotlinx.coroutines.runBlocking
import no.nav.helse.dusseldorf.testsupport.jws.Azure
-import no.nav.k9punsj.TestSetup
+import no.nav.k9punsj.AbstractContainerBaseTest
import no.nav.k9punsj.felles.dto.OpprettNySøknad
import no.nav.k9punsj.felles.dto.SendSøknad
-import no.nav.k9punsj.openapi.OasSoknadsfeil
-import no.nav.k9punsj.util.DatabaseUtil
+import no.nav.k9punsj.journalpost.JournalpostRepository
import no.nav.k9punsj.util.IdGenerator
import no.nav.k9punsj.util.LesFraFilUtil
import no.nav.k9punsj.util.SøknadJson
-import no.nav.k9punsj.util.WebClientUtils.awaitBodyWithType
-import no.nav.k9punsj.util.WebClientUtils.getAndAssert
-import no.nav.k9punsj.util.WebClientUtils.postAndAssert
-import no.nav.k9punsj.util.WebClientUtils.postAndAssertAwaitWithStatusAndBody
-import no.nav.k9punsj.util.WebClientUtils.putAndAssert
import no.nav.k9punsj.wiremock.saksbehandlerAccessToken
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
-import org.junit.jupiter.api.extension.ExtendWith
-import org.springframework.http.HttpHeaders
-import org.springframework.http.HttpStatus
-import org.springframework.test.context.junit.jupiter.SpringExtension
+import org.springframework.beans.factory.annotation.Autowired
import org.springframework.web.reactive.function.BodyInserters
import java.net.URI
-import java.time.LocalDate
import java.util.*
import kotlin.math.abs
import kotlin.random.Random
-@ExtendWith(SpringExtension::class, MockKExtension::class)
-internal class OmsorgspengerAleneOmsorgRoutesTest {
- private val client = TestSetup.client
+internal class OmsorgspengerAleneOmsorgRoutesTest : AbstractContainerBaseTest() {
private val api = "api"
private val søknadTypeUri = "omsorgspenger-alene-om-omsorgen-soknad"
- private val saksbehandlerAuthorizationHeader = "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}"
- private val journalpostRepository = DatabaseUtil.getJournalpostRepo()
+
+ @Autowired
+ lateinit var journalpostRepository: JournalpostRepository
@AfterEach
internal fun tearDown() {
- DatabaseUtil.cleanDB()
+ cleanUpDB()
}
@Test
fun `Får tom liste når personen ikke har en eksisterende mappe`(): Unit = runBlocking {
val norskIdent = "01110050053"
- val body = client.getAndAssert(
- norskIdent = norskIdent,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- api,
- søknadTypeUri,
- "mappe"
- )
- Assertions.assertTrue(body.søknader!!.isEmpty())
+
+ webTestClient.get()
+ .uri { it.path("/$api/$søknadTypeUri/mappe").build() }
+ .header("Authorization", "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}")
+ .header("X-Nav-NorskIdent", norskIdent)
+ .exchange()
+ .expectStatus().isOk
+ .expectBody().jsonPath("$.søknader").isEmpty
}
@Test
@@ -64,13 +51,7 @@ internal class OmsorgspengerAleneOmsorgRoutesTest {
val pleietrengende = "01010050023"
val opprettNySøknad = opprettSøknad(norskIdent, UUID.randomUUID().toString(), pleietrengende)
- client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(opprettNySøknad),
- api,
- søknadTypeUri
- )
+ opprettNySøknad(opprettNySøknad)
}
@Test
@@ -82,16 +63,12 @@ internal class OmsorgspengerAleneOmsorgRoutesTest {
tilpasserSøknadsMalTilTesten(soeknad, norskIdent, journalpostid)
opprettOgLagreSoeknad(soeknadJson = soeknad, ident = norskIdent, journalpostid, pleietrengende)
- val body = client.postAndAssertAwaitWithStatusAndBody(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- navNorskIdentHeader = null,
- assertStatus = HttpStatus.ACCEPTED,
- requestBody = BodyInserters.fromValue(soeknad),
- api,
- søknadTypeUri,
- "valider"
- )
- org.assertj.core.api.Assertions.assertThat(body.feil).isNull()
+ webTestClient.post()
+ .uri { it.path("/$api/$søknadTypeUri/valider").build() }
+ .header("Authorization", "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}")
+ .body(BodyInserters.fromValue(soeknad))
+ .exchange()
+ .expectStatus().isAccepted
}
@Test
@@ -102,8 +79,7 @@ internal class OmsorgspengerAleneOmsorgRoutesTest {
val journalpostid = abs(Random(56234).nextInt()).toString()
tilpasserSøknadsMalTilTesten(gyldigSoeknad, norskIdent, journalpostid)
- val body = opprettOgSendInnSoeknad(soeknadJson = gyldigSoeknad, ident = norskIdent, journalpostid, pleietrengende)
- org.assertj.core.api.Assertions.assertThat(body.feil).isNull()
+ opprettOgSendInnSoeknad(soeknadJson = gyldigSoeknad, ident = norskIdent, journalpostid, pleietrengende)
org.assertj.core.api.Assertions.assertThat(journalpostRepository.kanSendeInn(listOf(journalpostid))).isFalse
}
@@ -115,15 +91,17 @@ internal class OmsorgspengerAleneOmsorgRoutesTest {
val journalpostid = abs(Random(56234).nextInt()).toString()
tilpasserSøknadsMalTilTesten(gyldigSoeknad, norskIdent, journalpostid)
- val søknad = opprettOgLagreSoeknad(soeknadJson = gyldigSoeknad, ident = norskIdent, journalpostid, pleietrengende)
-
- val søknadViaGet = client.get()
- .uri { it.pathSegment(api, søknadTypeUri, "mappe", søknad.soeknadId).build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .awaitBodyWithType()
-
- org.assertj.core.api.Assertions.assertThat(søknadViaGet.begrunnelseForInnsending).isEqualTo("JEG VET IKKE")
- org.assertj.core.api.Assertions.assertThat(søknadViaGet.barn?.foedselsdato).isEqualTo(LocalDate.of(2018, 10, 30))
+ val søknad =
+ opprettOgLagreSoeknad(soeknadJson = gyldigSoeknad, ident = norskIdent, journalpostid, pleietrengende)
+
+ webTestClient.get()
+ .uri { it.path("/$api/$søknadTypeUri/mappe/${søknad.soeknadId}").build() }
+ .header("Authorization", "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}")
+ .exchange()
+ .expectStatus().isOk
+ .expectBody()
+ .jsonPath("$.begrunnelseForInnsending").isEqualTo("JEG VET IKKE")
+ .jsonPath("$.barn.foedselsdato").isEqualTo("2018-10-30")
}
@Test
@@ -140,37 +118,28 @@ internal class OmsorgspengerAleneOmsorgRoutesTest {
pleietrengende = pleietrengende
)
- val body = client.putAndAssert, OmsorgspengerAleneOmsorgSøknadDto>(
- norskIdent = null,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- requestBody = BodyInserters.fromValue(soeknad),
- api,
- søknadTypeUri,
- "oppdater"
- )
+ val body = oppdaterSøknad(soeknad)
Assertions.assertNotNull(body)
- Assertions.assertEquals(norskIdent, body.soekerId)
-
- val søknadViaGet = client.getAndAssert(
- norskIdent = norskIdent,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- api,
- søknadTypeUri,
- "mappe",
- soeknad["soeknadId"] as String
- )
-
- Assertions.assertNotNull(søknadViaGet)
- org.assertj.core.api.Assertions.assertThat(body.metadata).isEqualTo(søknadViaGet.metadata)
+ Assertions.assertEquals(norskIdent, body!!.soekerId)
+
+ webTestClient.get()
+ .uri { it.path("/$api/$søknadTypeUri/mappe/${soeknad["soeknadId"]}").build() }
+ .header("Authorization", "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}")
+ .header("X-Nav-NorskIdent", norskIdent)
+ .exchange()
+ .expectStatus().isOk
+ .expectBody(OmsorgspengerAleneOmsorgSøknadDto::class.java)
+ .consumeWith {
+ Assertions.assertNotNull(it.responseBody)
+ Assertions.assertEquals(body.metadata, it.responseBody!!.metadata)
+ }
}
private fun opprettSøknad(
personnummer: String,
journalpostId: String,
- pleietrengende: String
+ pleietrengende: String,
): OpprettNySøknad {
return OpprettNySøknad(
norskIdent = personnummer,
@@ -183,7 +152,7 @@ internal class OmsorgspengerAleneOmsorgRoutesTest {
private fun tilpasserSøknadsMalTilTesten(
søknad: MutableMap,
norskIdent: String,
- journalpostId: String? = null
+ journalpostId: String? = null,
) {
søknad.replace("soekerId", norskIdent)
if (journalpostId != null) søknad.replace("journalposter", arrayOf(journalpostId))
@@ -193,37 +162,30 @@ internal class OmsorgspengerAleneOmsorgRoutesTest {
soeknadJson: SøknadJson,
ident: String,
journalpostid: String = IdGenerator.nesteId(),
- pleietrengende: String
+ pleietrengende: String,
): OmsorgspengerAleneOmsorgSøknadDto {
val innsendingForOpprettelseAvMappe = opprettSøknad(ident, journalpostid, pleietrengende)
// oppretter en søknad
- val resPost = client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(innsendingForOpprettelseAvMappe),
- api,
- søknadTypeUri
- )
-
- val location = resPost.headers().asHttpHeaders().location
- Assertions.assertNotNull(location)
+ val location = webTestClient.post()
+ .uri { it.path("/$api/$søknadTypeUri").build() }
+ .header("Authorization", "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}")
+ .body(BodyInserters.fromValue(innsendingForOpprettelseAvMappe))
+ .exchange()
+ .expectStatus().isCreated
+ .expectHeader().exists("Location")
+ .returnResult(OmsorgspengerAleneOmsorgSøknadDto::class.java)
+ .responseHeaders.location
leggerPåNySøknadId(soeknadJson, location)
// fyller ut en søknad
- val søknadDtoFyltUt = client.putAndAssert(
- norskIdent = null,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- requestBody = BodyInserters.fromValue(soeknadJson),
- api,
- søknadTypeUri,
- "oppdater"
- )
+ val omsorgspengerAleneOmsorgSøknadDto = oppdaterSøknad(soeknadJson)
+
+ Assertions.assertNotNull(omsorgspengerAleneOmsorgSøknadDto)
+ Assertions.assertNotNull(omsorgspengerAleneOmsorgSøknadDto!!.soekerId)
- Assertions.assertNotNull(søknadDtoFyltUt.soekerId)
- return søknadDtoFyltUt
+ return omsorgspengerAleneOmsorgSøknadDto
}
private fun leggerPåNySøknadId(søknadFraFrontend: MutableMap, location: URI?) {
@@ -237,63 +199,59 @@ internal class OmsorgspengerAleneOmsorgRoutesTest {
soeknadJson: SøknadJson,
ident: String,
journalpostid: String = IdGenerator.nesteId(),
- pleietrengende: String
- ): OasSoknadsfeil {
+ pleietrengende: String,
+ ) {
val innsendingForOpprettelseAvMappe = opprettSøknad(ident, journalpostid, pleietrengende)
// oppretter en søknad
- val response = client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(innsendingForOpprettelseAvMappe),
- api,
- søknadTypeUri
- )
-
- val location = response.headers().asHttpHeaders().location
- Assertions.assertEquals(HttpStatus.CREATED, response.statusCode())
- Assertions.assertNotNull(location)
+ val location = opprettNySøknad(innsendingForOpprettelseAvMappe)
leggerPåNySøknadId(soeknadJson, location)
// fyller ut en søknad
- val søknadDtoFyltUt: OmsorgspengerAleneOmsorgSøknadDto = client.putAndAssert(
- norskIdent = null,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- requestBody = BodyInserters.fromValue(soeknadJson),
- api,
- søknadTypeUri,
- "oppdater"
- )
+ val søknadDtoFyltUt = oppdaterSøknad(soeknadJson)
- Assertions.assertNotNull(søknadDtoFyltUt.soekerId)
+ Assertions.assertNotNull(søknadDtoFyltUt)
+ Assertions.assertNotNull(søknadDtoFyltUt!!.soekerId)
val søknadId = søknadDtoFyltUt.soeknadId
val sendSøknad = lagSendSøknad(norskIdent = ident, søknadId = søknadId)
-
val journalposter = søknadDtoFyltUt.journalposter!!
val kanSendeInn = journalpostRepository.kanSendeInn(journalposter)
org.assertj.core.api.Assertions.assertThat(kanSendeInn).isTrue
// sender en søknad
- val body = client.postAndAssertAwaitWithStatusAndBody(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- navNorskIdentHeader = null,
- assertStatus = HttpStatus.ACCEPTED,
- requestBody = BodyInserters.fromValue(sendSøknad),
- api,
- søknadTypeUri,
- "send"
- )
-
- return body
+ webTestClient.post()
+ .uri { it.path("/$api/$søknadTypeUri/send").build() }
+ .header("Authorization", "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}")
+ .body(BodyInserters.fromValue(sendSøknad))
+ .exchange()
+ .expectStatus().isAccepted
}
+ private fun opprettNySøknad(innsendingForOpprettelseAvMappe: OpprettNySøknad) = webTestClient.post()
+ .uri { it.path("/$api/$søknadTypeUri").build() }
+ .header("Authorization", "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}")
+ .body(BodyInserters.fromValue(innsendingForOpprettelseAvMappe))
+ .exchange()
+ .expectStatus().isCreated
+ .expectHeader().exists("Location")
+ .returnResult(OmsorgspengerAleneOmsorgSøknadDto::class.java)
+ .responseHeaders.location
+
+ private fun oppdaterSøknad(soeknadJson: SøknadJson) = webTestClient.put()
+ .uri { it.path("/$api/$søknadTypeUri/oppdater").build() }
+ .header("Authorization", "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}")
+ .body(BodyInserters.fromValue(soeknadJson))
+ .exchange()
+ .expectStatus().isOk
+ .expectBody(OmsorgspengerAleneOmsorgSøknadDto::class.java)
+ .returnResult().responseBody
+
private fun lagSendSøknad(
norskIdent: String,
- søknadId: String
+ søknadId: String,
): SendSøknad {
return SendSøknad(norskIdent, søknadId)
}
diff --git a/src/test/kotlin/no/nav/k9punsj/omsorgspengerkronisksyktbarn/OmsorgspengerKroniskSyktBarnRoutesTest.kt b/src/test/kotlin/no/nav/k9punsj/omsorgspengerkronisksyktbarn/OmsorgspengerKroniskSyktBarnRoutesTest.kt
index 775a45436..ad9c4a557 100644
--- a/src/test/kotlin/no/nav/k9punsj/omsorgspengerkronisksyktbarn/OmsorgspengerKroniskSyktBarnRoutesTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/omsorgspengerkronisksyktbarn/OmsorgspengerKroniskSyktBarnRoutesTest.kt
@@ -1,64 +1,51 @@
package no.nav.k9punsj.omsorgspengerkronisksyktbarn
import com.fasterxml.jackson.module.kotlin.readValue
-import io.mockk.junit5.MockKExtension
import kotlinx.coroutines.runBlocking
-import no.nav.helse.dusseldorf.testsupport.jws.Azure
-import no.nav.k9punsj.TestSetup
+import no.nav.k9.søknad.Søknad
+import no.nav.k9punsj.AbstractContainerBaseTest
import no.nav.k9punsj.felles.dto.OpprettNySøknad
import no.nav.k9punsj.felles.dto.SendSøknad
+import no.nav.k9punsj.journalpost.JournalpostRepository
import no.nav.k9punsj.openapi.OasSoknadsfeil
-import no.nav.k9punsj.util.DatabaseUtil
import no.nav.k9punsj.util.IdGenerator
import no.nav.k9punsj.util.LesFraFilUtil
import no.nav.k9punsj.util.SøknadJson
import no.nav.k9punsj.util.TestUtils.hentSøknadId
-import no.nav.k9punsj.util.WebClientUtils.awaitStatusWithBody
-import no.nav.k9punsj.util.WebClientUtils.getAndAssert
-import no.nav.k9punsj.util.WebClientUtils.postAndAssert
-import no.nav.k9punsj.util.WebClientUtils.postAndAssertAwaitWithStatusAndBody
-import no.nav.k9punsj.util.WebClientUtils.putAndAssert
import no.nav.k9punsj.utils.objectMapper
-import no.nav.k9punsj.wiremock.saksbehandlerAccessToken
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
-import org.junit.jupiter.api.extension.ExtendWith
+import org.springframework.beans.factory.annotation.Autowired
import org.springframework.http.HttpHeaders
import org.springframework.http.HttpStatus
-import org.springframework.test.context.junit.jupiter.SpringExtension
import org.springframework.web.reactive.function.BodyInserters
import java.net.URI
import java.util.*
import kotlin.math.abs
import kotlin.random.Random
-@ExtendWith(SpringExtension::class, MockKExtension::class)
-class OmsorgspengerKroniskSyktBarnRoutesTest {
+class OmsorgspengerKroniskSyktBarnRoutesTest : AbstractContainerBaseTest() {
- private val client = TestSetup.client
private val api = "api"
private val søknadTypeUri = "omsorgspenger-kronisk-sykt-barn-soknad"
- private val saksbehandlerAuthorizationHeader = "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}"
- private val journalpostRepository = DatabaseUtil.getJournalpostRepo()
+
+ @Autowired
+ lateinit var journalpostRepository: JournalpostRepository
@AfterEach
internal fun tearDown() {
- DatabaseUtil.cleanDB()
+ cleanUpDB()
}
@Test
fun `Får tom liste når personen ikke har en eksisterende mappe`(): Unit = runBlocking {
- val responsebody = client.getAndAssert(
- norskIdent = "01110050053",
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- api,
- søknadTypeUri,
- "mappe"
- )
- Assertions.assertTrue(responsebody.søknader!!.isEmpty())
+ val norskIdent = "01110050053"
+ hentMappe(norskIdent)
+ .expectStatus().isOk
+ .expectBody()
+ .jsonPath("$.søknader").isEmpty
}
@Test
@@ -67,15 +54,10 @@ class OmsorgspengerKroniskSyktBarnRoutesTest {
val pleietrengendeIdent = "02020050163"
val opprettNySøknad = opprettSøknad(norskIdent, pleietrengendeIdent, UUID.randomUUID().toString())
- client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(opprettNySøknad),
- api,
- søknadTypeUri
- )
+ opprettNySøknad(opprettNySøknad)
}
+
@Test
fun `Hente eksisterende mappe på person`(): Unit = runBlocking {
val norskIdent = "02020050163"
@@ -83,25 +65,14 @@ class OmsorgspengerKroniskSyktBarnRoutesTest {
val journalpostId = UUID.randomUUID().toString()
val opprettNySøknad = opprettSøknad(norskIdent, pleietrengendeIdent, journalpostId)
- client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(opprettNySøknad),
- api,
- søknadTypeUri
- )
-
- val responsebody = client.getAndAssert(
- norskIdent = norskIdent,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- api,
- søknadTypeUri,
- "mappe"
- )
-
- val journalposterDto = responsebody.søknader?.first()?.journalposter
- Assertions.assertEquals(journalpostId, journalposterDto?.first())
+ opprettNySøknad(opprettNySøknad)
+ hentMappe(norskIdent)
+ .expectStatus().isOk
+ .expectBody(SvarOmsKSBDto::class.java)
+ .consumeWith {
+ val journalposterDto = it.responseBody?.søknader?.first()?.journalposter
+ Assertions.assertEquals(journalpostId, journalposterDto?.first())
+ }
}
@Test
@@ -114,29 +85,15 @@ class OmsorgspengerKroniskSyktBarnRoutesTest {
val opprettNySøknad = opprettSøknad(norskIdent, pleietrengendeIdent, journalpostid)
- val resPost = client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(opprettNySøknad),
- api,
- søknadTypeUri
- )
-
- val location = resPost.headers().asHttpHeaders().location
- Assertions.assertNotNull(location)
-
- val res = client.getAndAssert(
- norskIdent = "",
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- api,
- søknadTypeUri,
- "mappe",
- hentSøknadId(location)!!
- )
+ val location = opprettNySøknad(opprettNySøknad)
- Assertions.assertNotNull(res)
- Assertions.assertEquals(journalpostid, res.journalposter?.first())
+ hentMappe(hentSøknadId(location)!!, "")
+ .expectStatus().isOk
+ .expectBody(OmsorgspengerKroniskSyktBarnSøknadDto::class.java)
+ .consumeWith {
+ val faktiskJournalpostId = it.responseBody?.journalposter?.first()
+ Assertions.assertEquals(journalpostid, faktiskJournalpostId)
+ }
}
@Test
@@ -149,31 +106,17 @@ class OmsorgspengerKroniskSyktBarnRoutesTest {
val opprettNySøknad = opprettSøknad(norskIdent, pleietrengendeIdent, journalpostid)
- val nySøknadRespons = client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(opprettNySøknad),
- api,
- søknadTypeUri
- )
-
- val location = nySøknadRespons.headers().asHttpHeaders().location
- Assertions.assertNotNull(location)
+ val location = opprettNySøknad(opprettNySøknad)
leggerPåNySøknadId(søknadFraFrontend, location)
- val body = client.putAndAssert, OmsorgspengerKroniskSyktBarnSøknadDto>(
- norskIdent = norskIdent,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- requestBody = BodyInserters.fromValue(søknadFraFrontend),
- api,
- søknadTypeUri,
- "oppdater"
- )
-
- Assertions.assertNotNull(body)
- Assertions.assertEquals(norskIdent, body.soekerId)
+ oppdaterSøknad(norskIdent, søknadFraFrontend)
+ .expectStatus().isOk
+ .expectBody(OmsorgspengerKroniskSyktBarnSøknadDto::class.java)
+ .consumeWith {
+ Assertions.assertNotNull(it.responseBody)
+ Assertions.assertEquals(norskIdent, it.responseBody!!.soekerId)
+ }
}
@Test
@@ -186,44 +129,25 @@ class OmsorgspengerKroniskSyktBarnRoutesTest {
val opprettNySøknad = opprettSøknad(norskIdent, pleietrengendeIdent, journalpostid)
- val nySøknadRespons = client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(opprettNySøknad),
- api,
- søknadTypeUri
- )
-
- val location = nySøknadRespons.headers().asHttpHeaders().location
- Assertions.assertNotNull(location)
+ val location = opprettNySøknad(opprettNySøknad)
leggerPåNySøknadId(søknadFraFrontend, location)
- val body = client.putAndAssert, OmsorgspengerKroniskSyktBarnSøknadDto>(
- norskIdent = norskIdent,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- requestBody = BodyInserters.fromValue(søknadFraFrontend),
- api,
- søknadTypeUri,
- "oppdater"
- )
+ val omsorgspengerKroniskSyktBarnSøknadDto = oppdaterSøknad(norskIdent, søknadFraFrontend)
+ .expectStatus().isOk
+ .expectBody(OmsorgspengerKroniskSyktBarnSøknadDto::class.java)
+ .returnResult().responseBody!!
- Assertions.assertNotNull(body)
- Assertions.assertEquals(norskIdent, body.soekerId)
-
- val søknadViaGet = client.getAndAssert(
- norskIdent = norskIdent,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- api,
- søknadTypeUri,
- "mappe",
- hentSøknadId(location)!!
- )
+ Assertions.assertNotNull(omsorgspengerKroniskSyktBarnSøknadDto)
+ Assertions.assertEquals(norskIdent, omsorgspengerKroniskSyktBarnSøknadDto.soekerId)
- Assertions.assertNotNull(søknadViaGet)
- assertThat(body.metadata).isEqualTo(søknadViaGet.metadata)
+ hentMappe(omsorgspengerKroniskSyktBarnSøknadDto.soeknadId, norskIdent)
+ .expectStatus().isOk
+ .expectBody(OmsorgspengerKroniskSyktBarnSøknadDto::class.java)
+ .consumeWith {
+ Assertions.assertNotNull(it.responseBody)
+ assertThat(omsorgspengerKroniskSyktBarnSøknadDto.metadata).isEqualTo(it.responseBody!!.metadata)
+ }
}
@Test
@@ -233,8 +157,7 @@ class OmsorgspengerKroniskSyktBarnRoutesTest {
val journalpostid = abs(Random(56234).nextInt()).toString()
tilpasserSøknadsMalTilTesten(gyldigSoeknad, norskIdent, journalpostid)
- val body = opprettOgSendInnSoeknad(soeknadJson = gyldigSoeknad, ident = norskIdent, journalpostid)
- assertThat(body.feil).isNull()
+ opprettOgSendInnSoeknad(soeknadJson = gyldigSoeknad, ident = norskIdent, journalpostid)
assertThat(journalpostRepository.kanSendeInn(listOf(journalpostid))).isFalse
}
@@ -247,15 +170,12 @@ class OmsorgspengerKroniskSyktBarnRoutesTest {
tilpasserSøknadsMalTilTesten(soeknad, norskIdent, journalpostid)
opprettOgLagreSoeknad(soeknadJson = soeknad, ident = norskIdent, pleietrengendeIdent, journalpostid)
- val (status, body) = client.post()
- .uri { it.pathSegment(api, søknadTypeUri, "valider").build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .body(BodyInserters.fromValue(soeknad))
- .awaitStatusWithBody()
-
- assertThat(body.feil).isNull()
-
- Assertions.assertEquals(HttpStatus.ACCEPTED, status)
+ validerSøknad(soeknad)
+ .expectStatus().isEqualTo(HttpStatus.ACCEPTED)
+ .expectBody(OasSoknadsfeil::class.java)
+ .consumeWith {
+ assertThat(it.responseBody?.feil).isNull()
+ }
}
@Test
@@ -267,19 +187,14 @@ class OmsorgspengerKroniskSyktBarnRoutesTest {
val oppdatertSoeknadDto = opprettOgLagreSoeknad(soeknadJson = soeknad, ident = norskIdent, pleietrengendeIdent)
- val søknad = client.getAndAssert(
- norskIdent = null,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- api,
- søknadTypeUri,
- "mappe",
- oppdatertSoeknadDto.soeknadId
- )
-
- Assertions.assertNotNull(søknad)
- assertThat(søknad.harInfoSomIkkeKanPunsjes).isEqualTo(true)
- assertThat(søknad.harMedisinskeOpplysninger).isEqualTo(true)
+ hentMappe(oppdatertSoeknadDto.soeknadId, norskIdent)
+ .expectStatus().isOk
+ .expectBody(OmsorgspengerKroniskSyktBarnSøknadDto::class.java)
+ .consumeWith {
+ Assertions.assertNotNull(it.responseBody)
+ assertThat(it.responseBody!!.harInfoSomIkkeKanPunsjes).isEqualTo(true)
+ assertThat(it.responseBody!!.harMedisinskeOpplysninger).isEqualTo(true)
+ }
}
@Test
@@ -309,31 +224,16 @@ class OmsorgspengerKroniskSyktBarnRoutesTest {
tilpasserSøknadsMalTilTesten(soeknadJson, norskIdent, journalpostid)
opprettOgLagreSoeknad(soeknadJson = soeknadJson, ident = norskIdent, journalpostid)
- val body = client.postAndAssertAwaitWithStatusAndBody(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- navNorskIdentHeader = null,
- assertStatus = HttpStatus.ACCEPTED,
- requestBody = BodyInserters.fromValue(soeknadJson),
- api,
- søknadTypeUri,
- "valider"
- )
-
- assertThat(body.feil?.isEmpty())
+ validerSøknad(soeknadJson)
+ .expectStatus().isEqualTo(HttpStatus.ACCEPTED)
+ .expectBody(OasSoknadsfeil::class.java)
+ .consumeWith {
+ assertThat(it.responseBody?.feil).isNull()
+ }
val sendSøknad = lagSendSøknad(norskIdent = norskIdent, søknadId = soeknadJson["soeknadId"] as String)
- val resultat = client.postAndAssertAwaitWithStatusAndBody(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- navNorskIdentHeader = null,
- assertStatus = HttpStatus.ACCEPTED,
- requestBody = BodyInserters.fromValue(sendSøknad),
- api,
- søknadTypeUri,
- "send"
- )
-
- assertThat(resultat.feil?.isEmpty())
+ sendInnSøknad(sendSøknad)
}
@Test
@@ -344,17 +244,16 @@ class OmsorgspengerKroniskSyktBarnRoutesTest {
tilpasserSøknadsMalTilTesten(soeknad, norskIdent, journalpostid)
opprettOgLagreSoeknad(soeknadJson = soeknad, ident = norskIdent, journalpostid)
- val body = client.postAndAssertAwaitWithStatusAndBody(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- navNorskIdentHeader = null,
- assertStatus = HttpStatus.BAD_REQUEST,
- requestBody = BodyInserters.fromValue(soeknad),
- api,
- søknadTypeUri,
- "valider"
- )
-
- assertThat(body.feil?.get(0)?.felt).isEqualTo("ytelse.barn")
+ val body = validerSøknad(soeknad)
+ .expectStatus().isEqualTo(HttpStatus.BAD_REQUEST)
+ .expectBody(OasSoknadsfeil::class.java)
+ .consumeWith {
+ val oasSoknadsfeil = it.responseBody
+ Assertions.assertNotNull(oasSoknadsfeil)
+ assertThat(oasSoknadsfeil!!.feil).isNotNull
+ assertThat(oasSoknadsfeil.feil?.size).isEqualTo(1)
+ assertThat(oasSoknadsfeil.feil?.get(0)?.felt).isEqualTo("ytelse.barn")
+ }
}
private fun opprettSøknad(personnummer: String, pleietrengendeIdent: String, journalpostId: String) =
@@ -393,34 +292,19 @@ class OmsorgspengerKroniskSyktBarnRoutesTest {
ident: String,
pleietrengendeIdent: String,
journalpostid: String = IdGenerator.nesteId(),
- ): OasSoknadsfeil {
+ ) {
val innsendingForOpprettelseAvMappe = opprettSøknad(ident, pleietrengendeIdent, journalpostid)
// oppretter en søknad
- val response = client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(innsendingForOpprettelseAvMappe),
- api,
- søknadTypeUri
- )
-
- val location = response.headers().asHttpHeaders().location
- Assertions.assertEquals(HttpStatus.CREATED, response.statusCode())
- Assertions.assertNotNull(location)
+ val location = opprettNySøknad(innsendingForOpprettelseAvMappe)
leggerPåNySøknadId(soeknadJson, location)
// fyller ut en søknad
- val søknadDtoFyltUt: OmsorgspengerKroniskSyktBarnSøknadDto = client.putAndAssert(
- norskIdent = null,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- requestBody = BodyInserters.fromValue(soeknadJson),
- api,
- søknadTypeUri,
- "oppdater"
- )
+ val søknadDtoFyltUt = oppdaterSøknad(ident, soeknadJson)
+ .expectStatus().isOk
+ .expectBody(OmsorgspengerKroniskSyktBarnSøknadDto::class.java)
+ .returnResult().responseBody!!
Assertions.assertNotNull(søknadDtoFyltUt.soekerId)
@@ -433,17 +317,7 @@ class OmsorgspengerKroniskSyktBarnRoutesTest {
assertThat(kanSendeInn).isTrue
// sender en søknad
- val body = client.postAndAssertAwaitWithStatusAndBody(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- navNorskIdentHeader = null,
- assertStatus = HttpStatus.ACCEPTED,
- requestBody = BodyInserters.fromValue(sendSøknad),
- api,
- søknadTypeUri,
- "send"
- )
-
- return body
+ sendInnSøknad(sendSøknad)
}
private suspend fun opprettOgLagreSoeknad(
@@ -455,31 +329,65 @@ class OmsorgspengerKroniskSyktBarnRoutesTest {
val innsendingForOpprettelseAvMappe = opprettSøknad(ident, pleietrengendeIdent, journalpostid)
// oppretter en søknad
- val resPost = client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(innsendingForOpprettelseAvMappe),
- api,
- søknadTypeUri
- )
-
- val location = resPost.headers().asHttpHeaders().location
- Assertions.assertNotNull(location)
+ val location = opprettNySøknad(innsendingForOpprettelseAvMappe)
leggerPåNySøknadId(soeknadJson, location)
// fyller ut en søknad
- val søknadDtoFyltUt = client.putAndAssert(
- norskIdent = null,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- requestBody = BodyInserters.fromValue(soeknadJson),
- api,
- søknadTypeUri,
- "oppdater"
- )
+ val søknadDtoFyltUt = oppdaterSøknad(ident, soeknadJson)
+ .expectStatus().isOk
+ .expectBody(OmsorgspengerKroniskSyktBarnSøknadDto::class.java)
+ .returnResult().responseBody!!
Assertions.assertNotNull(søknadDtoFyltUt.soekerId)
return søknadDtoFyltUt
}
+
+ private fun hentMappe(norskIdent: String) = webTestClient.get()
+ .uri { it.path("/$api/$søknadTypeUri/mappe").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .header("X-Nav-NorskIdent", norskIdent)
+ .exchange()
+
+ private fun hentMappe(søknadId: String, norskIdent: String) = webTestClient.get()
+ .uri { it.path("/$api/$søknadTypeUri/mappe/$søknadId").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .header("X-Nav-NorskIdent", norskIdent)
+ .exchange()
+
+ private fun opprettNySøknad(opprettNySøknad: OpprettNySøknad): URI = webTestClient.post()
+ .uri { it.path("/$api/$søknadTypeUri").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .body(BodyInserters.fromValue(opprettNySøknad))
+ .exchange()
+ .expectStatus().isCreated
+ .expectHeader().exists("Location")
+ .returnResult(OmsorgspengerKroniskSyktBarnSøknadDto::class.java)
+ .responseHeaders.location!!
+
+ private fun oppdaterSøknad(
+ norskIdent: String,
+ søknadFraFrontend: SøknadJson,
+ ) = webTestClient.put()
+ .uri { it.path("/$api/$søknadTypeUri/oppdater").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .header("X-Nav-NorskIdent", norskIdent)
+ .body(BodyInserters.fromValue(søknadFraFrontend))
+ .exchange()
+
+ private fun validerSøknad(soeknad: SøknadJson) = webTestClient.post()
+ .uri { it.path("/$api/$søknadTypeUri/valider").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .body(BodyInserters.fromValue(soeknad))
+ .exchange()
+
+ private fun sendInnSøknad(sendSøknad: SendSøknad) {
+ webTestClient.post()
+ .uri { it.path("/$api/$søknadTypeUri/send").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .body(BodyInserters.fromValue(sendSøknad))
+ .exchange()
+ .expectStatus().isAccepted
+ .expectBody(Søknad::class.java)
+ }
}
diff --git a/src/test/kotlin/no/nav/k9punsj/omsorgspengermidlertidigalene/OmsorgspengerMidlertidigAleneRoutesTest.kt b/src/test/kotlin/no/nav/k9punsj/omsorgspengermidlertidigalene/OmsorgspengerMidlertidigAleneRoutesTest.kt
index ed2786d23..d068ba68a 100644
--- a/src/test/kotlin/no/nav/k9punsj/omsorgspengermidlertidigalene/OmsorgspengerMidlertidigAleneRoutesTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/omsorgspengermidlertidigalene/OmsorgspengerMidlertidigAleneRoutesTest.kt
@@ -1,63 +1,46 @@
package no.nav.k9punsj.omsorgspengermidlertidigalene
-import io.mockk.junit5.MockKExtension
import kotlinx.coroutines.runBlocking
-import no.nav.helse.dusseldorf.testsupport.jws.Azure
import no.nav.k9.søknad.Søknad
import no.nav.k9.søknad.ytelse.omsorgspenger.utvidetrett.v1.OmsorgspengerMidlertidigAlene
-import no.nav.k9punsj.TestSetup
+import no.nav.k9punsj.AbstractContainerBaseTest
import no.nav.k9punsj.felles.dto.SendSøknad
-import no.nav.k9punsj.openapi.OasSoknadsfeil
-import no.nav.k9punsj.util.DatabaseUtil
+import no.nav.k9punsj.journalpost.JournalpostRepository
import no.nav.k9punsj.util.IdGenerator
import no.nav.k9punsj.util.LesFraFilUtil
import no.nav.k9punsj.util.SøknadJson
-import no.nav.k9punsj.util.WebClientUtils.awaitBodyWithType
-import no.nav.k9punsj.util.WebClientUtils.getAndAssert
-import no.nav.k9punsj.util.WebClientUtils.postAndAssert
-import no.nav.k9punsj.util.WebClientUtils.postAndAssertAwaitWithStatusAndBody
-import no.nav.k9punsj.util.WebClientUtils.putAndAssert
-import no.nav.k9punsj.wiremock.saksbehandlerAccessToken
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
-import org.junit.jupiter.api.extension.ExtendWith
+import org.springframework.beans.factory.annotation.Autowired
import org.springframework.http.HttpHeaders
-import org.springframework.http.HttpStatus
-import org.springframework.test.context.junit.jupiter.SpringExtension
-import org.springframework.web.reactive.function.BodyInserters
import java.net.URI
import java.util.*
import kotlin.math.abs
import kotlin.random.Random
-@ExtendWith(SpringExtension::class, MockKExtension::class)
-internal class OmsorgspengerMidlertidigAleneRoutesTest {
- private val client = TestSetup.client
+internal class OmsorgspengerMidlertidigAleneRoutesTest : AbstractContainerBaseTest() {
private val api = "api"
private val søknadTypeUri = "omsorgspenger-midlertidig-alene-soknad"
- private val saksbehandlerAuthorizationHeader = "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}"
- private val journalpostRepository = DatabaseUtil.getJournalpostRepo()
+
+ @Autowired
+ lateinit var journalpostRepository: JournalpostRepository
@AfterEach
internal fun tearDown() {
- DatabaseUtil.cleanDB()
+ cleanUpDB()
}
@Test
fun `Får tom liste når personen ikke har en eksisterende mappe`(): Unit = runBlocking {
val norskIdent = "01110050053"
- val body = client.getAndAssert(
- norskIdent = norskIdent,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- api,
- søknadTypeUri,
- "mappe"
- )
- Assertions.assertTrue(body.søknader!!.isEmpty())
+
+ hentMappe(norskIdent)
+ .expectStatus().isOk
+ .expectBody(SvarOmsMADto::class.java)
+ .consumeWith { Assertions.assertTrue(it.responseBody!!.søknader!!.isEmpty()) }
}
@Test
@@ -68,19 +51,21 @@ internal class OmsorgspengerMidlertidigAleneRoutesTest {
personnummer = norskIdent,
journalpostId = UUID.randomUUID().toString(),
annenPart = null,
- barn = listOf(OmsorgspengerMidlertidigAleneSøknadDto.BarnDto(norskIdent = pleietrengende, foedselsdato = null))
- )
-
- val response: OmsorgspengerMidlertidigAleneSøknadDto = client.postAndAssertAwaitWithStatusAndBody(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- navNorskIdentHeader = null,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(opprettNySøknad),
- api,
- søknadTypeUri
+ barn = listOf(
+ OmsorgspengerMidlertidigAleneSøknadDto.BarnDto(
+ norskIdent = pleietrengende,
+ foedselsdato = null
+ )
+ )
)
- assertThat(response.barn).size().isOne
+ opprettNySøknad(opprettNySøknad)
+ .expectStatus().isCreated
+ .expectBody(OmsorgspengerMidlertidigAleneSøknadDto::class.java)
+ .consumeWith {
+ assertThat(it.responseBody!!.barn).size().isOne
+ assertThat(it.responseBody!!.barn.first().norskIdent).isEqualTo(pleietrengende)
+ }
}
@Test
@@ -94,19 +79,15 @@ internal class OmsorgspengerMidlertidigAleneRoutesTest {
soeknadJson = soeknad,
ident = norskIdent,
journalpostid = journalpostid,
- barn = listOf(OmsorgspengerMidlertidigAleneSøknadDto.BarnDto(norskIdent = pleietrengende, foedselsdato = null))
+ barn = listOf(
+ OmsorgspengerMidlertidigAleneSøknadDto.BarnDto(
+ norskIdent = pleietrengende,
+ foedselsdato = null
+ )
+ )
)
- val body = client.postAndAssertAwaitWithStatusAndBody(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- navNorskIdentHeader = null,
- assertStatus = HttpStatus.ACCEPTED,
- requestBody = BodyInserters.fromValue(soeknad),
- api,
- søknadTypeUri,
- "valider"
- )
- assertThat(body.feil).isNull()
+ validerSøknad(soeknad).expectStatus().isAccepted
}
@Test
@@ -117,7 +98,8 @@ internal class OmsorgspengerMidlertidigAleneRoutesTest {
val journalpostid = abs(Random(56234).nextInt()).toString()
tilpasserSøknadsMalTilTesten(gyldigSoeknad, norskIdent, journalpostid)
- val body: Søknad = opprettOgSendInnSoeknad(soeknadJson = gyldigSoeknad, ident = norskIdent, journalpostid, pleietrengende)
+ val body: Søknad =
+ opprettOgSendInnSoeknad(soeknadJson = gyldigSoeknad, ident = norskIdent, journalpostid, pleietrengende)
val ytelse = body.getYtelse()
assertThat(ytelse.barn).size().isEqualTo(2)
assertThat(ytelse.annenForelder).isNotNull
@@ -136,16 +118,21 @@ internal class OmsorgspengerMidlertidigAleneRoutesTest {
soeknadJson = gyldigSoeknad,
ident = norskIdent,
journalpostid = journalpostid,
- barn = listOf(OmsorgspengerMidlertidigAleneSøknadDto.BarnDto(norskIdent = pleietrengende, foedselsdato = null))
+ barn = listOf(
+ OmsorgspengerMidlertidigAleneSøknadDto.BarnDto(
+ norskIdent = pleietrengende,
+ foedselsdato = null
+ )
+ )
)
- val søknadViaGet = client.get()
- .uri { it.pathSegment(api, søknadTypeUri, "mappe", søknad.soeknadId).build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .awaitBodyWithType()
-
- assertThat(søknadViaGet.annenForelder?.norskIdent).isEqualTo("44444444444")
- assertThat(søknadViaGet.barn.size).isEqualTo(2)
+ hentMappeGittSøknadId(søknad.soeknadId)
+ .expectStatus().isOk
+ .expectBody(OmsorgspengerMidlertidigAleneSøknadDto::class.java)
+ .consumeWith {
+ assertThat(it.responseBody!!.annenForelder?.norskIdent).isEqualTo("44444444444")
+ assertThat(it.responseBody!!.barn.size).isEqualTo(2)
+ }
}
@Test
@@ -167,30 +154,18 @@ internal class OmsorgspengerMidlertidigAleneRoutesTest {
)
)
- val body = client.putAndAssert, OmsorgspengerMidlertidigAleneSøknadDto>(
- norskIdent = null,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- requestBody = BodyInserters.fromValue(soeknad),
- api,
- søknadTypeUri,
- "oppdater"
- )
+ val body = oppdaterSøknad(soeknad)
+ .expectStatus().isOk
+ .expectBody(OmsorgspengerMidlertidigAleneSøknadDto::class.java)
+ .returnResult().responseBody!!
- Assertions.assertNotNull(body)
- Assertions.assertEquals(norskIdent, body.soekerId)
-
- val søknadViaGet = client.getAndAssert(
- norskIdent = norskIdent,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- api,
- søknadTypeUri,
- "mappe",
- soeknad["soeknadId"] as String
- )
+ assertThat(body.soekerId).isEqualTo(norskIdent)
+
+ val søknadViaGet = hentMappeGittSøknadId(soeknad["soeknadId"] as String)
+ .expectStatus().isOk
+ .expectBody(OmsorgspengerMidlertidigAleneSøknadDto::class.java)
+ .returnResult().responseBody!!
- Assertions.assertNotNull(søknadViaGet)
assertThat(body.metadata).isEqualTo(søknadViaGet.metadata)
}
@@ -198,7 +173,7 @@ internal class OmsorgspengerMidlertidigAleneRoutesTest {
personnummer: String,
journalpostId: String,
annenPart: String? = null,
- barn: List
+ barn: List,
): NyOmsMASøknad {
return NyOmsMASøknad(
norskIdent = personnummer,
@@ -211,7 +186,7 @@ internal class OmsorgspengerMidlertidigAleneRoutesTest {
private fun tilpasserSøknadsMalTilTesten(
søknad: MutableMap,
norskIdent: String,
- journalpostId: String? = null
+ journalpostId: String? = null,
) {
søknad.replace("soekerId", norskIdent)
if (journalpostId != null) søknad.replace("journalposter", arrayOf(journalpostId))
@@ -221,7 +196,7 @@ internal class OmsorgspengerMidlertidigAleneRoutesTest {
soeknadJson: SøknadJson,
ident: String,
journalpostid: String = IdGenerator.nesteId(),
- barn: List
+ barn: List,
): OmsorgspengerMidlertidigAleneSøknadDto {
val innsendingForOpprettelseAvMappe = NyOmsMASøknad(
norskIdent = ident,
@@ -230,29 +205,19 @@ internal class OmsorgspengerMidlertidigAleneRoutesTest {
)
// oppretter en søknad
- val resPost = client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(innsendingForOpprettelseAvMappe),
- api,
- søknadTypeUri
- )
-
- val location = resPost.headers().asHttpHeaders().location
- Assertions.assertNotNull(location)
+ val location = opprettNySøknad(innsendingForOpprettelseAvMappe)
+ .expectStatus().isCreated
+ .expectHeader().exists("Location")
+ .expectBody(OmsorgspengerMidlertidigAleneSøknadDto::class.java)
+ .returnResult().responseHeaders.location
leggerPåNySøknadId(soeknadJson, location)
// fyller ut en søknad
- val søknadDtoFyltUt = client.putAndAssert(
- norskIdent = null,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- requestBody = BodyInserters.fromValue(soeknadJson),
- api,
- søknadTypeUri,
- "oppdater"
- )
+ val søknadDtoFyltUt = oppdaterSøknad(soeknadJson)
+ .expectStatus().isOk
+ .expectBody(OmsorgspengerMidlertidigAleneSøknadDto::class.java)
+ .returnResult().responseBody!!
Assertions.assertNotNull(søknadDtoFyltUt.soekerId)
return søknadDtoFyltUt
@@ -269,68 +234,93 @@ internal class OmsorgspengerMidlertidigAleneRoutesTest {
soeknadJson: SøknadJson,
ident: String,
journalpostid: String = IdGenerator.nesteId(),
- pleietrengende: String
+ pleietrengende: String,
): Søknad {
val innsendingForOpprettelseAvMappe = opprettSøknad(
personnummer = ident,
journalpostId = journalpostid,
- barn = listOf(OmsorgspengerMidlertidigAleneSøknadDto.BarnDto(norskIdent = pleietrengende, foedselsdato = null))
+ barn = listOf(
+ OmsorgspengerMidlertidigAleneSøknadDto.BarnDto(
+ norskIdent = pleietrengende,
+ foedselsdato = null
+ )
+ )
)
// oppretter en søknad
- val response = client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(innsendingForOpprettelseAvMappe),
- api,
- søknadTypeUri
- )
-
- val location = response.headers().asHttpHeaders().location
- Assertions.assertEquals(HttpStatus.CREATED, response.statusCode())
- Assertions.assertNotNull(location)
+ val location = opprettNySøknad(innsendingForOpprettelseAvMappe)
+ .expectStatus().isCreated
+ .expectHeader().exists("Location")
+ .expectBody(OmsorgspengerMidlertidigAleneSøknadDto::class.java)
+ .returnResult().responseHeaders.location
leggerPåNySøknadId(soeknadJson, location)
// fyller ut en søknad
- val søknadDtoFyltUt: OmsorgspengerMidlertidigAleneSøknadDto = client.putAndAssert(
- norskIdent = null,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- requestBody = BodyInserters.fromValue(soeknadJson),
- api,
- søknadTypeUri,
- "oppdater"
- )
+ val søknadDtoFyltUt: OmsorgspengerMidlertidigAleneSøknadDto = oppdaterSøknad(soeknadJson)
+ .expectStatus().isOk
+ .expectBody(OmsorgspengerMidlertidigAleneSøknadDto::class.java)
+ .returnResult().responseBody!!
Assertions.assertNotNull(søknadDtoFyltUt.soekerId)
val søknadId = søknadDtoFyltUt.soeknadId
val sendSøknad = lagSendSøknad(norskIdent = ident, søknadId = søknadId)
-
val journalposter = søknadDtoFyltUt.journalposter!!
val kanSendeInn = journalpostRepository.kanSendeInn(journalposter)
- org.assertj.core.api.Assertions.assertThat(kanSendeInn).isTrue
+ assertThat(kanSendeInn).isTrue
// sender en søknad
- val body = client.postAndAssertAwaitWithStatusAndBody(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- navNorskIdentHeader = null,
- assertStatus = HttpStatus.ACCEPTED,
- requestBody = BodyInserters.fromValue(sendSøknad),
- api,
- søknadTypeUri,
- "send"
- )
+ val søknad = sendSøknad(sendSøknad)
+ .expectStatus().isAccepted
+ .expectBody(Søknad::class.java)
+ .returnResult().responseBody!!
- return body
+ return søknad
}
private fun lagSendSøknad(
norskIdent: String,
- søknadId: String
+ søknadId: String,
): SendSøknad {
return SendSøknad(norskIdent, søknadId)
}
+
+ private fun hentMappe(norskIdent: String) = webTestClient.get()
+ .uri { it.path("/$api/$søknadTypeUri/mappe").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .header("X-Nav-NorskIdent", norskIdent)
+ .exchange()
+
+ private fun opprettNySøknad(opprettNySøknad: NyOmsMASøknad) =
+ webTestClient.post()
+ .uri { it.path("/$api/$søknadTypeUri").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .bodyValue(opprettNySøknad)
+ .exchange()
+
+ private fun validerSøknad(soeknad: SøknadJson) = webTestClient.post()
+ .uri { it.path("/$api/$søknadTypeUri/valider").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .bodyValue(soeknad)
+ .exchange()
+
+ private fun hentMappeGittSøknadId(søknadId: String) =
+ webTestClient.get()
+ .uri { it.path("/$api/$søknadTypeUri/mappe/${søknadId}").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .exchange()
+
+ private fun oppdaterSøknad(soeknad: SøknadJson) = webTestClient.put()
+ .uri { it.path("/$api/$søknadTypeUri/oppdater").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .bodyValue(soeknad)
+ .exchange()
+
+ private fun sendSøknad(sendSøknad: SendSøknad) = webTestClient.post()
+ .uri { it.path("/$api/$søknadTypeUri/send").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .bodyValue(sendSøknad)
+ .exchange()
}
diff --git a/src/test/kotlin/no/nav/k9punsj/omsorgspengerutbetaling/OmsorgspengerutbetalingRoutesTest.kt b/src/test/kotlin/no/nav/k9punsj/omsorgspengerutbetaling/OmsorgspengerutbetalingRoutesTest.kt
index 5afa95f7e..f96a307f0 100644
--- a/src/test/kotlin/no/nav/k9punsj/omsorgspengerutbetaling/OmsorgspengerutbetalingRoutesTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/omsorgspengerutbetaling/OmsorgspengerutbetalingRoutesTest.kt
@@ -1,32 +1,25 @@
package no.nav.k9punsj.omsorgspengerutbetaling
-import io.mockk.junit5.MockKExtension
import kotlinx.coroutines.runBlocking
-import no.nav.helse.dusseldorf.testsupport.jws.Azure
-import no.nav.k9punsj.TestSetup
+import no.nav.k9.søknad.Søknad
+import no.nav.k9punsj.AbstractContainerBaseTest
import no.nav.k9punsj.felles.IdentOgJournalpost
import no.nav.k9punsj.felles.dto.ArbeidsgiverMedArbeidsforholdId
import no.nav.k9punsj.felles.dto.MatchFagsakMedPeriode
import no.nav.k9punsj.felles.dto.PeriodeDto
import no.nav.k9punsj.felles.dto.SendSøknad
+import no.nav.k9punsj.journalpost.JournalpostRepository
import no.nav.k9punsj.openapi.OasSoknadsfeil
-import no.nav.k9punsj.util.DatabaseUtil
import no.nav.k9punsj.util.IdGenerator
import no.nav.k9punsj.util.LesFraFilUtil
import no.nav.k9punsj.util.SøknadJson
import no.nav.k9punsj.util.TestUtils.hentSøknadId
-import no.nav.k9punsj.util.WebClientUtils.getAndAssert
-import no.nav.k9punsj.util.WebClientUtils.postAndAssert
-import no.nav.k9punsj.util.WebClientUtils.postAndAssertAwaitWithStatusAndBody
-import no.nav.k9punsj.util.WebClientUtils.putAndAssert
-import no.nav.k9punsj.wiremock.saksbehandlerAccessToken
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
-import org.junit.jupiter.api.extension.ExtendWith
-import org.springframework.http.HttpStatus
-import org.springframework.test.context.junit.jupiter.SpringExtension
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.test.web.reactive.server.WebTestClient
import org.springframework.web.reactive.function.BodyInserters
import java.net.URI
import java.time.LocalDate
@@ -34,33 +27,27 @@ import java.util.*
import kotlin.math.abs
import kotlin.random.Random
-@ExtendWith(SpringExtension::class, MockKExtension::class)
-class OmsorgspengerutbetalingRoutesTest {
+class OmsorgspengerutbetalingRoutesTest : AbstractContainerBaseTest() {
- private val client = TestSetup.client
private val api = "api"
private val søknadTypeUri = "omsorgspengerutbetaling-soknad"
- private val saksbehandlerAuthorizationHeader = "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}"
- private val journalpostRepository = DatabaseUtil.getJournalpostRepo()
+
+ @Autowired
+ lateinit var journalpostRepository: JournalpostRepository
@AfterEach
internal fun tearDown() {
- DatabaseUtil.cleanDB()
+ cleanUpDB()
}
@Test
fun `Får tom liste når personen ikke har en eksisterende mappe`(): Unit = runBlocking {
val norskIdent = "01110050053"
- val body = client.getAndAssert(
- norskIdent = norskIdent,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- api,
- søknadTypeUri,
- "mappe"
- )
-
- Assertions.assertTrue(body.søknader!!.isEmpty())
+
+ hentMappe(norskIdent)
+ .expectStatus().isOk
+ .expectBody(SvarOmsUtDto::class.java)
+ .consumeWith { assertThat(it.responseBody!!.søknader).isEmpty() }
}
@Test
@@ -68,13 +55,7 @@ class OmsorgspengerutbetalingRoutesTest {
val norskIdent = "01010050053"
val opprettNySøknad = opprettSøknad(norskIdent, UUID.randomUUID().toString())
- client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(opprettNySøknad),
- api,
- søknadTypeUri
- )
+ opprettNySøknad(opprettNySøknad).expectStatus().isCreated
}
@Test
@@ -83,22 +64,12 @@ class OmsorgspengerutbetalingRoutesTest {
val journalpostId = UUID.randomUUID().toString()
val opprettNySøknad = opprettSøknad(norskIdent, journalpostId)
- client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(opprettNySøknad),
- api,
- søknadTypeUri
- )
-
- val body = client.getAndAssert(
- norskIdent = norskIdent,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- api,
- søknadTypeUri,
- "mappe"
- )
+ opprettNySøknad(opprettNySøknad).expectStatus().isCreated
+
+ val body = hentMappe(norskIdent)
+ .expectStatus().isOk
+ .expectBody(SvarOmsUtDto::class.java)
+ .returnResult().responseBody!!
val journalposterDto = body.søknader?.first()?.journalposter
Assertions.assertEquals(journalpostId, journalposterDto?.first())
@@ -113,29 +84,18 @@ class OmsorgspengerutbetalingRoutesTest {
val opprettNySøknad = opprettSøknad(norskIdent, journalpostid)
- val resPost = client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(opprettNySøknad),
- api,
- søknadTypeUri
- )
-
- val location = resPost.headers().asHttpHeaders().location
- Assertions.assertNotNull(location)
-
- val søknadViaGet = client.getAndAssert(
- norskIdent = norskIdent,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- api,
- søknadTypeUri,
- "mappe",
- hentSøknadId(location)!!
- )
-
- Assertions.assertNotNull(søknadViaGet)
- Assertions.assertEquals(journalpostid, søknadViaGet.journalposter?.first())
+ val location = opprettNySøknad(opprettNySøknad).expectStatus().isCreated
+ .expectHeader().exists("Location")
+ .returnResult(IdentOgJournalpost::class.java)
+ .responseHeaders.location!!
+
+ hentMappeGittSøknadId(location, norskIdent)
+ .expectStatus().isOk
+ .expectBody(OmsorgspengerutbetalingSøknadDto::class.java)
+ .consumeWith {
+ assertThat(it.responseBody!!.soekerId).isEqualTo(norskIdent)
+ assertThat(it.responseBody!!.journalposter).containsExactly(journalpostid)
+ }
}
@Test
@@ -147,31 +107,20 @@ class OmsorgspengerutbetalingRoutesTest {
val opprettNySøknad = opprettSøknad(norskIdent, journalpostid)
- val resPost = client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(opprettNySøknad),
- api,
- søknadTypeUri
- )
-
- val location = resPost.headers().asHttpHeaders().location
- Assertions.assertNotNull(location)
+ val location = opprettNySøknad(opprettNySøknad)
+ .expectStatus().isCreated
+ .expectHeader().exists("Location")
+ .returnResult(IdentOgJournalpost::class.java)
+ .responseHeaders.location!!
leggerPåNySøknadId(søknadFraFrontend, location)
- val body = client.putAndAssert, OmsorgspengerutbetalingSøknadDto>(
- norskIdent = null,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- requestBody = BodyInserters.fromValue(søknadFraFrontend),
- api,
- søknadTypeUri,
- "oppdater"
- )
-
- Assertions.assertNotNull(body)
- Assertions.assertEquals(norskIdent, body.soekerId)
+ oppdaterSøknad(søknadFraFrontend)
+ .expectStatus().isOk
+ .expectBody(OmsorgspengerutbetalingSøknadDto::class.java)
+ .consumeWith {
+ assertThat(it.responseBody!!.soekerId).isEqualTo(norskIdent)
+ }
}
@Test
@@ -183,41 +132,26 @@ class OmsorgspengerutbetalingRoutesTest {
val opprettNySøknad = opprettSøknad(norskIdent, journalpostid)
- val resPost = client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(opprettNySøknad),
- api,
- søknadTypeUri
- )
-
- val location = resPost.headers().asHttpHeaders().location
- Assertions.assertNotNull(location)
+ val location = opprettNySøknad(opprettNySøknad)
+ .expectStatus().isCreated
+ .expectHeader().exists("Location")
+ .returnResult(IdentOgJournalpost::class.java)
+ .responseHeaders.location!!
leggerPåNySøknadId(søknadFraFrontend, location)
- val body = client.putAndAssert, OmsorgspengerutbetalingSøknadDto>(
- norskIdent = null,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- requestBody = BodyInserters.fromValue(søknadFraFrontend),
- api,
- søknadTypeUri,
- "oppdater"
- )
+ val body = oppdaterSøknad(søknadFraFrontend)
+ .expectStatus().isOk
+ .expectBody(OmsorgspengerutbetalingSøknadDto::class.java)
+ .returnResult().responseBody!!
Assertions.assertNotNull(body)
Assertions.assertEquals(norskIdent, body.soekerId)
- val søknadViaGet = client.getAndAssert(
- norskIdent = norskIdent,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- api,
- søknadTypeUri,
- "mappe",
- hentSøknadId(location)!!
- )
+ val søknadViaGet = hentMappeGittSøknadId(location, norskIdent)
+ .expectStatus().isOk
+ .expectBody(OmsorgspengerutbetalingSøknadDto::class.java)
+ .returnResult().responseBody!!
Assertions.assertNotNull(søknadViaGet)
assertThat(body.metadata).isEqualTo(søknadViaGet.metadata)
@@ -230,8 +164,7 @@ class OmsorgspengerutbetalingRoutesTest {
val journalpostid = abs(Random(56234).nextInt()).toString()
tilpasserSøknadsMalTilTesten(gyldigSoeknad, norskIdent, journalpostid)
- val body = opprettOgSendInnSoeknad(soeknadJson = gyldigSoeknad, ident = norskIdent, journalpostid)
- assertThat(body.feil).isNull()
+ opprettOgSendInnSoeknad(soeknadJson = gyldigSoeknad, ident = norskIdent, journalpostid)
assertThat(journalpostRepository.kanSendeInn(listOf(journalpostid))).isFalse
}
@@ -242,8 +175,8 @@ class OmsorgspengerutbetalingRoutesTest {
val journalpostid = abs(Random(2234).nextInt()).toString()
tilpasserSøknadsMalTilTesten(gyldigSoeknad, norskIdent, journalpostid)
- val body = opprettOgSendInnSoeknad(soeknadJson = gyldigSoeknad, ident = norskIdent, journalpostid)
- assertThat(body.feil).isNull()
+ opprettOgSendInnSoeknad(soeknadJson = gyldigSoeknad, ident = norskIdent, journalpostid)
+
assertThat(journalpostRepository.kanSendeInn(listOf(journalpostid))).isFalse
}
@@ -255,21 +188,12 @@ class OmsorgspengerutbetalingRoutesTest {
tilpasserSøknadsMalTilTesten(soeknad, norskIdent, journalpostid)
opprettOgLagreSoeknad(soeknadJson = soeknad, ident = norskIdent, journalpostid)
- val body = client.postAndAssertAwaitWithStatusAndBody(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- navNorskIdentHeader = null,
- assertStatus = HttpStatus.ACCEPTED,
- requestBody = BodyInserters.fromValue(soeknad),
- api,
- søknadTypeUri,
- "valider"
- )
-
- assertThat(body.feil).isNull()
+ validerSøknad(soeknad).expectStatus().isAccepted
+
}
@Test
- fun `Korrigering OMP UT med fraværsperioder fra tidiger år validerer riktigt år`() = runBlocking {
+ fun `Korrigering OMP UT med fraværsperioder fra tidiger år validerer riktigt år`(): Unit = runBlocking {
// 03011939596 på OMS har två perioder i k9sak fra december 2022.
// OmsUtKorrigering fjerner første perioden i 2022.
val norskIdent = "03011939596"
@@ -278,17 +202,7 @@ class OmsorgspengerutbetalingRoutesTest {
tilpasserSøknadsMalTilTesten(soeknad, norskIdent, journalpostid)
opprettOgLagreSoeknad(soeknadJson = soeknad, ident = norskIdent, journalpostid)
- val body = client.postAndAssertAwaitWithStatusAndBody(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- navNorskIdentHeader = null,
- assertStatus = HttpStatus.ACCEPTED,
- requestBody = BodyInserters.fromValue(soeknad),
- api,
- søknadTypeUri,
- "valider"
- )
-
- assertThat(body.feil).isNull()
+ validerSøknad(soeknad).expectStatus().isAccepted
}
@Test
@@ -299,17 +213,12 @@ class OmsorgspengerutbetalingRoutesTest {
tilpasserSøknadsMalTilTesten(soeknad, norskIdent, journalpostid)
opprettOgLagreSoeknad(soeknadJson = soeknad, ident = norskIdent, journalpostid)
- val body = client.postAndAssertAwaitWithStatusAndBody(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- navNorskIdentHeader = null,
- assertStatus = HttpStatus.BAD_REQUEST,
- requestBody = BodyInserters.fromValue(soeknad),
- api,
- søknadTypeUri,
- "valider"
- )
-
- assertThat(body.feil?.get(0)?.feilkode).isEqualTo("mottattDato")
+ validerSøknad(soeknad)
+ .expectStatus().isBadRequest
+ .expectBody(OasSoknadsfeil::class.java)
+ .consumeWith {
+ assertThat(it.responseBody!!.feil?.get(0)?.feilkode).isEqualTo("mottattDato")
+ }
}
@Test
@@ -319,8 +228,7 @@ class OmsorgspengerutbetalingRoutesTest {
val journalpostid = abs(Random(2256234).nextInt()).toString()
tilpasserSøknadsMalTilTesten(gyldigSoeknad, norskIdent, journalpostid)
- val body = opprettOgSendInnSoeknad(soeknadJson = gyldigSoeknad, ident = norskIdent, journalpostid)
- assertThat(body.feil).isNull()
+ opprettOgSendInnSoeknad(soeknadJson = gyldigSoeknad, ident = norskIdent, journalpostid)
assertThat(journalpostRepository.kanSendeInn(listOf(journalpostid))).isFalse
}
@@ -333,24 +241,17 @@ class OmsorgspengerutbetalingRoutesTest {
PeriodeDto(LocalDate.now(), LocalDate.now().plusDays(1))
)
- val oppdatertSoeknadDto =
- client.postAndAssertAwaitWithStatusAndBody>(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- navNorskIdentHeader = null,
- assertStatus = HttpStatus.OK,
- requestBody = BodyInserters.fromValue(dtoSpørring),
- api,
- søknadTypeUri,
- "k9sak",
- "arbeidsforholdIder"
- )
-
- Assertions.assertEquals("randomArbeidsforholdId", oppdatertSoeknadDto[0].arbeidsforholdId[0])
+ hentArbeidsForholdIderFraK9Sak(dtoSpørring)
+ .expectStatus().isOk
+ .expectBodyList(ArbeidsgiverMedArbeidsforholdId::class.java)
+ .consumeWith> {
+ assertThat(it.responseBody!![0].arbeidsforholdId[0]).isEqualTo("randomArbeidsforholdId")
+ }
}
private fun opprettSøknad(
personnummer: String,
- journalpostId: String
+ journalpostId: String,
): IdentOgJournalpost {
return IdentOgJournalpost(personnummer, journalpostId)
}
@@ -358,7 +259,7 @@ class OmsorgspengerutbetalingRoutesTest {
private fun tilpasserSøknadsMalTilTesten(
søknad: MutableMap,
norskIdent: String,
- journalpostId: String? = null
+ journalpostId: String? = null,
) {
søknad.replace("soekerId", norskIdent)
if (journalpostId != null) søknad.replace("journalposter", arrayOf(journalpostId))
@@ -373,7 +274,7 @@ class OmsorgspengerutbetalingRoutesTest {
private fun lagSendSøknad(
norskIdent: String,
- søknadId: String
+ søknadId: String,
): SendSøknad {
return SendSøknad(norskIdent, søknadId)
}
@@ -381,35 +282,24 @@ class OmsorgspengerutbetalingRoutesTest {
private suspend fun opprettOgSendInnSoeknad(
soeknadJson: SøknadJson,
ident: String,
- journalpostid: String = IdGenerator.nesteId()
- ): OasSoknadsfeil {
+ journalpostid: String = IdGenerator.nesteId(),
+ ) {
val innsendingForOpprettelseAvMappe = opprettSøknad(ident, journalpostid)
// oppretter en søknad
- val response = client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(innsendingForOpprettelseAvMappe),
- api,
- søknadTypeUri
- )
-
- val location = response.headers().asHttpHeaders().location
- Assertions.assertEquals(HttpStatus.CREATED, response.statusCode())
- Assertions.assertNotNull(location)
+ val location = opprettNySøknad(innsendingForOpprettelseAvMappe)
+ .expectStatus().isCreated
+ .expectHeader().exists("Location")
+ .returnResult(IdentOgJournalpost::class.java)
+ .responseHeaders.location!!
leggerPåNySøknadId(soeknadJson, location)
// fyller ut en søknad
- val søknadDtoFyltUt: OmsorgspengerutbetalingSøknadDto = client.putAndAssert(
- norskIdent = null,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- requestBody = BodyInserters.fromValue(soeknadJson),
- api,
- søknadTypeUri,
- "oppdater"
- )
+ val søknadDtoFyltUt = oppdaterSøknad(soeknadJson)
+ .expectStatus().isOk
+ .expectBody(OmsorgspengerutbetalingSøknadDto::class.java)
+ .returnResult().responseBody!!
Assertions.assertNotNull(søknadDtoFyltUt.soekerId)
@@ -422,52 +312,79 @@ class OmsorgspengerutbetalingRoutesTest {
assertThat(kanSendeInn).isTrue
// sender en søknad
- val body = client.postAndAssertAwaitWithStatusAndBody(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- navNorskIdentHeader = null,
- assertStatus = HttpStatus.ACCEPTED,
- requestBody = BodyInserters.fromValue(sendSøknad),
- api,
- søknadTypeUri,
- "send"
- )
-
- return body
+ webTestClient.post()
+ .uri("/$api/$søknadTypeUri/send")
+ .header("Authorization", saksbehandlerAuthorizationHeader)
+ .bodyValue(sendSøknad)
+ .exchange()
+ .expectStatus().isAccepted
+ .expectBody(Søknad::class.java)
+ .consumeWith {
+ assertThat(it.responseBody!!.søknadId.id).isEqualTo(søknadId)
+ }
}
private suspend fun opprettOgLagreSoeknad(
soeknadJson: SøknadJson,
ident: String,
- journalpostid: String = IdGenerator.nesteId()
- ): OmsorgspengerutbetalingSøknadDto {
+ journalpostid: String = IdGenerator.nesteId(),
+ ) {
val innsendingForOpprettelseAvMappe = opprettSøknad(ident, journalpostid)
// oppretter en søknad
- val resPost = client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(innsendingForOpprettelseAvMappe),
- api,
- søknadTypeUri
- )
-
- val location = resPost.headers().asHttpHeaders().location
- Assertions.assertNotNull(location)
+ val location = opprettNySøknad(innsendingForOpprettelseAvMappe)
+ .expectStatus().isCreated
+ .expectHeader().exists("Location")
+ .returnResult(IdentOgJournalpost::class.java)
+ .responseHeaders.location!!
leggerPåNySøknadId(soeknadJson, location)
// fyller ut en søknad
- val søknadDtoFyltUt = client.putAndAssert(
- norskIdent = null,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- requestBody = BodyInserters.fromValue(soeknadJson),
- api,
- søknadTypeUri,
- "oppdater"
- )
-
- Assertions.assertNotNull(søknadDtoFyltUt.soekerId)
- return søknadDtoFyltUt
+ oppdaterSøknad(soeknadJson)
+ .expectStatus().isOk
+ .expectBody(OmsorgspengerutbetalingSøknadDto::class.java)
+ .consumeWith {
+ assertThat(it.responseBody!!.soekerId).isEqualTo(ident)
+ }
}
+
+ private fun hentMappe(norskIdent: String) = webTestClient.get()
+ .uri("/$api/$søknadTypeUri/mappe")
+ .header("Authorization", saksbehandlerAuthorizationHeader)
+ .header("X-Nav-NorskIdent", norskIdent)
+ .exchange()
+
+ private fun opprettNySøknad(opprettNySøknad: IdentOgJournalpost) = webTestClient.post()
+ .uri("/$api/$søknadTypeUri")
+ .header("Authorization", saksbehandlerAuthorizationHeader)
+ .body(BodyInserters.fromValue(opprettNySøknad))
+ .exchange()
+
+ private fun hentMappeGittSøknadId(
+ location: URI,
+ norskIdent: String,
+ ) = webTestClient.get()
+ .uri("/$api/$søknadTypeUri/mappe/${hentSøknadId(location)}")
+ .header("Authorization", saksbehandlerAuthorizationHeader)
+ .header("X-Nav-NorskIdent", norskIdent)
+ .exchange()
+
+ private fun oppdaterSøknad(søknadFraFrontend: SøknadJson) = webTestClient.put()
+ .uri("/$api/$søknadTypeUri/oppdater")
+ .header("Authorization", saksbehandlerAuthorizationHeader)
+ .bodyValue(søknadFraFrontend)
+ .exchange()
+
+ private fun validerSøknad(soeknad: SøknadJson) = webTestClient.post()
+ .uri("/$api/$søknadTypeUri/valider")
+ .header("Authorization", saksbehandlerAuthorizationHeader)
+ .bodyValue(soeknad)
+ .exchange()
+
+ private fun hentArbeidsForholdIderFraK9Sak(dtoSpørring: MatchFagsakMedPeriode) = webTestClient.post()
+ .uri("/$api/$søknadTypeUri/k9sak/arbeidsforholdIder")
+ .header("Authorization", saksbehandlerAuthorizationHeader)
+ .bodyValue(dtoSpørring)
+ .exchange()
}
diff --git a/src/test/kotlin/no/nav/k9punsj/opplaeringspenger/OpplaeringspengerTests.kt b/src/test/kotlin/no/nav/k9punsj/opplaeringspenger/OpplaeringspengerTests.kt
index 02d5b1362..ef1939929 100644
--- a/src/test/kotlin/no/nav/k9punsj/opplaeringspenger/OpplaeringspengerTests.kt
+++ b/src/test/kotlin/no/nav/k9punsj/opplaeringspenger/OpplaeringspengerTests.kt
@@ -14,7 +14,7 @@ import no.nav.k9punsj.felles.dto.SendSøknad
import no.nav.k9punsj.utils.objectMapper
import no.nav.k9punsj.openapi.OasFeil
import no.nav.k9punsj.openapi.OasSoknadsfeil
-import no.nav.k9punsj.util.DatabaseUtil
+import no.nav.k9punsj.util.DbContainerInitializer
import no.nav.k9punsj.util.IdGenerator
import no.nav.k9punsj.util.LesFraFilUtil
import no.nav.k9punsj.util.SøknadJson
@@ -38,6 +38,7 @@ import java.net.URI
import java.time.Duration
import java.time.LocalDate
+/*
@ExtendWith(SpringExtension::class, MockKExtension::class)
@Disabled("OLP er ikke i bruk eller under utvikling")
class OpplaeringspengerTests {
@@ -261,7 +262,7 @@ class OpplaeringspengerTests {
assertThat(body.feil).isNull()
assertEquals(HttpStatus.ACCEPTED, status)
- assertThat(DatabaseUtil.getJournalpostRepo().kanSendeInn(listOf("99998888"))).isFalse
+ assertThat(DbContainerInitializer.getJournalpostRepo().kanSendeInn(listOf("99998888"))).isFalse
}
@Test
@@ -276,7 +277,7 @@ class OpplaeringspengerTests {
assertThat(body.feil).isNull()
assertEquals(HttpStatus.ACCEPTED, status)
- assertThat(DatabaseUtil.getJournalpostRepo().kanSendeInn(listOf(journalpostId))).isFalse
+ assertThat(DbContainerInitializer.getJournalpostRepo().kanSendeInn(listOf(journalpostId))).isFalse
val sendSøknad = lagSendSøknad(norskIdent = norskIdent, søknadId = id)
val (httpstatus, body2) = client.post()
@@ -578,7 +579,7 @@ class OpplaeringspengerTests {
val journalposter = søknadDtoFyltUt.journalposter!!
- val kanSendeInn = DatabaseUtil.getJournalpostRepo().kanSendeInn(journalposter)
+ val kanSendeInn = DbContainerInitializer.getJournalpostRepo().kanSendeInn(journalposter)
assertThat(kanSendeInn).isTrue
// sender en søknad
@@ -671,3 +672,4 @@ private fun leggerPåNySøknadId(søknadFraFrontend: MutableMap, l
val trim = søknadId?.trim('/')
søknadFraFrontend.replace("soeknadId", trim)
}
+*/
\ No newline at end of file
diff --git a/src/test/kotlin/no/nav/k9punsj/person/BarnApiTest.kt b/src/test/kotlin/no/nav/k9punsj/person/BarnApiTest.kt
index 62fb5d0fe..0105df999 100644
--- a/src/test/kotlin/no/nav/k9punsj/person/BarnApiTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/person/BarnApiTest.kt
@@ -2,6 +2,7 @@ package no.nav.k9punsj.person
import kotlinx.coroutines.runBlocking
import no.nav.helse.dusseldorf.testsupport.jws.Azure
+import no.nav.k9punsj.AbstractContainerBaseTest
import no.nav.k9punsj.TestSetup
import no.nav.k9punsj.util.WebClientUtils.awaitBodyWithType
import no.nav.k9punsj.wiremock.saksbehandlerAccessToken
@@ -12,10 +13,7 @@ import org.skyscreamer.jsonassert.JSONAssert
import org.springframework.http.HttpHeaders
import org.springframework.test.context.junit.jupiter.SpringExtension
-@ExtendWith(SpringExtension::class)
-class BarnApiTest {
-
- private val client = TestSetup.client
+class BarnApiTest : AbstractContainerBaseTest() {
private val saksbehandlerAuthorizationHeader = "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}"
@Test
@@ -27,8 +25,13 @@ class BarnApiTest {
}
""".trimIndent()
- val hentBarnJson = hentBarnJson("01110050053")
- JSONAssert.assertEquals(forventet, hentBarnJson, true)
+ webTestClient.get()
+ .uri { it.pathSegment("api", "barn").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .header("X-Nav-NorskIdent", "01110050053")
+ .exchange()
+ .expectStatus().isOk
+ .expectBody().json(forventet)
}
@Test
@@ -54,15 +57,12 @@ class BarnApiTest {
}
""".trimIndent()
- val hentBarnJson = hentBarnJson("66666666666")
- JSONAssert.assertEquals(forventet, hentBarnJson, true)
- }
-
- private suspend fun hentBarnJson(identitetsnummer: String): String {
- return client.get()
+ webTestClient.get()
.uri { it.pathSegment("api", "barn").build() }
.header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .header("X-Nav-NorskIdent", identitetsnummer)
- .awaitBodyWithType()
+ .header("X-Nav-NorskIdent", "66666666666")
+ .exchange()
+ .expectStatus().isOk
+ .expectBody().json(forventet)
}
}
diff --git a/src/test/kotlin/no/nav/k9punsj/person/PersonApiTest.kt b/src/test/kotlin/no/nav/k9punsj/person/PersonApiTest.kt
index 705542687..2870f035e 100644
--- a/src/test/kotlin/no/nav/k9punsj/person/PersonApiTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/person/PersonApiTest.kt
@@ -1,25 +1,14 @@
package no.nav.k9punsj.person
-import no.nav.helse.dusseldorf.testsupport.jws.Azure
-import no.nav.k9punsj.TestSetup
-import no.nav.k9punsj.util.WebClientUtils.awaitExchangeBlocking
-import no.nav.k9punsj.wiremock.saksbehandlerAccessToken
+import no.nav.k9punsj.AbstractContainerBaseTest
import org.intellij.lang.annotations.Language
import org.junit.jupiter.api.Test
-import org.junit.jupiter.api.extension.ExtendWith
-import org.skyscreamer.jsonassert.JSONAssert
import org.springframework.http.HttpHeaders
-import org.springframework.test.context.junit.jupiter.SpringExtension
-import org.springframework.web.reactive.function.client.awaitBody
-@ExtendWith(SpringExtension::class)
-class PersonApiTest {
-
- private val client = TestSetup.client
- private val saksbehandlerAuthorizationHeader = "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}"
+class PersonApiTest: AbstractContainerBaseTest() {
@Test
- suspend fun `Hente person`() {
+ fun `Hente person`() {
val identitetsnummer = "66666666666"
@Language("JSON")
@@ -34,13 +23,13 @@ class PersonApiTest {
}
""".trimIndent()
- val body = client.get()
- .uri { it.pathSegment("api", "person").build() }
+ webTestClient.get()
+ .uri { it.path("/api/person").build() }
.header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
.header("X-Nav-NorskIdent", identitetsnummer)
- .awaitExchangeBlocking()
- .awaitBody()
-
- JSONAssert.assertEquals(forventet, body, true)
+ .exchange()
+ .expectStatus().isOk
+ .expectBody()
+ .json(forventet)
}
}
diff --git a/src/test/kotlin/no/nav/k9punsj/pleiepengerlivetssluttfase/PleiepengerLivetsSluttfaseRoutesTest.kt b/src/test/kotlin/no/nav/k9punsj/pleiepengerlivetssluttfase/PleiepengerLivetsSluttfaseRoutesTest.kt
index 9f1628efb..4c99411b0 100644
--- a/src/test/kotlin/no/nav/k9punsj/pleiepengerlivetssluttfase/PleiepengerLivetsSluttfaseRoutesTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/pleiepengerlivetssluttfase/PleiepengerLivetsSluttfaseRoutesTest.kt
@@ -1,60 +1,49 @@
package no.nav.k9punsj.pleiepengerlivetssluttfase
-import io.mockk.junit5.MockKExtension
import kotlinx.coroutines.runBlocking
-import no.nav.helse.dusseldorf.testsupport.jws.Azure
-import no.nav.k9punsj.TestSetup
+import no.nav.k9.søknad.Søknad
+import no.nav.k9punsj.AbstractContainerBaseTest
import no.nav.k9punsj.felles.dto.OpprettNySøknad
import no.nav.k9punsj.felles.dto.SendSøknad
-import no.nav.k9punsj.openapi.OasSoknadsfeil
-import no.nav.k9punsj.util.DatabaseUtil
+import no.nav.k9punsj.journalpost.JournalpostRepository
import no.nav.k9punsj.util.IdGenerator
import no.nav.k9punsj.util.LesFraFilUtil
import no.nav.k9punsj.util.SøknadJson
-import no.nav.k9punsj.util.WebClientUtils.getAndAssert
-import no.nav.k9punsj.util.WebClientUtils.postAndAssert
-import no.nav.k9punsj.util.WebClientUtils.postAndAssertAwaitWithStatusAndBody
-import no.nav.k9punsj.util.WebClientUtils.putAndAssert
-import no.nav.k9punsj.wiremock.saksbehandlerAccessToken
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
-import org.junit.jupiter.api.extension.ExtendWith
-import org.springframework.http.HttpStatus
-import org.springframework.test.context.junit.jupiter.SpringExtension
+import org.springframework.beans.factory.annotation.Autowired
import org.springframework.web.reactive.function.BodyInserters
import java.net.URI
import java.util.*
import kotlin.math.abs
import kotlin.random.Random
-@ExtendWith(SpringExtension::class, MockKExtension::class)
-class PleiepengerLivetsSluttfaseRoutesTest {
+class PleiepengerLivetsSluttfaseRoutesTest : AbstractContainerBaseTest() {
- private val client = TestSetup.client
private val api = "api"
private val søknadTypeUri = "pleiepenger-livets-sluttfase-soknad"
- private val saksbehandlerAuthorizationHeader = "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}"
- private val journalpostRepository = DatabaseUtil.getJournalpostRepo()
+
+ @Autowired
+ lateinit var journalpostRepository: JournalpostRepository
@AfterEach
internal fun tearDown() {
- DatabaseUtil.cleanDB()
+ cleanUpDB()
}
@Test
fun `Får tom liste når personen ikke har en eksisterende mappe`(): Unit = runBlocking {
val norskIdent = "01110050053"
- val body = client.getAndAssert(
- norskIdent = norskIdent,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- api,
- søknadTypeUri,
- "mappe"
- )
- Assertions.assertTrue(body.søknader!!.isEmpty())
+
+ hentMappe(norskIdent)
+ .expectStatus().isOk
+ .expectBody(SvarPlsDto::class.java)
+ .consumeWith {
+ val body = it.responseBody!!
+ assertThat(body.søknader!!).isEmpty()
+ }
}
@Test
@@ -63,13 +52,7 @@ class PleiepengerLivetsSluttfaseRoutesTest {
val pleietrengende = "01010050023"
val opprettNySøknad = opprettSøknad(norskIdent, UUID.randomUUID().toString(), pleietrengende)
- client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(opprettNySøknad),
- api,
- søknadTypeUri
- )
+ opprettNySøknad(opprettNySøknad).expectStatus().isCreated
}
@Test
@@ -81,16 +64,7 @@ class PleiepengerLivetsSluttfaseRoutesTest {
tilpasserSøknadsMalTilTesten(soeknad, norskIdent, journalpostid)
opprettOgLagreSoeknad(soeknadJson = soeknad, ident = norskIdent, journalpostid, pleietrengende)
- val body = client.postAndAssertAwaitWithStatusAndBody(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- navNorskIdentHeader = null,
- assertStatus = HttpStatus.ACCEPTED,
- requestBody = BodyInserters.fromValue(soeknad),
- api,
- søknadTypeUri,
- "valider"
- )
- assertThat(body.feil).isNull()
+ validerSøknad(soeknad).expectStatus().isAccepted
}
@Test
@@ -102,31 +76,17 @@ class PleiepengerLivetsSluttfaseRoutesTest {
tilpasserSøknadsMalTilTesten(soeknad, norskIdent, journalpostid)
opprettOgLagreSoeknad(soeknadJson = soeknad, ident = norskIdent, journalpostid, pleietrengende)
- val body = client.putAndAssert, PleiepengerLivetsSluttfaseSøknadDto>(
- norskIdent = null,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- requestBody = BodyInserters.fromValue(soeknad),
- api,
- søknadTypeUri,
- "oppdater"
- )
-
- Assertions.assertNotNull(body)
- Assertions.assertEquals(norskIdent, body.soekerId)
-
- val søknadViaGet = client.getAndAssert(
- norskIdent = norskIdent,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- api,
- søknadTypeUri,
- "mappe",
- soeknad["soeknadId"] as String
- )
-
- Assertions.assertNotNull(søknadViaGet)
- assertThat(body.metadata).isEqualTo(søknadViaGet.metadata)
+ val body = oppdaterSøknad(soeknad)
+ .expectStatus().isOk
+ .expectBody(PleiepengerLivetsSluttfaseSøknadDto::class.java)
+ .returnResult().responseBody!!
+
+ hentMappeGittSøknadId(soeknad, norskIdent)
+ .expectStatus().isOk
+ .expectBody(PleiepengerLivetsSluttfaseSøknadDto::class.java)
+ .consumeWith {
+ assertThat(body.metadata).isEqualTo(it.responseBody!!.metadata)
+ }
}
@Test
@@ -137,15 +97,14 @@ class PleiepengerLivetsSluttfaseRoutesTest {
val journalpostid = abs(Random(56234).nextInt()).toString()
tilpasserSøknadsMalTilTesten(gyldigSoeknad, norskIdent, journalpostid)
- val body = opprettOgSendInnSoeknad(soeknadJson = gyldigSoeknad, ident = norskIdent, journalpostid, pleietrengende)
- assertThat(body.feil).isNull()
+ opprettOgSendInnSoeknad(soeknadJson = gyldigSoeknad, ident = norskIdent, journalpostid, pleietrengende)
assertThat(journalpostRepository.kanSendeInn(listOf(journalpostid))).isFalse
}
private fun opprettSøknad(
personnummer: String,
journalpostId: String,
- pleietrengende: String
+ pleietrengende: String,
): OpprettNySøknad {
return OpprettNySøknad(
personnummer,
@@ -158,7 +117,7 @@ class PleiepengerLivetsSluttfaseRoutesTest {
private fun tilpasserSøknadsMalTilTesten(
søknad: MutableMap,
norskIdent: String,
- journalpostId: String? = null
+ journalpostId: String? = null,
) {
søknad.replace("soekerId", norskIdent)
if (journalpostId != null) søknad.replace("journalposter", arrayOf(journalpostId))
@@ -168,37 +127,26 @@ class PleiepengerLivetsSluttfaseRoutesTest {
soeknadJson: SøknadJson,
ident: String,
journalpostid: String = IdGenerator.nesteId(),
- pleietrengende: String
- ): PleiepengerLivetsSluttfaseSøknadDto {
+ pleietrengende: String,
+ ) {
val innsendingForOpprettelseAvMappe = opprettSøknad(ident, journalpostid, pleietrengende)
// oppretter en søknad
- val resPost = client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(innsendingForOpprettelseAvMappe),
- api,
- søknadTypeUri
- )
-
- val location = resPost.headers().asHttpHeaders().location
- Assertions.assertNotNull(location)
+ val location = opprettNySøknad(innsendingForOpprettelseAvMappe)
+ .expectStatus().isCreated
+ .expectHeader().exists("Location")
+ .expectBody(PleiepengerLivetsSluttfaseSøknadDto::class.java)
+ .returnResult().responseHeaders.location
leggerPåNySøknadId(soeknadJson, location)
// fyller ut en søknad
- val søknadDtoFyltUt = client.putAndAssert(
- norskIdent = null,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- requestBody = BodyInserters.fromValue(soeknadJson),
- api,
- søknadTypeUri,
- "oppdater"
- )
-
- Assertions.assertNotNull(søknadDtoFyltUt.soekerId)
- return søknadDtoFyltUt
+ oppdaterSøknad(soeknadJson)
+ .expectStatus().isOk
+ .expectBody(PleiepengerLivetsSluttfaseSøknadDto::class.java)
+ .consumeWith {
+ assertThat(it.responseBody!!.soekerId).isEqualTo(ident)
+ }
}
private fun leggerPåNySøknadId(søknadFraFrontend: MutableMap, location: URI?) {
@@ -212,35 +160,24 @@ class PleiepengerLivetsSluttfaseRoutesTest {
soeknadJson: SøknadJson,
ident: String,
journalpostid: String = IdGenerator.nesteId(),
- pleietrengende: String
- ): OasSoknadsfeil {
+ pleietrengende: String,
+ ) {
val innsendingForOpprettelseAvMappe = opprettSøknad(ident, journalpostid, pleietrengende)
// oppretter en søknad
- val response = client.postAndAssert(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.CREATED,
- requestBody = BodyInserters.fromValue(innsendingForOpprettelseAvMappe),
- api,
- søknadTypeUri
- )
-
- val location = response.headers().asHttpHeaders().location
- Assertions.assertEquals(HttpStatus.CREATED, response.statusCode())
- Assertions.assertNotNull(location)
+ val location = opprettNySøknad(innsendingForOpprettelseAvMappe)
+ .expectStatus().isCreated
+ .expectHeader().exists("Location")
+ .expectBody(PleiepengerLivetsSluttfaseSøknadDto::class.java)
+ .returnResult().responseHeaders.location
leggerPåNySøknadId(soeknadJson, location)
// fyller ut en søknad
- val søknadDtoFyltUt: PleiepengerLivetsSluttfaseSøknadDto = client.putAndAssert(
- norskIdent = null,
- authorizationHeader = saksbehandlerAuthorizationHeader,
- assertStatus = HttpStatus.OK,
- requestBody = BodyInserters.fromValue(soeknadJson),
- api,
- søknadTypeUri,
- "oppdater"
- )
+ val søknadDtoFyltUt = oppdaterSøknad(soeknadJson)
+ .expectStatus().isOk
+ .expectBody(PleiepengerLivetsSluttfaseSøknadDto::class.java)
+ .returnResult().responseBody!!
Assertions.assertNotNull(søknadDtoFyltUt.soekerId)
@@ -253,23 +190,57 @@ class PleiepengerLivetsSluttfaseRoutesTest {
assertThat(kanSendeInn).isTrue
// sender en søknad
- val body = client.postAndAssertAwaitWithStatusAndBody(
- authorizationHeader = saksbehandlerAuthorizationHeader,
- navNorskIdentHeader = null,
- assertStatus = HttpStatus.ACCEPTED,
- requestBody = BodyInserters.fromValue(sendSøknad),
- api,
- søknadTypeUri,
- "send"
- )
-
- return body
+ sendInnSøknad(sendSøknad)
+ .expectStatus().isAccepted
+ .expectBody(Søknad::class.java)
+ .consumeWith {
+ assertThat(it.responseBody!!.søknadId.id).isEqualTo(søknadId)
+ }
}
private fun lagSendSøknad(
norskIdent: String,
- søknadId: String
+ søknadId: String,
): SendSøknad {
return SendSøknad(norskIdent, søknadId)
}
+
+ private fun hentMappe(norskIdent: String) = webTestClient.get()
+ .uri("/$api/$søknadTypeUri/mappe")
+ .header("Authorization", saksbehandlerAuthorizationHeader)
+ .header("X-Nav-NorskIdent", norskIdent)
+ .exchange()
+
+ private fun opprettNySøknad(opprettNySøknad: OpprettNySøknad) = webTestClient.post()
+ .uri("/$api/$søknadTypeUri")
+ .header("Authorization", saksbehandlerAuthorizationHeader)
+ .body(BodyInserters.fromValue(opprettNySøknad))
+ .exchange()
+
+ private fun validerSøknad(soeknad: SøknadJson) = webTestClient.post()
+ .uri { it.path("/$api/$søknadTypeUri/valider").build() }
+ .header("Authorization", saksbehandlerAuthorizationHeader)
+ .bodyValue(soeknad)
+ .exchange()
+
+ private fun oppdaterSøknad(soeknad: SøknadJson) = webTestClient.put()
+ .uri("/$api/$søknadTypeUri/oppdater")
+ .header("Authorization", saksbehandlerAuthorizationHeader)
+ .bodyValue(soeknad)
+ .exchange()
+
+ private fun hentMappeGittSøknadId(
+ soeknad: SøknadJson,
+ norskIdent: String,
+ ) = webTestClient.get()
+ .uri("/$api/$søknadTypeUri/mappe/${soeknad["soeknadId"]}")
+ .header("Authorization", saksbehandlerAuthorizationHeader)
+ .header("X-Nav-NorskIdent", norskIdent)
+ .exchange()
+
+ private fun sendInnSøknad(sendSøknad: SendSøknad) = webTestClient.post()
+ .uri { it.path("/$api/$søknadTypeUri/send").build() }
+ .header("Authorization", saksbehandlerAuthorizationHeader)
+ .bodyValue(sendSøknad)
+ .exchange()
}
diff --git a/src/test/kotlin/no/nav/k9punsj/pleiepengersyktbarn/MappeRepositoryTest.kt b/src/test/kotlin/no/nav/k9punsj/pleiepengersyktbarn/MappeRepositoryTest.kt
index 852b307dc..5d19f8106 100644
--- a/src/test/kotlin/no/nav/k9punsj/pleiepengersyktbarn/MappeRepositoryTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/pleiepengersyktbarn/MappeRepositoryTest.kt
@@ -1,26 +1,29 @@
package no.nav.k9punsj.pleiepengersyktbarn
import kotlinx.coroutines.runBlocking
-import no.nav.k9punsj.util.DatabaseUtil
+import no.nav.k9punsj.AbstractContainerBaseTest
+import no.nav.k9punsj.domenetjenester.repository.MappeRepository
+import no.nav.k9punsj.domenetjenester.repository.PersonRepository
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.Test
-import org.junit.jupiter.api.extension.ExtendWith
-import org.springframework.test.context.junit.jupiter.SpringExtension
+import org.springframework.beans.factory.annotation.Autowired
-@ExtendWith(SpringExtension::class)
-internal class MappeRepositoryTest {
+internal class MappeRepositoryTest: AbstractContainerBaseTest() {
+
+ @Autowired
+ lateinit var mappeRepository: MappeRepository
+
+ @Autowired
+ lateinit var personRepository: PersonRepository
private val dummyFnr = "11111111111"
private val dummyAktørId = "1000000000000"
@Test
internal fun HentAlleMapperSomInneholderEnNorskIdent(): Unit = runBlocking {
- val repository = DatabaseUtil.getMappeRepo()
- val personRepo = DatabaseUtil.getPersonRepo()
-
- val person = personRepo.lagre(norskIdent = dummyFnr, aktørId = dummyAktørId)
+ val person = personRepository.lagre(norskIdent = dummyFnr, aktørId = dummyAktørId)
- val mappe = repository.opprettEllerHentMappeForPerson(personId = person.personId)
+ val mappe = mappeRepository.opprettEllerHentMappeForPerson(personId = person.personId)
assertThat(mappe).isNotNull
}
}
diff --git a/src/test/kotlin/no/nav/k9punsj/pleiepengersyktbarn/PleiepengersyktbarnTests.kt b/src/test/kotlin/no/nav/k9punsj/pleiepengersyktbarn/PleiepengersyktbarnTests.kt
index 4d78753ce..c37023eab 100644
--- a/src/test/kotlin/no/nav/k9punsj/pleiepengersyktbarn/PleiepengersyktbarnTests.kt
+++ b/src/test/kotlin/no/nav/k9punsj/pleiepengersyktbarn/PleiepengersyktbarnTests.kt
@@ -1,73 +1,70 @@
package no.nav.k9punsj.pleiepengersyktbarn
import com.fasterxml.jackson.module.kotlin.convertValue
-import io.mockk.junit5.MockKExtension
import kotlinx.coroutines.runBlocking
-import no.nav.helse.dusseldorf.testsupport.jws.Azure
+import no.nav.k9.søknad.Søknad
import no.nav.k9.søknad.felles.personopplysninger.Utenlandsopphold
import no.nav.k9.søknad.felles.type.Periode
import no.nav.k9.søknad.ytelse.psb.v1.Omsorg
import no.nav.k9.søknad.ytelse.psb.v1.PleiepengerSyktBarn
-import no.nav.k9punsj.TestSetup
+import no.nav.k9punsj.AbstractContainerBaseTest
import no.nav.k9punsj.felles.dto.OpprettNySøknad
import no.nav.k9punsj.felles.dto.PeriodeDto
import no.nav.k9punsj.felles.dto.SendSøknad
-import no.nav.k9punsj.utils.objectMapper
+import no.nav.k9punsj.journalpost.JournalpostRepository
import no.nav.k9punsj.openapi.OasFeil
import no.nav.k9punsj.openapi.OasSoknadsfeil
-import no.nav.k9punsj.util.DatabaseUtil
import no.nav.k9punsj.util.IdGenerator
import no.nav.k9punsj.util.LesFraFilUtil
import no.nav.k9punsj.util.SøknadJson
import no.nav.k9punsj.util.TestUtils.hentSøknadId
-import no.nav.k9punsj.util.WebClientUtils.awaitBodyWithType
-import no.nav.k9punsj.util.WebClientUtils.awaitExchangeBlocking
-import no.nav.k9punsj.util.WebClientUtils.awaitStatusWithBody
-import no.nav.k9punsj.util.WebClientUtils.awaitStatuscode
-import no.nav.k9punsj.wiremock.saksbehandlerAccessToken
+import no.nav.k9punsj.utils.objectMapper
import org.assertj.core.api.Assertions.assertThat
-import org.junit.jupiter.api.Assertions.*
+import org.junit.jupiter.api.AfterEach
+import org.junit.jupiter.api.Assertions.assertEquals
+import org.junit.jupiter.api.Assertions.assertNotNull
import org.junit.jupiter.api.Test
-import org.junit.jupiter.api.extension.ExtendWith
+import org.springframework.beans.factory.annotation.Autowired
import org.springframework.http.HttpHeaders
import org.springframework.http.HttpStatus
-import org.springframework.http.HttpStatusCode
-import org.springframework.test.context.junit.jupiter.SpringExtension
+import org.springframework.test.web.reactive.server.EntityExchangeResult
+import org.springframework.test.web.reactive.server.WebTestClient
import org.springframework.web.reactive.function.BodyInserters
import java.net.URI
import java.time.Duration
import java.time.LocalDate
-@ExtendWith(SpringExtension::class, MockKExtension::class)
-class PleiepengersyktbarnTests {
+class PleiepengersyktbarnTests : AbstractContainerBaseTest() {
- private val client = TestSetup.client
private val api = "api"
private val søknadTypeUri = "pleiepenger-sykt-barn-soknad"
- private val saksbehandlerAuthorizationHeader = "Bearer ${Azure.V2_0.saksbehandlerAccessToken()}"
+
+ @Autowired
+ lateinit var journalpostRepository: JournalpostRepository
+
+ @AfterEach
+ fun teardown() {
+ cleanUpDB()
+ }
@Test
fun `Får tom liste når personen ikke har en eksisterende mappe`(): Unit = runBlocking {
val norskIdent = "01110050053"
- val (status, body) = client.get()
- .uri { it.pathSegment(api, søknadTypeUri, "mappe").build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .header("X-Nav-NorskIdent", norskIdent)
- .awaitStatusWithBody()
- assertEquals(HttpStatus.OK, status)
- assertTrue(body.søknader!!.isEmpty())
+
+ hentMappe(norskIdent)
+ .expectStatus().isOk
+ .expectBody(SvarPsbDto::class.java)
+ .consumeWith {
+ assertThat(it.responseBody!!.søknader!!).isEmpty()
+ }
}
@Test
fun `Opprette ny mappe på person`(): Unit = runBlocking {
val norskIdent = "01010050053"
val opprettNySøknad = opprettSøknad(norskIdent, "999")
- val status = client.post()
- .uri { it.pathSegment(api, søknadTypeUri).build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .body(BodyInserters.fromValue(opprettNySøknad))
- .awaitStatuscode()
- assertEquals(HttpStatus.CREATED, status)
+
+ opprettNySøknad(opprettNySøknad).expectStatus().isCreated
}
@Test
@@ -75,22 +72,16 @@ class PleiepengersyktbarnTests {
val norskIdent = "02020050163"
val opprettNySøknad = opprettSøknad(norskIdent, "9999")
- val status = client.post()
- .uri { it.pathSegment(api, søknadTypeUri).build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .body(BodyInserters.fromValue(opprettNySøknad))
- .awaitStatuscode()
- assertEquals(HttpStatus.CREATED, status)
-
- val (httpStatus, body) = client.get()
- .uri { it.pathSegment(api, søknadTypeUri, "mappe").build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .header("X-Nav-NorskIdent", norskIdent)
- .awaitStatusWithBody()
- assertEquals(HttpStatus.OK, httpStatus)
-
- val journalposterDto = body.søknader?.first()?.journalposter
- assertEquals("9999", journalposterDto?.first())
+ opprettNySøknad(opprettNySøknad).expectStatus().isCreated
+
+ hentMappe(norskIdent)
+ .expectStatus().isOk
+ .expectBody(SvarPsbDto::class.java)
+ .consumeWith {
+ val søknader = it.responseBody!!.søknader!!
+ assertThat(søknader).hasSize(1)
+ assertThat(it.responseBody!!.søknader?.first()?.journalposter?.first()).isEqualTo("9999")
+ }
}
@Test
@@ -102,20 +93,16 @@ class PleiepengersyktbarnTests {
val opprettNySøknad = opprettSøknad(norskIdent, journalpostid)
- val resPost = client.post()
- .uri { it.pathSegment(api, søknadTypeUri).build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .body(BodyInserters.fromValue(opprettNySøknad))
- .awaitExchangeBlocking()
-
- val location = resPost.headers().asHttpHeaders().location
- assertEquals(HttpStatus.CREATED, resPost.statusCode())
- assertNotNull(location)
+ val location = opprettNySøknad(opprettNySøknad)
+ .expectStatus().isCreated
+ .expectHeader().exists("Location")
+ .expectBody()
+ .returnResult().responseHeaders.location!!
- val søknadViaGet = client.get()
- .uri { it.pathSegment(api, søknadTypeUri, "mappe", hentSøknadId(location)).build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .awaitBodyWithType()
+ val søknadViaGet = hentMappeGittSøknadId(hentSøknadId(location)!!)
+ .expectStatus().isOk
+ .expectBody(PleiepengerSyktBarnSøknadDto::class.java)
+ .returnResult().responseBody!!
assertNotNull(søknadViaGet)
assertEquals(journalpostid, søknadViaGet.journalposter?.first())
@@ -130,36 +117,30 @@ class PleiepengersyktbarnTests {
val opprettNySøknad = opprettSøknad(norskIdent, journalpostid)
- val resPost = client.post()
- .uri { it.pathSegment(api, søknadTypeUri).build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .body(BodyInserters.fromValue(opprettNySøknad))
- .awaitExchangeBlocking()
-
- val location = resPost.headers().asHttpHeaders().location
- assertEquals(HttpStatus.CREATED, resPost.statusCode())
- assertNotNull(location)
+ val location = opprettNySøknad(opprettNySøknad)
+ .expectStatus().isCreated
+ .expectHeader().exists("Location")
+ .expectBody()
+ .returnResult().responseHeaders.location!!
leggerPåNySøknadId(søknadFraFrontend, location)
- val (httpstatus, oppdatertSoeknadDto) = client.put()
- .uri { it.pathSegment(api, søknadTypeUri, "oppdater").build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .body(BodyInserters.fromValue(søknadFraFrontend))
- .awaitStatusWithBody()
-
- assertNotNull(oppdatertSoeknadDto)
- assertEquals(norskIdent, oppdatertSoeknadDto.soekerId)
- assertEquals(
- listOf(
- PeriodeDto(
- LocalDate.of(2018, 12, 30),
- LocalDate.of(2019, 10, 20)
+ oppdaterSøknad(søknadFraFrontend)
+ .expectStatus().isOk
+ .expectBody(PleiepengerSyktBarnSøknadDto::class.java)
+ .consumeWith {
+ val body = it.responseBody!!
+ assertEquals(norskIdent, body.soekerId)
+ assertEquals(
+ listOf(
+ PeriodeDto(
+ LocalDate.of(2018, 12, 30),
+ LocalDate.of(2019, 10, 20)
+ )
+ ),
+ body.soeknadsperiode
)
- ),
- oppdatertSoeknadDto.soeknadsperiode
- )
- assertEquals(HttpStatus.OK, httpstatus)
+ }
}
@Test
@@ -171,25 +152,19 @@ class PleiepengersyktbarnTests {
val opprettNySøknad = opprettSøknad(norskIdent, journalpostid)
- val resPost = client.post()
- .uri { it.pathSegment(api, søknadTypeUri).build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .body(BodyInserters.fromValue(opprettNySøknad))
- .awaitExchangeBlocking()
-
- val location = resPost.headers().asHttpHeaders().location
- assertEquals(HttpStatus.CREATED, resPost.statusCode())
- assertNotNull(location)
+ val location = opprettNySøknad(opprettNySøknad)
+ .expectStatus().isCreated
+ .expectHeader().exists("Location")
+ .expectBody()
+ .returnResult().responseHeaders.location!!
leggerPåNySøknadId(søknadFraFrontend, location)
- val (httpstatus, oppdatertSoeknadDto) = client.put()
- .uri { it.pathSegment(api, søknadTypeUri, "oppdater").build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .body(BodyInserters.fromValue(søknadFraFrontend))
- .awaitStatusWithBody()
+ val oppdatertSoeknadDto = oppdaterSøknad(søknadFraFrontend)
+ .expectStatus().isOk
+ .expectBody(PleiepengerSyktBarnSøknadDto::class.java)
+ .returnResult().responseBody!!
- assertNotNull(oppdatertSoeknadDto)
assertEquals(norskIdent, oppdatertSoeknadDto.soekerId)
assertEquals(
listOf(
@@ -200,31 +175,26 @@ class PleiepengersyktbarnTests {
),
oppdatertSoeknadDto.soeknadsperiode
)
- assertEquals(HttpStatus.OK, httpstatus)
- val søknadViaGet = client.get()
- .uri { it.pathSegment(api, søknadTypeUri, "mappe", hentSøknadId(location)).build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .awaitBodyWithType()
-
- assertNotNull(søknadViaGet)
- assertThat(oppdatertSoeknadDto.metadata).isEqualTo(søknadViaGet.metadata)
+ hentMappeGittSøknadId(hentSøknadId(location)!!)
+ .expectStatus().isOk
+ .expectBody(PleiepengerSyktBarnSøknadDto::class.java)
+ .consumeWith {
+ val body = it.responseBody!!
+ assertThat(oppdatertSoeknadDto.metadata).isEqualTo(body.metadata)
+ }
}
@Test
- fun `Innsending av søknad returnerer 404 når mappe ikke finnes`(): Unit = runBlocking {
+ fun `Innsending av søknad returnerer 400 når mappe ikke finnes`(): Unit = runBlocking {
val norskIdent = "12030050163"
val søknadId = "d8e2c5a8-b993-4d2d-9cb5-fdb22a653a0c"
val sendSøknad = lagSendSøknad(norskIdent = norskIdent, søknadId = søknadId)
- val status = client.post()
- .uri { it.pathSegment(api, søknadTypeUri, "send").build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .body(BodyInserters.fromValue(sendSøknad))
- .awaitStatuscode()
-
- assertEquals(HttpStatus.BAD_REQUEST, status)
+ sendInnSøknad(sendSøknad)
+ .expectStatus().isBadRequest
+ .expectBody(OasSoknadsfeil::class.java)
}
@Test
@@ -250,15 +220,13 @@ class PleiepengersyktbarnTests {
val gyldigSoeknad: SøknadJson = LesFraFilUtil.søknadFraFrontend()
tilpasserSøknadsMalTilTesten(gyldigSoeknad, norskIdent)
- val (_, status, body) = opprettOgSendInnSoeknad(
+ opprettOgSendInnSoeknad(
soeknadJson = gyldigSoeknad,
ident = norskIdent,
journalpostid = "99997777"
- )
- assertThat(body.feil).isNull()
- assertEquals(HttpStatus.ACCEPTED, status)
+ ).expectStatus().isAccepted
- assertThat(DatabaseUtil.getJournalpostRepo().kanSendeInn(listOf("99997777"))).isFalse
+ assertThat(journalpostRepository.kanSendeInn(listOf("99997777"))).isFalse
}
@Test
@@ -268,22 +236,24 @@ class PleiepengersyktbarnTests {
val gyldigSoeknad: SøknadJson = LesFraFilUtil.søknadFraFrontend()
val journalpostId = "34234234"
tilpasserSøknadsMalTilTesten(gyldigSoeknad, norskIdent, journalpostId)
- val (id, status, body) =
+
+ val søknad =
opprettOgSendInnSoeknad(soeknadJson = gyldigSoeknad, ident = norskIdent, journalpostid = journalpostId)
+ .expectStatus().isAccepted
+ .expectBody(Søknad::class.java)
+ .returnResult().responseBody!!
- assertThat(body.feil).isNull()
- assertEquals(HttpStatus.ACCEPTED, status)
- assertThat(DatabaseUtil.getJournalpostRepo().kanSendeInn(listOf(journalpostId))).isFalse
+ assertThat(journalpostRepository.kanSendeInn(listOf(journalpostId))).isFalse
- val sendSøknad = lagSendSøknad(norskIdent = norskIdent, søknadId = id)
- val (httpstatus, body2) = client.post()
- .uri { it.pathSegment(api, søknadTypeUri, "send").build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .body(BodyInserters.fromValue(sendSøknad))
- .awaitStatusWithBody()
+ val sendSøknad = lagSendSøknad(norskIdent = norskIdent, søknadId = søknad.søknadId.id)
- assertEquals(HttpStatus.CONFLICT, httpstatus)
- assertThat(body2.feil).isEqualTo("Innsendingen må inneholde minst en journalpost som kan sendes inn.")
+ sendInnSøknad(sendSøknad)
+ .expectStatus().isEqualTo(HttpStatus.CONFLICT)
+ .expectBody(OasFeil::class.java)
+ .consumeWith {
+ val body = it.responseBody!!
+ assertEquals("Innsendingen må inneholde minst en journalpost som kan sendes inn.", body.feil)
+ }
}
@Test
@@ -293,10 +263,8 @@ class PleiepengersyktbarnTests {
val journalpostId = IdGenerator.nesteId()
tilpasserSøknadsMalTilTesten(soeknad, norskIdent, journalpostId)
- val (_, status, body) = opprettOgSendInnSoeknad(soeknadJson = soeknad, ident = norskIdent, journalpostId)
-
- assertEquals(HttpStatus.BAD_REQUEST, status)
- assertThat(body.feil).isNotEmpty
+ opprettOgSendInnSoeknad(soeknadJson = soeknad, ident = norskIdent, journalpostId)
+ .expectStatus().isBadRequest
}
@Test
@@ -305,10 +273,7 @@ class PleiepengersyktbarnTests {
val soeknad: SøknadJson = LesFraFilUtil.tomtLand()
tilpasserSøknadsMalTilTesten(soeknad, norskIdent)
- val (_, status, body) = opprettOgSendInnSoeknad(soeknadJson = soeknad, ident = norskIdent)
-
- assertThat(body.feil).isNull()
- assertEquals(HttpStatus.ACCEPTED, status)
+ opprettOgSendInnSoeknad(soeknadJson = soeknad, ident = norskIdent).expectStatus().isAccepted
}
@Test
@@ -317,10 +282,13 @@ class PleiepengersyktbarnTests {
val soeknad: SøknadJson = LesFraFilUtil.tidSøknad()
tilpasserSøknadsMalTilTesten(soeknad, norskIdent)
- val (_, status, body) = opprettOgSendInnSoeknad(soeknadJson = soeknad, ident = norskIdent)
-
- assertEquals(HttpStatus.BAD_REQUEST, status)
- assertThat(body.feil).isNotEmpty
+ opprettOgSendInnSoeknad(soeknadJson = soeknad, ident = norskIdent)
+ .expectStatus().isBadRequest
+ .expectBody(OasSoknadsfeil::class.java)
+ .consumeWith {
+ val body = it.responseBody!!
+ assertThat(body.feil).isNotEmpty
+ }
}
@Test
@@ -329,10 +297,7 @@ class PleiepengersyktbarnTests {
val soeknad: SøknadJson = LesFraFilUtil.utenUttak()
tilpasserSøknadsMalTilTesten(soeknad, norskIdent)
- val (_, status, body) = opprettOgSendInnSoeknad(soeknadJson = soeknad, ident = norskIdent)
-
- assertThat(body.feil).isNull()
- assertEquals(HttpStatus.ACCEPTED, status)
+ opprettOgSendInnSoeknad(soeknadJson = soeknad, ident = norskIdent).expectStatus().isAccepted
}
@Test
@@ -341,10 +306,7 @@ class PleiepengersyktbarnTests {
val soeknad: SøknadJson = LesFraFilUtil.ferieNull()
tilpasserSøknadsMalTilTesten(soeknad, norskIdent)
- val (_, status, body) = opprettOgSendInnSoeknad(soeknadJson = soeknad, ident = norskIdent)
-
- assertThat(body.feil).isNull()
- assertEquals(HttpStatus.ACCEPTED, status)
+ opprettOgSendInnSoeknad(soeknadJson = soeknad, ident = norskIdent).expectStatus().isAccepted
}
@Test
@@ -355,13 +317,15 @@ class PleiepengersyktbarnTests {
val oppdatertSoeknadDto = opprettOgLagreSoeknad(soeknadJson = soeknad, ident = norskIdent)
- val søknadViaGet = client.get()
- .uri { it.pathSegment(api, søknadTypeUri, "mappe", oppdatertSoeknadDto.soeknadId).build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .awaitBodyWithType()
-
- assertNotNull(søknadViaGet)
- assertEquals(søknadViaGet.lovbestemtFerie?.get(0)?.fom!!, LocalDate.of(2021, 4, 14))
+ hentMappeGittSøknadId(oppdatertSoeknadDto.soeknadId)
+ .expectStatus().isOk
+ .expectBody(PleiepengerSyktBarnSøknadDto::class.java)
+ .consumeWith {
+ val body = it.responseBody!!
+ assertThat(body.lovbestemtFerie).isNotNull
+ assertThat(body.lovbestemtFerie).hasSize(1)
+ assertThat(body.lovbestemtFerie!![0].fom).isEqualTo(LocalDate.of(2021, 4, 14))
+ }
}
@Test
@@ -372,28 +336,35 @@ class PleiepengersyktbarnTests {
val oppdatertSoeknadDto = opprettOgLagreSoeknad(soeknadJson = soeknad, ident = norskIdent)
- val søknadViaGet = client.get()
- .uri { it.pathSegment(api, søknadTypeUri, "mappe", oppdatertSoeknadDto.soeknadId).build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .awaitBodyWithType()
-
- assertNotNull(søknadViaGet)
- assertThat(søknadViaGet.opptjeningAktivitet?.selvstendigNaeringsdrivende?.virksomhetNavn).isEqualTo("FiskerAS")
- assertThat(søknadViaGet.opptjeningAktivitet?.selvstendigNaeringsdrivende?.organisasjonsnummer).isEqualTo("890508087")
- assertThat(søknadViaGet.opptjeningAktivitet?.selvstendigNaeringsdrivende?.info?.periode?.fom).isEqualTo(
- LocalDate.of(2021, 5, 10)
- )
- assertThat(søknadViaGet.opptjeningAktivitet?.selvstendigNaeringsdrivende?.info?.landkode).isEqualTo("")
- assertThat(søknadViaGet.opptjeningAktivitet?.selvstendigNaeringsdrivende?.info?.regnskapsførerNavn).isEqualTo("Regskapsfører")
- assertThat(søknadViaGet.opptjeningAktivitet?.selvstendigNaeringsdrivende?.info?.regnskapsførerTlf).isEqualTo("88888889")
- assertThat(søknadViaGet.opptjeningAktivitet?.selvstendigNaeringsdrivende?.info?.registrertIUtlandet).isEqualTo(
- false
- )
- assertThat(søknadViaGet.opptjeningAktivitet?.selvstendigNaeringsdrivende?.info?.bruttoInntekt).isEqualTo("1200000")
- assertThat(søknadViaGet.opptjeningAktivitet?.selvstendigNaeringsdrivende?.info?.erNyoppstartet).isEqualTo(false)
- assertThat(søknadViaGet.opptjeningAktivitet?.selvstendigNaeringsdrivende?.info?.virksomhetstyper).isEqualTo(
- listOf("Fiske", "Jordbruk", "Dagmamma i eget hjem/familiebarnehage", "Annen næringsvirksomhet")
- )
+ hentMappeGittSøknadId(oppdatertSoeknadDto.soeknadId)
+ .expectStatus().isOk
+ .expectBody(PleiepengerSyktBarnSøknadDto::class.java)
+ .consumeWith {
+ val søknad = it.responseBody!!
+ assertThat(søknad.opptjeningAktivitet).isNotNull
+ assertThat(søknad.opptjeningAktivitet?.selvstendigNaeringsdrivende).isNotNull
+ assertThat(søknad.opptjeningAktivitet?.selvstendigNaeringsdrivende?.info).isNotNull
+ assertThat(søknad.opptjeningAktivitet?.selvstendigNaeringsdrivende?.virksomhetNavn).isEqualTo("FiskerAS")
+ assertThat(søknad.opptjeningAktivitet?.selvstendigNaeringsdrivende?.organisasjonsnummer).isEqualTo("890508087")
+ assertThat(søknad.opptjeningAktivitet?.selvstendigNaeringsdrivende?.info?.periode?.fom).isEqualTo(
+ LocalDate.of(2021, 5, 10)
+ )
+ assertThat(søknad.opptjeningAktivitet?.selvstendigNaeringsdrivende?.info?.landkode).isEqualTo("")
+ assertThat(søknad.opptjeningAktivitet?.selvstendigNaeringsdrivende?.info?.regnskapsførerNavn).isEqualTo(
+ "Regskapsfører"
+ )
+ assertThat(søknad.opptjeningAktivitet?.selvstendigNaeringsdrivende?.info?.regnskapsførerTlf).isEqualTo("88888889")
+ assertThat(søknad.opptjeningAktivitet?.selvstendigNaeringsdrivende?.info?.registrertIUtlandet).isEqualTo(
+ false
+ )
+ assertThat(søknad.opptjeningAktivitet?.selvstendigNaeringsdrivende?.info?.bruttoInntekt).isEqualTo("1200000")
+ assertThat(søknad.opptjeningAktivitet?.selvstendigNaeringsdrivende?.info?.erNyoppstartet).isEqualTo(
+ false
+ )
+ assertThat(søknad.opptjeningAktivitet?.selvstendigNaeringsdrivende?.info?.virksomhetstyper).isEqualTo(
+ listOf("Fiske", "Jordbruk", "Dagmamma i eget hjem/familiebarnehage", "Annen næringsvirksomhet")
+ )
+ }
}
@Test
@@ -404,14 +375,14 @@ class PleiepengersyktbarnTests {
val oppdatertSoeknadDto = opprettOgLagreSoeknad(soeknadJson = soeknad, ident = norskIdent)
- val søknadViaGet = client.get()
- .uri { it.pathSegment(api, søknadTypeUri, "mappe", oppdatertSoeknadDto.soeknadId).build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .awaitBodyWithType()
-
- assertNotNull(søknadViaGet)
- assertThat(søknadViaGet.harInfoSomIkkeKanPunsjes).isEqualTo(true)
- assertThat(søknadViaGet.harMedisinskeOpplysninger).isEqualTo(false)
+ hentMappeGittSøknadId(oppdatertSoeknadDto.soeknadId)
+ .expectStatus().isOk
+ .expectBody(PleiepengerSyktBarnSøknadDto::class.java)
+ .consumeWith {
+ val søknad = it.responseBody!!
+ assertThat(søknad.harInfoSomIkkeKanPunsjes).isEqualTo(true)
+ assertThat(søknad.harMedisinskeOpplysninger).isEqualTo(false)
+ }
}
@Test
@@ -421,13 +392,7 @@ class PleiepengersyktbarnTests {
tilpasserSøknadsMalTilTesten(soeknad, norskIdent)
opprettOgLagreSoeknad(soeknadJson = soeknad, ident = norskIdent)
- val httpStatus = client.post()
- .uri { it.pathSegment(api, søknadTypeUri, "valider").build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .body(BodyInserters.fromValue(soeknad))
- .awaitStatuscode()
-
- assertEquals(HttpStatus.ACCEPTED, httpStatus)
+ validerSøknad(soeknad).expectStatus().isAccepted
}
@Test
@@ -439,31 +404,22 @@ class PleiepengersyktbarnTests {
val søknadId = opprettSoeknad(ident = norskIdent)
leggerPåNySøknadId(soeknad, søknadId)
- client.put()
- .uri { it.pathSegment(api, søknadTypeUri, "oppdater").build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .body(BodyInserters.fromValue(soeknad))
- .awaitExchangeBlocking()
+ oppdaterSøknad(soeknad).expectStatus().isOk
val med2: SøknadJson = LesFraFilUtil.søknadFraFrontendMed2()
tilpasserSøknadsMalTilTesten(med2, norskIdent)
leggerPåNySøknadId(med2, søknadId)
- client.put()
- .uri { it.pathSegment(api, søknadTypeUri, "oppdater").build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .body(BodyInserters.fromValue(med2))
- .awaitExchangeBlocking()
-
- val id = hentSøknadId(søknadId)
+ oppdaterSøknad(med2).expectStatus().isOk
- val søknadViaGet = client.get()
- .uri { it.pathSegment(api, søknadTypeUri, "mappe", id).build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .awaitBodyWithType()
-
- assertThat(søknadViaGet.journalposter).hasSize(2)
- assertThat(søknadViaGet.journalposter).isEqualTo(listOf("9999", "10000"))
+ hentMappeGittSøknadId(hentSøknadId(søknadId)!!)
+ .expectStatus().isOk
+ .expectBody(PleiepengerSyktBarnSøknadDto::class.java)
+ .consumeWith {
+ val body = it.responseBody!!
+ assertThat(body.journalposter).hasSize(2)
+ assertThat(body.journalposter).isEqualTo(listOf("9999", "10000"))
+ }
}
@Test
@@ -474,28 +430,27 @@ class PleiepengersyktbarnTests {
val oppdatertSoeknadDto = opprettOgLagreSoeknad(soeknadJson = soeknad, ident = norskIdent)
- val søknadViaGet = client.get()
- .uri { it.pathSegment(api, søknadTypeUri, "mappe", oppdatertSoeknadDto.soeknadId).build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .awaitBodyWithType()
-
- // GUI format
- assertNotNull(søknadViaGet)
-
- // k9-format, faktisk søknad format
- val mapTilEksternFormat = MapPsbTilK9Format(
- søknadViaGet.soeknadId,
- søknadViaGet.journalposter!!.toSet(),
- emptyList(),
- søknadViaGet
- )
+ hentMappeGittSøknadId(oppdatertSoeknadDto.soeknadId)
+ .expectStatus().isOk
+ .expectBody(PleiepengerSyktBarnSøknadDto::class.java)
+ .consumeWith { response: EntityExchangeResult ->
+ val søknad = response.responseBody!!
+
+ // k9-format, faktisk søknad format
+ val mapTilEksternFormat = MapPsbTilK9Format(
+ søknad.soeknadId,
+ søknad.journalposter!!.toSet(),
+ emptyList(),
+ søknad
+ )
- assertThat(mapTilEksternFormat.feil()).isEmpty()
- val søknad = mapTilEksternFormat.søknad()
- val ytelse = søknad.getYtelse()
- assertThat(ytelse.utenlandsopphold.perioder.size).isEqualTo(3)
- val filter = ytelse.utenlandsopphold.perioder.values.filter { it.Årsak != null }
- assertThat(filter[0].Årsak).isEqualTo(Utenlandsopphold.UtenlandsoppholdÅrsak.BARNET_INNLAGT_I_HELSEINSTITUSJON_DEKKET_ETTER_AVTALE_MED_ET_ANNET_LAND_OM_TRYGD)
+ assertThat(mapTilEksternFormat.feil()).isEmpty()
+ val k9Format = mapTilEksternFormat.søknad()
+ val ytelse = k9Format.getYtelse()
+ assertThat(ytelse.utenlandsopphold.perioder.size).isEqualTo(3)
+ val filter = ytelse.utenlandsopphold.perioder.values.filter { it.Årsak != null }
+ assertThat(filter[0].Årsak).isEqualTo(Utenlandsopphold.UtenlandsoppholdÅrsak.BARNET_INNLAGT_I_HELSEINSTITUSJON_DEKKET_ETTER_AVTALE_MED_ET_ANNET_LAND_OM_TRYGD)
+ }
}
@Test
@@ -506,144 +461,144 @@ class PleiepengersyktbarnTests {
val oppdatertSoeknadDto = opprettOgLagreSoeknad(soeknadJson = soeknad, ident = norskIdent)
- val søknadViaGet = client.get()
- .uri { it.pathSegment(api, søknadTypeUri, "mappe", oppdatertSoeknadDto.soeknadId).build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .awaitBodyWithType()
-
- // GUI format
- assertNotNull(søknadViaGet)
- assertThat(søknadViaGet.soekerId).isEqualTo(norskIdent)
- assertThat(søknadViaGet.journalposter!![0]).isEqualTo("99997777")
- assertThat(søknadViaGet.mottattDato).isEqualTo(LocalDate.of(2020, 10, 12))
- assertThat(søknadViaGet.barn?.norskIdent).isEqualTo("22222222222")
- assertThat(søknadViaGet.soeknadsperiode?.first()?.fom).isEqualTo(LocalDate.of(2018, 12, 30))
- assertThat(søknadViaGet.soeknadsperiode?.first()?.tom).isEqualTo(LocalDate.of(2019, 10, 20))
- assertThat(søknadViaGet.opptjeningAktivitet?.selvstendigNaeringsdrivende?.info?.periode?.fom).isEqualTo(
- LocalDate.of(2018, 12, 30)
- )
- assertThat(søknadViaGet.opptjeningAktivitet?.selvstendigNaeringsdrivende?.info?.periode?.tom).isNull()
- assertThat(søknadViaGet.opptjeningAktivitet?.selvstendigNaeringsdrivende?.info?.virksomhetstyper).hasSize(4)
- assertThat(søknadViaGet.opptjeningAktivitet?.selvstendigNaeringsdrivende?.virksomhetNavn).isEqualTo("FiskerAS")
- assertThat(søknadViaGet.opptjeningAktivitet?.frilanser?.startdato).isEqualTo("2019-10-10")
- assertThat(søknadViaGet.opptjeningAktivitet?.arbeidstaker!![0].organisasjonsnummer).isEqualTo("910909088")
- assertThat(søknadViaGet.arbeidstid?.arbeidstakerList!![0].organisasjonsnummer).isEqualTo("910909088")
- assertThat(søknadViaGet.arbeidstid?.arbeidstakerList!![0].arbeidstidInfo?.perioder!![0].periode?.fom).isEqualTo(
- LocalDate.of(2018, 12, 30)
- )
- assertThat(søknadViaGet.arbeidstid?.arbeidstakerList!![0].arbeidstidInfo?.perioder!![0].periode?.tom).isEqualTo(
- LocalDate.of(2019, 10, 20)
- )
- assertThat(søknadViaGet.arbeidstid?.arbeidstakerList!![0].arbeidstidInfo?.perioder!![0].faktiskArbeidTimerPerDag).isEqualTo(
- "7,48"
- )
- assertThat(søknadViaGet.arbeidstid?.arbeidstakerList!![0].arbeidstidInfo?.perioder!![0].jobberNormaltTimerPerDag).isEqualTo(
- "7,48"
- )
- assertThat(søknadViaGet.arbeidstid?.frilanserArbeidstidInfo!!.perioder?.first()?.periode?.fom).isEqualTo(
- LocalDate.of(
- 2018,
- 12,
- 30
- )
- )
- assertThat(søknadViaGet.arbeidstid?.selvstendigNæringsdrivendeArbeidstidInfo!!.perioder?.first()?.jobberNormaltTimerPerDag).isEqualTo(
- "7"
- )
- assertThat(søknadViaGet.beredskap?.first()?.tilleggsinformasjon).isEqualTo("FÅ SLUTT PÅ COVID!!!")
- assertThat(søknadViaGet.nattevaak?.first()?.tilleggsinformasjon).isEqualTo("FÅ SLUTT PÅ COVID!!!")
- assertThat(søknadViaGet.tilsynsordning?.perioder?.first()?.timer).isEqualTo(7)
- assertThat(søknadViaGet.tilsynsordning?.perioder?.first()?.minutter).isEqualTo(30)
- assertThat(søknadViaGet.uttak?.first()?.timerPleieAvBarnetPerDag).isEqualTo("7,5")
- assertThat(søknadViaGet.omsorg?.relasjonTilBarnet).isEqualTo("MOR")
- assertThat(søknadViaGet.bosteder!![0].land).isEqualTo("RU")
- assertThat(søknadViaGet.lovbestemtFerie!![0].fom).isEqualTo(LocalDate.of(2018, 12, 30))
- assertThat(søknadViaGet.utenlandsopphold!![0].periode?.fom).isEqualTo(LocalDate.of(2018, 12, 30))
- assertThat(søknadViaGet.soknadsinfo!!.harMedsoeker).isEqualTo(true)
- assertThat(søknadViaGet.soknadsinfo!!.samtidigHjemme).isEqualTo(true)
-
- // k9-format, faktisk søknad format
- val mapTilEksternFormat = MapPsbTilK9Format(
- søknadViaGet.soeknadId,
- søknadViaGet.journalposter!!.toSet(),
- emptyList(),
- søknadViaGet
- )
+ hentMappeGittSøknadId(oppdatertSoeknadDto.soeknadId)
+ .expectStatus().isOk
+ .expectBody(PleiepengerSyktBarnSøknadDto::class.java)
+ .consumeWith { response: EntityExchangeResult ->
+ val søknad = response.responseBody!!
+ assertThat(søknad.soekerId).isEqualTo(norskIdent)
+ assertThat(søknad.journalposter!![0]).isEqualTo("99997777")
+ assertThat(søknad.mottattDato).isEqualTo(LocalDate.of(2020, 10, 12))
+ assertThat(søknad.barn?.norskIdent).isEqualTo("22222222222")
+ assertThat(søknad.soeknadsperiode?.first()?.fom).isEqualTo(LocalDate.of(2018, 12, 30))
+ assertThat(søknad.soeknadsperiode?.first()?.tom).isEqualTo(LocalDate.of(2019, 10, 20))
+ assertThat(søknad.opptjeningAktivitet?.selvstendigNaeringsdrivende?.info?.periode?.fom).isEqualTo(
+ LocalDate.of(2018, 12, 30)
+ )
+ assertThat(søknad.opptjeningAktivitet?.selvstendigNaeringsdrivende?.info?.periode?.tom).isNull()
+ assertThat(søknad.opptjeningAktivitet?.selvstendigNaeringsdrivende?.info?.virksomhetstyper).hasSize(4)
+ assertThat(søknad.opptjeningAktivitet?.selvstendigNaeringsdrivende?.virksomhetNavn).isEqualTo("FiskerAS")
+ assertThat(søknad.opptjeningAktivitet?.frilanser?.startdato).isEqualTo("2019-10-10")
+ assertThat(søknad.opptjeningAktivitet?.arbeidstaker!![0].organisasjonsnummer).isEqualTo("910909088")
+ assertThat(søknad.arbeidstid?.arbeidstakerList!![0].organisasjonsnummer).isEqualTo("910909088")
+ assertThat(søknad.arbeidstid?.arbeidstakerList!![0].arbeidstidInfo?.perioder!![0].periode?.fom).isEqualTo(
+ LocalDate.of(2018, 12, 30)
+ )
+ assertThat(søknad.arbeidstid?.arbeidstakerList!![0].arbeidstidInfo?.perioder!![0].periode?.tom).isEqualTo(
+ LocalDate.of(2019, 10, 20)
+ )
+ assertThat(søknad.arbeidstid?.arbeidstakerList!![0].arbeidstidInfo?.perioder!![0].faktiskArbeidTimerPerDag).isEqualTo(
+ "7,48"
+ )
+ assertThat(søknad.arbeidstid?.arbeidstakerList!![0].arbeidstidInfo?.perioder!![0].jobberNormaltTimerPerDag).isEqualTo(
+ "7,48"
+ )
+ assertThat(søknad.arbeidstid?.frilanserArbeidstidInfo!!.perioder?.first()?.periode?.fom).isEqualTo(
+ LocalDate.of(
+ 2018,
+ 12,
+ 30
+ )
+ )
+ assertThat(søknad.arbeidstid?.selvstendigNæringsdrivendeArbeidstidInfo!!.perioder?.first()?.jobberNormaltTimerPerDag).isEqualTo(
+ "7"
+ )
+ assertThat(søknad.beredskap?.first()?.tilleggsinformasjon).isEqualTo("FÅ SLUTT PÅ COVID!!!")
+ assertThat(søknad.nattevaak?.first()?.tilleggsinformasjon).isEqualTo("FÅ SLUTT PÅ COVID!!!")
+ assertThat(søknad.tilsynsordning?.perioder?.first()?.timer).isEqualTo(7)
+ assertThat(søknad.tilsynsordning?.perioder?.first()?.minutter).isEqualTo(30)
+ assertThat(søknad.uttak?.first()?.timerPleieAvBarnetPerDag).isEqualTo("7,5")
+ assertThat(søknad.omsorg?.relasjonTilBarnet).isEqualTo("MOR")
+ assertThat(søknad.bosteder!![0].land).isEqualTo("RU")
+ assertThat(søknad.lovbestemtFerie!![0].fom).isEqualTo(LocalDate.of(2018, 12, 30))
+ assertThat(søknad.utenlandsopphold!![0].periode?.fom).isEqualTo(LocalDate.of(2018, 12, 30))
+ assertThat(søknad.soknadsinfo!!.harMedsoeker).isEqualTo(true)
+ assertThat(søknad.soknadsinfo!!.samtidigHjemme).isEqualTo(true)
+
+ // k9-format, faktisk søknad format
+ val mapTilEksternFormat = MapPsbTilK9Format(
+ søknad.soeknadId,
+ søknad.journalposter!!.toSet(),
+ emptyList(),
+ søknad
+ )
- assertThat(mapTilEksternFormat.feil()).isEmpty()
- val søknad = mapTilEksternFormat.søknad()
+ assertThat(mapTilEksternFormat.feil()).isEmpty()
+ val k9Format = mapTilEksternFormat.søknad()
- assertThat(søknad.søker.personIdent.verdi).isEqualTo(norskIdent)
- val ytelse = søknad.getYtelse()
+ assertThat(k9Format.søker.personIdent.verdi).isEqualTo(norskIdent)
+ val ytelse = k9Format.getYtelse()
- assertThat(ytelse.barn.personIdent.verdi).isEqualTo("22222222222")
- assertThat(ytelse.søknadsperiode.iso8601).isEqualTo("2018-12-30/2019-10-20")
- assertThat(ytelse.opptjeningAktivitet.selvstendigNæringsdrivende?.get(0)?.perioder?.keys?.first()?.iso8601).isEqualTo(
- "2018-12-30/.."
- )
- assertThat(ytelse?.opptjeningAktivitet?.selvstendigNæringsdrivende?.get(0)?.perioder?.values?.first()?.virksomhetstyper).hasSize(
- 4
- )
- assertThat(ytelse?.opptjeningAktivitet?.selvstendigNæringsdrivende?.get(0)?.virksomhetNavn).isEqualTo("FiskerAS")
- assertThat(ytelse.opptjeningAktivitet?.frilanser?.startdato).isEqualTo("2019-10-10")
- assertThat(ytelse.arbeidstid?.arbeidstakerList!![0].organisasjonsnummer.verdi).isEqualTo("910909088")
- assertThat(ytelse.arbeidstid?.arbeidstakerList!![0].arbeidstidInfo.perioder?.keys?.first()?.iso8601).isEqualTo("2018-12-30/2019-10-20")
- assertThat(ytelse.arbeidstid?.arbeidstakerList!![0].arbeidstidInfo.perioder?.values?.first()?.faktiskArbeidTimerPerDag?.toString()).isEqualTo(
- "PT7H29M"
- )
- assertThat(ytelse.arbeidstid?.arbeidstakerList!![0].arbeidstidInfo.perioder?.values?.first()?.jobberNormaltTimerPerDag?.toString()).isEqualTo(
- "PT7H29M"
- )
- assertThat(ytelse.arbeidstid?.selvstendigNæringsdrivendeArbeidstidInfo!!.get().perioder?.values?.first()?.jobberNormaltTimerPerDag).isEqualTo(
- Duration.ofHours(7)
- )
- assertThat(ytelse.arbeidstid?.frilanserArbeidstidInfo!!.get().perioder?.keys?.first()?.iso8601).isEqualTo("2018-12-30/2019-10-20")
- assertThat(ytelse.beredskap?.perioder?.values?.first()?.tilleggsinformasjon).isEqualTo("FÅ SLUTT PÅ COVID!!!")
- assertThat(ytelse.nattevåk?.perioder?.values?.first()?.tilleggsinformasjon).isEqualTo("FÅ SLUTT PÅ COVID!!!")
- assertThat(ytelse.tilsynsordning?.perioder?.values?.first()?.etablertTilsynTimerPerDag.toString()).isEqualTo("PT7H30M")
- assertThat(ytelse.uttak?.perioder?.values?.first()?.timerPleieAvBarnetPerDag.toString()).isEqualTo("PT7H30M")
- assertThat(ytelse.omsorg.relasjonTilBarnet.get()).isEqualTo(Omsorg.BarnRelasjon.MOR)
- assertThat(ytelse.bosteder.perioder.values.first().land.landkode).isEqualTo("RU")
- assertThat(ytelse.lovbestemtFerie!!.perioder?.get(Periode("2018-12-30/2019-06-20"))?.isSkalHaFerie).isEqualTo(
- true
- )
- assertThat(ytelse.lovbestemtFerie!!.perioder?.get(Periode("2019-06-21/2019-10-20"))?.isSkalHaFerie).isEqualTo(
- false
- )
- assertThat(ytelse.utenlandsopphold!!.perioder.keys.first()?.iso8601).isEqualTo("2018-12-30/2019-01-08")
- assertThat(ytelse.utenlandsopphold!!.perioder.values.first()?.Årsak).isEqualTo(Utenlandsopphold.UtenlandsoppholdÅrsak.BARNET_INNLAGT_I_HELSEINSTITUSJON_DEKKET_ETTER_AVTALE_MED_ET_ANNET_LAND_OM_TRYGD)
- assertThat(ytelse.søknadInfo!!.get().samtidigHjemme).isEqualTo(true)
- assertThat(ytelse.søknadInfo!!.get().harMedsøker).isEqualTo(true)
- assertThat(ytelse.opptjeningAktivitet.frilanser.startdato).isEqualTo(LocalDate.of(2019, 10, 10))
- assertThat(ytelse.opptjeningAktivitet.frilanser.sluttdato).isEqualTo(LocalDate.of(2019, 11, 10))
+ assertThat(ytelse.barn.personIdent.verdi).isEqualTo("22222222222")
+ assertThat(ytelse.søknadsperiode.iso8601).isEqualTo("2018-12-30/2019-10-20")
+ assertThat(ytelse.opptjeningAktivitet.selvstendigNæringsdrivende?.get(0)?.perioder?.keys?.first()?.iso8601).isEqualTo(
+ "2018-12-30/.."
+ )
+ assertThat(ytelse?.opptjeningAktivitet?.selvstendigNæringsdrivende?.get(0)?.perioder?.values?.first()?.virksomhetstyper).hasSize(
+ 4
+ )
+ assertThat(ytelse?.opptjeningAktivitet?.selvstendigNæringsdrivende?.get(0)?.virksomhetNavn).isEqualTo("FiskerAS")
+ assertThat(ytelse.opptjeningAktivitet?.frilanser?.startdato).isEqualTo("2019-10-10")
+ assertThat(ytelse.arbeidstid?.arbeidstakerList!![0].organisasjonsnummer.verdi).isEqualTo("910909088")
+ assertThat(ytelse.arbeidstid?.arbeidstakerList!![0].arbeidstidInfo.perioder?.keys?.first()?.iso8601).isEqualTo(
+ "2018-12-30/2019-10-20"
+ )
+ assertThat(ytelse.arbeidstid?.arbeidstakerList!![0].arbeidstidInfo.perioder?.values?.first()?.faktiskArbeidTimerPerDag?.toString()).isEqualTo(
+ "PT7H29M"
+ )
+ assertThat(ytelse.arbeidstid?.arbeidstakerList!![0].arbeidstidInfo.perioder?.values?.first()?.jobberNormaltTimerPerDag?.toString()).isEqualTo(
+ "PT7H29M"
+ )
+ assertThat(ytelse.arbeidstid?.selvstendigNæringsdrivendeArbeidstidInfo!!.get().perioder?.values?.first()?.jobberNormaltTimerPerDag).isEqualTo(
+ Duration.ofHours(7)
+ )
+ assertThat(ytelse.arbeidstid?.frilanserArbeidstidInfo!!.get().perioder?.keys?.first()?.iso8601).isEqualTo(
+ "2018-12-30/2019-10-20"
+ )
+ assertThat(ytelse.beredskap?.perioder?.values?.first()?.tilleggsinformasjon).isEqualTo("FÅ SLUTT PÅ COVID!!!")
+ assertThat(ytelse.nattevåk?.perioder?.values?.first()?.tilleggsinformasjon).isEqualTo("FÅ SLUTT PÅ COVID!!!")
+ assertThat(ytelse.tilsynsordning?.perioder?.values?.first()?.etablertTilsynTimerPerDag.toString()).isEqualTo(
+ "PT7H30M"
+ )
+ assertThat(ytelse.uttak?.perioder?.values?.first()?.timerPleieAvBarnetPerDag.toString()).isEqualTo("PT7H30M")
+ assertThat(ytelse.omsorg.relasjonTilBarnet.get()).isEqualTo(Omsorg.BarnRelasjon.MOR)
+ assertThat(ytelse.bosteder.perioder.values.first().land.landkode).isEqualTo("RU")
+ assertThat(ytelse.lovbestemtFerie!!.perioder?.get(Periode("2018-12-30/2019-06-20"))?.isSkalHaFerie).isEqualTo(
+ true
+ )
+ assertThat(ytelse.lovbestemtFerie!!.perioder?.get(Periode("2019-06-21/2019-10-20"))?.isSkalHaFerie).isEqualTo(
+ false
+ )
+ assertThat(ytelse.utenlandsopphold!!.perioder.keys.first()?.iso8601).isEqualTo("2018-12-30/2019-01-08")
+ assertThat(ytelse.utenlandsopphold!!.perioder.values.first()?.Årsak).isEqualTo(Utenlandsopphold.UtenlandsoppholdÅrsak.BARNET_INNLAGT_I_HELSEINSTITUSJON_DEKKET_ETTER_AVTALE_MED_ET_ANNET_LAND_OM_TRYGD)
+ assertThat(ytelse.søknadInfo!!.get().samtidigHjemme).isEqualTo(true)
+ assertThat(ytelse.søknadInfo!!.get().harMedsøker).isEqualTo(true)
+ assertThat(ytelse.opptjeningAktivitet.frilanser.startdato).isEqualTo(LocalDate.of(2019, 10, 10))
+ assertThat(ytelse.opptjeningAktivitet.frilanser.sluttdato).isEqualTo(LocalDate.of(2019, 11, 10))
+ }
}
private suspend fun opprettOgSendInnSoeknad(
soeknadJson: SøknadJson,
ident: String,
- journalpostid: String = IdGenerator.nesteId()
- ): Triple {
+ journalpostid: String = IdGenerator.nesteId(),
+ ): WebTestClient.ResponseSpec {
val innsendingForOpprettelseAvMappe = opprettSøknad(ident, journalpostid)
// oppretter en søknad
- val resPost = client.post()
- .uri { it.pathSegment(api, søknadTypeUri).build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .body(BodyInserters.fromValue(innsendingForOpprettelseAvMappe))
- .awaitExchangeBlocking()
-
- val location = resPost.headers().asHttpHeaders().location
- assertEquals(HttpStatus.CREATED, resPost.statusCode())
- assertNotNull(location)
+ val location = opprettNySøknad(innsendingForOpprettelseAvMappe)
+ .expectStatus().isCreated
+ .expectHeader().exists("Location")
+ .expectBody()
+ .returnResult().responseHeaders.location!!
leggerPåNySøknadId(soeknadJson, location)
// fyller ut en søknad
- val søknadDtoFyltUt = client.put()
- .uri { it.pathSegment(api, søknadTypeUri, "oppdater").build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .body(BodyInserters.fromValue(soeknadJson))
- .awaitBodyWithType()
+ val søknadDtoFyltUt = oppdaterSøknad(soeknadJson)
+ .expectStatus().isOk
+ .expectBody(PleiepengerSyktBarnSøknadDto::class.java)
+ .returnResult().responseBody!!
assertNotNull(søknadDtoFyltUt.soekerId)
@@ -652,44 +607,34 @@ class PleiepengersyktbarnTests {
val journalposter = søknadDtoFyltUt.journalposter!!
- val kanSendeInn = DatabaseUtil.getJournalpostRepo().kanSendeInn(journalposter)
+ val kanSendeInn = journalpostRepository.kanSendeInn(journalposter)
assertThat(kanSendeInn).isTrue
// sender en søknad
- val (httpstatus, oasSoknadsfeil) = client.post()
- .uri { it.pathSegment(api, søknadTypeUri, "send").build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .body(BodyInserters.fromValue(sendSøknad))
- .awaitStatusWithBody()
- return Triple(søknadId, httpstatus, oasSoknadsfeil)
+ return sendInnSøknad(sendSøknad)
}
private suspend fun opprettOgLagreSoeknad(
soeknadJson: SøknadJson,
ident: String,
- journalpostid: String = IdGenerator.nesteId()
+ journalpostid: String = IdGenerator.nesteId(),
): PleiepengerSyktBarnSøknadDto {
val innsendingForOpprettelseAvMappe = opprettSøknad(ident, journalpostid)
// oppretter en søknad
- val resPost = client.post()
- .uri { it.pathSegment(api, søknadTypeUri).build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .body(BodyInserters.fromValue(innsendingForOpprettelseAvMappe))
- .awaitExchangeBlocking()
-
- val location = resPost.headers().asHttpHeaders().location
- assertEquals(HttpStatus.CREATED, resPost.statusCode())
- assertNotNull(location)
+ val location = opprettNySøknad(innsendingForOpprettelseAvMappe)
+ .expectStatus().isCreated
+ .expectHeader().exists("Location")
+ .expectBody()
+ .returnResult().responseHeaders.location!!
leggerPåNySøknadId(soeknadJson, location)
// fyller ut en søknad
- val søknadDtoFyltUt = client.put()
- .uri { it.pathSegment(api, søknadTypeUri, "oppdater").build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .body(BodyInserters.fromValue(soeknadJson))
- .awaitBodyWithType()
+ val søknadDtoFyltUt = oppdaterSøknad(soeknadJson)
+ .expectStatus().isOk
+ .expectBody(PleiepengerSyktBarnSøknadDto::class.java)
+ .returnResult().responseBody!!
assertNotNull(søknadDtoFyltUt.soekerId)
return søknadDtoFyltUt
@@ -697,35 +642,64 @@ class PleiepengersyktbarnTests {
private suspend fun opprettSoeknad(
ident: String,
- journalpostid: String = IdGenerator.nesteId()
+ journalpostid: String = IdGenerator.nesteId(),
): URI? {
val innsendingForOpprettelseAvMappe = opprettSøknad(ident, journalpostid)
// oppretter en søknad
- val resPost = client.post()
- .uri { it.pathSegment(api, søknadTypeUri).build() }
- .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
- .body(BodyInserters.fromValue(innsendingForOpprettelseAvMappe))
- .awaitExchangeBlocking()
-
- val location = resPost.headers().asHttpHeaders().location
- assertEquals(HttpStatus.CREATED, resPost.statusCode())
- assertNotNull(location)
-
- return location
+ return opprettNySøknad(innsendingForOpprettelseAvMappe)
+ .expectStatus().isCreated
+ .expectHeader().exists("Location")
+ .expectBody()
+ .returnResult().responseHeaders.location
}
+
+ private fun hentMappe(norskIdent: String) = webTestClient.get()
+ .uri { it.path("/$api/$søknadTypeUri/mappe").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .header("X-Nav-NorskIdent", norskIdent)
+ .exchange()
+
+ private fun hentMappeGittSøknadId(søknadId: String) = webTestClient.get()
+ .uri { it.path("/$api/$søknadTypeUri/mappe/$søknadId").build() }
+ .header("Authorization", saksbehandlerAuthorizationHeader)
+ .exchange()
+
+ private fun opprettNySøknad(opprettNySøknad: OpprettNySøknad) = webTestClient.post()
+ .uri { it.path("/$api/$søknadTypeUri").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .bodyValue(opprettNySøknad)
+ .exchange()
+
+ private fun oppdaterSøknad(søknadFraFrontend: SøknadJson) = webTestClient.put()
+ .uri { it.path("/$api/$søknadTypeUri/oppdater").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .bodyValue(søknadFraFrontend)
+ .exchange()
+
+ private fun validerSøknad(soeknad: SøknadJson) = webTestClient.post()
+ .uri { it.path("/$api/$søknadTypeUri/valider").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .bodyValue(soeknad)
+ .exchange()
+
+ private fun sendInnSøknad(sendSøknad: SendSøknad) = webTestClient.post()
+ .uri { it.path("/$api/$søknadTypeUri/send").build() }
+ .header(HttpHeaders.AUTHORIZATION, saksbehandlerAuthorizationHeader)
+ .body(BodyInserters.fromValue(sendSøknad))
+ .exchange()
}
private fun opprettSøknad(
personnummer: String,
- journalpostId: String
+ journalpostId: String,
): OpprettNySøknad {
return OpprettNySøknad(personnummer, journalpostId, null, null)
}
private fun lagSendSøknad(
norskIdent: String,
- søknadId: String
+ søknadId: String,
): SendSøknad {
return SendSøknad(norskIdent, søknadId)
}
@@ -733,7 +707,7 @@ private fun lagSendSøknad(
private fun tilpasserSøknadsMalTilTesten(
søknad: MutableMap,
norskIdent: String,
- journalpostId: String? = null
+ journalpostId: String? = null,
) {
søknad.replace("soekerId", norskIdent)
if (journalpostId != null) søknad.replace("journalposter", arrayOf(journalpostId))
diff --git a/src/test/kotlin/no/nav/k9punsj/rest/eksternt/k9sak/TestK9SakService.kt b/src/test/kotlin/no/nav/k9punsj/rest/eksternt/k9sak/TestK9SakService.kt
index b99bbd035..6a0858d5a 100644
--- a/src/test/kotlin/no/nav/k9punsj/rest/eksternt/k9sak/TestK9SakService.kt
+++ b/src/test/kotlin/no/nav/k9punsj/rest/eksternt/k9sak/TestK9SakService.kt
@@ -2,7 +2,6 @@ package no.nav.k9punsj.rest.eksternt.k9sak
import no.nav.k9.kodeverk.dokument.Brevkode
import no.nav.k9.søknad.Søknad
-import no.nav.k9punsj.TestProfil
import no.nav.k9punsj.felles.FagsakYtelseType
import no.nav.k9punsj.felles.dto.ArbeidsgiverMedArbeidsforholdId
import no.nav.k9punsj.felles.dto.PeriodeDto
@@ -13,7 +12,6 @@ import org.springframework.stereotype.Component
import java.time.LocalDate
@Component
-@TestProfil
internal class TestK9SakService : K9SakService {
override suspend fun hentPerioderSomFinnesIK9(
søker: String,
diff --git a/src/test/kotlin/no/nav/k9punsj/rest/eksternt/pdl/TestPdlService.kt b/src/test/kotlin/no/nav/k9punsj/rest/eksternt/pdl/TestPdlService.kt
index b16e53295..425b1bc7f 100644
--- a/src/test/kotlin/no/nav/k9punsj/rest/eksternt/pdl/TestPdlService.kt
+++ b/src/test/kotlin/no/nav/k9punsj/rest/eksternt/pdl/TestPdlService.kt
@@ -1,7 +1,5 @@
package no.nav.k9punsj.rest.eksternt.pdl
-import no.nav.k9punsj.TestProfil
-import no.nav.k9punsj.felles.Identitetsnummer.Companion.somIdentitetsnummer
import no.nav.k9punsj.integrasjoner.pdl.IdentPdl
import no.nav.k9punsj.integrasjoner.pdl.PdlResponse
import no.nav.k9punsj.integrasjoner.pdl.PdlService
@@ -10,7 +8,6 @@ import org.springframework.stereotype.Component
import java.time.LocalDate
@Component
-@TestProfil
internal class TestPdlService : PdlService {
private val dummyFnr = "11111111111"
private val dummyAktørId = "1000000000000"
diff --git a/src/test/kotlin/no/nav/k9punsj/rest/server/PunsjJournalpostInfoRoutesTest.kt b/src/test/kotlin/no/nav/k9punsj/rest/server/PunsjJournalpostInfoRoutesTest.kt
index dd8cca679..228f3feeb 100644
--- a/src/test/kotlin/no/nav/k9punsj/rest/server/PunsjJournalpostInfoRoutesTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/rest/server/PunsjJournalpostInfoRoutesTest.kt
@@ -3,6 +3,7 @@ package no.nav.k9punsj.rest.server
import com.fasterxml.jackson.module.kotlin.convertValue
import io.mockk.junit5.MockKExtension
import kotlinx.coroutines.runBlocking
+import no.nav.k9punsj.AbstractContainerBaseTest
import no.nav.k9punsj.TestSetup
import no.nav.k9punsj.felles.JsonB
import no.nav.k9punsj.journalpost.dto.SøkUferdigJournalposter
@@ -18,94 +19,94 @@ import org.springframework.http.HttpStatus
import org.springframework.test.context.junit.jupiter.SpringExtension
import org.springframework.web.reactive.function.BodyInserters
-@ExtendWith(SpringExtension::class, MockKExtension::class)
-class PunsjJournalpostInfoRoutesTest {
+class PunsjJournalpostInfoRoutesTest : AbstractContainerBaseTest() {
- private val client = TestSetup.client
private val json: JsonB = objectMapper().convertValue(SøkUferdigJournalposter("1000000000000", null))
@Test
fun `Får en liste med journalpostIder som ikke er ferdig behandlet av punsj post`(): Unit = runBlocking {
val k9sakToken = "Bearer ${no.nav.helse.dusseldorf.testsupport.jws.NaisSts.k9SakToken()}"
- val res = client.post().uri {
+
+ webTestClient.post().uri {
it.pathSegment("api", "journalpost", "uferdig").build()
}
.header(HttpHeaders.AUTHORIZATION, k9sakToken)
.body(BodyInserters.fromValue(json))
-
- val status = res.awaitStatuscode()
- assertEquals(HttpStatus.OK, status)
+ .exchange()
+ .expectStatus().isOk
}
@Test
fun `Http 500 om vi sender feil body`(): Unit = runBlocking {
val k9sakToken = "Bearer ${no.nav.helse.dusseldorf.testsupport.jws.NaisSts.k9SakToken()}"
- val res = client.post().uri {
+
+ webTestClient.post().uri {
it.pathSegment("api", "journalpost", "uferdig").build()
}
.header(HttpHeaders.AUTHORIZATION, k9sakToken)
.body(BodyInserters.fromValue("""json"""))
-
- val status = res.awaitStatuscode()
- assertEquals(HttpStatus.INTERNAL_SERVER_ERROR, status)
+ .exchange()
+ .expectStatus().is5xxServerError
}
@Test
- fun `Http 401 om vi har token fra riktig applikasjon men feil aud`() = runBlocking {
- val stsTokenLosApi = "Bearer ${no.nav.helse.dusseldorf.testsupport.jws.NaisSts.generateJwt(
- application = "srvk9sak",
- overridingClaims = mapOf(
- "aud" to "k9losapi"
- ))}"
- val res = client.post().uri {
+ fun `Http 401 om vi har token fra riktig applikasjon men feil aud`(): Unit = runBlocking {
+ val stsTokenLosApi = "Bearer ${
+ no.nav.helse.dusseldorf.testsupport.jws.NaisSts.generateJwt(
+ application = "srvk9sak",
+ overridingClaims = mapOf(
+ "aud" to "k9losapi"
+ )
+ )
+ }"
+ webTestClient.post().uri {
it.pathSegment("api", "journalpost", "uferdig").build()
}
.header(HttpHeaders.AUTHORIZATION, stsTokenLosApi)
.body(BodyInserters.fromValue(json))
-
- val status = res.awaitStatuscode()
- assertEquals(HttpStatus.UNAUTHORIZED, status)
+ .exchange()
+ .expectStatus().isUnauthorized
}
@Test
- fun `Http 401 om vi har token til annen applikasjon`() = runBlocking {
- val stsTokenLosApi = "Bearer ${no.nav.helse.dusseldorf.testsupport.jws.NaisSts.generateJwt(
- application = "srvk9losapi",
- overridingClaims = mapOf(
- "sub" to "srvk9losapi",
- "aud" to "srvk9losapi"
- ))}"
- val res = client.post().uri {
+ fun `Http 401 om vi har token til annen applikasjon`(): Unit = runBlocking {
+ val stsTokenLosApi = "Bearer ${
+ no.nav.helse.dusseldorf.testsupport.jws.NaisSts.generateJwt(
+ application = "srvk9losapi",
+ overridingClaims = mapOf(
+ "sub" to "srvk9losapi",
+ "aud" to "srvk9losapi"
+ )
+ )
+ }"
+ webTestClient.post().uri {
it.pathSegment("api", "journalpost", "uferdig").build()
}
.header(HttpHeaders.AUTHORIZATION, stsTokenLosApi)
.body(BodyInserters.fromValue(json))
-
- val status = res.awaitStatuscode()
- assertEquals(HttpStatus.UNAUTHORIZED, status)
+ .exchange()
+ .expectStatus().isUnauthorized
}
@Test
- fun `Http 401 om ikke har token`() = runBlocking {
- val res = client.post().uri {
+ fun `Http 401 om ikke har token`(): Unit = runBlocking {
+ webTestClient.post().uri {
it.pathSegment("api", "journalpost", "uferdig").build()
}
.body(BodyInserters.fromValue(json))
-
- val status = res.awaitStatuscode()
- assertEquals(HttpStatus.UNAUTHORIZED, status)
+ .exchange()
+ .expectStatus().isUnauthorized
}
@Test
- fun `Http 200 om vi har azure ad token`() = runBlocking {
+ fun `Http 200 om vi har azure ad token`(): Unit = runBlocking {
val azureToken = "Bearer ${no.nav.helse.dusseldorf.testsupport.jws.Azure.V2_0.saksbehandlerAccessToken()}"
- val res = client.post().uri {
+ webTestClient.post().uri {
it.pathSegment("api", "journalpost", "uferdig").build()
}
.header(HttpHeaders.AUTHORIZATION, azureToken)
.body(BodyInserters.fromValue(json))
-
- val status = res.awaitStatuscode()
- assertEquals(HttpStatus.OK, status)
+ .exchange()
+ .expectStatus().isOk
}
}
diff --git a/src/test/kotlin/no/nav/k9punsj/sak/SakServiceTest.kt b/src/test/kotlin/no/nav/k9punsj/sak/SakServiceTest.kt
index ab28a513b..76d370145 100644
--- a/src/test/kotlin/no/nav/k9punsj/sak/SakServiceTest.kt
+++ b/src/test/kotlin/no/nav/k9punsj/sak/SakServiceTest.kt
@@ -1,29 +1,21 @@
package no.nav.k9punsj.sak
-import io.mockk.junit5.MockKExtension
import kotlinx.coroutines.runBlocking
+import no.nav.k9punsj.AbstractContainerBaseTest
import no.nav.k9punsj.domenetjenester.PersonService
-import no.nav.k9punsj.rest.eksternt.k9sak.TestK9SakService
import org.assertj.core.api.Assertions.assertThat
-import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
-import org.junit.jupiter.api.extension.ExtendWith
+import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.mock.mockito.MockBean
-import org.springframework.test.context.junit.jupiter.SpringExtension
-@ExtendWith(SpringExtension::class, MockKExtension::class)
-internal class SakServiceTest {
+internal class SakServiceTest: AbstractContainerBaseTest() {
+ @Autowired
private lateinit var sakService: SakService
@MockBean
private lateinit var personService: PersonService
- @BeforeEach
- internal fun setUp() {
- sakService = SakService(k9SakService = TestK9SakService(), personService = personService)
- }
-
@Test
internal fun `gitt saker fra saf, forvent kun fagsaker fra k9`() {
runBlocking {
diff --git a/src/test/kotlin/no/nav/k9punsj/util/DatabaseUtil.kt b/src/test/kotlin/no/nav/k9punsj/util/DatabaseUtil.kt
deleted file mode 100644
index 4633e1787..000000000
--- a/src/test/kotlin/no/nav/k9punsj/util/DatabaseUtil.kt
+++ /dev/null
@@ -1,68 +0,0 @@
-package no.nav.k9punsj.util
-
-import io.zonky.test.db.postgres.embedded.EmbeddedPostgres
-import kotliquery.queryOf
-import kotliquery.sessionOf
-import kotliquery.using
-import no.nav.k9punsj.TestProfil
-import no.nav.k9punsj.akjonspunkter.AksjonspunktRepository
-import no.nav.k9punsj.domenetjenester.repository.BunkeRepository
-import no.nav.k9punsj.domenetjenester.repository.MappeRepository
-import no.nav.k9punsj.domenetjenester.repository.PersonRepository
-import no.nav.k9punsj.domenetjenester.repository.SøknadRepository
-import no.nav.k9punsj.journalpost.JournalpostRepository
-import no.nav.k9punsj.metrikker.JournalpostMetrikkRepository
-import org.flywaydb.core.Flyway
-import org.springframework.context.annotation.Bean
-import org.springframework.stereotype.Component
-import javax.sql.DataSource
-
-class DatabaseUtil {
- companion object {
- internal val embeddedPostgres = EmbeddedPostgres.start()
- internal val dataSource: DataSource = embeddedPostgres.postgresDatabase.also { dataSource ->
- val flyway = Flyway.configure()
- .cleanDisabled(false)
- .locations("migreringer/")
- .dataSource(dataSource)
- .load()!!
- flyway.clean()
- flyway.migrate()
- }
-
- fun getMappeRepo(): MappeRepository = MappeRepository(dataSource)
- fun cleanMappeRepo() = cleanTable(MappeRepository.MAPPE_TABLE)
-
- fun getSøknadRepo(): SøknadRepository = SøknadRepository(dataSource)
- fun cleanSøknadRepo() = cleanTable(SøknadRepository.SØKNAD_TABLE)
-
- fun getPersonRepo(): PersonRepository = PersonRepository(dataSource)
- fun cleanPersonRepo() = cleanTable(PersonRepository.PERSON_TABLE)
-
- fun getBunkeRepo(): BunkeRepository = BunkeRepository(dataSource)
- fun cleanBunkeRepo() = cleanTable(BunkeRepository.BUNKE_TABLE)
-
- fun getJournalpostRepo(): JournalpostRepository = JournalpostRepository(dataSource)
- fun journalpostMetrikkRepository(): JournalpostMetrikkRepository = JournalpostMetrikkRepository(dataSource)
- fun cleanJournalpostRepo() = cleanTable(JournalpostRepository.JOURNALPOST_TABLE)
-
- fun getAksjonspunktRepo(): AksjonspunktRepository = AksjonspunktRepository(dataSource)
- fun cleanAksjonspunktRepo() = cleanTable(AksjonspunktRepository.AKSJONSPUNKT_TABLE)
-
- fun cleanDB() {
- cleanSøknadRepo()
- cleanBunkeRepo()
- cleanMappeRepo()
- cleanPersonRepo()
- cleanAksjonspunktRepo()
- cleanJournalpostRepo()
- }
-
- private fun cleanTable(tableName: String) {
- using(sessionOf(dataSource)) {
- //language=PostgreSQL
- it.transaction { tx -> tx.run(queryOf("DELETE FROM $tableName;").asExecute) }
- }
- }
- }
-}
diff --git a/src/test/kotlin/no/nav/k9punsj/util/DbContainerInitializer.kt b/src/test/kotlin/no/nav/k9punsj/util/DbContainerInitializer.kt
new file mode 100644
index 000000000..839b2fd4c
--- /dev/null
+++ b/src/test/kotlin/no/nav/k9punsj/util/DbContainerInitializer.kt
@@ -0,0 +1,20 @@
+package no.nav.k9punsj.util
+
+import org.springframework.context.ApplicationContextInitializer
+import org.springframework.context.ConfigurableApplicationContext
+import org.testcontainers.containers.PostgreSQLContainer
+
+class DbContainerInitializer: ApplicationContextInitializer {
+ companion object {
+ private val postgreSQLContainer12 = PostgreSQLContainer("postgres:12.2-alpine")
+
+ internal val postgresContainer = postgreSQLContainer12
+ .withDatabaseName("postgres")
+ .withUsername("postgres")
+ .withPassword("postgres")
+ }
+
+ override fun initialize(applicationContext: ConfigurableApplicationContext) {
+ postgresContainer.start()
+ }
+}
\ No newline at end of file
diff --git a/src/test/kotlin/no/nav/k9punsj/wiremock/WireMocks.kt b/src/test/kotlin/no/nav/k9punsj/wiremock/WireMocks.kt
index f2ca938eb..6b3324530 100644
--- a/src/test/kotlin/no/nav/k9punsj/wiremock/WireMocks.kt
+++ b/src/test/kotlin/no/nav/k9punsj/wiremock/WireMocks.kt
@@ -1,24 +1,29 @@
package no.nav.k9punsj.wiremock
+import com.github.tomakehurst.wiremock.WireMockServer
import com.github.tomakehurst.wiremock.core.Options
import no.nav.helse.dusseldorf.testsupport.wiremock.WireMockBuilder
fun initWireMock(
- port: Int,
- rootDirectory: String = "src/test/resources"
-) = WireMockBuilder()
- .withPort(port)
- .withAzureSupport()
- .withNaisStsSupport()
- .wireMockConfiguration {
- it.withRootDirectory(rootDirectory)
- it.useChunkedTransferEncoding(Options.ChunkedEncodingPolicy.NEVER)
- }
- .build()
- .stubSaf()
- .stubPdl()
- .stubAccessTokens()
- .stubGosys()
- .stubAareg()
- .stubEreg()
- .stubDokarkiv()
+ port: Int? = null,
+ rootDirectory: String = "src/test/resources",
+): WireMockServer {
+ val builder = WireMockBuilder()
+ .withAzureSupport()
+ .withNaisStsSupport()
+ .wireMockConfiguration {
+ it.withRootDirectory(rootDirectory)
+ it.useChunkedTransferEncoding(Options.ChunkedEncodingPolicy.NEVER)
+ }
+
+ port?.let { builder.withPort(it) }
+
+ return builder.build()
+ .stubSaf()
+ .stubPdl()
+ .stubAccessTokens()
+ .stubGosys()
+ .stubAareg()
+ .stubEreg()
+ .stubDokarkiv()
+}
diff --git a/src/test/resources/application.yaml b/src/test/resources/application.yaml
new file mode 100644
index 000000000..5bd18321a
--- /dev/null
+++ b/src/test/resources/application.yaml
@@ -0,0 +1,24 @@
+spring:
+ main:
+ web-application-type: reactive
+ profiles:
+ active: test
+ flyway:
+ enabled: true
+ baselineOnMigrate: true
+ clean-on-validation-error: true
+ datasource:
+ hikari:
+ minimum-idle: 1
+ maximum-pool-size: 3
+ driver-class-name: org.postgresql.Driver
+
+server:
+ port: 8085
+
+logging:
+ level:
+ web: TRACE
+ org:
+ springframework:
+ web: TRACE