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 testEventEnvelopeBodyNoKey() throws Exception {
- String expectedEnvelope = TestUtil.getFileAsString("event/event-envelope-no-key.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();
}
@Test
- public void testEventEnvelopeBodyWithKey() throws Exception {
- String expectedEnvelope = TestUtil.getFileAsString("event/event-envelope-with-key.json");
+ 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();
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);
+
+ }
}