2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2016-2018 Ericsson. All rights reserved.
4 * Modifications Copyright (C) 2020,2022 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.handling;
24 import static org.junit.Assert.assertEquals;
26 import org.junit.Before;
27 import org.junit.Test;
28 import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult;
29 import org.onap.policy.apex.model.basicmodel.test.TestApexModel;
30 import org.onap.policy.apex.model.eventmodel.concepts.AxEventModel;
32 public class ApexEventModelTest {
33 private static final String VALID_MODEL_STRING = "***validation of model successful***";
35 private static final String OBSERVATION_MODEL_STRING = "\n"
36 + "***observations noted during validation of model***\n"
37 + "AxArtifactKey:(name=event0,version=0.0.1):"
38 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
39 + "AxArtifactKey:(name=event0,version=0.0.1):"
40 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
41 + "AxArtifactKey:(name=event1,version=0.0.1):"
42 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
43 + "AxArtifactKey:(name=event1,version=0.0.1):"
44 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
45 + "AxArtifactKey:(name=event2,version=0.0.1):"
46 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
47 + "AxArtifactKey:(name=event2,version=0.0.1):"
48 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
49 + "********************************";
51 private static final String WARNING_MODEL_STRING = "\n" + "***warnings issued during validation of model***\n"
52 + "AxArtifactKey:(name=event0,version=0.0.1):"
53 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:WARNING:nameSpace on event is blank\n"
54 + "AxArtifactKey:(name=event0,version=0.0.1):"
55 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
56 + "AxArtifactKey:(name=event0,version=0.0.1):"
57 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
58 + "AxArtifactKey:(name=event1,version=0.0.1):"
59 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:WARNING:nameSpace on event is blank\n"
60 + "AxArtifactKey:(name=event1,version=0.0.1):"
61 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
62 + "AxArtifactKey:(name=event1,version=0.0.1):"
63 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
64 + "AxArtifactKey:(name=event2,version=0.0.1):"
65 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:WARNING:nameSpace on event is blank\n"
66 + "AxArtifactKey:(name=event2,version=0.0.1):"
67 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
68 + "AxArtifactKey:(name=event2,version=0.0.1):"
69 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
70 + "********************************";
72 private static final String INVALID_MODEL_STRING = "\n" + "***validation of model failed***\n"
73 + "AxArtifactKey:(name=KeyInfoMapKey,version=0.0.1):"
74 + "org.onap.policy.apex.model.basicmodel.concepts.AxKeyInformation:INVALID:"
75 + "keyInfoMap may not be empty\n" + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
76 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
77 + "key information not found for key AxArtifactKey:(name=smallEventModel,version=0.0.1)\n"
78 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
79 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
80 + "key information not found for key AxArtifactKey:(name=KeyInfoMapKey,version=0.0.1)\n"
81 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
82 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
83 + "key information not found for key AxArtifactKey:(name=Schemas,version=0.0.1)\n"
84 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
85 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
86 + "key information not found for key AxArtifactKey:(name=BigIntType,version=0.0.1)\n"
87 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
88 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
89 + "key information not found for key AxArtifactKey:(name=BooleanType,version=0.0.1)\n"
90 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
91 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
92 + "key information not found for key AxArtifactKey:(name=IntType,version=0.0.1)\n"
93 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
94 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
95 + "key information not found for key AxArtifactKey:(name=MapType,version=0.0.1)\n"
96 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
97 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
98 + "key information not found for key AxArtifactKey:(name=SetType,version=0.0.1)\n"
99 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
100 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
101 + "key information not found for key AxArtifactKey:(name=StringType,version=0.0.1)\n"
102 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
103 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
104 + "key information not found for key AxArtifactKey:(name=smallEventMap,version=0.0.1)\n"
105 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
106 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
107 + "key information not found for key AxArtifactKey:(name=event0,version=0.0.1)\n"
108 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
109 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
110 + "key information not found for parent key of key AxReferenceKey:"
111 + "(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=par0)\n"
112 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
113 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
114 + "key information not found for parent key of key AxReferenceKey:"
115 + "(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=par1)\n"
116 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
117 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
118 + "key information not found for parent key of key AxReferenceKey:"
119 + "(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=par2)\n"
120 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
121 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
122 + "key information not found for parent key of key AxReferenceKey:"
123 + "(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=par3)\n"
124 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
125 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
126 + "key information not found for parent key of key AxReferenceKey:"
127 + "(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=par4)\n"
128 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
129 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
130 + "key information not found for parent key of key AxReferenceKey:"
131 + "(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=par5)\n"
132 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
133 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
134 + "key information not found for parent key of key AxReferenceKey:"
135 + "(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=par6)\n"
136 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
137 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
138 + "key information not found for key AxArtifactKey:(name=event1,version=0.0.1)\n"
139 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
140 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
141 + "key information not found for parent key of key AxReferenceKey:"
142 + "(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=theOnlyPar)\n"
143 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
144 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
145 + "duplicate key AxArtifactKey:(name=event1,version=0.0.1) found\n"
146 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
147 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
148 + "key information not found for key AxArtifactKey:(name=event1,version=0.0.1)\n"
149 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
150 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
151 + "duplicate key AxReferenceKey:(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,"
152 + "localName=theOnlyPar) found\n" + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
153 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
154 + "key information not found for parent key of key AxReferenceKey:"
155 + "(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=theOnlyPar)\n"
156 + "AxArtifactKey:(name=event0,version=0.0.1):"
157 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
158 + "AxArtifactKey:(name=event0,version=0.0.1):"
159 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
160 + "AxArtifactKey:(name=event1,version=0.0.1):"
161 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
162 + "AxArtifactKey:(name=event1,version=0.0.1):"
163 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
164 + "AxArtifactKey:(name=event1,version=0.0.1):"
165 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:INVALID:"
166 + "parent key on parameter field AxReferenceKey:(parentKeyName=event0,parentKeyVersion=0.0.1,"
167 + "parentLocalName=NULL,localName=theOnlyPar) does not equal event key\n"
168 + "AxArtifactKey:(name=smallEventMap,version=0.0.1):"
169 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvents:INVALID:"
170 + "key on event entry key AxArtifactKey:(name=event2,version=0.0.1) does not equal event value key "
171 + "AxArtifactKey:(name=event1,version=0.0.1)\n" + "AxArtifactKey:(name=event1,version=0.0.1):"
172 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
173 + "AxArtifactKey:(name=event1,version=0.0.1):"
174 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
175 + "AxArtifactKey:(name=event1,version=0.0.1):"
176 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:INVALID:"
177 + "parent key on parameter field AxReferenceKey:(parentKeyName=event0,parentKeyVersion=0.0.1,"
178 + "parentLocalName=NULL,localName=theOnlyPar) does not equal event key\n"
179 + "********************************";
181 private static final String INVALID_MODEL_MALSTRUCTURED_STRING = "\n" + "***validation of model failed***\n"
182 + "AxArtifactKey:(name=KeyInfoMapKey,version=0.0.1):"
183 + "org.onap.policy.apex.model.basicmodel.concepts.AxKeyInformation:INVALID:"
184 + "keyInfoMap may not be empty\n" + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
185 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
186 + "key information not found for key AxArtifactKey:(name=smallEventModel,version=0.0.1)\n"
187 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
188 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
189 + "key information not found for key AxArtifactKey:(name=KeyInfoMapKey,version=0.0.1)\n"
190 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
191 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
192 + "key information not found for key AxArtifactKey:(name=Schemas,version=0.0.1)\n"
193 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
194 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
195 + "key information not found for key AxArtifactKey:(name=SetType,version=0.0.1)\n"
196 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
197 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
198 + "key information not found for key AxArtifactKey:(name=smallEventMap,version=0.0.1)\n"
199 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
200 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
201 + "key information not found for key AxArtifactKey:(name=event1,version=0.0.1)\n"
202 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
203 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
204 + "key information not found for parent key of key AxReferenceKey:"
205 + "(parentKeyName=event1,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=theOnlyPar)\n"
206 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
207 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
208 + "duplicate key AxArtifactKey:(name=event1,version=0.0.1) found\n"
209 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
210 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
211 + "key information not found for key AxArtifactKey:(name=event1,version=0.0.1)\n"
212 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
213 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
214 + "duplicate key AxReferenceKey:(parentKeyName=event1,parentKeyVersion=0.0.1,"
215 + "parentLocalName=NULL,localName=theOnlyPar) found\n"
216 + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
217 + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
218 + "key information not found for parent key of key AxReferenceKey:"
219 + "(parentKeyName=event1,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=theOnlyPar)\n"
220 + "AxArtifactKey:(name=event1,version=0.0.1):"
221 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
222 + "AxArtifactKey:(name=event1,version=0.0.1):"
223 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
224 + "AxArtifactKey:(name=smallEventMap,version=0.0.1):"
225 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvents:INVALID:"
226 + "key on event entry key AxArtifactKey:(name=event2,version=0.0.1) does not equal event value key "
227 + "AxArtifactKey:(name=event1,version=0.0.1)\n" + "AxArtifactKey:(name=event1,version=0.0.1):"
228 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
229 + "AxArtifactKey:(name=event1,version=0.0.1):"
230 + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
231 + "********************************";
233 TestApexModel<AxEventModel> testApexModel;
238 * @throws Exception exceptions from the test
241 public void setup() throws Exception {
242 testApexModel = new TestApexModel<AxEventModel>(AxEventModel.class, new DummyTestApexEventModelCreator());
246 public void testModelValid() throws Exception {
247 final AxValidationResult result = testApexModel.testApexModelValid();
248 assertEquals(VALID_MODEL_STRING, result.toString());
252 public void testApexModelVaidateObservation() throws Exception {
253 final AxValidationResult result = testApexModel.testApexModelVaidateObservation();
254 assertEquals(OBSERVATION_MODEL_STRING, result.toString());
258 public void testApexModelVaidateWarning() throws Exception {
259 final AxValidationResult result = testApexModel.testApexModelVaidateWarning();
260 assertEquals(WARNING_MODEL_STRING, result.toString());
264 public void testModelVaidateInvalidModel() throws Exception {
265 final AxValidationResult result = testApexModel.testApexModelVaidateInvalidModel();
266 assertEquals(INVALID_MODEL_STRING, result.toString());
270 public void testModelVaidateMalstructured() throws Exception {
271 final AxValidationResult result = testApexModel.testApexModelVaidateMalstructured();
272 assertEquals(INVALID_MODEL_MALSTRUCTURED_STRING, result.toString());
276 public void testModelWriteReadXml() throws Exception {
277 testApexModel.testApexModelWriteReadXml();
281 public void testModelWriteReadJson() throws Exception {
282 testApexModel.testApexModelWriteReadJson();