2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2016-2018 Ericsson. All rights reserved.
4 * Modifications Copyright (C) 2019 Nordix Foundation.
5 * ================================================================================
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
18 * SPDX-License-Identifier: Apache-2.0
19 * ============LICENSE_END=========================================================
22 package org.onap.policy.apex.model.eventmodel.concepts;
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertFalse;
26 import static org.junit.Assert.assertNotEquals;
27 import static org.junit.Assert.assertNotNull;
28 import static org.junit.Assert.assertTrue;
30 import java.util.TreeMap;
31 import java.util.TreeSet;
33 import org.junit.Test;
34 import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
35 import org.onap.policy.apex.model.basicmodel.concepts.AxKey;
36 import org.onap.policy.apex.model.basicmodel.concepts.AxReferenceKey;
37 import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult;
38 import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult.ValidationResult;
39 import org.onap.policy.apex.model.eventmodel.concepts.AxEvent;
40 import org.onap.policy.apex.model.eventmodel.concepts.AxEvents;
41 import org.onap.policy.apex.model.eventmodel.concepts.AxField;
45 * @author Liam Fallon (liam.fallon@ericsson.com)
47 public class EventsTest {
50 public void testEvents() {
51 final TreeMap<String, AxField> parameterMap = new TreeMap<>();
52 final TreeMap<String, AxField> parameterMapEmpty = new TreeMap<>();
54 assertNotNull(new AxEvent());
55 assertNotNull(new AxEvent(new AxArtifactKey()));
56 assertNotNull(new AxEvent(new AxArtifactKey(), "namespace"));
57 assertNotNull(new AxEvent(new AxArtifactKey(), "namespace", "source", "target"));
58 assertNotNull(new AxEvent(new AxArtifactKey(), "namespace", "source", "target"));
59 assertNotNull(new AxEvent(new AxArtifactKey(), "namespace", "source", "target", parameterMap));
61 final AxEvent event = new AxEvent();
63 final AxArtifactKey eventKey = new AxArtifactKey("EventName", "0.0.1");
64 event.setKey(eventKey);
65 assertEquals("EventName:0.0.1", event.getKey().getId());
66 assertEquals("EventName:0.0.1", event.getKeys().get(0).getId());
68 event.setNameSpace("namespace");
69 assertEquals("namespace", event.getNameSpace());
71 event.setSource("source");
72 assertEquals("source", event.getSource());
74 event.setTarget("target");
75 assertEquals("target", event.getTarget());
77 event.setParameterMap(parameterMap);
78 assertEquals(0, event.getParameterMap().size());
80 final AxField eventField =
81 new AxField(new AxReferenceKey(eventKey, "Field0"), new AxArtifactKey("Field0Schema", "0.0.1"));
82 event.getParameterMap().put(eventField.getKey().getLocalName(), eventField);
83 assertEquals(1, event.getParameterMap().size());
85 final AxField eventFieldBadParent =
86 new AxField(new AxReferenceKey(new AxArtifactKey("OtherEvent", "0.0.01"), "Field0"),
87 new AxArtifactKey("Field0Schema", "0.0.1"));
89 final AxArtifactKey newEventKey = new AxArtifactKey("NewEventName", "0.0.1");
90 event.setKey(newEventKey);
91 assertEquals("NewEventName:0.0.1", event.getKey().getId());
92 assertEquals("NewEventName:0.0.1", event.getKeys().get(0).getId());
93 assertEquals("NewEventName:0.0.1",
94 event.getParameterMap().get("Field0").getKey().getParentArtifactKey().getId());
95 event.setKey(eventKey);
96 assertEquals("EventName:0.0.1", event.getKey().getId());
97 assertEquals("EventName:0.0.1", event.getKeys().get(0).getId());
99 assertTrue("Field0", event.getFields().contains(eventField));
100 assertTrue(event.hasFields(new TreeSet<AxField>(parameterMap.values())));
102 AxValidationResult result = new AxValidationResult();
103 result = event.validate(result);
104 assertEquals(AxValidationResult.ValidationResult.VALID, result.getValidationResult());
106 event.setKey(AxArtifactKey.getNullKey());
107 result = new AxValidationResult();
108 result = event.validate(result);
109 assertEquals(ValidationResult.INVALID, result.getValidationResult());
111 event.setKey(eventKey);
112 result = new AxValidationResult();
113 result = event.validate(result);
114 assertEquals(ValidationResult.VALID, result.getValidationResult());
116 event.setNameSpace("");
117 result = new AxValidationResult();
118 result = event.validate(result);
119 assertEquals(ValidationResult.WARNING, result.getValidationResult());
121 event.setNameSpace("namespace");
122 result = new AxValidationResult();
123 result = event.validate(result);
124 assertEquals(ValidationResult.VALID, result.getValidationResult());
127 result = new AxValidationResult();
128 result = event.validate(result);
129 assertEquals(ValidationResult.OBSERVATION, result.getValidationResult());
131 event.setSource("source");
132 result = new AxValidationResult();
133 result = event.validate(result);
134 assertEquals(ValidationResult.VALID, result.getValidationResult());
137 result = new AxValidationResult();
138 result = event.validate(result);
139 assertEquals(ValidationResult.OBSERVATION, result.getValidationResult());
141 event.setTarget("target");
142 result = new AxValidationResult();
143 result = event.validate(result);
144 assertEquals(ValidationResult.VALID, result.getValidationResult());
146 event.getParameterMap().put(AxKey.NULL_KEY_NAME, null);
147 result = new AxValidationResult();
148 result = event.validate(result);
149 assertEquals(ValidationResult.INVALID, result.getValidationResult());
151 event.getParameterMap().remove(AxKey.NULL_KEY_NAME);
152 result = new AxValidationResult();
153 result = event.validate(result);
154 assertEquals(ValidationResult.VALID, result.getValidationResult());
156 event.getParameterMap().put("NullField", null);
157 result = new AxValidationResult();
158 result = event.validate(result);
159 assertEquals(ValidationResult.INVALID, result.getValidationResult());
161 event.getParameterMap().remove("NullField");
162 result = new AxValidationResult();
163 result = event.validate(result);
164 assertEquals(ValidationResult.VALID, result.getValidationResult());
166 event.getParameterMap().put("NullField", eventField);
167 result = new AxValidationResult();
168 result = event.validate(result);
169 assertEquals(ValidationResult.INVALID, result.getValidationResult());
171 event.getParameterMap().remove("NullField");
172 result = new AxValidationResult();
173 result = event.validate(result);
174 assertEquals(ValidationResult.VALID, result.getValidationResult());
176 event.getParameterMap().put("BadParent", eventFieldBadParent);
177 result = new AxValidationResult();
178 result = event.validate(result);
179 assertEquals(ValidationResult.INVALID, result.getValidationResult());
181 event.getParameterMap().remove("BadParent");
182 result = new AxValidationResult();
183 result = event.validate(result);
184 assertEquals(ValidationResult.VALID, result.getValidationResult());
187 event.afterUnmarshal(null, null);
189 final AxEvent clonedEvent = new AxEvent(event);
190 assertEquals("AxEvent:(key=AxArtifactKey:(name=EventName,version=0.0.1),nameSpace=namespace",
191 clonedEvent.toString().substring(0, 77));
193 assertFalse(event.hashCode() == 0);
195 assertTrue(event.equals(event));
196 assertTrue(event.equals(clonedEvent));
197 assertFalse(event.equals(null));
198 assertFalse(event.equals((Object)"Hello"));
200 event.equals(new AxEvent(AxArtifactKey.getNullKey(), "namespace", "source", "target", parameterMap)));
201 assertFalse(event.equals(new AxEvent(eventKey, "namespace1", "source", "target", parameterMap)));
202 assertFalse(event.equals(new AxEvent(eventKey, "namespace", "source2", "target", parameterMap)));
203 assertFalse(event.equals(new AxEvent(eventKey, "namespace", "source", "target3", parameterMap)));
204 assertFalse(event.equals(new AxEvent(eventKey, "namespace", "source", "target", parameterMapEmpty)));
205 assertTrue(event.equals(new AxEvent(eventKey, "namespace", "source", "target", parameterMap)));
207 assertEquals(0, event.compareTo(event));
208 assertEquals(0, event.compareTo(clonedEvent));
209 assertNotEquals(0, event.compareTo(new AxArtifactKey()));
210 assertNotEquals(0, event.compareTo(null));
211 assertNotEquals(0, event
212 .compareTo(new AxEvent(AxArtifactKey.getNullKey(), "namespace", "source", "target", parameterMap)));
213 assertNotEquals(0, event.compareTo(new AxEvent(eventKey, "namespace1", "source", "target", parameterMap)));
214 assertNotEquals(0, event.compareTo(new AxEvent(eventKey, "namespace", "source2", "target", parameterMap)));
215 assertNotEquals(0, event.compareTo(new AxEvent(eventKey, "namespace", "source", "target3", parameterMap)));
216 assertNotEquals(0, event.compareTo(new AxEvent(eventKey, "namespace", "source", "target", parameterMapEmpty)));
217 assertEquals(0, event.compareTo(new AxEvent(eventKey, "namespace", "source", "target", parameterMap)));
219 assertNotNull(event.getKeys());
221 final AxEvents events = new AxEvents();
222 result = new AxValidationResult();
223 result = events.validate(result);
224 assertEquals(ValidationResult.INVALID, result.getValidationResult());
226 // Invalid, no events in event map
227 events.setKey(new AxArtifactKey("EventsKey", "0.0.1"));
228 assertEquals("EventsKey:0.0.1", events.getKey().getId());
230 result = new AxValidationResult();
231 result = events.validate(result);
232 assertEquals(ValidationResult.INVALID, result.getValidationResult());
234 events.getEventMap().put(eventKey, event);
235 result = new AxValidationResult();
236 result = events.validate(result);
237 assertEquals(ValidationResult.VALID, result.getValidationResult());
239 events.getEventMap().put(AxArtifactKey.getNullKey(), null);
240 result = new AxValidationResult();
241 result = events.validate(result);
242 assertEquals(ValidationResult.INVALID, result.getValidationResult());
244 events.getEventMap().remove(AxArtifactKey.getNullKey());
245 result = new AxValidationResult();
246 result = events.validate(result);
247 assertEquals(ValidationResult.VALID, result.getValidationResult());
249 events.getEventMap().put(new AxArtifactKey("NullValueKey", "0.0.1"), null);
250 result = new AxValidationResult();
251 result = events.validate(result);
252 assertEquals(ValidationResult.INVALID, result.getValidationResult());
254 events.getEventMap().remove(new AxArtifactKey("NullValueKey", "0.0.1"));
255 result = new AxValidationResult();
256 result = events.validate(result);
257 assertEquals(ValidationResult.VALID, result.getValidationResult());
259 events.getEventMap().put(new AxArtifactKey("BadEventKey", "0.0.1"), event);
260 result = new AxValidationResult();
261 result = events.validate(result);
262 assertEquals(ValidationResult.INVALID, result.getValidationResult());
264 events.getEventMap().remove(new AxArtifactKey("BadEventKey", "0.0.1"));
265 result = new AxValidationResult();
266 result = events.validate(result);
267 assertEquals(ValidationResult.VALID, result.getValidationResult());
270 events.afterUnmarshal(null, null);
272 final AxEvents clonedEvents = new AxEvents(events);
273 assertEquals("AxEvents:(key=AxArtifactKey:(name=EventsKey,version=0.0.1),e",
274 clonedEvents.toString().substring(0, 60));
276 assertFalse(events.hashCode() == 0);
278 assertTrue(events.equals(events));
279 assertTrue(events.equals(clonedEvents));
280 assertFalse(events.equals(null));
281 assertFalse(events.equals((Object)"Hello"));
282 assertFalse(events.equals(new AxEvents(new AxArtifactKey())));
284 assertEquals(0, events.compareTo(events));
285 assertEquals(0, events.compareTo(clonedEvents));
286 assertNotEquals(0, events.compareTo(null));
287 assertNotEquals(0, events.compareTo(new AxArtifactKey()));
288 assertNotEquals(0, events.compareTo(new AxEvents(new AxArtifactKey())));
290 clonedEvents.get(eventKey).setSource("AnotherSource");
291 assertNotEquals(0, events.compareTo(clonedEvents));
293 assertEquals(events.getKey(), events.getKeys().get(0));
295 assertEquals("EventName", events.get("EventName").getKey().getName());
296 assertEquals("EventName", events.get("EventName", "0.0.1").getKey().getName());
297 assertEquals(1, events.getAll("EventName", "0.0.1").size());
298 assertEquals(0, events.getAll("NonExistantEventsName").size());