aboutsummaryrefslogtreecommitdiffstats
path: root/hv-collector-ves-message-generator/src/test/kotlin
diff options
context:
space:
mode:
authorFilip Krzywka <filip.krzywka@nokia.com>2018-09-06 13:37:27 +0200
committerFilip Krzywka <filip.krzywka@nokia.com>2018-09-11 07:28:16 +0000
commit6b1777bf08c682fab15f158e9946e36f3cb9698a (patch)
treeb3c7c0893d4f4655120eabb609e04e71cd2d7b5e /hv-collector-ves-message-generator/src/test/kotlin
parent83c14bf9d6f908abfb5f5ad681570615a9ce541d (diff)
Fix common event header parsing
During JSON parsing we were using 3 times 'version' field. Replaced parsing with protobuf parser to avoid mistakes like this in future Change-Id: I6224dc6533ab553e7e2315a95567a1fa48c1c5ad Issue-ID: DCAEGEN2-710 Signed-off-by: Filip Krzywka <filip.krzywka@nokia.com>
Diffstat (limited to 'hv-collector-ves-message-generator/src/test/kotlin')
-rw-r--r--hv-collector-ves-message-generator/src/test/kotlin/org/onap/dcae/collectors/veshv/ves/message/generator/impl/CommonEventHeaderParserTest.kt81
1 files changed, 81 insertions, 0 deletions
diff --git a/hv-collector-ves-message-generator/src/test/kotlin/org/onap/dcae/collectors/veshv/ves/message/generator/impl/CommonEventHeaderParserTest.kt b/hv-collector-ves-message-generator/src/test/kotlin/org/onap/dcae/collectors/veshv/ves/message/generator/impl/CommonEventHeaderParserTest.kt
new file mode 100644
index 00000000..c16459ce
--- /dev/null
+++ b/hv-collector-ves-message-generator/src/test/kotlin/org/onap/dcae/collectors/veshv/ves/message/generator/impl/CommonEventHeaderParserTest.kt
@@ -0,0 +1,81 @@
+/*
+ * ============LICENSE_START=======================================================
+ * dcaegen2-collectors-veshv
+ * ================================================================================
+ * Copyright (C) 2018 NOKIA
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.dcae.collectors.veshv.ves.message.generator.impl
+
+import arrow.core.Option
+import arrow.core.identity
+import com.google.protobuf.util.JsonFormat
+import org.assertj.core.api.Assertions.assertThat
+import org.jetbrains.spek.api.Spek
+import org.jetbrains.spek.api.dsl.describe
+import org.jetbrains.spek.api.dsl.given
+import org.jetbrains.spek.api.dsl.it
+import org.onap.dcae.collectors.veshv.tests.utils.commonHeader
+import org.onap.ves.VesEventV5
+import java.io.ByteArrayInputStream
+import javax.json.Json
+import kotlin.test.fail
+
+class CommonEventHeaderParserTest : Spek({
+
+ describe("Common event header parser") {
+ val parser = CommonEventHeaderParser()
+
+ given("valid header in JSON format") {
+ val commonEventHeader = commonHeader(
+ domain = VesEventV5.VesEvent.CommonEventHeader.Domain.STATE_CHANGE,
+ id = "sample-event-id")
+ val json = JsonFormat.printer().print(commonEventHeader).byteInputStream()
+
+ it("should parse common event header") {
+ val result =
+ parser.parse(jsonObject(json))
+ .fold({ fail() }, ::identity)
+
+ assertThat(result).describedAs("common event header").isEqualTo(commonEventHeader)
+ }
+ }
+
+ given("invalid header in JSON format") {
+ val json = "{}".byteInputStream()
+
+ it("should throw exception") {
+ val result = parser.parse(jsonObject(json))
+
+ assertFailed(result)
+ }
+ }
+
+ given("invalid JSON") {
+ val json = "{}}}}".byteInputStream()
+
+ it("should throw exception") {
+ val result = parser.parse(jsonObject(json))
+
+ assertFailed(result)
+ }
+ }
+ }
+})
+
+fun assertFailed(result: Option<VesEventV5.VesEvent.CommonEventHeader>) =
+ result.fold({}, { fail() })
+
+fun jsonObject(json: ByteArrayInputStream) = Json.createReader(json).readObject() \ No newline at end of file