db752a61b0c70e194ffa16534f216f1055b5b95c
[policy/apex-pdp.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2016-2018 Ericsson. All rights reserved.
4  * ================================================================================
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.policy.apex.model.eventmodel.handling;
22
23 import static org.junit.Assert.assertTrue;
24
25 import org.junit.Before;
26 import org.junit.Test;
27 import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult;
28 import org.onap.policy.apex.model.basicmodel.dao.DaoParameters;
29 import org.onap.policy.apex.model.basicmodel.test.TestApexModel;
30 import org.onap.policy.apex.model.eventmodel.concepts.AxEventModel;
31
32 public class ApexEventModelTest {
33     TestApexModel<AxEventModel> testApexModel;
34
35     /**
36      * Set up the test.
37      *
38      * @throws Exception exceptions from the test
39      */
40     @Before
41     public void setup() throws Exception {
42         testApexModel = new TestApexModel<AxEventModel>(AxEventModel.class, new DummyTestApexEventModelCreator());
43     }
44
45     @Test
46     public void testModelValid() throws Exception {
47         final AxValidationResult result = testApexModel.testApexModelValid();
48         assertTrue(result.toString().equals(VALID_MODEL_STRING));
49     }
50
51     @Test
52     public void testApexModelVaidateObservation() throws Exception {
53         final AxValidationResult result = testApexModel.testApexModelVaidateObservation();
54         assertTrue(result.toString().equals(OBSERVATION_MODEL_STRING));
55     }
56
57     @Test
58     public void testApexModelVaidateWarning() throws Exception {
59         final AxValidationResult result = testApexModel.testApexModelVaidateWarning();
60         assertTrue(result.toString().equals(WARNING_MODEL_STRING));
61     }
62
63     @Test
64     public void testModelVaidateInvalidModel() throws Exception {
65         final AxValidationResult result = testApexModel.testApexModelVaidateInvalidModel();
66         assertTrue(result.toString().equals(INVALID_MODEL_STRING));
67     }
68
69     @Test
70     public void testModelVaidateMalstructured() throws Exception {
71         final AxValidationResult result = testApexModel.testApexModelVaidateMalstructured();
72         assertTrue(result.toString().equals(INVALID_MODEL_MALSTRUCTURED_STRING));
73     }
74
75     @Test
76     public void testModelWriteReadXml() throws Exception {
77         testApexModel.testApexModelWriteReadXml();
78     }
79
80     @Test
81     public void testModelWriteReadJson() throws Exception {
82         testApexModel.testApexModelWriteReadJson();
83     }
84
85     @Test
86     public void testModelWriteReadJpa() throws Exception {
87         final DaoParameters DaoParameters = new DaoParameters();
88         DaoParameters.setPluginClass("org.onap.policy.apex.model.basicmodel.dao.impl.DefaultApexDao");
89         DaoParameters.setPersistenceUnit("DAOTest");
90
91         testApexModel.testApexModelWriteReadJpa(DaoParameters);
92     }
93
94     private static final String VALID_MODEL_STRING = "***validation of model successful***";
95
96     private static final String OBSERVATION_MODEL_STRING = "\n"
97                     + "***observations noted during validation of model***\n"
98                     + "AxArtifactKey:(name=event0,version=0.0.1):"
99                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
100                     + "AxArtifactKey:(name=event0,version=0.0.1):"
101                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
102                     + "AxArtifactKey:(name=event1,version=0.0.1):"
103                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
104                     + "AxArtifactKey:(name=event1,version=0.0.1):"
105                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
106                     + "AxArtifactKey:(name=event2,version=0.0.1):"
107                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
108                     + "AxArtifactKey:(name=event2,version=0.0.1):"
109                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
110                     + "********************************";
111
112     private static final String WARNING_MODEL_STRING = "\n" + "***warnings issued during validation of model***\n"
113                     + "AxArtifactKey:(name=event0,version=0.0.1):"
114                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:WARNING:nameSpace on event is blank\n"
115                     + "AxArtifactKey:(name=event0,version=0.0.1):"
116                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
117                     + "AxArtifactKey:(name=event0,version=0.0.1):"
118                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
119                     + "AxArtifactKey:(name=event1,version=0.0.1):"
120                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:WARNING:nameSpace on event is blank\n"
121                     + "AxArtifactKey:(name=event1,version=0.0.1):"
122                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
123                     + "AxArtifactKey:(name=event1,version=0.0.1):"
124                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
125                     + "AxArtifactKey:(name=event2,version=0.0.1):"
126                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:WARNING:nameSpace on event is blank\n"
127                     + "AxArtifactKey:(name=event2,version=0.0.1):"
128                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
129                     + "AxArtifactKey:(name=event2,version=0.0.1):"
130                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
131                     + "********************************";
132
133     private static final String INVALID_MODEL_STRING = "\n" + "***validation of model failed***\n"
134                     + "AxArtifactKey:(name=KeyInfoMapKey,version=0.0.1):"
135                     + "org.onap.policy.apex.model.basicmodel.concepts.AxKeyInformation:INVALID:"
136                     + "keyInfoMap may not be empty\n" + "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=smallEventModel,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 key AxArtifactKey:(name=KeyInfoMapKey,version=0.0.1)\n"
142                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
143                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
144                     + "key information not found for key AxArtifactKey:(name=Schemas,version=0.0.1)\n"
145                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
146                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
147                     + "key information not found for key AxArtifactKey:(name=BigIntType,version=0.0.1)\n"
148                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
149                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
150                     + "key information not found for key AxArtifactKey:(name=BooleanType,version=0.0.1)\n"
151                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
152                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
153                     + "key information not found for key AxArtifactKey:(name=IntType,version=0.0.1)\n"
154                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
155                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
156                     + "key information not found for key AxArtifactKey:(name=MapType,version=0.0.1)\n"
157                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
158                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
159                     + "key information not found for key AxArtifactKey:(name=SetType,version=0.0.1)\n"
160                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
161                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
162                     + "key information not found for key AxArtifactKey:(name=StringType,version=0.0.1)\n"
163                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
164                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
165                     + "key information not found for key AxArtifactKey:(name=smallEventMap,version=0.0.1)\n"
166                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
167                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
168                     + "key information not found for key AxArtifactKey:(name=event0,version=0.0.1)\n"
169                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
170                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
171                     + "key information not found for parent key of key AxReferenceKey:"
172                     + "(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=par0)\n"
173                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
174                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
175                     + "key information not found for parent key of key AxReferenceKey:"
176                     + "(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=par1)\n"
177                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
178                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
179                     + "key information not found for parent key of key AxReferenceKey:"
180                     + "(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=par2)\n"
181                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
182                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
183                     + "key information not found for parent key of key AxReferenceKey:"
184                     + "(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=par3)\n"
185                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
186                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
187                     + "key information not found for parent key of key AxReferenceKey:"
188                     + "(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=par4)\n"
189                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
190                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
191                     + "key information not found for parent key of key AxReferenceKey:"
192                     + "(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=par5)\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 parent key of key AxReferenceKey:"
196                     + "(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=par6)\n"
197                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
198                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
199                     + "key information not found for key AxArtifactKey:(name=event1,version=0.0.1)\n"
200                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
201                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
202                     + "key information not found for parent key of key AxReferenceKey:"
203                     + "(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=theOnlyPar)\n"
204                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
205                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
206                     + "duplicate key AxArtifactKey:(name=event1,version=0.0.1) found\n"
207                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
208                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
209                     + "key information not found for key AxArtifactKey:(name=event1,version=0.0.1)\n"
210                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
211                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
212                     + "duplicate key AxReferenceKey:(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,"
213                     + "localName=theOnlyPar) found\n" + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
214                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
215                     + "key information not found for parent key of key AxReferenceKey:"
216                     + "(parentKeyName=event0,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=theOnlyPar)\n"
217                     + "AxArtifactKey:(name=event0,version=0.0.1):"
218                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
219                     + "AxArtifactKey:(name=event0,version=0.0.1):"
220                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
221                     + "AxArtifactKey:(name=event1,version=0.0.1):"
222                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
223                     + "AxArtifactKey:(name=event1,version=0.0.1):"
224                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
225                     + "AxArtifactKey:(name=event1,version=0.0.1):"
226                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:INVALID:"
227                     + "parent key on parameter field AxReferenceKey:(parentKeyName=event0,parentKeyVersion=0.0.1,"
228                     + "parentLocalName=NULL,localName=theOnlyPar) does not equal event key\n"
229                     + "AxArtifactKey:(name=smallEventMap,version=0.0.1):"
230                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvents:INVALID:"
231                     + "key on event entry key AxArtifactKey:(name=event2,version=0.0.1) does not equal event value key "
232                     + "AxArtifactKey:(name=event1,version=0.0.1)\n" + "AxArtifactKey:(name=event1,version=0.0.1):"
233                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
234                     + "AxArtifactKey:(name=event1,version=0.0.1):"
235                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
236                     + "AxArtifactKey:(name=event1,version=0.0.1):"
237                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:INVALID:"
238                     + "parent key on parameter field AxReferenceKey:(parentKeyName=event0,parentKeyVersion=0.0.1,"
239                     + "parentLocalName=NULL,localName=theOnlyPar) does not equal event key\n"
240                     + "********************************";
241
242     private static final String INVALID_MODEL_MALSTRUCTURED_STRING = "\n" + "***validation of model failed***\n"
243                     + "AxArtifactKey:(name=KeyInfoMapKey,version=0.0.1):"
244                     + "org.onap.policy.apex.model.basicmodel.concepts.AxKeyInformation:INVALID:"
245                     + "keyInfoMap may not be empty\n" + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
246                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
247                     + "key information not found for key AxArtifactKey:(name=smallEventModel,version=0.0.1)\n"
248                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
249                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
250                     + "key information not found for key AxArtifactKey:(name=KeyInfoMapKey,version=0.0.1)\n"
251                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
252                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
253                     + "key information not found for key AxArtifactKey:(name=Schemas,version=0.0.1)\n"
254                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
255                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
256                     + "key information not found for key AxArtifactKey:(name=SetType,version=0.0.1)\n"
257                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
258                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
259                     + "key information not found for key AxArtifactKey:(name=smallEventMap,version=0.0.1)\n"
260                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
261                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
262                     + "key information not found for key AxArtifactKey:(name=event1,version=0.0.1)\n"
263                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
264                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
265                     + "key information not found for parent key of key AxReferenceKey:"
266                     + "(parentKeyName=event1,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=theOnlyPar)\n"
267                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
268                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
269                     + "duplicate key AxArtifactKey:(name=event1,version=0.0.1) found\n"
270                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
271                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
272                     + "key information not found for key AxArtifactKey:(name=event1,version=0.0.1)\n"
273                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
274                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
275                     + "duplicate key AxReferenceKey:(parentKeyName=event1,parentKeyVersion=0.0.1,"
276                     + "parentLocalName=NULL,localName=theOnlyPar) found\n"
277                     + "AxArtifactKey:(name=smallEventModel,version=0.0.1):"
278                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEventModel:INVALID:"
279                     + "key information not found for parent key of key AxReferenceKey:"
280                     + "(parentKeyName=event1,parentKeyVersion=0.0.1,parentLocalName=NULL,localName=theOnlyPar)\n"
281                     + "AxArtifactKey:(name=event1,version=0.0.1):"
282                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
283                     + "AxArtifactKey:(name=event1,version=0.0.1):"
284                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
285                     + "AxArtifactKey:(name=smallEventMap,version=0.0.1):"
286                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvents:INVALID:"
287                     + "key on event entry key AxArtifactKey:(name=event2,version=0.0.1) does not equal event value key "
288                     + "AxArtifactKey:(name=event1,version=0.0.1)\n" + "AxArtifactKey:(name=event1,version=0.0.1):"
289                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:source on event is blank\n"
290                     + "AxArtifactKey:(name=event1,version=0.0.1):"
291                     + "org.onap.policy.apex.model.eventmodel.concepts.AxEvent:OBSERVATION:target on event is blank\n"
292                     + "********************************";
293 }