Skip to content

Commit f644e55

Browse files
committed
Merge branch 'main' into dev/send-in-token
2 parents 4f419e6 + 1a97c20 commit f644e55

File tree

5 files changed

+26
-19
lines changed

5 files changed

+26
-19
lines changed

ebms-provider/src/main/kotlin/no/nav/emottak/ebms/processing/ProcessingService.kt

+11-7
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ package no.nav.emottak.ebms.processing
33
import io.ktor.client.call.body
44
import io.ktor.client.plugins.ClientRequestException
55
import io.ktor.http.HttpStatusCode
6+
import kotlinx.coroutines.Dispatchers
67
import kotlinx.coroutines.runBlocking
8+
import kotlinx.coroutines.withContext
79
import no.nav.emottak.ebms.PayloadProcessingClient
810
import no.nav.emottak.ebms.logger
911
import no.nav.emottak.ebms.model.Acknowledgment
@@ -20,7 +22,7 @@ import no.nav.emottak.melding.model.PayloadResponse
2022

2123
class ProcessingService(private val httpClient: PayloadProcessingClient) {
2224

23-
private fun processMessage(
25+
private suspend fun processMessage(
2426
payloadMessage: PayloadMessage,
2527
payloadProcessing: PayloadProcessing,
2628
direction: Direction
@@ -35,9 +37,11 @@ class ProcessingService(private val httpClient: PayloadProcessingClient) {
3537
)
3638
Pair(
3739
payloadMessage.copy(
38-
payload = runBlocking {
39-
httpClient.postPayloadRequest(payloadRequest)
40-
}.processedPayload!!
40+
payload = withContext(Dispatchers.IO) {
41+
runBlocking {
42+
httpClient.postPayloadRequest(payloadRequest)
43+
}.processedPayload!!
44+
}
4145
),
4246
direction
4347
)
@@ -77,17 +81,17 @@ class ProcessingService(private val httpClient: PayloadProcessingClient) {
7781
private fun fail(fail: EbmsFail) {
7882
}
7983

80-
fun processSyncIn(message: PayloadMessage, payloadProcessing: PayloadProcessing?): Pair<PayloadMessage, Direction> {
84+
suspend fun processSyncIn(message: PayloadMessage, payloadProcessing: PayloadProcessing?): Pair<PayloadMessage, Direction> {
8185
if (payloadProcessing == null) throw Exception("Processing information is missing for ${message.messageId}")
8286
return processMessage(message, payloadProcessing, Direction.IN)
8387
}
8488

85-
fun proccessSyncOut(payloadMessage: PayloadMessage, payloadProcessing: PayloadProcessing?): PayloadMessage {
89+
suspend fun proccessSyncOut(payloadMessage: PayloadMessage, payloadProcessing: PayloadProcessing?): PayloadMessage {
8690
if (payloadProcessing == null) throw Exception("Processing information is missing for ${payloadMessage.messageId}")
8791
return processMessage(payloadMessage, payloadProcessing, Direction.OUT).first
8892
}
8993

90-
fun processAsync(message: EbmsMessage, payloadProcessing: PayloadProcessing?) {
94+
suspend fun processAsync(message: EbmsMessage, payloadProcessing: PayloadProcessing?) {
9195
if (payloadProcessing == null) throw Exception("Processing information is missing for ${message.messageId}")
9296
when (message) {
9397
is Acknowledgment -> acknowledgment(message)
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package no.nav.emottak.ebms.sendin
22

3+
import kotlinx.coroutines.Dispatchers
34
import kotlinx.coroutines.runBlocking
5+
import kotlinx.coroutines.withContext
46
import no.nav.emottak.ebms.SendInClient
57
import no.nav.emottak.ebms.model.PayloadMessage
68
import no.nav.emottak.melding.model.EbmsProcessing
@@ -9,7 +11,7 @@ import no.nav.emottak.melding.model.SendInResponse
911

1012
class SendInService(val httpClient: SendInClient) {
1113

12-
fun sendIn(payloadMessage: PayloadMessage): SendInResponse {
14+
suspend fun sendIn(payloadMessage: PayloadMessage): SendInResponse {
1315
val sendInRequest = SendInRequest(
1416
payloadMessage.messageId,
1517
payloadMessage.conversationId,
@@ -18,6 +20,6 @@ class SendInService(val httpClient: SendInClient) {
1820
payloadMessage.addressing,
1921
EbmsProcessing()
2022
)
21-
return runBlocking { httpClient.postSendIn(sendInRequest) }
23+
return withContext(Dispatchers.IO) { runBlocking { httpClient.postSendIn(sendInRequest) } }
2224
}
2325
}

ebms-provider/src/test/kotlin/no/nav/emottak/ebms/EbmsRoutFellesIT.kt

+4-4
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ import io.ktor.server.routing.post
1111
import io.ktor.server.routing.routing
1212
import io.ktor.server.testing.ApplicationTestBuilder
1313
import io.ktor.server.testing.testApplication
14-
import io.mockk.every
14+
import io.mockk.coEvery
15+
import io.mockk.coVerify
1516
import io.mockk.just
1617
import io.mockk.mockk
1718
import io.mockk.runs
18-
import io.mockk.verify
1919
import no.nav.emottak.cpa.decodeBase64Mime
2020
import no.nav.emottak.ebms.ebxml.errorList
2121
import no.nav.emottak.ebms.ebxml.messageHeader
@@ -65,7 +65,7 @@ abstract class EbmsRoutFellesIT(val endpoint: String) {
6565
application {
6666
val dokumentValidator = DokumentValidator(cpaRepoClient)
6767

68-
every {
68+
coEvery {
6969
processingService.processAsync(any(), any())
7070
} just runs
7171
routing {
@@ -113,7 +113,7 @@ abstract class EbmsRoutFellesIT(val endpoint: String) {
113113
}
114114
)
115115
client.post("/ebms", multipart.asHttpRequest())
116-
verify(exactly = 1) {
116+
coVerify(exactly = 1) {
117117
processingService.processAsync(any(), any())
118118
}
119119
}

ebms-provider/src/test/kotlin/no/nav/emottak/ebms/EbmsRouteAsyncIT.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import io.ktor.client.statement.bodyAsText
77
import io.ktor.http.HttpStatusCode
88
import io.ktor.http.headers
99
import io.ktor.server.routing.post
10+
import io.mockk.coVerify
1011
import io.mockk.every
1112
import io.mockk.mockkObject
12-
import io.mockk.verify
1313
import no.nav.emottak.constants.SMTPHeaders
1414
import no.nav.emottak.cpa.decodeBase64Mime
1515
import no.nav.emottak.ebms.ebxml.acknowledgment
@@ -33,7 +33,7 @@ class EbmsRouteAsyncIT : EbmsRoutFellesIT("/ebms") {
3333
}
3434
)
3535
val response = client.post("/ebms", multipart.asHttpRequest())
36-
verify(exactly = 1) {
36+
coVerify(exactly = 1) {
3737
processingService.processAsync(any(), any())
3838
}
3939
val envelope = xmlMarshaller.unmarshal(response.bodyAsText().decodeBase64Mime(), Envelope::class.java)

ebms-provider/src/test/kotlin/no/nav/emottak/ebms/EbmsRouteSyncIT.kt

+5-4
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,10 @@ import io.ktor.server.routing.post
1313
import io.ktor.server.routing.routing
1414
import io.ktor.server.testing.ApplicationTestBuilder
1515
import io.ktor.server.testing.testApplication
16+
import io.mockk.coEvery
17+
import io.mockk.coVerify
1618
import io.mockk.every
1719
import io.mockk.mockkStatic
18-
import io.mockk.verify
1920
import no.nav.emottak.constants.SMTPHeaders
2021
import no.nav.emottak.ebms.model.EbMSDocument
2122
import no.nav.emottak.ebms.model.PayloadMessage
@@ -55,12 +56,12 @@ class EbmsRouteSyncIT : EbmsRoutFellesIT(SYNC_PATH) {
5556
val sendInClient = SendInClient { client }
5657
application {
5758
val dokumentValidator = DokumentValidator(cpaRepoClient)
58-
every {
59+
coEvery {
5960
processingService.processSyncIn(any(), any())
6061
} answers {
6162
Pair(it.invocation.args[0] as PayloadMessage, Direction.IN)
6263
}
63-
every {
64+
coEvery {
6465
processingService.proccessSyncOut(any(), any())
6566
} answers {
6667
val incomingMessage = it.invocation.args[0] as PayloadMessage
@@ -137,7 +138,7 @@ class EbmsRouteSyncIT : EbmsRoutFellesIT(SYNC_PATH) {
137138
} returnsArgument(0)
138139
val multipart = TestData.HarBorderEgenAndel.harBorgerEgenanderFritakRequest
139140
val response = client.post(SYNC_PATH, multipart.asHttpRequest())
140-
verify(exactly = 1) {
141+
coVerify(exactly = 1) {
141142
processingService.processSyncIn(any(), any())
142143
}
143144
assert(response.status == HttpStatusCode.OK)

0 commit comments

Comments
 (0)