diff options
Diffstat (limited to 'sources/hv-collector-dcae-app-simulator/src/main/kotlin/org/onap/dcae/collectors/veshv/simulators/dcaeapp/impl/MessageStreamValidation.kt')
-rw-r--r-- | sources/hv-collector-dcae-app-simulator/src/main/kotlin/org/onap/dcae/collectors/veshv/simulators/dcaeapp/impl/MessageStreamValidation.kt | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/sources/hv-collector-dcae-app-simulator/src/main/kotlin/org/onap/dcae/collectors/veshv/simulators/dcaeapp/impl/MessageStreamValidation.kt b/sources/hv-collector-dcae-app-simulator/src/main/kotlin/org/onap/dcae/collectors/veshv/simulators/dcaeapp/impl/MessageStreamValidation.kt index e423191d..20c0f592 100644 --- a/sources/hv-collector-dcae-app-simulator/src/main/kotlin/org/onap/dcae/collectors/veshv/simulators/dcaeapp/impl/MessageStreamValidation.kt +++ b/sources/hv-collector-dcae-app-simulator/src/main/kotlin/org/onap/dcae/collectors/veshv/simulators/dcaeapp/impl/MessageStreamValidation.kt @@ -19,13 +19,16 @@ */ package org.onap.dcae.collectors.veshv.simulators.dcaeapp.impl +import arrow.core.getOrElse import arrow.effects.IO import arrow.effects.fix import arrow.effects.instances.io.monadError.monadError +import arrow.instances.option.foldable.fold import arrow.typeclasses.bindingCatch import org.onap.dcae.collectors.veshv.domain.ByteData import org.onap.dcae.collectors.veshv.domain.WireFrameMessage import org.onap.dcae.collectors.veshv.utils.arrow.asIo +import org.onap.dcae.collectors.veshv.utils.logging.Logger import org.onap.dcae.collectors.veshv.ves.message.generator.api.MessageGenerator import org.onap.dcae.collectors.veshv.ves.message.generator.api.MessageParameters import org.onap.dcae.collectors.veshv.ves.message.generator.api.MessageParametersParser @@ -41,6 +44,7 @@ class MessageStreamValidation( fun validate(jsonDescription: InputStream, consumedMessages: List<ByteArray>): IO<Boolean> = IO.monadError().bindingCatch { val messageParams = parseMessageParams(jsonDescription) + logger.debug { "Parsed message parameters: $messageParams" } val expectedEvents = generateEvents(messageParams).bind() val actualEvents = decodeConsumedEvents(consumedMessages) if (shouldValidatePayloads(messageParams)) { @@ -55,10 +59,17 @@ class MessageStreamValidation( val messageParams = messageParametersParser.parse(expectations) return messageParams.fold( - { throw IllegalArgumentException("Parsing error: " + it.message) }, { - if (it.isEmpty()) - throw IllegalArgumentException("Message param list cannot be empty") + logger.warn { "Error while parsing message parameters: ${it::class.qualifiedName} : ${it.message}" } + logger.debug { "Detailed stack trace: ${it}" } + throw IllegalArgumentException("Parsing error: " + it.message) + }, + { + if (it.isEmpty()) { + val message = "Message param list cannot be empty" + logger.warn(message) + throw IllegalArgumentException(message) + } it } ) @@ -85,4 +96,7 @@ class MessageStreamValidation( private fun decodeConsumedEvents(consumedMessages: List<ByteArray>) = consumedMessages.map(VesEventOuterClass.VesEvent::parseFrom) + companion object { + private val logger = Logger(MessageStreamValidation::class) + } } |