Merge "Updated champ-lib to use the correct logger"
[aai/champ.git] / champ-lib / champ-core / src / test / java / org / onap / aai / champcore / event / envelope / ChampEventEnvelopeTest.java
index 6b7bd02..8ed0f45 100644 (file)
@@ -23,20 +23,26 @@ package org.onap.aai.champcore.event.envelope;
 
 import static org.hamcrest.Matchers.is;
 import static org.junit.Assert.assertThat;
+
+import org.junit.Assert;
 import org.junit.Test;
 import org.onap.aai.champcore.event.ChampEvent;
 import org.onap.aai.champcore.model.ChampObject;
+import org.onap.aai.champcore.model.ChampRelationship;
 import org.onap.aai.champcore.util.TestUtil;
 import org.skyscreamer.jsonassert.Customization;
 import org.skyscreamer.jsonassert.JSONAssert;
 import org.skyscreamer.jsonassert.JSONCompareMode;
 import org.skyscreamer.jsonassert.comparator.CustomComparator;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+
 public class ChampEventEnvelopeTest {
 
     @Test
-    public void testEventEnvelopeFormat() throws Exception {
-        String expectedEnvelope = TestUtil.getFileAsString("event/event-envelope.json");
+    public void testVertexEventEnvelopeBodyNoKey() throws Exception {
+        String expectedEnvelope = TestUtil.getFileAsString("event/vertex-event-envelope-no-key.json");
 
         ChampEvent body = ChampEvent.builder().entity(new ChampObject.Builder("pserver").build()).build();
 
@@ -46,9 +52,25 @@ public class ChampEventEnvelopeTest {
                 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.transactionId", (o1, o2) -> true)));
+                        new Customization("body.transaction-id", (o1, o2) -> true)));
+    }
+
+    @Test
+    public void testVertexEventEnvelopeBodyWithKey() throws Exception {
+        String expectedEnvelope = TestUtil.getFileAsString("event/vertex-event-envelope-with-key.json");
+
+        ChampEvent body = ChampEvent.builder().entity(new ChampObject.Builder("pserver").key("1234").build()).build();
+
+        String envelope = new ChampEventEnvelope(body).toJson();
+
+        JSONAssert.assertEquals(expectedEnvelope, envelope,
+                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 {
         ChampEvent body = ChampEvent.builder().entity(new ChampObject.Builder("pserver").build()).build();
@@ -57,4 +79,69 @@ public class ChampEventEnvelopeTest {
 
         assertThat(envelope.getHeader().getRequestId(), is(envelope.getBody().getTransactionId()));
     }
+
+    @Test
+    public void testEdgeEventEnvelope() throws Exception {
+        String expectedEnvelope = TestUtil.getFileAsString("event/edge-event-envelope.json");
+
+        ObjectMapper mapper = new ObjectMapper();
+        ObjectNode objectNode = mapper.createObjectNode();
+        objectNode.put("inVertexId", 5678);
+        objectNode.put("typeId", 1000);
+        objectNode.put("relationId", 2000);
+        objectNode.put("outVertexId", 1234);
+
+        ChampRelationship relationship =
+                new ChampRelationship.Builder(new ChampObject.Builder("vserver").key("1234").build(),
+                        new ChampObject.Builder("pserver").key("5678").build(), "test").key(objectNode).build();
+        ChampEvent body = ChampEvent.builder().entity(relationship).build();
+
+        String envelope = new ChampEventEnvelope(body).toJson();
+
+        JSONAssert.assertEquals(expectedEnvelope, envelope,
+                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 testChampEventHeader() {
+      String link = "link1";
+      String requestId = "request-id1";
+      String entityType = "entity-type1";
+      String topEntityType = "top-entity-type1";
+      
+      ChampEventHeader header1 = new ChampEventHeader.Builder(ChampEventHeader.EventType.UPDATE_NOTIFICATION)
+        .entityLink(link)
+        .requestId(requestId)
+        .validationEntityType(entityType)
+        .validationTopEntityType(topEntityType)
+        .build();
+      
+      Assert.assertEquals(link, header1.getEntityLink());
+      Assert.assertEquals(requestId, header1.getRequestId());
+      Assert.assertEquals(entityType, header1.getValidationEntityType());
+      Assert.assertEquals(topEntityType, header1.getValidationTopEntityType());
+
+      ChampEventHeader header2 = new ChampEventHeader.Builder(ChampEventHeader.EventType.UPDATE_RESULT)
+          .entityLink("link2")
+          .requestId("request-id2")
+          .validationEntityType("entity-type2")
+          .validationTopEntityType("top-entity-type2")
+          .build();
+      
+      Assert.assertNotEquals(header1, header2);
+
+      
+      header2.setEntityLink(link);
+      header2.setRequestId(requestId);
+      header2.setValidationEntityType(entityType);
+      header2.setValidationTopEntityType(topEntityType);
+      header2.setEventType(header1.getEventType());
+      header2.setTimestamp(header1.getTimestamp());
+
+      Assert.assertEquals(header1, header2);
+      
+    }
 }