94a36844f22fe56149349b947418069e862c5357
[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.contextmodel.handling;
22
23 import static org.junit.Assert.assertTrue;
24
25 import java.io.File;
26 import java.sql.Connection;
27 import java.sql.DriverManager;
28
29 import org.junit.After;
30 import org.junit.Before;
31 import org.junit.Test;
32 import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult;
33 import org.onap.policy.apex.model.basicmodel.dao.DaoParameters;
34 import org.onap.policy.apex.model.basicmodel.test.TestApexModel;
35 import org.onap.policy.apex.model.contextmodel.concepts.AxContextModel;
36
37 /**
38  * Apex context model tests.
39  * 
40  * @author liam
41  *
42  */
43 public class TestApexContextModel {
44     private Connection connection;
45     TestApexModel<AxContextModel> testApexModel;
46
47     /**
48      * Set up tests.
49      * 
50      * @throws Exception a testing exception
51      */
52     @Before
53     public void setup() throws Exception {
54         Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
55         connection = DriverManager.getConnection("jdbc:derby:memory:apex_test;create=true");
56
57         testApexModel = new TestApexModel<AxContextModel>(AxContextModel.class, new TestApexContextModelCreator());
58     }
59
60     @After
61     public void teardown() throws Exception {
62         connection.close();
63         new File("derby.log").delete();
64     }
65
66     @Test
67     public void testModelValid() throws Exception {
68         final AxValidationResult result = testApexModel.testApexModelValid();
69         assertTrue(result.toString().equals(VALID_MODEL_STRING));
70     }
71
72     @Test
73     public void testApexModelVaidateObservation() throws Exception {
74         final AxValidationResult result = testApexModel.testApexModelVaidateObservation();
75         assertTrue(result.toString().equals(OBSERVATION_MODEL_STRING));
76     }
77
78     @Test
79     public void testApexModelVaidateWarning() throws Exception {
80         final AxValidationResult result = testApexModel.testApexModelVaidateWarning();
81         assertTrue(result.toString().equals(WARNING_MODEL_STRING));
82     }
83
84     @Test
85     public void testModelVaidateInvalidModel() throws Exception {
86         final AxValidationResult result = testApexModel.testApexModelVaidateInvalidModel();
87         assertTrue(result.toString().equals(INVALID_MODEL_STRING));
88     }
89
90     @Test
91     public void testModelVaidateMalstructured() throws Exception {
92         final AxValidationResult result = testApexModel.testApexModelVaidateMalstructured();
93         assertTrue(result.toString().equals(INVALID_MODEL_MALSTRUCTURED_STRING));
94     }
95
96     @Test
97     public void testModelWriteReadXml() throws Exception {
98         testApexModel.testApexModelWriteReadXml();
99     }
100
101     @Test
102     public void testModelWriteReadJson() throws Exception {
103         testApexModel.testApexModelWriteReadJson();
104     }
105
106     @Test
107     public void testModelWriteReadJpa() throws Exception {
108         final DaoParameters DaoParameters = new DaoParameters();
109         DaoParameters.setPluginClass("org.onap.policy.apex.model.basicmodel.dao.impl.DefaultApexDao");
110         DaoParameters.setPersistenceUnit("DAOTest");
111
112         testApexModel.testApexModelWriteReadJpa(DaoParameters);
113     }
114
115     private static final String VALID_MODEL_STRING = "***validation of model successful***";
116
117     private static final String OBSERVATION_MODEL_STRING = "\n"
118                     + "***observations noted during validation of model***\n"
119                     + "AxArtifactKey:(name=contextAlbum1,version=0.0.1):"
120                     + "org.onap.policy.apex.model.basicmodel.concepts.AxKeyInfo:OBSERVATION:description is blank\n"
121                     + "********************************";
122
123     private static final String WARNING_MODEL_STRING = "\n" + "***warnings issued during validation of model***\n"
124                     + "AxArtifactKey:(name=contextAlbum1,version=0.0.1):"
125                     + "org.onap.policy.apex.model.basicmodel.concepts.AxKeyInfo:WARNING:"
126                     + "UUID is a zero UUID: 00000000-0000-0000-0000-000000000000\n"
127                     + "********************************";
128
129     private static final String INVALID_MODEL_STRING = "\n" + "***validation of model failed***\n"
130                     + "AxArtifactKey:(name=StringType,version=0.0.1):"
131                     + "org.onap.policy.apex.model.contextmodel.concepts.AxContextSchema:INVALID:"
132                     + "no schemaDefinition specified, schemaDefinition may not be blank\n"
133                     + "AxArtifactKey:(name=contextAlbum0,version=0.0.1):"
134                     + "org.onap.policy.apex.model.contextmodel.concepts.AxContextAlbum:INVALID:"
135                     + "scope is not defined\n" + "********************************";
136
137     private static final String INVALID_MODEL_MALSTRUCTURED_STRING = "\n" + "***validation of model failed***\n"
138                     + "AxArtifactKey:(name=ContextModel,version=0.0.1):"
139                     + "org.onap.policy.apex.model.contextmodel.concepts.AxContextModel:INVALID:"
140                     + "key information not found for key AxArtifactKey:(name=contextAlbum1,version=0.0.2)\n"
141                     + "AxArtifactKey:(name=contextAlbum1,version=0.0.1):"
142                     + "org.onap.policy.apex.model.contextmodel.concepts.AxContextModel:WARNING:"
143                     + "key not found for key information entry\n" + "AxArtifactKey:(name=ContextSchemas,version=0.0.1):"
144                     + "org.onap.policy.apex.model.contextmodel.concepts.AxContextSchemas:INVALID:"
145                     + "key on schemas entry AxArtifactKey:(name=MapType,version=0.0.1) "
146                     + "does not equal entry key AxArtifactKey:(name=MapType,version=0.0.2)\n"
147                     + "AxArtifactKey:(name=contextAlbums,version=0.0.1):"
148                     + "org.onap.policy.apex.model.contextmodel.concepts.AxContextAlbums:INVALID:"
149                     + "key on context album entry key AxArtifactKey:(name=contextAlbum1,version=0.0.1) "
150                     + "does not equal context album value key AxArtifactKey:(name=contextAlbum1,version=0.0.2)\n"
151                     + "********************************";
152
153 }