summaryrefslogtreecommitdiff
path: root/src/integrationTest/kotlin/dev/dnpm/etl/processor
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2026-01-06 16:34:12 +0100
committerGitHub2026-01-06 15:34:12 +0000
commit7be91444a867774362eb5b57bdd246fb50189e7d (patch)
tree6a325575bf19e4016ead259a92803b110071eb4f /src/integrationTest/kotlin/dev/dnpm/etl/processor
parent2a106a49d91699d0699af1134c41a43b942b85e8 (diff)
feat: block further initial submissions (#232)
Diffstat (limited to 'src/integrationTest/kotlin/dev/dnpm/etl/processor')
-rw-r--r--src/integrationTest/kotlin/dev/dnpm/etl/processor/monitoring/RequestRepositoryTest.kt1
-rw-r--r--src/integrationTest/kotlin/dev/dnpm/etl/processor/output/RestDipMtbFileSenderTest.kt109
-rw-r--r--src/integrationTest/kotlin/dev/dnpm/etl/processor/services/RequestServiceIntegrationTest.kt4
-rw-r--r--src/integrationTest/kotlin/dev/dnpm/etl/processor/web/HomeControllerTest.kt9
-rw-r--r--src/integrationTest/kotlin/dev/dnpm/etl/processor/web/StatisticsRestControllerTest.kt6
5 files changed, 73 insertions, 56 deletions
diff --git a/src/integrationTest/kotlin/dev/dnpm/etl/processor/monitoring/RequestRepositoryTest.kt b/src/integrationTest/kotlin/dev/dnpm/etl/processor/monitoring/RequestRepositoryTest.kt
index 428a99d..1f561da 100644
--- a/src/integrationTest/kotlin/dev/dnpm/etl/processor/monitoring/RequestRepositoryTest.kt
+++ b/src/integrationTest/kotlin/dev/dnpm/etl/processor/monitoring/RequestRepositoryTest.kt
@@ -61,6 +61,7 @@ class RequestRepositoryTest : AbstractTestcontainerTest() {
PatientId("P1"),
Fingerprint("0123456789abcdef1"),
RequestType.MTB_FILE,
+ SubmissionType.TEST,
RequestStatus.WARNING,
Instant.parse("2023-07-07T00:00:00Z"),
)
diff --git a/src/integrationTest/kotlin/dev/dnpm/etl/processor/output/RestDipMtbFileSenderTest.kt b/src/integrationTest/kotlin/dev/dnpm/etl/processor/output/RestDipMtbFileSenderTest.kt
index f6f6a08..d27aa4c 100644
--- a/src/integrationTest/kotlin/dev/dnpm/etl/processor/output/RestDipMtbFileSenderTest.kt
+++ b/src/integrationTest/kotlin/dev/dnpm/etl/processor/output/RestDipMtbFileSenderTest.kt
@@ -31,6 +31,8 @@ import dev.dnpm.etl.processor.consent.ConsentEvaluator
import dev.dnpm.etl.processor.monitoring.ReportService
import dev.dnpm.etl.processor.monitoring.RequestStatus
import dev.pcvolkmer.mv64e.mtb.*
+import java.time.Instant
+import java.util.*
import org.assertj.core.api.Assertions.assertThat
import org.hamcrest.CoreMatchers.not
import org.hamcrest.Matchers.containsString
@@ -51,8 +53,6 @@ import org.springframework.test.web.client.MockRestServiceServer
import org.springframework.test.web.client.match.MockRestRequestMatchers.*
import org.springframework.test.web.client.response.MockRestResponseCreators.withStatus
import org.springframework.web.client.RestTemplate
-import java.time.Instant
-import java.util.*
@SpringBootTest
@MockitoBean(types = [ReportService::class])
@@ -70,43 +70,39 @@ import java.util.*
)
class RestDipMtbFileSenderTest {
- @Nested
- inner class DnpmV2ContentRequest {
+ @Nested
+ inner class DnpmV2ContentRequest {
- private lateinit var mockRestServiceServer: MockRestServiceServer
+ private lateinit var mockRestServiceServer: MockRestServiceServer
- private lateinit var restMtbFileSender: RestMtbFileSender
+ private lateinit var restMtbFileSender: RestMtbFileSender
- private var reportService =
- ReportService(ObjectMapper().registerModule(KotlinModule.Builder().build()))
+ private var reportService =
+ ReportService(ObjectMapper().registerModule(KotlinModule.Builder().build()))
- @BeforeEach
- fun setup(
- @Autowired restTemplate: RestTemplate
- ) {
- val restTemplate = restTemplate
- val restTargetProperties = RestTargetProperties("http://localhost:9000/api", null, null)
- val retryTemplate = RetryTemplateBuilder().customPolicy(SimpleRetryPolicy(1)).build()
+ @BeforeEach
+ fun setup(@Autowired restTemplate: RestTemplate) {
+ val restTemplate = restTemplate
+ val restTargetProperties = RestTargetProperties("http://localhost:9000/api", null, null)
+ val retryTemplate = RetryTemplateBuilder().customPolicy(SimpleRetryPolicy(1)).build()
- this.mockRestServiceServer = MockRestServiceServer.createServer(restTemplate)
+ this.mockRestServiceServer = MockRestServiceServer.createServer(restTemplate)
- this.restMtbFileSender =
- RestDipMtbFileSender(restTemplate, restTargetProperties, retryTemplate, reportService)
- }
+ this.restMtbFileSender =
+ RestDipMtbFileSender(restTemplate, restTargetProperties, retryTemplate, reportService)
+ }
- @Test
- fun shouldNotSendJsonNullValues() {
- this.mockRestServiceServer
- .expect(method(HttpMethod.POST))
- .andExpect(requestTo("http://localhost:9000/api/mtb/etl/patient-record"))
- .andExpect(
- content().string(not(containsString("null")))
- )
- .andRespond {
- withStatus(HttpStatus.OK)
- .contentType(MediaType.APPLICATION_JSON)
- .body(
- """
+ @Test
+ fun shouldNotSendJsonNullValues() {
+ this.mockRestServiceServer
+ .expect(method(HttpMethod.POST))
+ .andExpect(requestTo("http://localhost:9000/api/mtb/etl/patient-record"))
+ .andExpect(content().string(not(containsString("null"))))
+ .andRespond {
+ withStatus(HttpStatus.OK)
+ .contentType(MediaType.APPLICATION_JSON)
+ .body(
+ """
{
"patient": "PID",
"issues": [
@@ -114,33 +110,34 @@ class RestDipMtbFileSenderTest {
]
}
"""
- )
- .createResponse(it)
- }
+ )
+ .createResponse(it)
+ }
- val response = restMtbFileSender.send(DnpmV2MtbFileRequest(RequestId("TEST1234"), dnpmV2MtbFile()))
- assertThat(response.status).isEqualTo(RequestStatus.SUCCESS)
- }
+ val response =
+ restMtbFileSender.send(DnpmV2MtbFileRequest(RequestId("TEST1234"), dnpmV2MtbFile()))
+ assertThat(response.status).isEqualTo(RequestStatus.SUCCESS)
}
+ }
- companion object {
- fun dnpmV2MtbFile(): Mtb {
- return Mtb().apply {
- this.patient =
- Patient().apply {
- this.id = "PID"
- this.birthDate = Date.from(Instant.now())
- this.gender = GenderCoding().apply { this.code = GenderCodingCode.MALE }
- }
- this.episodesOfCare =
- listOf(
- MtbEpisodeOfCare().apply {
- this.id = "1"
- this.patient = Reference().apply { this.id = "PID" }
- this.period = PeriodDate().apply { this.start = Date.from(Instant.now()) }
- }
- )
+ companion object {
+ fun dnpmV2MtbFile(): Mtb {
+ return Mtb().apply {
+ this.patient =
+ Patient().apply {
+ this.id = "PID"
+ this.birthDate = Date.from(Instant.now())
+ this.gender = GenderCoding().apply { this.code = GenderCodingCode.MALE }
}
- }
+ this.episodesOfCare =
+ listOf(
+ MtbEpisodeOfCare().apply {
+ this.id = "1"
+ this.patient = Reference().apply { this.id = "PID" }
+ this.period = PeriodDate().apply { this.start = Date.from(Instant.now()) }
+ }
+ )
+ }
}
+ }
}
diff --git a/src/integrationTest/kotlin/dev/dnpm/etl/processor/services/RequestServiceIntegrationTest.kt b/src/integrationTest/kotlin/dev/dnpm/etl/processor/services/RequestServiceIntegrationTest.kt
index d9489f2..0b30e94 100644
--- a/src/integrationTest/kotlin/dev/dnpm/etl/processor/services/RequestServiceIntegrationTest.kt
+++ b/src/integrationTest/kotlin/dev/dnpm/etl/processor/services/RequestServiceIntegrationTest.kt
@@ -24,6 +24,7 @@ import dev.dnpm.etl.processor.monitoring.Request
import dev.dnpm.etl.processor.monitoring.RequestRepository
import dev.dnpm.etl.processor.monitoring.RequestStatus
import dev.dnpm.etl.processor.monitoring.RequestType
+import dev.dnpm.etl.processor.monitoring.SubmissionType
import dev.dnpm.etl.processor.output.MtbFileSender
import java.time.Instant
import org.assertj.core.api.Assertions.assertThat
@@ -75,6 +76,7 @@ class RequestServiceIntegrationTest : AbstractTestcontainerTest() {
PatientId("P1"),
Fingerprint("0123456789abcdef1"),
RequestType.MTB_FILE,
+ SubmissionType.TEST,
RequestStatus.SUCCESS,
Instant.parse("2023-07-07T02:00:00Z"),
),
@@ -85,6 +87,7 @@ class RequestServiceIntegrationTest : AbstractTestcontainerTest() {
PatientId("P2"),
Fingerprint("0123456789abcdef2"),
RequestType.MTB_FILE,
+ SubmissionType.TEST,
RequestStatus.WARNING,
Instant.parse("2023-08-08T00:00:00Z"),
),
@@ -95,6 +98,7 @@ class RequestServiceIntegrationTest : AbstractTestcontainerTest() {
PatientId("P2"),
Fingerprint("0123456789abcdee1"),
RequestType.DELETE,
+ SubmissionType.TEST,
RequestStatus.SUCCESS,
Instant.parse("2023-08-08T02:00:00Z"),
),
diff --git a/src/integrationTest/kotlin/dev/dnpm/etl/processor/web/HomeControllerTest.kt b/src/integrationTest/kotlin/dev/dnpm/etl/processor/web/HomeControllerTest.kt
index 33fc9d2..e329b30 100644
--- a/src/integrationTest/kotlin/dev/dnpm/etl/processor/web/HomeControllerTest.kt
+++ b/src/integrationTest/kotlin/dev/dnpm/etl/processor/web/HomeControllerTest.kt
@@ -26,6 +26,7 @@ import dev.dnpm.etl.processor.monitoring.Report
import dev.dnpm.etl.processor.monitoring.Request
import dev.dnpm.etl.processor.monitoring.RequestStatus
import dev.dnpm.etl.processor.monitoring.RequestType
+import dev.dnpm.etl.processor.monitoring.SubmissionType
import dev.dnpm.etl.processor.services.RequestService
import java.io.IOException
import java.time.Instant
@@ -113,6 +114,7 @@ class HomeControllerTest {
PatientId("PATIENT1"),
Fingerprint("ashdkasdh"),
RequestType.MTB_FILE,
+ SubmissionType.TEST,
RequestStatus.SUCCESS,
),
Request(
@@ -122,6 +124,7 @@ class HomeControllerTest {
PatientId("PATIENT1"),
Fingerprint("asdasdasd"),
RequestType.MTB_FILE,
+ SubmissionType.TEST,
RequestStatus.ERROR,
),
)
@@ -148,6 +151,7 @@ class HomeControllerTest {
PatientId("PATIENT1"),
Fingerprint("ashdkasdh"),
RequestType.MTB_FILE,
+ SubmissionType.TEST,
RequestStatus.SUCCESS,
Instant.now(),
Report("Test"),
@@ -174,6 +178,7 @@ class HomeControllerTest {
PatientId("PATIENT1"),
Fingerprint("ashdkasdh"),
RequestType.MTB_FILE,
+ SubmissionType.TEST,
RequestStatus.SUCCESS,
),
Request(
@@ -183,6 +188,7 @@ class HomeControllerTest {
PatientId("PATIENT1"),
Fingerprint("asdasdasd"),
RequestType.MTB_FILE,
+ SubmissionType.TEST,
RequestStatus.ERROR,
),
)
@@ -208,6 +214,7 @@ class HomeControllerTest {
PatientId("PATIENT1"),
Fingerprint("ashdkasdh"),
RequestType.MTB_FILE,
+ SubmissionType.TEST,
RequestStatus.SUCCESS,
),
Request(
@@ -217,6 +224,7 @@ class HomeControllerTest {
PatientId("PATIENT1"),
Fingerprint("asdasdasd"),
RequestType.MTB_FILE,
+ SubmissionType.TEST,
RequestStatus.ERROR,
),
)
@@ -286,6 +294,7 @@ class HomeControllerTest {
PatientId("PATIENT1"),
Fingerprint("ashdkasdh"),
RequestType.MTB_FILE,
+ SubmissionType.TEST,
RequestStatus.NO_CONSENT,
)
)
diff --git a/src/integrationTest/kotlin/dev/dnpm/etl/processor/web/StatisticsRestControllerTest.kt b/src/integrationTest/kotlin/dev/dnpm/etl/processor/web/StatisticsRestControllerTest.kt
index 16a9464..aabd634 100644
--- a/src/integrationTest/kotlin/dev/dnpm/etl/processor/web/StatisticsRestControllerTest.kt
+++ b/src/integrationTest/kotlin/dev/dnpm/etl/processor/web/StatisticsRestControllerTest.kt
@@ -28,6 +28,7 @@ import dev.dnpm.etl.processor.monitoring.CountedState
import dev.dnpm.etl.processor.monitoring.Request
import dev.dnpm.etl.processor.monitoring.RequestStatus
import dev.dnpm.etl.processor.monitoring.RequestType
+import dev.dnpm.etl.processor.monitoring.SubmissionType
import dev.dnpm.etl.processor.randomRequestId
import dev.dnpm.etl.processor.services.RequestService
import org.hamcrest.Matchers.equalTo
@@ -185,6 +186,7 @@ class StatisticsRestControllerTest {
PatientId("P1"),
Fingerprint("0123456789abcdef1"),
RequestType.MTB_FILE,
+ SubmissionType.TEST,
RequestStatus.SUCCESS,
Instant
.now()
@@ -200,6 +202,7 @@ class StatisticsRestControllerTest {
PatientId("P2"),
Fingerprint("0123456789abcdef2"),
RequestType.MTB_FILE,
+ SubmissionType.TEST,
RequestStatus.WARNING,
Instant
.now()
@@ -215,6 +218,7 @@ class StatisticsRestControllerTest {
PatientId("P2"),
Fingerprint("0123456789abcdee1"),
RequestType.DELETE,
+ SubmissionType.TEST,
RequestStatus.ERROR,
Instant
.now()
@@ -230,6 +234,7 @@ class StatisticsRestControllerTest {
PatientId("P2"),
Fingerprint("0123456789abcdef2"),
RequestType.MTB_FILE,
+ SubmissionType.TEST,
RequestStatus.DUPLICATION,
Instant
.now()
@@ -245,6 +250,7 @@ class StatisticsRestControllerTest {
PatientId("P2"),
Fingerprint("0123456789abcdef2"),
RequestType.DELETE,
+ SubmissionType.TEST,
RequestStatus.UNKNOWN,
Instant
.now()