1
1
package no.nav.tms.event.api
2
2
3
+ import io.kotest.matchers.shouldBe
3
4
import io.ktor.client.request.*
4
5
import io.ktor.client.statement.*
5
6
import io.ktor.http.*
6
7
import io.ktor.server.testing.*
7
- import no.nav.tms.common.testutils.initExternalServices
8
8
import no.nav.tms.event.api.varsel.*
9
- import org.amshove.kluent.shouldBeEqualTo
10
9
import org.junit.jupiter.api.TestInstance
11
10
import org.junit.jupiter.params.ParameterizedTest
12
11
import org.junit.jupiter.params.provider.ValueSource
@@ -30,22 +29,26 @@ class LegacyApiTest {
30
29
)
31
30
testApplication {
32
31
eventApiSetup(testHostUrl)
33
- initExternalServices(
32
+
33
+ var fnrHeader: String? = null
34
+
35
+ setupExternalVarselRoute(
34
36
testHostUrl,
35
- VarselRouteProvider (
36
- type = type,
37
- endpoint = " /detaljert/aktive" ,
38
- fnrHeaderShouldBe = dummyFnr,
39
- responseBody = aktiveMockresponse,
40
- ),
37
+ path = " $type /detaljert/aktive" ,
38
+ responseBody = aktiveMockresponse,
39
+ requestPeek = {
40
+ fnrHeader = it.headers[" ident" ]
41
+ },
41
42
)
42
43
43
44
client.get(" /$type /aktive" ) {
44
- header(" fodselsnummer" , " 12345678910 " )
45
+ header(" fodselsnummer" , dummyFnr )
45
46
}.apply {
46
- status shouldBeEqualTo HttpStatusCode .OK
47
+ status shouldBe HttpStatusCode .OK
47
48
assertLegacyContent(bodyAsText(), aktiveExpectedResult)
48
49
}
50
+
51
+ fnrHeader shouldBe dummyFnr
49
52
}
50
53
}
51
54
@@ -63,21 +66,25 @@ class LegacyApiTest {
63
66
64
67
testApplication {
65
68
eventApiSetup(testHostUrl)
66
- initExternalServices(
67
- testHostUrl,
68
- VarselRouteProvider (
69
- type = type,
70
- endpoint = " /detaljert/inaktive" ,
71
- fnrHeaderShouldBe = dummyFnr,
72
- responseBody = inaktivMockresponse,
73
- ),
69
+
70
+ var fnrHeader: String? = null
71
+
72
+ setupExternalVarselRoute(
73
+ host = testHostUrl,
74
+ path = " /$type /detaljert/inaktive" ,
75
+ responseBody = inaktivMockresponse,
76
+ requestPeek = {
77
+ fnrHeader = it.headers[" ident" ]
78
+ },
74
79
)
75
80
client.get(" /$type /inaktive" ) {
76
- header(" fodselsnummer" , " 12345678910 " )
81
+ header(" fodselsnummer" , dummyFnr )
77
82
}.apply {
78
- status shouldBeEqualTo HttpStatusCode .OK
83
+ status shouldBe HttpStatusCode .OK
79
84
assertLegacyContent(bodyAsText(), inaktiveExpectedResult)
80
85
}
86
+
87
+ fnrHeader shouldBe dummyFnr
81
88
}
82
89
}
83
90
@@ -95,21 +102,26 @@ class LegacyApiTest {
95
102
96
103
testApplication {
97
104
eventApiSetup(testHostUrl)
98
- initExternalServices(
99
- testHostUrl,
100
- VarselRouteProvider (
101
- type = type,
102
- endpoint = " /detaljert/alle" ,
103
- fnrHeaderShouldBe = dummyFnr,
104
- responseBody = alleMockresponse,
105
- ),
105
+
106
+ var fnrHeader: String? = null
107
+
108
+ setupExternalVarselRoute(
109
+ host = testHostUrl,
110
+ path = " /$type /detaljert/alle" ,
111
+ responseBody = alleMockresponse,
112
+ requestPeek = {
113
+ fnrHeader = it.headers[" ident" ]
114
+ },
106
115
)
116
+
107
117
client.get(" /$type /all" ) {
108
- header(" fodselsnummer" , " 12345678910 " )
118
+ header(" fodselsnummer" , dummyFnr )
109
119
}.apply {
110
- status shouldBeEqualTo HttpStatusCode .OK
120
+ status shouldBe HttpStatusCode .OK
111
121
assertLegacyContent(bodyAsText(), alleExpectedResult)
112
122
}
123
+
124
+ fnrHeader shouldBe dummyFnr
113
125
}
114
126
}
115
127
}
@@ -119,17 +131,17 @@ private fun assertLegacyContent(
119
131
expectedResult : List <LegacyVarsel >,
120
132
) {
121
133
val jsonObjects = objectmapper.readTree(content)
122
- jsonObjects.size() shouldBeEqualTo expectedResult.size
134
+ jsonObjects.size() shouldBe expectedResult.size
123
135
val expectedObject = expectedResult.first()
124
136
jsonObjects.first().also { resultObject ->
125
- resultObject[" fodselsnummer" ].textValue() shouldBeEqualTo expectedObject.fodselsnummer
126
- resultObject[" grupperingsId" ].textValue() shouldBeEqualTo expectedObject.grupperingsId
127
- resultObject[" eventId" ].textValue() shouldBeEqualTo expectedObject.eventId
128
- resultObject[" produsent" ].textValue() shouldBeEqualTo expectedObject.produsent
129
- resultObject[" sikkerhetsnivaa" ].asInt() shouldBeEqualTo expectedObject.sikkerhetsnivaa
130
- resultObject[" tekst" ].textValue() shouldBeEqualTo expectedObject.tekst
131
- resultObject[" link" ].textValue() shouldBeEqualTo expectedObject.link
132
- resultObject[" aktiv" ].asBoolean() shouldBeEqualTo expectedObject.aktiv
137
+ resultObject[" fodselsnummer" ].textValue() shouldBe expectedObject.fodselsnummer
138
+ resultObject[" grupperingsId" ].textValue() shouldBe expectedObject.grupperingsId
139
+ resultObject[" eventId" ].textValue() shouldBe expectedObject.eventId
140
+ resultObject[" produsent" ].textValue() shouldBe expectedObject.produsent
141
+ resultObject[" sikkerhetsnivaa" ].asInt() shouldBe expectedObject.sikkerhetsnivaa
142
+ resultObject[" tekst" ].textValue() shouldBe expectedObject.tekst
143
+ resultObject[" link" ].textValue() shouldBe expectedObject.link
144
+ resultObject[" aktiv" ].asBoolean() shouldBe expectedObject.aktiv
133
145
assertZonedDateTime(resultObject, expectedObject.synligFremTil, " synligFremTil" )
134
146
assertZonedDateTime(resultObject, expectedObject.forstBehandlet, " forstBehandlet" )
135
147
assertZonedDateTime(resultObject, expectedObject.sistOppdatert, " sistOppdatert" )
0 commit comments