Replace try/catch with assertj
[policy/apex-pdp.git] / services / services-engine / src / test / java / org / onap / policy / apex / service / engine / parameters / ContextParameterTests.java
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2016-2018 Ericsson. All rights reserved.
4  *  Modifications Copyright (C) 2020 Nordix Foundation.
5  * ================================================================================
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *      http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  * SPDX-License-Identifier: Apache-2.0
19  * ============LICENSE_END=========================================================
20  */
21
22 package org.onap.policy.apex.service.engine.parameters;
23
24 import static org.assertj.core.api.Assertions.assertThatThrownBy;
25 import static org.junit.Assert.assertEquals;
26 import static org.junit.Assert.fail;
27
28 import org.junit.Test;
29 import org.onap.policy.apex.service.engine.main.ApexCommandLineArguments;
30 import org.onap.policy.apex.service.engine.parameters.dummyclasses.SuperDooperDistributorParameters;
31 import org.onap.policy.apex.service.parameters.ApexParameterHandler;
32 import org.onap.policy.apex.service.parameters.ApexParameters;
33 import org.onap.policy.common.parameters.ParameterException;
34
35 /**
36  * Test for an empty parameter file.
37  *
38  * @author Liam Fallon (liam.fallon@ericsson.com)
39  */
40 public class ContextParameterTests {
41
42     @Test
43     public void testNoParamsTest() {
44         final String[] args = {"-c", "src/test/resources/parameters/serviceContextNoParams.json"};
45         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
46
47         assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments))
48             .hasMessage("error reading parameters from \"src/test/resources/parameters/serviceContextNoParams.json\"\n"
49                     + "(ParameterRuntimeException):could not find field \"parameterClassName\" in "
50                     + "\"contextParameters\" entry");
51     }
52
53     @Test
54     public void testBadParamsTest() {
55         final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadParams.json"};
56         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
57
58         assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments))
59             .hasMessage("error reading parameters from \"src/test/resources/parameters/serviceContextBadParams.json\""
60                     + "\n(ParameterRuntimeException):failed to deserialize the parameters for "
61                     + "\"contextParameters\" to parameter class "
62                     + "\"hello\"\njava.lang.ClassNotFoundException: hello");
63     }
64
65     @Test
66     public void testBadPluginParamNameTest() {
67         final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadPluginNameParams.json"};
68         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
69
70         assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments))
71             .hasMessage("error reading parameters from "
72                 + "\"src/test/resources/parameters/serviceContextBadPluginNameParams.json\"\n"
73                 + "(ParameterRuntimeException):could not find field \"parameterClassName\" in "
74                 + "\"contextParameters\" entry");
75     }
76
77     @Test
78     public void testBadClassParamTest() {
79         final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadClassParams.json"};
80         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
81
82         assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments))
83             .hasMessage("error reading parameters from "
84                 + "\"src/test/resources/parameters/serviceContextBadClassParams.json\""
85                 + "\n(ParameterRuntimeException):failed to deserialize "
86                 + "the parameters for \"contextParameters\""
87                 + " to parameter class \"java.lang.Integer\"\ncom.google.gson.JsonSyntaxException: "
88                 + "java.lang.IllegalStateException: Expected NUMBER but was BEGIN_OBJECT at path $");
89     }
90
91     @Test
92     public void testBadPluginClassTest() {
93         final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadPluginClassParams.json"};
94         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
95
96         assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments))
97             .hasMessage("error reading parameters from "
98                 + "\"src/test/resources/parameters/serviceContextBadPluginClassParams.json\""
99                 + "\n(ClassCastException):class org.onap.policy.apex.service.engine.parameters."
100                 + "dummyclasses.SuperDooperExecutorParameters"
101                 + " cannot be cast to class org.onap.policy.apex.context.parameters.ContextParameters "
102                 + "(org.onap.policy.apex.service.engine.parameters.dummyclasses.SuperDooperExecutorParameters and "
103                 + "org.onap.policy.apex.context.parameters.ContextParameters are "
104                 + "in unnamed module of loader 'app')");
105     }
106
107     @Test
108     public void testOkFlushParamTest() throws ParameterException {
109         final String[] args = {"-c", "src/test/resources/parameters/serviceContextOKFlushParams.json"};
110         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
111
112         final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
113         assertEquals("org.onap.policy.apex.context.parameters.ContextParameters", parameters
114                .getEngineServiceParameters().getEngineParameters().getContextParameters().getClass().getName());
115         assertEquals(123456, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
116                .getPersistorParameters().getFlushPeriod());
117
118     }
119
120     @Test
121     public void testOkDefaultParamTest() throws ParameterException {
122         final String[] args = {"-c", "src/test/resources/parameters/serviceContextOKDefaultParams.json"};
123         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
124
125         final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
126         assertEquals("org.onap.policy.apex.context.parameters.ContextParameters", parameters
127                 .getEngineServiceParameters().getEngineParameters().getContextParameters().getClass().getName());
128         assertEquals(300000, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
129                 .getPersistorParameters().getFlushPeriod());
130
131     }
132
133     @Test
134     public void testOkDistParamTest() throws ParameterException {
135         final String[] args = {"-c", "src/test/resources/parameters/serviceContextOKDistParams.json"};
136         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
137
138         final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
139         assertEquals("org.onap.policy.apex.context.parameters.ContextParameters", parameters
140                 .getEngineServiceParameters().getEngineParameters().getContextParameters().getClass().getName());
141         assertEquals("org.onap.policy.apex.context.parameters.DistributorParameters",
142                 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
143                         .getDistributorParameters().getClass().getName());
144
145     }
146
147     @Test
148     public void testOkFullDefaultParamTest() throws ParameterException {
149         final String[] args = {"-c", "src/test/resources/parameters/goodParams.json"};
150         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
151
152         final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
153         assertEquals("org.onap.policy.apex.context.parameters.ContextParameters", parameters
154                 .getEngineServiceParameters().getEngineParameters().getContextParameters().getClass().getName());
155         assertEquals("org.onap.policy.apex.context.parameters.DistributorParameters",
156                 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
157                         .getDistributorParameters().getClass().getName());
158         assertEquals("org.onap.policy.apex.context.parameters.LockManagerParameters",
159                 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
160                         .getLockManagerParameters().getClass().getName());
161         assertEquals("org.onap.policy.apex.context.parameters.PersistorParameters",
162                 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
163                         .getPersistorParameters().getClass().getName());
164         assertEquals(300000, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
165                 .getPersistorParameters().getFlushPeriod());
166
167     }
168
169     @Test
170     public void testOkFullParamTest() throws ParameterException {
171         final String[] args = {"-c", "src/test/resources/parameters/serviceContextOKFullParams.json"};
172         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
173
174         final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
175         assertEquals("org.onap.policy.apex.context.parameters.ContextParameters", parameters
176                 .getEngineServiceParameters().getEngineParameters().getContextParameters().getClass().getName());
177         assertEquals("org.onap.policy.apex.context.parameters.LockManagerParameters",
178                 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
179                         .getLockManagerParameters().getClass().getName());
180         assertEquals("org.onap.policy.apex.context.parameters.PersistorParameters",
181                 parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
182                         .getPersistorParameters().getClass().getName());
183         assertEquals(123456, parameters.getEngineServiceParameters().getEngineParameters().getContextParameters()
184                 .getPersistorParameters().getFlushPeriod());
185
186         final SuperDooperDistributorParameters infinispanParameters =
187                 (SuperDooperDistributorParameters) parameters.getEngineServiceParameters().getEngineParameters()
188                         .getContextParameters().getDistributorParameters();
189         assertEquals("org.onap.policy.apex.service.engine.parameters.dummyclasses.SuperDooperDistributorParameters",
190                 infinispanParameters.getClass().getName());
191         assertEquals("my/lovely/configFile.xml", infinispanParameters.getConfigFile());
192         assertEquals("holy/stone.xml", infinispanParameters.getJgroupsFile());
193         assertEquals(false, infinispanParameters.isPreferIPv4Stack());
194         assertEquals("fatherted", infinispanParameters.getJgroupsBindAddress());
195
196     }
197
198     @Test
199     public void testBadClassDistParamTest() {
200         final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadClassDistParams.json"};
201         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
202
203         assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments))
204             .hasMessage("error reading parameters from "
205                 + "\"src/test/resources/parameters/serviceContextBadClassDistParams.json\"\n"
206                 + "(ClassCastException):class "
207                 + "org.onap.policy.apex.context.parameters.ContextParameters cannot be cast to class"
208                 + " org.onap.policy.apex.context.parameters.DistributorParameters (org.onap.policy.apex.context."
209                 + "parameters.ContextParameters and org.onap.policy.apex.context.parameters.DistributorParameters "
210                 + "are in unnamed module of loader 'app')");
211     }
212
213     @Test
214     public void testBadClassLockParamTest() {
215         final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadClassLockParams.json"};
216         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
217
218         assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments))
219             .hasMessage("error reading parameters from "
220                 + "\"src/test/resources/parameters/serviceContextBadClassLockParams.json\"\n"
221                 + "(ClassCastException):class "
222                 + "org.onap.policy.apex.context.parameters.ContextParameters cannot be cast to class "
223                 + "org.onap.policy.apex.context.parameters.LockManagerParameters (org.onap.policy.apex.context."
224                 + "parameters.ContextParameters and org.onap.policy.apex.context.parameters.LockManagerParameters "
225                 + "are in unnamed module of loader 'app')");
226     }
227
228     @Test
229     public void testBadClassPersistParamTest() {
230         final String[] args = {"-c", "src/test/resources/parameters/serviceContextBadClassPersistParams.json"};
231         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
232
233         assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments))
234             .hasMessage("error reading parameters from "
235                 + "\"src/test/resources/parameters/serviceContextBadClassPersistParams.json\"\n"
236                 + "(ClassCastException):class "
237                 + "org.onap.policy.apex.context.parameters.ContextParameters cannot be cast to class "
238                 + "org.onap.policy.apex.context.parameters.PersistorParameters (org.onap.policy.apex.context."
239                 + "parameters.ContextParameters and org.onap.policy.apex.context.parameters.PersistorParameters "
240                 + "are in unnamed module of loader 'app')");
241     }
242 }