Add metrics for dropped messages
[dcaegen2/collectors/hv-ves.git] / sources / hv-collector-test-utils / src / main / kotlin / org / onap / dcae / collectors / veshv / tests / utils / messages.kt
index 01e1166..90c4aa1 100644 (file)
@@ -23,61 +23,67 @@ import com.google.protobuf.ByteString
 import io.netty.buffer.ByteBuf
 import io.netty.buffer.ByteBufAllocator
 import io.netty.buffer.PooledByteBufAllocator
-import org.onap.dcae.collectors.veshv.domain.WireFrameMessage.Companion.RESERVED_BYTE_COUNT
 import org.onap.dcae.collectors.veshv.domain.VesEventDomain
-import org.onap.dcae.collectors.veshv.domain.VesEventDomain.PERF3GPP
 import org.onap.dcae.collectors.veshv.domain.VesEventDomain.OTHER
+import org.onap.dcae.collectors.veshv.domain.VesEventDomain.PERF3GPP
+import org.onap.dcae.collectors.veshv.domain.WireFrameMessage.Companion.RESERVED_BYTE_COUNT
 import org.onap.ves.VesEventOuterClass.VesEvent
-
 import java.util.UUID.randomUUID
 
 
 val allocator: ByteBufAllocator = PooledByteBufAllocator.DEFAULT
 
-private fun ByteBuf.writeValidWireFrameHeaders() {
+private fun validWireFrame() = allocator.buffer().run {
     writeByte(0xAA)          // always 0xAA
     writeByte(0x01)          // major version
     writeByte(0x00)          // minor version
     writeZero(RESERVED_BYTE_COUNT)  // reserved
-    writeShort(0x0001)       // content type = GPB
+    writeShort(0x0001)  // content type = GPB
+}
+
+private fun invalidWireFrame() = allocator.buffer().run {
+    writeByte(0xAA)          // always 0xAA
+    writeByte(0x00)          // invalid major version
+    writeByte(0x00)          // minor version
+    writeZero(RESERVED_BYTE_COUNT)  // reserved
+    writeShort(0x0001)  // content type = GPB
+}
+
+fun garbageFrame(): ByteBuf = allocator.buffer().run {
+    writeBytes("the meaning of life is &@)(*_!".toByteArray())
 }
 
 fun vesWireFrameMessage(domain: VesEventDomain = OTHER,
                         id: String = randomUUID().toString(),
-                        eventFields: ByteString = ByteString.EMPTY): ByteBuf =
-        vesWireFrameMessage(vesEvent(domain, id, eventFields))
-
-fun vesWireFrameMessage(vesEvent: VesEvent) =
-        allocator.buffer().run {
-            writeValidWireFrameHeaders()
+                        eventFields: ByteString = ByteString.EMPTY,
+                        vesEventListenerVersion: String = "7.0.2"): ByteBuf =
+        vesWireFrameMessage(vesEvent(domain, id, eventFields, vesEventListenerVersion))
 
+fun vesWireFrameMessage(vesEvent: VesEvent): ByteBuf =
+        validWireFrame().run {
             val gpb = vesEvent.toByteString().asReadOnlyByteBuffer()
             writeInt(gpb.limit())  // ves event size in bytes
-            writeBytes(gpb)  // ves event as GPB bytes
+            writeBytes(gpb)   // ves event as GPB bytes
         }
 
-fun wireFrameMessageWithInvalidPayload(): ByteBuf = allocator.buffer().run {
-    writeValidWireFrameHeaders()
-
-    val invalidGpb = "some random data".toByteArray(Charsets.UTF_8)
-    writeInt(invalidGpb.size)  // ves event size in bytes
-    writeBytes(invalidGpb)
-}
-
-fun garbageFrame(): ByteBuf = allocator.buffer().run {
-    writeBytes("the meaning of life is &@)(*_!".toByteArray())
-}
+fun messageWithInvalidWireFrameHeader(vesEvent: VesEvent = vesEvent()): ByteBuf =
+        invalidWireFrame().run {
+            val gpb = vesEvent.toByteString().asReadOnlyByteBuffer()
+            writeInt(gpb.limit())           // ves event size in bytes
+            writeBytes(gpb)            // ves event as GPB bytes
+        }
 
-fun invalidWireFrame(): ByteBuf = allocator.buffer().run {
-    writeByte(0xAA)
-    writeByte(0x01)   // version major
-    writeByte(0x01)   // version minor
-}
+fun wireFrameMessageWithInvalidPayload(): ByteBuf =
+        validWireFrame().run {
+            val invalidGpb = "some random data".toByteArray(Charsets.UTF_8)
+            writeInt(invalidGpb.size)  // ves event size in bytes
+            writeBytes(invalidGpb)
+        }
 
-fun vesMessageWithPayloadOfSize(payloadSizeBytes: Int, domain: VesEventDomain = PERF3GPP): ByteBuf =
+fun messageWithPayloadOfSize(payloadSizeBytes: Int, domain: VesEventDomain = PERF3GPP): ByteBuf =
         vesWireFrameMessage(
                 domain = domain,
                 eventFields = ByteString.copyFrom(ByteArray(payloadSizeBytes))
         )
 
-
+fun messageWithInvalidListenerVersion() = vesWireFrameMessage(vesEventListenerVersion = "invalid")
\ No newline at end of file