Fixes
This commit is contained in:
parent
a36db258af
commit
073d0a4d8d
@ -37,7 +37,8 @@ class ConvertWorkTaskListener: WorkTaskListener() {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
override fun shouldIProcessAndHandleEvent(incomingEvent: Event, events: List<Event>): Boolean {
|
override fun shouldIProcessAndHandleEvent(incomingEvent: Event, events: List<Event>): Boolean {
|
||||||
if (!super.shouldIProcessAndHandleEvent(incomingEvent, events)) {
|
val mainCheckOk = super.shouldIProcessAndHandleEvent(incomingEvent, events);
|
||||||
|
if (!mainCheckOk) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,18 +50,16 @@ class ConvertWorkTaskListener: WorkTaskListener() {
|
|||||||
log.info { "Permitting handling of event: ${extractedEvent.data?.outputFile}" }
|
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) {
|
if (startOperation == null) {
|
||||||
log.error { "Could not find 'ProcessStarted' event" }
|
log.error { "Could not find 'ProcessStarted' event" }
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
if (startOperation.data?.operations?.isOnly(OperationEvents.CONVERT) == true) {
|
if (incomingEvent.isOfEvent(Events.ProcessStarted)) {
|
||||||
log.info { "StartOperation should only be Convert, ${WGson.toJson(startOperation)}" }
|
return startOperation.operations.isOnly(OperationEvents.CONVERT)
|
||||||
return true
|
|
||||||
} else {
|
|
||||||
return shouldIHandleAndProduce
|
|
||||||
}
|
}
|
||||||
|
return shouldIHandleAndProduce
|
||||||
}
|
}
|
||||||
override fun onEventsReceived(incomingEvent: ConsumableEvent<Event>, events: List<Event>) {
|
override fun onEventsReceived(incomingEvent: ConsumableEvent<Event>, events: List<Event>) {
|
||||||
val event = incomingEvent.consume()
|
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.eventi.data.referenceId
|
||||||
import no.iktdev.mediaprocessing.Files
|
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.databaseJsonToEvents
|
||||||
import no.iktdev.mediaprocessing.shared.common.contract.Events
|
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.assertj.core.api.Assertions.assertThat
|
||||||
|
import org.junit.jupiter.api.DisplayName
|
||||||
import org.junit.jupiter.api.Test
|
import org.junit.jupiter.api.Test
|
||||||
|
|
||||||
|
|
||||||
class ConvertWorkTaskListenerTest {
|
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
|
@Test
|
||||||
fun validateParsingOfEvents() {
|
fun validateParsingOfEvents() {
|
||||||
val content = Files.MultipleLanguageBased.databaseJsonToEvents()
|
val content = Files.MultipleLanguageBased.databaseJsonToEvents()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user