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.modelapi;
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertNotNull;
25 import static org.junit.Assert.fail;
28 import java.io.IOException;
29 import java.util.Properties;
31 import org.junit.Test;
32 import org.onap.policy.apex.model.basicmodel.dao.DaoParameters;
33 import org.onap.policy.apex.model.modelapi.impl.ModelHandlerFacade;
34 import org.onap.policy.apex.model.utilities.TextFileUtils;
37 * Test the model handler facade.
38 * @author Liam Fallon (liam.fallon@ericsson.com)
40 public class ModelHandlerFacadeTest {
43 public void testModelHandlerFacade() throws IOException {
45 new ModelHandlerFacade(null, null, false);
46 fail("test should throw an exception here");
47 } catch (final Exception e) {
48 assertEquals("apexModel may not be null", e.getMessage());
51 final ApexModel apexModel = new ApexModelFactory().createApexModel(null, false);
54 new ModelHandlerFacade(apexModel, null, false);
55 fail("test should throw an exception here");
56 } catch (final Exception e) {
57 assertEquals("apexProperties may not be null", e.getMessage());
60 final Properties modelProperties = new Properties();
61 final ModelHandlerFacade mhf = new ModelHandlerFacade(apexModel, modelProperties, false);
64 ApexApiResult result = mhf.loadFromFile("src/test/resources/models/PolicyModel.json");
65 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
67 result = mhf.loadFromFile("src/test/resources/models/PolicyModel.json");
68 assertEquals(ApexApiResult.Result.CONCEPT_EXISTS, result.getResult());
70 final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
72 result = apexModel.deleteModel();
73 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
75 result = mhf.loadFromString(modelString);
76 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
78 result = mhf.loadFromString(modelString);
79 assertEquals(ApexApiResult.Result.CONCEPT_EXISTS, result.getResult());
81 final DaoParameters DaoParameters = new DaoParameters();
82 result = mhf.loadFromDatabase("SomeModel", null, DaoParameters);
83 assertEquals(ApexApiResult.Result.CONCEPT_EXISTS, result.getResult());
85 result = apexModel.deleteModel();
86 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
88 result = mhf.loadFromDatabase("SomeModel", null, DaoParameters);
89 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
91 result = mhf.saveToDatabase(DaoParameters);
92 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
94 result = mhf.readFromUrl("blah://somewhere/over/the/rainbow");
95 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
97 result = mhf.loadFromString(modelString);
98 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
100 result = mhf.readFromUrl("http://somewhere/over/the/rainbow");
101 assertEquals(ApexApiResult.Result.CONCEPT_EXISTS, result.getResult());
103 final File tempFile = File.createTempFile("ApexModel", "json");
104 tempFile.deleteOnExit();
106 result = mhf.writeToUrl("File:///" + tempFile.getCanonicalPath(), false);
107 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
109 result = mhf.validate();
110 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
112 result = apexModel.deleteModel();
113 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
114 result = mhf.validate();
115 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
117 result = mhf.compare("src/test/resources/models/NonExistant.json", true, true);
118 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
120 result = mhf.compareWithString("zooby", true, true);
121 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
123 result = mhf.split("FailSplit", "NonExistantPolicy");
124 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
126 result = mhf.split("NonExistantPolicy");
127 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
129 result = mhf.merge("src/test/resources/models/NonExistant.json", false);
130 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
132 result = apexModel.deleteModel();
133 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
134 result = mhf.merge("src/test/resources/models/PolicyModel.json", false);
135 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
137 result = mhf.loadFromFile("src/test/resources/models/PolicyModel.json");
138 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
140 result = mhf.mergeWithString("@£@$@£", true);
141 assertEquals(ApexApiResult.Result.FAILED, result.getResult());
143 result = apexModel.deleteModel();
144 assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
145 result = mhf.mergeWithString(modelString, false);
146 assertEquals(ApexApiResult.Result.FAILED, result.getResult());