Rename test classes in apex-pdp/model,core
[policy/apex-pdp.git] / model / model-api / src / test / java / org / onap / policy / apex / model / modelapi / ModelHandlerFacadeTest.java
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.modelapi;
22
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertNotNull;
25 import static org.junit.Assert.fail;
26
27 import java.io.File;
28 import java.io.IOException;
29 import java.util.Properties;
30
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;
35
36 /**
37  * Test the model handler facade.
38  * @author Liam Fallon (liam.fallon@ericsson.com)
39  */
40 public class ModelHandlerFacadeTest {
41
42     @Test
43     public void testModelHandlerFacade() throws IOException {
44         try {
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());
49         }
50
51         final ApexModel apexModel = new ApexModelFactory().createApexModel(null, false);
52
53         try {
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());
58         }
59
60         final Properties modelProperties = new Properties();
61         final ModelHandlerFacade mhf = new ModelHandlerFacade(apexModel, modelProperties, false);
62         assertNotNull(mhf);
63
64         ApexApiResult result = mhf.loadFromFile("src/test/resources/models/PolicyModel.json");
65         assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
66
67         result = mhf.loadFromFile("src/test/resources/models/PolicyModel.json");
68         assertEquals(ApexApiResult.Result.CONCEPT_EXISTS, result.getResult());
69
70         final String modelString = TextFileUtils.getTextFileAsString("src/test/resources/models/PolicyModel.json");
71
72         result = apexModel.deleteModel();
73         assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
74
75         result = mhf.loadFromString(modelString);
76         assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
77
78         result = mhf.loadFromString(modelString);
79         assertEquals(ApexApiResult.Result.CONCEPT_EXISTS, result.getResult());
80
81         final DaoParameters DaoParameters = new DaoParameters();
82         result = mhf.loadFromDatabase("SomeModel", null, DaoParameters);
83         assertEquals(ApexApiResult.Result.CONCEPT_EXISTS, result.getResult());
84
85         result = apexModel.deleteModel();
86         assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
87
88         result = mhf.loadFromDatabase("SomeModel", null, DaoParameters);
89         assertEquals(ApexApiResult.Result.FAILED, result.getResult());
90
91         result = mhf.saveToDatabase(DaoParameters);
92         assertEquals(ApexApiResult.Result.FAILED, result.getResult());
93
94         result = mhf.readFromUrl("blah://somewhere/over/the/rainbow");
95         assertEquals(ApexApiResult.Result.FAILED, result.getResult());
96
97         result = mhf.loadFromString(modelString);
98         assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
99
100         result = mhf.readFromUrl("http://somewhere/over/the/rainbow");
101         assertEquals(ApexApiResult.Result.CONCEPT_EXISTS, result.getResult());
102
103         final File tempFile = File.createTempFile("ApexModel", "json");
104         tempFile.deleteOnExit();
105
106         result = mhf.writeToUrl("File:///" + tempFile.getCanonicalPath(), false);
107         assertEquals(ApexApiResult.Result.FAILED, result.getResult());
108
109         result = mhf.validate();
110         assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
111
112         result = apexModel.deleteModel();
113         assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
114         result = mhf.validate();
115         assertEquals(ApexApiResult.Result.FAILED, result.getResult());
116
117         result = mhf.compare("src/test/resources/models/NonExistant.json", true, true);
118         assertEquals(ApexApiResult.Result.FAILED, result.getResult());
119
120         result = mhf.compareWithString("zooby", true, true);
121         assertEquals(ApexApiResult.Result.FAILED, result.getResult());
122
123         result = mhf.split("FailSplit", "NonExistantPolicy");
124         assertEquals(ApexApiResult.Result.FAILED, result.getResult());
125
126         result = mhf.split("NonExistantPolicy");
127         assertEquals(ApexApiResult.Result.FAILED, result.getResult());
128
129         result = mhf.merge("src/test/resources/models/NonExistant.json", false);
130         assertEquals(ApexApiResult.Result.FAILED, result.getResult());
131
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());
136
137         result = mhf.loadFromFile("src/test/resources/models/PolicyModel.json");
138         assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
139
140         result = mhf.mergeWithString("@£@$@£", true);
141         assertEquals(ApexApiResult.Result.FAILED, result.getResult());
142
143         result = apexModel.deleteModel();
144         assertEquals(ApexApiResult.Result.SUCCESS, result.getResult());
145         result = mhf.mergeWithString(modelString, false);
146         assertEquals(ApexApiResult.Result.FAILED, result.getResult());
147     }
148 }