diff options
author | Michael Arrastia <MArrasti@amdocs.com> | 2018-03-28 19:07:34 +0100 |
---|---|---|
committer | Michael Arrastia <MArrasti@amdocs.com> | 2018-03-28 19:07:34 +0100 |
commit | 282a3420f6a8e2174034fcfa98b5a3ece28023a7 (patch) | |
tree | 558d1d3d559acf291e325769e987ce82ce44a117 /champ-service/src/test/java | |
parent | 533b090aa92f5eaa6c674fd63940fcacf4dc811e (diff) |
Update to consume and publish events in new format
The new format includes:
- the graph request/response encapsulated in a body property
- new event header with details such as timestamp, request-id,
event-type
Issue-ID: AAI-960
Change-Id: Ib84ddd54352ca95c3968d2d2936f6348951c2d2c
Signed-off-by: Michael Arrastia <MArrasti@amdocs.com>
Diffstat (limited to 'champ-service/src/test/java')
-rw-r--r-- | champ-service/src/test/java/org/onap/champ/event/GraphEventEnvelopeTest.java | 42 | ||||
-rw-r--r-- | champ-service/src/test/java/org/onap/champ/util/TestUtil.java | 34 |
2 files changed, 76 insertions, 0 deletions
diff --git a/champ-service/src/test/java/org/onap/champ/event/GraphEventEnvelopeTest.java b/champ-service/src/test/java/org/onap/champ/event/GraphEventEnvelopeTest.java new file mode 100644 index 0000000..5c39f99 --- /dev/null +++ b/champ-service/src/test/java/org/onap/champ/event/GraphEventEnvelopeTest.java @@ -0,0 +1,42 @@ +package org.onap.champ.event; + +import static org.hamcrest.Matchers.is; +import static org.junit.Assert.assertThat; +import org.junit.Test; +import org.onap.aai.champcore.model.ChampObject; +import org.onap.champ.event.GraphEvent.GraphEventOperation; +import org.onap.champ.event.envelope.GraphEventEnvelope; +import org.onap.champ.util.TestUtil; +import org.skyscreamer.jsonassert.Customization; +import org.skyscreamer.jsonassert.JSONAssert; +import org.skyscreamer.jsonassert.JSONCompareMode; +import org.skyscreamer.jsonassert.comparator.CustomComparator; + +public class GraphEventEnvelopeTest { + + @Test + public void testEventEnvelopeFormat() throws Exception { + String expectedEnvelope = TestUtil.getFileAsString("event/event-envelope.json"); + + GraphEvent body = GraphEvent.builder(GraphEventOperation.CREATE) + .vertex(GraphEventVertex.fromChampObject(new ChampObject.Builder("pserver").build(), "v13")).build(); + + String graphEventEnvelope = new GraphEventEnvelope(body).toJson(); + + JSONAssert.assertEquals(expectedEnvelope, graphEventEnvelope, + new CustomComparator(JSONCompareMode.STRICT, new Customization("header.request-id", (o1, o2) -> true), + new Customization("header.timestamp", (o1, o2) -> true), + new Customization("body.timestamp", (o1, o2) -> true), + new Customization("body.transaction-id", (o1, o2) -> true))); + } + + @Test + public void testRequestIdIsTransactionId() throws Exception { + GraphEvent body = GraphEvent.builder(GraphEventOperation.CREATE) + .vertex(GraphEventVertex.fromChampObject(new ChampObject.Builder("pserver").build(), "v13")).build(); + + GraphEventEnvelope envelope = new GraphEventEnvelope(body); + + assertThat(envelope.getHeader().getRequestId(), is(envelope.getBody().getTransactionId())); + } +} diff --git a/champ-service/src/test/java/org/onap/champ/util/TestUtil.java b/champ-service/src/test/java/org/onap/champ/util/TestUtil.java new file mode 100644 index 0000000..b9924e4 --- /dev/null +++ b/champ-service/src/test/java/org/onap/champ/util/TestUtil.java @@ -0,0 +1,34 @@ +package org.onap.champ.util; + +import java.io.File; +import java.io.IOException; +import java.net.URISyntaxException; +import java.net.URL; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +public class TestUtil { + + public static Path getPath(String resourceFilename) throws URISyntaxException { + URL resource = ClassLoader.getSystemResource(resourceFilename); + if (resource != null) { + return Paths.get(resource.toURI()); + } + + // If the resource is not found relative to the classpath, try to get it from the file system directly. + File file = new File(resourceFilename); + if (!file.exists()) { + throw new RuntimeException("Resource does not exist: " + resourceFilename); + } + return file.toPath(); + } + + public static String getContentUtf8(Path filePath) throws IOException { + return new String(Files.readAllBytes(filePath)); + } + + public static String getFileAsString(String resourceFilename) throws IOException, URISyntaxException { + return getContentUtf8(getPath(resourceFilename)); + } +}
\ No newline at end of file |