Skip to content

Commit e6609f2

Browse files
IS-2720: Refactor test mocks to mockengine (#560)
1 parent e0d469b commit e6609f2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+519
-791
lines changed

build.gradle.kts

+1
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,7 @@ dependencies {
180180
implementation("no.nav.tjenestespesifikasjoner:servicemeldingMedKontaktinformasjon-v1-tjenestespesifikasjon:$tjenesteSpesifikasjonerGithubVersion")
181181

182182
testImplementation("io.ktor:ktor-server-test-host:$ktorVersion")
183+
testImplementation("io.ktor:ktor-client-mock:$ktorVersion")
183184
testImplementation("io.mockk:mockk:$mockkVersion")
184185
testImplementation("org.amshove.kluent:kluent:$kluentVersion")
185186
testImplementation("org.spekframework.spek2:spek-dsl-jvm:$spekVersion") {

src/main/kotlin/no/nav/syfo/App.kt

+44-7
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,14 @@ import no.nav.syfo.brev.esyfovarsel.EsyfovarselProducer
2828
import no.nav.syfo.brev.esyfovarsel.kafkaEsyfovarselConfig
2929
import no.nav.syfo.client.altinn.createPort
3030
import no.nav.syfo.client.azuread.AzureAdV2Client
31+
import no.nav.syfo.client.behandlendeenhet.BehandlendeEnhetClient
32+
import no.nav.syfo.client.narmesteleder.NarmesteLederClient
3133
import no.nav.syfo.client.oppfolgingstilfelle.OppfolgingstilfelleClient
34+
import no.nav.syfo.client.pdfgen.PdfGenClient
3235
import no.nav.syfo.client.pdl.PdlClient
36+
import no.nav.syfo.client.person.kontaktinfo.KontaktinformasjonClient
3337
import no.nav.syfo.client.tokendings.TokendingsClient
38+
import no.nav.syfo.client.veiledertilgang.VeilederTilgangskontrollClient
3439
import no.nav.syfo.cronjob.cronjobModule
3540
import no.nav.syfo.dialogmelding.DialogmeldingService
3641
import no.nav.syfo.dialogmelding.kafka.DialogmeldingConsumerService
@@ -107,6 +112,38 @@ fun main() {
107112
isoppfolgingstilfelleClientId = environment.isoppfolgingstilfelleClientId,
108113
cache = cache,
109114
)
115+
val pdlClient = PdlClient(
116+
azureAdV2Client = azureAdV2Client,
117+
pdlClientId = environment.pdlClientId,
118+
pdlUrl = environment.pdlUrl,
119+
redisStore = cache,
120+
)
121+
val behandlendeEnhetClient = BehandlendeEnhetClient(
122+
azureAdV2Client = azureAdV2Client,
123+
syfobehandlendeenhetBaseUrl = environment.syfobehandlendeenhetUrl,
124+
syfobehandlendeenhetClientId = environment.syfobehandlendeenhetClientId,
125+
)
126+
val kontaktinformasjonClient = KontaktinformasjonClient(
127+
azureAdV2Client = azureAdV2Client,
128+
cache = cache,
129+
clientId = environment.krrClientId,
130+
baseUrl = environment.krrUrl,
131+
)
132+
val pdfGenClient = PdfGenClient(
133+
pdfGenBaseUrl = environment.ispdfgenUrl
134+
)
135+
val veilederTilgangskontrollClient = VeilederTilgangskontrollClient(
136+
azureAdV2Client = azureAdV2Client,
137+
tilgangskontrollClientId = environment.istilgangskontrollClientId,
138+
tilgangskontrollBaseUrl = environment.istilgangskontrollUrl
139+
)
140+
val narmesteLederClient = NarmesteLederClient(
141+
narmesteLederBaseUrl = environment.narmestelederUrl,
142+
narmestelederClientId = environment.narmestelederClientId,
143+
azureAdV2Client = azureAdV2Client,
144+
tokendingsClient = tokendingsClient,
145+
cache = cache,
146+
)
110147

111148
lateinit var behandlerVarselService: BehandlerVarselService
112149
lateinit var dialogmoterelasjonService: DialogmoterelasjonService
@@ -153,12 +190,18 @@ fun main() {
153190
environment = environment,
154191
wellKnownSelvbetjening = getWellKnown(environment.tokenxWellKnownUrl),
155192
wellKnownVeilederV2 = getWellKnown(environment.azureAppWellKnownUrl),
156-
cache = cache,
157193
altinnSoapClient = altinnSoapClient,
158194
dialogmotestatusService = dialogmotestatusService,
159195
dialogmoterelasjonService = dialogmoterelasjonService,
160196
dialogmotedeltakerService = dialogmotedeltakerService,
161197
arbeidstakerVarselService = arbeidstakerVarselService,
198+
pdlClient = pdlClient,
199+
behandlendeEnhetClient = behandlendeEnhetClient,
200+
veilederTilgangskontrollClient = veilederTilgangskontrollClient,
201+
oppfolgingstilfelleClient = oppfolgingstilfelleClient,
202+
kontaktinformasjonClient = kontaktinformasjonClient,
203+
pdfGenClient = pdfGenClient,
204+
narmesteLederClient = narmesteLederClient,
162205
)
163206
cronjobModule(
164207
applicationState = applicationState,
@@ -192,12 +235,6 @@ fun main() {
192235
logger.info("Starting dialogmelding kafka consumer")
193236
dialogmeldingConsumerService.startConsumer()
194237
}
195-
val pdlClient = PdlClient(
196-
azureAdV2Client = azureAdV2Client,
197-
pdlClientId = environment.pdlClientId,
198-
pdlUrl = environment.pdlUrl,
199-
redisStore = cache,
200-
)
201238
val identhendelseService = IdenthendelseService(
202239
database = applicationDatabase,
203240
pdlClient = pdlClient,

src/main/kotlin/no/nav/syfo/application/api/ApiModule.kt

+7-55
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import no.altinn.services.serviceengine.correspondence._2009._10.ICorrespondence
77
import no.nav.syfo.application.ApplicationState
88
import no.nav.syfo.application.Environment
99
import no.nav.syfo.application.api.authentication.*
10-
import no.nav.syfo.application.cache.RedisStore
1110
import no.nav.syfo.application.database.DatabaseInterface
1211
import no.nav.syfo.brev.arbeidstaker.ArbeidstakerVarselService
1312
import no.nav.syfo.brev.arbeidstaker.registerArbeidstakerBrevApi
@@ -17,14 +16,12 @@ import no.nav.syfo.brev.narmesteleder.NarmesteLederAccessService
1716
import no.nav.syfo.brev.narmesteleder.NarmesteLederVarselService
1817
import no.nav.syfo.brev.narmesteleder.registerNarmestelederBrevApi
1918
import no.nav.syfo.client.altinn.AltinnClient
20-
import no.nav.syfo.client.azuread.AzureAdV2Client
2119
import no.nav.syfo.client.behandlendeenhet.BehandlendeEnhetClient
2220
import no.nav.syfo.client.narmesteleder.NarmesteLederClient
2321
import no.nav.syfo.client.oppfolgingstilfelle.OppfolgingstilfelleClient
2422
import no.nav.syfo.client.pdfgen.PdfGenClient
2523
import no.nav.syfo.client.pdl.PdlClient
2624
import no.nav.syfo.client.person.kontaktinfo.KontaktinformasjonClient
27-
import no.nav.syfo.client.tokendings.TokendingsClient
2825
import no.nav.syfo.client.veiledertilgang.VeilederTilgangskontrollClient
2926
import no.nav.syfo.dialogmote.*
3027
import no.nav.syfo.dialogmote.api.v2.registerDialogmoteActionsApiV2
@@ -41,12 +38,18 @@ fun Application.apiModule(
4138
environment: Environment,
4239
wellKnownSelvbetjening: WellKnown,
4340
wellKnownVeilederV2: WellKnown,
44-
cache: RedisStore,
4541
altinnSoapClient: ICorrespondenceAgencyExternalBasic,
4642
dialogmotestatusService: DialogmotestatusService,
4743
dialogmoterelasjonService: DialogmoterelasjonService,
4844
dialogmotedeltakerService: DialogmotedeltakerService,
4945
arbeidstakerVarselService: ArbeidstakerVarselService,
46+
pdlClient: PdlClient,
47+
behandlendeEnhetClient: BehandlendeEnhetClient,
48+
veilederTilgangskontrollClient: VeilederTilgangskontrollClient,
49+
oppfolgingstilfelleClient: OppfolgingstilfelleClient,
50+
pdfGenClient: PdfGenClient,
51+
kontaktinformasjonClient: KontaktinformasjonClient,
52+
narmesteLederClient: NarmesteLederClient,
5053
) {
5154
installMetrics()
5255
installCallId()
@@ -67,50 +70,6 @@ fun Application.apiModule(
6770
)
6871
installStatusPages()
6972

70-
val azureAdV2Client = AzureAdV2Client(
71-
aadAppClient = environment.aadAppClient,
72-
aadAppSecret = environment.aadAppSecret,
73-
aadTokenEndpoint = environment.aadTokenEndpoint,
74-
redisStore = cache,
75-
)
76-
val tokendingsClient = TokendingsClient(
77-
tokenxClientId = environment.tokenxClientId,
78-
tokenxEndpoint = environment.tokenxEndpoint,
79-
tokenxPrivateJWK = environment.tokenxPrivateJWK,
80-
)
81-
val pdlClient = PdlClient(
82-
azureAdV2Client = azureAdV2Client,
83-
pdlClientId = environment.pdlClientId,
84-
pdlUrl = environment.pdlUrl,
85-
redisStore = cache,
86-
)
87-
val behandlendeEnhetClient = BehandlendeEnhetClient(
88-
azureAdV2Client = azureAdV2Client,
89-
syfobehandlendeenhetBaseUrl = environment.syfobehandlendeenhetUrl,
90-
syfobehandlendeenhetClientId = environment.syfobehandlendeenhetClientId,
91-
)
92-
val kontaktinformasjonClient = KontaktinformasjonClient(
93-
azureAdV2Client = azureAdV2Client,
94-
cache = cache,
95-
clientId = environment.krrClientId,
96-
baseUrl = environment.krrUrl,
97-
)
98-
val oppfolgingstilfelleClient = OppfolgingstilfelleClient(
99-
azureAdV2Client = azureAdV2Client,
100-
tokendingsClient = tokendingsClient,
101-
isoppfolgingstilfelleBaseUrl = environment.isoppfolgingstilfelleUrl,
102-
isoppfolgingstilfelleClientId = environment.isoppfolgingstilfelleClientId,
103-
cache = cache,
104-
)
105-
val pdfGenClient = PdfGenClient(
106-
pdfGenBaseUrl = environment.ispdfgenUrl
107-
)
108-
val veilederTilgangskontrollClient = VeilederTilgangskontrollClient(
109-
azureAdV2Client = azureAdV2Client,
110-
tilgangskontrollClientId = environment.istilgangskontrollClientId,
111-
tilgangskontrollBaseUrl = environment.istilgangskontrollUrl
112-
)
113-
11473
val dialogmoteTilgangService = DialogmoteTilgangService(
11574
veilederTilgangskontrollClient = veilederTilgangskontrollClient,
11675
)
@@ -119,13 +78,6 @@ fun Application.apiModule(
11978
esyfovarselProducer = esyfovarselProducer,
12079
)
12180

122-
val narmesteLederClient = NarmesteLederClient(
123-
narmesteLederBaseUrl = environment.narmestelederUrl,
124-
narmestelederClientId = environment.narmestelederClientId,
125-
azureAdV2Client = azureAdV2Client,
126-
tokendingsClient = tokendingsClient,
127-
cache = cache,
128-
)
12981
val pdfService = PdfService(
13082
database = database,
13183
)

src/main/kotlin/no/nav/syfo/client/azuread/AzureAdV2Client.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package no.nav.syfo.client.azuread
22

3+
import io.ktor.client.*
34
import io.ktor.client.call.*
45
import io.ktor.client.plugins.*
56
import io.ktor.client.request.*
@@ -17,8 +18,8 @@ class AzureAdV2Client(
1718
private val aadAppSecret: String,
1819
private val aadTokenEndpoint: String,
1920
private val redisStore: RedisStore,
21+
private val httpClient: HttpClient = httpClientProxy(),
2022
) {
21-
private val httpClient = httpClientProxy()
2223

2324
suspend fun getOnBehalfOfToken(
2425
scopeClientId: String,

src/main/kotlin/no/nav/syfo/client/behandlendeenhet/BehandlendeEnhetClient.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package no.nav.syfo.client.behandlendeenhet
22

3+
import io.ktor.client.*
34
import io.ktor.client.call.*
45
import io.ktor.client.plugins.*
56
import io.ktor.client.request.*
@@ -15,16 +16,15 @@ import org.slf4j.LoggerFactory
1516
class BehandlendeEnhetClient(
1617
private val azureAdV2Client: AzureAdV2Client,
1718
private val syfobehandlendeenhetClientId: String,
18-
syfobehandlendeenhetBaseUrl: String
19+
syfobehandlendeenhetBaseUrl: String,
20+
private val httpClient: HttpClient = httpClientDefault()
1921
) {
2022
private val personBehandlendeEnhetV2Url: String
2123

2224
init {
2325
this.personBehandlendeEnhetV2Url = "$syfobehandlendeenhetBaseUrl$PERSON_V2_ENHET_PATH"
2426
}
2527

26-
private val httpClient = httpClientDefault()
27-
2828
suspend fun getEnhet(
2929
callId: String,
3030
personIdent: PersonIdent,

src/main/kotlin/no/nav/syfo/client/dokarkiv/DokarkivClient.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package no.nav.syfo.client.dokarkiv
22

3+
import io.ktor.client.*
34
import io.ktor.client.call.*
45
import io.ktor.client.plugins.*
56
import io.ktor.client.request.*
@@ -17,11 +18,10 @@ class DokarkivClient(
1718
private val azureAdV2Client: AzureAdV2Client,
1819
private val dokarkivClientId: String,
1920
dokarkivBaseUrl: String,
21+
private val httpClient: HttpClient = httpClientDefault(),
2022
) {
2123
private val journalpostUrl: String = "$dokarkivBaseUrl$JOURNALPOST_PATH"
2224

23-
private val httpClient = httpClientDefault()
24-
2525
suspend fun journalfor(
2626
journalpostRequest: JournalpostRequest,
2727
): JournalpostResponse? {

src/main/kotlin/no/nav/syfo/client/ereg/EregClient.kt

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package no.nav.syfo.client.ereg
22

3+
import io.ktor.client.*
34
import io.ktor.client.call.*
45
import io.ktor.client.plugins.*
56
import io.ktor.client.request.*
@@ -11,8 +12,9 @@ import org.slf4j.LoggerFactory
1112

1213
class EregClient(
1314
baseUrl: String,
15+
private val
16+
httpClient: HttpClient = httpClientDefault(),
1417
) {
15-
private val httpClient = httpClientDefault()
1618

1719
private val eregOrganisasjonUrl: String = "$baseUrl/$EREG_PATH"
1820

src/main/kotlin/no/nav/syfo/client/narmesteleder/NarmesteLederClient.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package no.nav.syfo.client.narmesteleder
22

3+
import io.ktor.client.*
34
import io.ktor.client.call.*
45
import io.ktor.client.plugins.*
56
import io.ktor.client.request.*
@@ -21,12 +22,11 @@ class NarmesteLederClient(
2122
private val azureAdV2Client: AzureAdV2Client,
2223
private val tokendingsClient: TokendingsClient,
2324
private val cache: RedisStore,
25+
private val httpClient: HttpClient = httpClientDefault(),
2426
) {
2527
private val narmesteLederPath = "$narmesteLederBaseUrl$CURRENT_NARMESTELEDER_PATH"
2628
private val ansatteNarmesteLederSelvbetjeningPath = "$narmesteLederBaseUrl$NARMESTELEDERE_SELVBETJENING_PATH"
2729

28-
private val httpClient = httpClientDefault()
29-
3030
suspend fun activeLeder(
3131
personIdent: PersonIdent,
3232
virksomhetsnummer: Virksomhetsnummer,

src/main/kotlin/no/nav/syfo/client/oppfolgingstilfelle/OppfolgingstilfelleClient.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package no.nav.syfo.client.oppfolgingstilfelle
22

3+
import io.ktor.client.*
34
import io.ktor.client.call.*
45
import io.ktor.client.plugins.*
56
import io.ktor.client.request.*
@@ -21,7 +22,8 @@ class OppfolgingstilfelleClient(
2122
private val tokendingsClient: TokendingsClient,
2223
private val isoppfolgingstilfelleClientId: String,
2324
isoppfolgingstilfelleBaseUrl: String,
24-
private val cache: RedisStore
25+
private val cache: RedisStore,
26+
private val httpClient: HttpClient = httpClientDefault()
2527
) {
2628
private val personOppfolgingstilfelleUrl: String =
2729
"$isoppfolgingstilfelleBaseUrl$ISOPPFOLGINGSTILFELLE_OPPFOLGINGSTILFELLE_PERSON_PATH"
@@ -31,8 +33,6 @@ class OppfolgingstilfelleClient(
3133
"$isoppfolgingstilfelleBaseUrl$ISOPPFOLGINGSTILFELLE_OPPFOLGINGSTILFELLE_NARMESTELEDER_PATH"
3234
private val CACHE_OPPFOLGINGSTILFELLE_NL_KEY_PREFIX = "oppfolgingstilfelle-nl-"
3335

34-
private val httpClient = httpClientDefault()
35-
3636
suspend fun oppfolgingstilfellePerson(
3737
personIdent: PersonIdent,
3838
token: String,

src/main/kotlin/no/nav/syfo/client/pdfgen/PdfGenClient.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package no.nav.syfo.client.pdfgen
22

3+
import io.ktor.client.*
34
import io.ktor.client.call.*
45
import io.ktor.client.plugins.*
56
import io.ktor.client.request.*
@@ -16,11 +17,10 @@ import org.slf4j.LoggerFactory
1617
import java.time.LocalDateTime
1718

1819
class PdfGenClient(
19-
private val pdfGenBaseUrl: String
20+
private val pdfGenBaseUrl: String,
21+
private val httpClient: HttpClient = httpClientDefault()
2022
) {
2123

22-
private val httpClient = httpClientDefault()
23-
2424
suspend fun pdfAvlysning(
2525
callId: String,
2626
mottakerNavn: String? = null,

src/main/kotlin/no/nav/syfo/client/pdl/PdlClient.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package no.nav.syfo.client.pdl
22

3+
import io.ktor.client.*
34
import io.ktor.client.call.*
45
import io.ktor.client.request.*
56
import io.ktor.client.statement.*
@@ -20,8 +21,8 @@ class PdlClient(
2021
private val pdlClientId: String,
2122
private val pdlUrl: String,
2223
private val redisStore: RedisStore,
24+
private val httpClient: HttpClient = httpClientDefault(),
2325
) {
24-
private val httpClient = httpClientDefault()
2526

2627
suspend fun navn(
2728
personIdent: PersonIdent,

src/main/kotlin/no/nav/syfo/client/person/kontaktinfo/KontaktinformasjonClient.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package no.nav.syfo.client.person.kontaktinfo
22

3+
import io.ktor.client.*
34
import io.ktor.client.call.*
45
import io.ktor.client.plugins.*
56
import io.ktor.client.request.*
@@ -19,12 +20,11 @@ class KontaktinformasjonClient(
1920
private val azureAdV2Client: AzureAdV2Client,
2021
private val cache: RedisStore,
2122
private val clientId: String,
22-
baseUrl: String
23+
baseUrl: String,
24+
private val httpClient: HttpClient = httpClientDefault()
2325
) {
2426
private val personKontaktinfoUrl: String = "$baseUrl$KRR_KONTAKTINFORMASJON_BOLK_PATH"
2527

26-
private val httpClient = httpClientDefault()
27-
2828
suspend fun isDigitalVarselEnabled(
2929
personIdent: PersonIdent,
3030
token: String,

0 commit comments

Comments
 (0)