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
9 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 * SPDX-License-Identifier: Apache-2.0
18 * ============LICENSE_END=========================================================
21 package org.onap.policy.apex.model.basicmodel.handling;
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertTrue;
27 import java.sql.Connection;
28 import java.sql.DriverManager;
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;
39 public class TestApexBasicModel {
40 private Connection connection;
41 TestApexModel<AxModel> testApexModel;
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");
48 testApexModel = new TestApexModel<AxModel>(AxModel.class, new TestApexBasicModelCreator());
52 public void teardown() throws Exception {
54 new File("derby.log").delete();
58 public void testModelValid() throws Exception {
59 final AxValidationResult result = testApexModel.testApexModelValid();
60 assertTrue(result.toString().equals(VALID_MODEL_STRING));
64 public void testApexModelVaidateObservation() throws Exception {
66 testApexModel.testApexModelVaidateObservation();
67 } catch (final ApexException e) {
68 assertEquals("model should have observations", e.getMessage());
73 public void testApexModelVaidateWarning() throws Exception {
74 final AxValidationResult result = testApexModel.testApexModelVaidateWarning();
75 assertTrue(result.toString().equals(WARNING_MODEL_STRING));
79 public void testModelVaidateInvalidModel() throws Exception {
80 final AxValidationResult result = testApexModel.testApexModelVaidateInvalidModel();
81 assertTrue(result.toString().equals(INVALID_MODEL_STRING));
85 public void testModelVaidateMalstructured() throws Exception {
86 final AxValidationResult result = testApexModel.testApexModelVaidateMalstructured();
87 assertTrue(result.toString().equals(INVALID_MODEL_MALSTRUCTURED_STRING));
91 public void testModelWriteReadXML() throws Exception {
92 testApexModel.testApexModelWriteReadXML();
96 public void testModelWriteReadJSON() throws Exception {
97 testApexModel.testApexModelWriteReadJSON();
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");
106 testApexModel.testApexModelWriteReadJPA(daoParameters);
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 + "********************************";
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 + "********************************";
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 + "********************************";
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 + "********************************";