mirror of
https://github.com/pcvolkmer/etl-processor.git
synced 2025-04-20 17:56:50 +00:00
refactor: use RequestService in ResponseProcessor
This commit is contained in:
parent
40b2558943
commit
ae5d8341cc
@ -20,7 +20,6 @@
|
|||||||
package dev.dnpm.etl.processor.services
|
package dev.dnpm.etl.processor.services
|
||||||
|
|
||||||
import dev.dnpm.etl.processor.monitoring.Report
|
import dev.dnpm.etl.processor.monitoring.Report
|
||||||
import dev.dnpm.etl.processor.monitoring.RequestRepository
|
|
||||||
import dev.dnpm.etl.processor.monitoring.RequestStatus
|
import dev.dnpm.etl.processor.monitoring.RequestStatus
|
||||||
import org.slf4j.LoggerFactory
|
import org.slf4j.LoggerFactory
|
||||||
import org.springframework.context.event.EventListener
|
import org.springframework.context.event.EventListener
|
||||||
@ -31,7 +30,7 @@ import java.util.*
|
|||||||
|
|
||||||
@Service
|
@Service
|
||||||
class ResponseProcessor(
|
class ResponseProcessor(
|
||||||
private val requestRepository: RequestRepository,
|
private val requestService: RequestService,
|
||||||
private val statisticsUpdateProducer: Sinks.Many<Any>
|
private val statisticsUpdateProducer: Sinks.Many<Any>
|
||||||
) {
|
) {
|
||||||
|
|
||||||
@ -39,7 +38,7 @@ class ResponseProcessor(
|
|||||||
|
|
||||||
@EventListener(classes = [ResponseEvent::class])
|
@EventListener(classes = [ResponseEvent::class])
|
||||||
fun handleResponseEvent(event: ResponseEvent) {
|
fun handleResponseEvent(event: ResponseEvent) {
|
||||||
requestRepository.findByUuidEquals(event.requestUuid).ifPresentOrElse({
|
requestService.findByUuid(event.requestUuid).ifPresentOrElse({
|
||||||
it.processedAt = event.timestamp
|
it.processedAt = event.timestamp
|
||||||
it.status = event.status
|
it.status = event.status
|
||||||
|
|
||||||
@ -76,7 +75,7 @@ class ResponseProcessor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
requestRepository.save(it)
|
requestService.save(it)
|
||||||
|
|
||||||
statisticsUpdateProducer.emitNext("", Sinks.EmitFailureHandler.FAIL_FAST)
|
statisticsUpdateProducer.emitNext("", Sinks.EmitFailureHandler.FAIL_FAST)
|
||||||
}, {
|
}, {
|
||||||
|
@ -21,7 +21,6 @@ package dev.dnpm.etl.processor.services
|
|||||||
|
|
||||||
import dev.dnpm.etl.processor.Fingerprint
|
import dev.dnpm.etl.processor.Fingerprint
|
||||||
import dev.dnpm.etl.processor.monitoring.Request
|
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.RequestStatus
|
||||||
import dev.dnpm.etl.processor.monitoring.RequestType
|
import dev.dnpm.etl.processor.monitoring.RequestType
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
import org.assertj.core.api.Assertions.assertThat
|
||||||
@ -41,7 +40,7 @@ import java.util.*
|
|||||||
@ExtendWith(MockitoExtension::class)
|
@ExtendWith(MockitoExtension::class)
|
||||||
class ResponseProcessorTest {
|
class ResponseProcessorTest {
|
||||||
|
|
||||||
private lateinit var requestRepository: RequestRepository
|
private lateinit var requestService: RequestService
|
||||||
private lateinit var statisticsUpdateProducer: Sinks.Many<Any>
|
private lateinit var statisticsUpdateProducer: Sinks.Many<Any>
|
||||||
|
|
||||||
private lateinit var responseProcessor: ResponseProcessor
|
private lateinit var responseProcessor: ResponseProcessor
|
||||||
@ -58,20 +57,20 @@ class ResponseProcessorTest {
|
|||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
fun setup(
|
fun setup(
|
||||||
@Mock requestRepository: RequestRepository,
|
@Mock requestService: RequestService,
|
||||||
@Mock statisticsUpdateProducer: Sinks.Many<Any>
|
@Mock statisticsUpdateProducer: Sinks.Many<Any>
|
||||||
) {
|
) {
|
||||||
this.requestRepository = requestRepository
|
this.requestService = requestService
|
||||||
this.statisticsUpdateProducer = statisticsUpdateProducer
|
this.statisticsUpdateProducer = statisticsUpdateProducer
|
||||||
|
|
||||||
this.responseProcessor = ResponseProcessor(requestRepository, statisticsUpdateProducer)
|
this.responseProcessor = ResponseProcessor(requestService, statisticsUpdateProducer)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun shouldNotSaveStatusForUnknownRequest() {
|
fun shouldNotSaveStatusForUnknownRequest() {
|
||||||
doAnswer {
|
doAnswer {
|
||||||
Optional.empty<Request>()
|
Optional.empty<Request>()
|
||||||
}.whenever(requestRepository).findByUuidEquals(anyString())
|
}.whenever(requestService).findByUuid(anyString())
|
||||||
|
|
||||||
val event = ResponseEvent(
|
val event = ResponseEvent(
|
||||||
"TestID1234",
|
"TestID1234",
|
||||||
@ -81,14 +80,14 @@ class ResponseProcessorTest {
|
|||||||
|
|
||||||
this.responseProcessor.handleResponseEvent(event)
|
this.responseProcessor.handleResponseEvent(event)
|
||||||
|
|
||||||
verify(requestRepository, never()).save(any())
|
verify(requestService, never()).save(any())
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun shouldNotSaveStatusWithUnknownState() {
|
fun shouldNotSaveStatusWithUnknownState() {
|
||||||
doAnswer {
|
doAnswer {
|
||||||
Optional.of(testRequest)
|
Optional.of(testRequest)
|
||||||
}.whenever(requestRepository).findByUuidEquals(anyString())
|
}.whenever(requestService).findByUuid(anyString())
|
||||||
|
|
||||||
val event = ResponseEvent(
|
val event = ResponseEvent(
|
||||||
"TestID1234",
|
"TestID1234",
|
||||||
@ -98,7 +97,7 @@ class ResponseProcessorTest {
|
|||||||
|
|
||||||
this.responseProcessor.handleResponseEvent(event)
|
this.responseProcessor.handleResponseEvent(event)
|
||||||
|
|
||||||
verify(requestRepository, never()).save(any())
|
verify(requestService, never()).save(any())
|
||||||
}
|
}
|
||||||
|
|
||||||
@ParameterizedTest
|
@ParameterizedTest
|
||||||
@ -106,7 +105,7 @@ class ResponseProcessorTest {
|
|||||||
fun shouldSaveStatusForKnownRequest(requestStatus: RequestStatus) {
|
fun shouldSaveStatusForKnownRequest(requestStatus: RequestStatus) {
|
||||||
doAnswer {
|
doAnswer {
|
||||||
Optional.of(testRequest)
|
Optional.of(testRequest)
|
||||||
}.whenever(requestRepository).findByUuidEquals(anyString())
|
}.whenever(requestService).findByUuid(anyString())
|
||||||
|
|
||||||
val event = ResponseEvent(
|
val event = ResponseEvent(
|
||||||
"TestID1234",
|
"TestID1234",
|
||||||
@ -117,7 +116,7 @@ class ResponseProcessorTest {
|
|||||||
this.responseProcessor.handleResponseEvent(event)
|
this.responseProcessor.handleResponseEvent(event)
|
||||||
|
|
||||||
val captor = argumentCaptor<Request>()
|
val captor = argumentCaptor<Request>()
|
||||||
verify(requestRepository, times(1)).save(captor.capture())
|
verify(requestService, times(1)).save(captor.capture())
|
||||||
assertThat(captor.firstValue).isNotNull
|
assertThat(captor.firstValue).isNotNull
|
||||||
assertThat(captor.firstValue.status).isEqualTo(requestStatus)
|
assertThat(captor.firstValue.status).isEqualTo(requestStatus)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user