d0423eb3a8e632da5c1a67daf16400eca1c13235
[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 TestApexBasicModel {
40     private Connection connection;
41     TestApexModel<AxModel> testApexModel;
42
43     @Before
44     public void setup() throws Exception {
45         Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
46         connection = DriverManager.getConnection("jdbc:derby:memory:apex_test;create=true");
47
48         testApexModel = new TestApexModel<AxModel>(AxModel.class, new TestApexBasicModelCreator());
49     }
50
51     @After
52     public void teardown() throws Exception {
53         connection.close();
54         new File("derby.log").delete();
55     }
56
57     @Test
58     public void testModelValid() throws Exception {
59         final AxValidationResult result = testApexModel.testApexModelValid();
60         assertTrue(result.toString().equals(VALID_MODEL_STRING));
61     }
62
63     @Test
64     public void testApexModelVaidateObservation() throws Exception {
65         try {
66             testApexModel.testApexModelVaidateObservation();
67         } catch (final ApexException e) {
68             assertEquals("model should have observations", e.getMessage());
69         }
70     }
71
72     @Test
73     public void testApexModelVaidateWarning() throws Exception {
74         final AxValidationResult result = testApexModel.testApexModelVaidateWarning();
75         assertTrue(result.toString().equals(WARNING_MODEL_STRING));
76     }
77
78     @Test
79     public void testModelVaidateInvalidModel() throws Exception {
80         final AxValidationResult result = testApexModel.testApexModelVaidateInvalidModel();
81         assertTrue(result.toString().equals(INVALID_MODEL_STRING));
82     }
83
84     @Test
85     public void testModelVaidateMalstructured() throws Exception {
86         final AxValidationResult result = testApexModel.testApexModelVaidateMalstructured();
87         assertTrue(result.toString().equals(INVALID_MODEL_MALSTRUCTURED_STRING));
88     }
89
90     @Test
91     public void testModelWriteReadXML() throws Exception {
92         testApexModel.testApexModelWriteReadXML();
93     }
94
95     @Test
96     public void testModelWriteReadJSON() throws Exception {
97         testApexModel.testApexModelWriteReadJSON();
98     }
99
100     @Test
101     public void testModelWriteReadJPA() throws Exception {
102         final DAOParameters daoParameters = new DAOParameters();
103         daoParameters.setPluginClass("org.onap.policy.apex.model.basicmodel.dao.impl.DefaultApexDao");
104         daoParameters.setPersistenceUnit("DAOTest");
105
106         testApexModel.testApexModelWriteReadJPA(daoParameters);
107     }
108
109     // As there are no real concepts in a basic model, this is as near to a valid model as we can get
110     private static final String VALID_MODEL_STRING = "\n" + "***warnings issued during validation of model***\n"
111             + "AxArtifactKey:(name=FloatKIKey,version=0.0.1):org.onap.policy.apex.model.basicmodel.concepts.AxModel:WARNING:key not found for key information entry\n"
112             + "AxArtifactKey:(name=IntegerKIKey,version=0.0.1):org.onap.policy.apex.model.basicmodel.concepts.AxModel:WARNING:key not found for key information entry\n"
113             + "********************************";
114
115     private static final String WARNING_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.AxModel:WARNING:key not found for key information entry\n"
117             + "AxArtifactKey:(name=IntegerKIKey,version=0.0.1):org.onap.policy.apex.model.basicmodel.concepts.AxModel:WARNING:key not found for key information entry\n"
118             + "AxArtifactKey:(name=Unref0,version=0.0.1):org.onap.policy.apex.model.basicmodel.concepts.AxModel:WARNING:key not found for key information entry\n"
119             + "AxArtifactKey:(name=Unref1,version=0.0.1):org.onap.policy.apex.model.basicmodel.concepts.AxModel:WARNING:key not found for key information entry\n"
120             + "********************************";
121
122     private static final String INVALID_MODEL_STRING = "\n" + "***validation of model failed***\n"
123             + "AxArtifactKey:(name=BasicModelKey,version=0.0.1):org.onap.policy.apex.model.basicmodel.concepts.AxKeyInfo:WARNING:UUID is a zero UUID: 00000000-0000-0000-0000-000000000000\n"
124             + "AxArtifactKey:(name=KeyInfoMapKey,version=0.0.1):org.onap.policy.apex.model.basicmodel.concepts.AxKeyInfo:OBSERVATION:description is blank\n"
125             + "AxArtifactKey:(name=KeyInfoMapKey,version=0.0.1):org.onap.policy.apex.model.basicmodel.concepts.AxKeyInfo:WARNING:UUID is a zero UUID: 00000000-0000-0000-0000-000000000000\n"
126             + "AxArtifactKey:(name=KeyInfoMapKey,version=0.0.1):org.onap.policy.apex.model.basicmodel.concepts.AxKeyInformation:INVALID:duplicate UUID found on keyInfoMap entry AxArtifactKey:(name=KeyInfoMapKey,version=0.0.1):00000000-0000-0000-0000-000000000000\n"
127             + "********************************";
128
129     private static final String INVALID_MODEL_MALSTRUCTURED_STRING = "\n" + "***validation of model failed***\n"
130             + "AxArtifactKey:(name=BasicModelKey,version=0.0.1):org.onap.policy.apex.model.basicmodel.concepts.AxKeyInfo:WARNING:UUID is a zero UUID: 00000000-0000-0000-0000-000000000000\n"
131             + "AxArtifactKey:(name=BasicModelKey,version=0.0.1):org.onap.policy.apex.model.basicmodel.concepts.AxModel:INVALID:key information not found for key AxArtifactKey:(name=KeyInfoMapKey,version=0.0.1)\n"
132             + "********************************";
133 }