mirror of
https://github.com/pcvolkmer/etl-processor.git
synced 2025-04-19 17:26:51 +00:00
This commit is contained in:
parent
cb9c590472
commit
6ecb439007
@ -116,7 +116,7 @@ class RequestServiceIntegrationTest : AbstractTestcontainerTest() {
|
|||||||
fun shouldReturnDeleteRequestAsLastRequest() {
|
fun shouldReturnDeleteRequestAsLastRequest() {
|
||||||
setupTestData()
|
setupTestData()
|
||||||
|
|
||||||
val actual = requestService.isLastRequestDeletion("TEST_12345678901")
|
val actual = requestService.isLastRequestWithKnownStatusDeletion("TEST_12345678901")
|
||||||
|
|
||||||
assertThat(actual).isTrue()
|
assertThat(actual).isTrue()
|
||||||
}
|
}
|
||||||
|
@ -95,7 +95,7 @@ class RequestProcessor(
|
|||||||
private fun isDuplication(pseudonymizedMtbFile: MtbFile): Boolean {
|
private fun isDuplication(pseudonymizedMtbFile: MtbFile): Boolean {
|
||||||
val lastMtbFileRequestForPatient =
|
val lastMtbFileRequestForPatient =
|
||||||
requestService.lastMtbFileRequestForPatientPseudonym(pseudonymizedMtbFile.patient.id)
|
requestService.lastMtbFileRequestForPatientPseudonym(pseudonymizedMtbFile.patient.id)
|
||||||
val isLastRequestDeletion = requestService.isLastRequestDeletion(pseudonymizedMtbFile.patient.id)
|
val isLastRequestDeletion = requestService.isLastRequestWithKnownStatusDeletion(pseudonymizedMtbFile.patient.id)
|
||||||
|
|
||||||
return null != lastMtbFileRequestForPatient
|
return null != lastMtbFileRequestForPatient
|
||||||
&& !isLastRequestDeletion
|
&& !isLastRequestDeletion
|
||||||
|
@ -38,8 +38,8 @@ class RequestService(
|
|||||||
fun lastMtbFileRequestForPatientPseudonym(patientPseudonym: String) =
|
fun lastMtbFileRequestForPatientPseudonym(patientPseudonym: String) =
|
||||||
Companion.lastMtbFileRequestForPatientPseudonym(allRequestsByPatientPseudonym(patientPseudonym))
|
Companion.lastMtbFileRequestForPatientPseudonym(allRequestsByPatientPseudonym(patientPseudonym))
|
||||||
|
|
||||||
fun isLastRequestDeletion(patientPseudonym: String) =
|
fun isLastRequestWithKnownStatusDeletion(patientPseudonym: String) =
|
||||||
Companion.isLastRequestDeletion(allRequestsByPatientPseudonym(patientPseudonym))
|
Companion.isLastRequestWithKnownStatusDeletion(allRequestsByPatientPseudonym(patientPseudonym))
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
||||||
@ -48,7 +48,8 @@ class RequestService(
|
|||||||
.sortedByDescending { it.processedAt }
|
.sortedByDescending { it.processedAt }
|
||||||
.firstOrNull { it.status == RequestStatus.SUCCESS || it.status == RequestStatus.WARNING }
|
.firstOrNull { it.status == RequestStatus.SUCCESS || it.status == RequestStatus.WARNING }
|
||||||
|
|
||||||
fun isLastRequestDeletion(allRequests: List<Request>) = allRequests
|
fun isLastRequestWithKnownStatusDeletion(allRequests: List<Request>) = allRequests
|
||||||
|
.filter { it.status != RequestStatus.UNKNOWN }
|
||||||
.maxByOrNull { it.processedAt }?.type == RequestType.DELETE
|
.maxByOrNull { it.processedAt }?.type == RequestType.DELETE
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -92,7 +92,7 @@ class RequestProcessorTest {
|
|||||||
|
|
||||||
doAnswer {
|
doAnswer {
|
||||||
false
|
false
|
||||||
}.`when`(requestService).isLastRequestDeletion(anyString())
|
}.`when`(requestService).isLastRequestWithKnownStatusDeletion(anyString())
|
||||||
|
|
||||||
doAnswer {
|
doAnswer {
|
||||||
it.arguments[0] as String
|
it.arguments[0] as String
|
||||||
@ -147,7 +147,7 @@ class RequestProcessorTest {
|
|||||||
|
|
||||||
doAnswer {
|
doAnswer {
|
||||||
false
|
false
|
||||||
}.`when`(requestService).isLastRequestDeletion(anyString())
|
}.`when`(requestService).isLastRequestWithKnownStatusDeletion(anyString())
|
||||||
|
|
||||||
doAnswer {
|
doAnswer {
|
||||||
it.arguments[0] as String
|
it.arguments[0] as String
|
||||||
@ -202,7 +202,7 @@ class RequestProcessorTest {
|
|||||||
|
|
||||||
doAnswer {
|
doAnswer {
|
||||||
false
|
false
|
||||||
}.`when`(requestService).isLastRequestDeletion(anyString())
|
}.`when`(requestService).isLastRequestWithKnownStatusDeletion(anyString())
|
||||||
|
|
||||||
doAnswer {
|
doAnswer {
|
||||||
MtbFileSender.Response(status = RequestStatus.SUCCESS)
|
MtbFileSender.Response(status = RequestStatus.SUCCESS)
|
||||||
@ -261,7 +261,7 @@ class RequestProcessorTest {
|
|||||||
|
|
||||||
doAnswer {
|
doAnswer {
|
||||||
false
|
false
|
||||||
}.`when`(requestService).isLastRequestDeletion(anyString())
|
}.`when`(requestService).isLastRequestWithKnownStatusDeletion(anyString())
|
||||||
|
|
||||||
doAnswer {
|
doAnswer {
|
||||||
MtbFileSender.Response(status = RequestStatus.ERROR)
|
MtbFileSender.Response(status = RequestStatus.ERROR)
|
||||||
|
@ -68,23 +68,33 @@ class RequestServiceTest {
|
|||||||
patientId = "TEST_12345678901",
|
patientId = "TEST_12345678901",
|
||||||
pid = "P1",
|
pid = "P1",
|
||||||
fingerprint = "0123456789abcdef1",
|
fingerprint = "0123456789abcdef1",
|
||||||
type = RequestType.DELETE,
|
|
||||||
status = RequestStatus.SUCCESS,
|
|
||||||
processedAt = Instant.parse("2023-08-08T02:00:00Z")
|
|
||||||
),
|
|
||||||
Request(
|
|
||||||
id = 1L,
|
|
||||||
uuid = UUID.randomUUID().toString(),
|
|
||||||
patientId = "TEST_12345678902",
|
|
||||||
pid = "P2",
|
|
||||||
fingerprint = "0123456789abcdef2",
|
|
||||||
type = RequestType.MTB_FILE,
|
type = RequestType.MTB_FILE,
|
||||||
status = RequestStatus.WARNING,
|
status = RequestStatus.WARNING,
|
||||||
processedAt = Instant.parse("2023-08-08T00:00:00Z")
|
processedAt = Instant.parse("2023-07-07T00:00:00Z")
|
||||||
|
),
|
||||||
|
Request(
|
||||||
|
id = 2L,
|
||||||
|
uuid = UUID.randomUUID().toString(),
|
||||||
|
patientId = "TEST_12345678901",
|
||||||
|
pid = "P1",
|
||||||
|
fingerprint = "0123456789abcdefd",
|
||||||
|
type = RequestType.DELETE,
|
||||||
|
status = RequestStatus.WARNING,
|
||||||
|
processedAt = Instant.parse("2023-07-07T02:00:00Z")
|
||||||
|
),
|
||||||
|
Request(
|
||||||
|
id = 3L,
|
||||||
|
uuid = UUID.randomUUID().toString(),
|
||||||
|
patientId = "TEST_12345678901",
|
||||||
|
pid = "P1",
|
||||||
|
fingerprint = "0123456789abcdef1",
|
||||||
|
type = RequestType.MTB_FILE,
|
||||||
|
status = RequestStatus.UNKNOWN,
|
||||||
|
processedAt = Instant.parse("2023-08-11T00:00:00Z")
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
val actual = RequestService.isLastRequestDeletion(requests)
|
val actual = RequestService.isLastRequestWithKnownStatusDeletion(requests)
|
||||||
|
|
||||||
assertThat(actual).isTrue()
|
assertThat(actual).isTrue()
|
||||||
}
|
}
|
||||||
@ -98,23 +108,33 @@ class RequestServiceTest {
|
|||||||
patientId = "TEST_12345678901",
|
patientId = "TEST_12345678901",
|
||||||
pid = "P1",
|
pid = "P1",
|
||||||
fingerprint = "0123456789abcdef1",
|
fingerprint = "0123456789abcdef1",
|
||||||
type = RequestType.DELETE,
|
type = RequestType.MTB_FILE,
|
||||||
status = RequestStatus.SUCCESS,
|
status = RequestStatus.WARNING,
|
||||||
|
processedAt = Instant.parse("2023-07-07T00:00:00Z")
|
||||||
|
),
|
||||||
|
Request(
|
||||||
|
id = 2L,
|
||||||
|
uuid = UUID.randomUUID().toString(),
|
||||||
|
patientId = "TEST_12345678901",
|
||||||
|
pid = "P1",
|
||||||
|
fingerprint = "0123456789abcdef1",
|
||||||
|
type = RequestType.MTB_FILE,
|
||||||
|
status = RequestStatus.WARNING,
|
||||||
processedAt = Instant.parse("2023-07-07T02:00:00Z")
|
processedAt = Instant.parse("2023-07-07T02:00:00Z")
|
||||||
),
|
),
|
||||||
Request(
|
Request(
|
||||||
id = 1L,
|
id = 3L,
|
||||||
uuid = UUID.randomUUID().toString(),
|
uuid = UUID.randomUUID().toString(),
|
||||||
patientId = "TEST_12345678902",
|
patientId = "TEST_12345678901",
|
||||||
pid = "P2",
|
pid = "P1",
|
||||||
fingerprint = "0123456789abcdef2",
|
fingerprint = "0123456789abcdef1",
|
||||||
type = RequestType.MTB_FILE,
|
type = RequestType.MTB_FILE,
|
||||||
status = RequestStatus.WARNING,
|
status = RequestStatus.UNKNOWN,
|
||||||
processedAt = Instant.parse("2023-08-08T00:00:00Z")
|
processedAt = Instant.parse("2023-08-11T00:00:00Z")
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
val actual = RequestService.isLastRequestDeletion(requests)
|
val actual = RequestService.isLastRequestWithKnownStatusDeletion(requests)
|
||||||
|
|
||||||
assertThat(actual).isFalse()
|
assertThat(actual).isFalse()
|
||||||
}
|
}
|
||||||
@ -197,7 +217,7 @@ class RequestServiceTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun isLastRequestDeletionShouldRequestAllRequestsForPatientPseudonym() {
|
fun isLastRequestDeletionShouldRequestAllRequestsForPatientPseudonym() {
|
||||||
requestService.isLastRequestDeletion("TEST_12345678901")
|
requestService.isLastRequestWithKnownStatusDeletion("TEST_12345678901")
|
||||||
|
|
||||||
verify(requestRepository, times(1)).findAllByPatientIdOrderByProcessedAtDesc(anyString())
|
verify(requestRepository, times(1)).findAllByPatientIdOrderByProcessedAtDesc(anyString())
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user