a89be5477da4fbb8ba4fffbd15989ebc36aa7ce1
[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.basicmodel.handling;
22
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertTrue;
25
26 import java.io.File;
27 import java.sql.Connection;
28 import java.sql.DriverManager;
29
30 import org.junit.After;
31 import org.junit.Before;
32 import org.junit.Test;
33 import org.onap.policy.apex.model.basicmodel.concepts.ApexException;
34 import org.onap.policy.apex.model.basicmodel.concepts.AxModel;
35 import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult;
36 import org.onap.policy.apex.model.basicmodel.dao.DaoParameters;
37 import org.onap.policy.apex.model.basicmodel.test.TestApexModel;
38
39 public class SupportApexBasicModelTester {
40     private Connection connection;
41     TestApexModel<AxModel> testApexModel;
42
43     /**
44      * Set up the test.
45      * 
46      * @throws Exception any exception thrown by the test
47      */
48     @Before
49     public void setup() throws Exception {
50         Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
51         connection = DriverManager.getConnection("jdbc:derby:memory:apex_test;create=true");
52
53         testApexModel = new TestApexModel<AxModel>(AxModel.class, new DummyApexBasicModelCreator());
54     }
55
56     @After
57     public void teardown() throws Exception {
58         connection.close();
59         new File("derby.log").delete();
60     }
61
62     @Test
63     public void testModelValid() throws Exception {
64         final AxValidationResult result = testApexModel.testApexModelValid();
65         assertTrue(result.toString().equals(VALID_MODEL_STRING));
66     }
67
68     @Test
69     public void testApexModelVaidateObservation() throws Exception {
70         try {
71             testApexModel.testApexModelVaidateObservation();
72         } catch (final ApexException e) {
73             assertEquals("model should have observations", e.getMessage());
74         }
75     }
76
77     @Test
78     public void testApexModelVaidateWarning() throws Exception {
79         final AxValidationResult result = testApexModel.testApexModelVaidateWarning();
80         assertTrue(result.toString().equals(WARNING_MODEL_STRING));
81     }
82
83     @Test
84     public void testModelVaidateInvalidModel() throws Exception {
85         final AxValidationResult result = testApexModel.testApexModelVaidateInvalidModel();
86         assertTrue(result.toString().equals(INVALID_MODEL_STRING));
87     }
88
89     @Test
90     public void testModelVaidateMalstructured() throws Exception {
91         final AxValidationResult result = testApexModel.testApexModelVaidateMalstructured();
92         assertTrue(result.toString().equals(INVALID_MODEL_MALSTRUCTURED_STRING));
93     }
94
95     @Test
96     public void testModelWriteReadXml() throws Exception {
97         testApexModel.testApexModelWriteReadXml();
98     }
99
100     @Test
101     public void testModelWriteReadJson() throws Exception {
102         testApexModel.testApexModelWriteReadJson();
103     }
104
105     @Test
106     public void testModelWriteReadJpa() throws Exception {
107         final DaoParameters daoParameters = new DaoParameters();
108         daoParameters.setPluginClass("org.onap.policy.apex.model.basicmodel.dao.impl.DefaultApexDao");
109         daoParameters.setPersistenceUnit("DaoTest");
110
111         testApexModel.testApexModelWriteReadJpa(daoParameters);
112     }
113
114     // As there are no real concepts in a basic model, this is as near to a valid model as we can get
115     private static final String VALID_MODEL_STRING = "\n" + "***warnings issued during validation of model***\n"
116                     + "AxArtifactKey:(name=FloatKIKey,version=0.0.1):org.onap.policy.apex.model.basicmodel.concepts"
117                     + ".AxModel:WARNING:key not found for key information entry\n"
118                     + "AxArtifactKey:(name=IntegerKIKey,version=0.0.1):org.onap.policy.apex.model.basicmodel.concepts"
119                     + ".AxModel:WARNING:key not found for key information entry\n" + "********************************";
120
121     private static final String WARNING_MODEL_STRING = "\n" + "***warnings issued during validation of model***\n"
122                     + "AxArtifactKey:(name=FloatKIKey,version=0.0.1):org.onap.policy.apex.model.basicmodel.concepts"
123                     + ".AxModel:WARNING:key not found for key information entry\n"
124                     + "AxArtifactKey:(name=IntegerKIKey,version=0.0.1):org.onap.policy.apex.model.basicmodel.concepts"
125                     + ".AxModel:WARNING:key not found for key information entry\n"
126                     + "AxArtifactKey:(name=Unref0,version=0.0.1):org.onap.policy.apex.model.basicmodel.concepts"
127                     + ".AxModel:WARNING:key not found for key information entry\n"
128                     + "AxArtifactKey:(name=Unref1,version=0.0.1):org.onap.policy.apex.model.basicmodel.concepts"
129                     + ".AxModel:WARNING:key not found for key information entry\n" + "********************************";
130
131     private static final String INVALID_MODEL_STRING = "\n" + "***validation of model failed***\n"
132                     + "AxArtifactKey:(name=BasicModelKey,version=0.0.1):org.onap.policy.apex.model.basicmodel.concepts."
133                     + "AxKeyInfo:WARNING:UUID is a zero UUID: 00000000-0000-0000-0000-000000000000\n"
134                     + "AxArtifactKey:(name=KeyInfoMapKey,version=0.0.1):org.onap.policy.apex.model.basicmodel.concepts."
135                     + "AxKeyInfo:OBSERVATION:description is blank\n"
136                     + "AxArtifactKey:(name=KeyInfoMapKey,version=0.0.1):org.onap.policy.apex.model.basicmodel.concepts."
137                     + "AxKeyInfo:WARNING:UUID is a zero UUID: 00000000-0000-0000-0000-000000000000\n"
138                     + "AxArtifactKey:(name=KeyInfoMapKey,version=0.0.1):org.onap.policy.apex.model.basicmodel.concepts."
139                     + "AxKeyInformation:INVALID:duplicate UUID found on keyInfoMap entry AxArtifactKey:"
140                     + "(name=KeyInfoMapKey,version=0.0.1):00000000-0000-0000-0000-000000000000\n"
141                     + "********************************";
142
143     private static final String INVALID_MODEL_MALSTRUCTURED_STRING = "\n" + "***validation of model failed***\n"
144                     + "AxArtifactKey:(name=BasicModelKey,version=0.0.1):org.onap.policy.apex.model.basicmodel.concepts."
145                     + "AxKeyInfo:WARNING:UUID is a zero UUID: 00000000-0000-0000-0000-000000000000\n"
146                     + "AxArtifactKey:(name=BasicModelKey,version=0.0.1):org.onap.policy.apex.model.basicmodel.concepts."
147                     + "AxModel:INVALID:key information not found for key "
148                     + "AxArtifactKey:(name=KeyInfoMapKey,version=0.0.1)\n" + "********************************";
149 }