2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
6 * Copyright © 2017-2018 Amdocs
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
21 package org.onap.crud.event;
23 import static org.junit.Assert.*;
25 import java.io.BufferedReader;
27 import java.io.FileReader;
28 import java.io.IOException;
30 import javax.ws.rs.core.Response.Status;
32 import org.junit.Test;
33 import org.onap.crud.entity.Edge;
34 import org.onap.crud.entity.Vertex;
35 import org.onap.crud.event.GraphEvent;
36 import org.onap.crud.event.GraphEvent.GraphEventOperation;
37 import org.onap.crud.event.GraphEvent.GraphEventResult;
38 import org.onap.crud.event.GraphEventVertex;
39 import org.onap.crud.exception.CrudException;
40 import org.junit.runner.RunWith;
41 import org.mockito.junit.MockitoJUnitRunner;
42 import org.onap.crud.OXMModelLoaderSetup;
44 @RunWith(MockitoJUnitRunner.Silent.class)
45 public class GraphEventTest extends OXMModelLoaderSetup{
46 private final String vertexPayload = "{" +
47 "\"key\": \"test-uuid\"," +
48 "\"type\": \"pserver\"," +
50 "\"fqdn\": \"myhost.onap.com\"," +
51 "\"hostname\": \"myhost\" } }";
53 private final String edgePayload = "{" +
54 "\"key\": \"test-uuid\"," +
55 "\"type\": \"tosca.relationships.HostedOn\"," +
57 "\"prevent-delete\": \"NONE\" }," +
59 "\"key\": \"50bdab41-ad1c-4d00-952c-a0aa5d827811\", \"type\": \"vserver\"}," +
61 "\"key\": \"1d326bc7-b985-492b-9604-0d5d1f06f908\", \"type\": \"pserver\"}" +
65 public void validateGraphEvent() throws CrudException, IOException {
66 // Test building event from json
67 File file = new File("src/test/resources/payloads/graphVertexEvent.json");
68 String payloadStr = readFileToString(file);
69 GraphEvent event = GraphEvent.fromJson(payloadStr);
70 assertTrue(event.getOperation() == GraphEventOperation.UPDATE);
71 assertTrue(event.getDbTransactionId().equals("b3e2853e-f643-47a3-a0c3-cb54cc997ad3"));
72 assertTrue(event.getTimestamp() == Long.parseLong("1514927928167"));
73 assertTrue(event.getTransactionId().equals("c0a81fa7-5ef4-49cd-ab39-e42c53c9b9a4"));
74 assertTrue(event.getObjectKey().equals("mykey"));
75 assertTrue(event.getObjectType().equals("vertex->pserver"));
76 assertTrue(event.getVertex().getId().equals("mykey"));
77 assertTrue(event.getVertex().getModelVersion().equals("v11"));
78 assertTrue(event.getVertex().getType().equals("pserver"));
79 assertTrue(event.getVertex().getProperties() != null);
80 assertTrue(event.getVertex().toVertex() != null);
81 assertTrue(event.getVertex().toJson() != null);
83 // Test building event from vertex
84 Vertex vertex = Vertex.fromJson(vertexPayload, "v11");
85 event = GraphEvent.builder(GraphEventOperation.CREATE).vertex(GraphEventVertex.fromVertex(vertex, "v11")).build();
86 assertTrue(event.getOperation() == GraphEventOperation.CREATE);
89 // Test building event from edge
90 Edge edge = Edge.fromJson(edgePayload);
91 event = GraphEvent.builder(GraphEventOperation.UPDATE).edge(GraphEventEdge.fromEdge(edge, "v11")).build();
92 assertTrue(event.getOperation() == GraphEventOperation.UPDATE);
93 assertTrue(event.getObjectKey().equals("test-uuid"));
94 assertTrue(event.getObjectType().equals("edge->tosca.relationships.HostedOn"));
95 assertTrue(event.getEdge().getId().equals("test-uuid"));
96 assertTrue(event.getEdge().getType().equals("tosca.relationships.HostedOn"));
97 assertTrue(event.getEdge().getProperties() != null);
98 assertTrue(event.getEdge().toEdge() != null);
99 assertTrue(event.getEdge().toJson() != null);
101 // Test Getters/Setters
102 event.setDbTransactionId("a");
103 assertTrue(event.getDbTransactionId().equals("a"));
104 event.setErrorMessage("error");
105 assertTrue(event.getErrorMessage().equals("error"));
106 event.setResult(GraphEventResult.FAILURE);
107 assertTrue(event.getResult() == GraphEventResult.FAILURE);
108 event.setHttpErrorStatus(Status.BAD_REQUEST);
109 assertTrue(event.getHttpErrorStatus() == Status.BAD_REQUEST);
110 event.setTimestamp(1234567);
111 assertTrue(event.getTimestamp() == Long.parseLong("1234567"));
114 public static String readFileToString(File aFile) throws IOException {
115 BufferedReader br = new BufferedReader(new FileReader(aFile));
117 StringBuilder sb = new StringBuilder();
118 String line = br.readLine();
120 while (line != null) {
122 line = br.readLine();
125 return sb.toString().replaceAll("\\s+", "");
129 } catch (IOException e) {
130 fail("Unexpected IOException: " + e.getMessage());