Fixes
This commit is contained in:
parent
a36db258af
commit
073d0a4d8d
@ -37,7 +37,8 @@ class ConvertWorkTaskListener: WorkTaskListener() {
|
||||
return true
|
||||
}
|
||||
override fun shouldIProcessAndHandleEvent(incomingEvent: Event, events: List<Event>): Boolean {
|
||||
if (!super.shouldIProcessAndHandleEvent(incomingEvent, events)) {
|
||||
val mainCheckOk = super.shouldIProcessAndHandleEvent(incomingEvent, events);
|
||||
if (!mainCheckOk) {
|
||||
return false
|
||||
}
|
||||
|
||||
@ -49,18 +50,16 @@ class ConvertWorkTaskListener: WorkTaskListener() {
|
||||
log.info { "Permitting handling of event: ${extractedEvent.data?.outputFile}" }
|
||||
}
|
||||
|
||||
val startOperation = events.findFirstOf(Events.ProcessStarted)?.dataAs<MediaProcessStartEvent>()
|
||||
val startOperation = events.findFirstOf(Events.ProcessStarted)?.dataAs<StartEventData>()
|
||||
if (startOperation == null) {
|
||||
log.error { "Could not find 'ProcessStarted' event" }
|
||||
return false
|
||||
}
|
||||
|
||||
if (startOperation.data?.operations?.isOnly(OperationEvents.CONVERT) == true) {
|
||||
log.info { "StartOperation should only be Convert, ${WGson.toJson(startOperation)}" }
|
||||
return true
|
||||
} else {
|
||||
return shouldIHandleAndProduce
|
||||
if (incomingEvent.isOfEvent(Events.ProcessStarted)) {
|
||||
return startOperation.operations.isOnly(OperationEvents.CONVERT)
|
||||
}
|
||||
return shouldIHandleAndProduce
|
||||
}
|
||||
override fun onEventsReceived(incomingEvent: ConsumableEvent<Event>, events: List<Event>) {
|
||||
val event = incomingEvent.consume()
|
||||
|
||||
@ -0,0 +1,28 @@
|
||||
package no.iktdev.mediaprocessing.coordinator
|
||||
|
||||
import no.iktdev.eventi.data.EventMetadata
|
||||
import no.iktdev.eventi.data.EventStatus
|
||||
import no.iktdev.mediaprocessing.shared.common.contract.data.MediaProcessStartEvent
|
||||
import no.iktdev.mediaprocessing.shared.common.contract.data.StartEventData
|
||||
import no.iktdev.mediaprocessing.shared.common.contract.dto.OperationEvents
|
||||
import java.util.UUID
|
||||
|
||||
val defaultReferenceId = UUID.randomUUID().toString()
|
||||
|
||||
fun defaultStartEvent(): MediaProcessStartEvent {
|
||||
return MediaProcessStartEvent(
|
||||
metadata = defaultMetadata(),
|
||||
data = StartEventData(
|
||||
operations = listOf(OperationEvents.ENCODE, OperationEvents.EXTRACT, OperationEvents.CONVERT),
|
||||
file = "DummyTestFile.mkv"
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
fun defaultMetadata(): EventMetadata {
|
||||
return EventMetadata(
|
||||
referenceId = defaultReferenceId,
|
||||
status = EventStatus.Success,
|
||||
source = "TestData"
|
||||
)
|
||||
}
|
||||
@ -2,14 +2,62 @@ package no.iktdev.mediaprocessing.coordinator.tasksV2.listeners
|
||||
|
||||
import no.iktdev.eventi.data.referenceId
|
||||
import no.iktdev.mediaprocessing.Files
|
||||
import no.iktdev.mediaprocessing.coordinator.defaultMetadata
|
||||
import no.iktdev.mediaprocessing.coordinator.defaultStartEvent
|
||||
import no.iktdev.mediaprocessing.databaseJsonToEvents
|
||||
import no.iktdev.mediaprocessing.shared.common.contract.Events
|
||||
import no.iktdev.mediaprocessing.shared.common.contract.data.Event
|
||||
import no.iktdev.mediaprocessing.shared.common.contract.data.StartEventData
|
||||
import no.iktdev.mediaprocessing.shared.common.contract.dto.OperationEvents
|
||||
import org.assertj.core.api.Assertions.assertThat
|
||||
import org.junit.jupiter.api.DisplayName
|
||||
import org.junit.jupiter.api.Test
|
||||
|
||||
|
||||
class ConvertWorkTaskListenerTest {
|
||||
|
||||
@Test
|
||||
@DisplayName("""
|
||||
When incoming event is of Start Event, and there is multiple operations,
|
||||
Validation check should fail
|
||||
""")
|
||||
fun validate_shouldIProcessAndHandleEvent1() {
|
||||
val listener = ConvertWorkTaskListener()
|
||||
val events = listOf<Event>(defaultStartEvent())
|
||||
val result = listener.shouldIProcessAndHandleEvent(defaultStartEvent(), events)
|
||||
assertThat(result).isFalse()
|
||||
}
|
||||
@Test
|
||||
@DisplayName("""
|
||||
When incoming event is of Start Event but start is missing form list, and there is multiple operations,
|
||||
Validation check should fail
|
||||
""")
|
||||
fun validate_shouldIProcessAndHandleEvent2() {
|
||||
val listener = ConvertWorkTaskListener()
|
||||
val result = listener.shouldIProcessAndHandleEvent(defaultStartEvent(), emptyList())
|
||||
assertThat(result).isFalse()
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("""
|
||||
When incoming event is of Start Event and single operation is Convert,
|
||||
Validation check should succeed
|
||||
""")
|
||||
fun validate_shouldIProcessAndHandleEvent3() {
|
||||
val listener = ConvertWorkTaskListener()
|
||||
val startedEvent = defaultStartEvent().copy(
|
||||
data = StartEventData(
|
||||
operations = listOf(OperationEvents.CONVERT),
|
||||
file = "DummyTestFile.ass"
|
||||
)
|
||||
)
|
||||
val events = listOf<Event>(startedEvent)
|
||||
val result = listener.shouldIProcessAndHandleEvent(startedEvent, events)
|
||||
assertThat(result).isTrue()
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Test
|
||||
fun validateParsingOfEvents() {
|
||||
val content = Files.MultipleLanguageBased.databaseJsonToEvents()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user