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 SupportApexBasicModelTester {
40 private Connection connection;
41 TestApexModel<AxModel> testApexModel;
46 * @throws Exception any exception thrown by the test
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");
53 testApexModel = new TestApexModel<AxModel>(AxModel.class, new DummyApexBasicModelCreator());
57 public void teardown() throws Exception {
59 new File("derby.log").delete();
63 public void testModelValid() throws Exception {
64 final AxValidationResult result = testApexModel.testApexModelValid();
65 assertTrue(result.toString().equals(VALID_MODEL_STRING));
69 public void testApexModelVaidateObservation() throws Exception {
71 testApexModel.testApexModelVaidateObservation();
72 } catch (final ApexException e) {
73 assertEquals("model should have observations", e.getMessage());
78 public void testApexModelVaidateWarning() throws Exception {
79 final AxValidationResult result = testApexModel.testApexModelVaidateWarning();
80 assertTrue(result.toString().equals(WARNING_MODEL_STRING));
84 public void testModelVaidateInvalidModel() throws Exception {
85 final AxValidationResult result = testApexModel.testApexModelVaidateInvalidModel();
86 assertTrue(result.toString().equals(INVALID_MODEL_STRING));
90 public void testModelVaidateMalstructured() throws Exception {
91 final AxValidationResult result = testApexModel.testApexModelVaidateMalstructured();
92 assertTrue(result.toString().equals(INVALID_MODEL_MALSTRUCTURED_STRING));
96 public void testModelWriteReadXml() throws Exception {
97 testApexModel.testApexModelWriteReadXml();
101 public void testModelWriteReadJson() throws Exception {
102 testApexModel.testApexModelWriteReadJson();
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");
111 testApexModel.testApexModelWriteReadJpa(daoParameters);
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" + "********************************";
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" + "********************************";
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 + "********************************";
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" + "********************************";