aa106a69598d751727ff9099ad8b2956b5852ad4
[policy/apex-pdp.git] /
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.service.engine.parameters;
22
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.fail;
25
26 import org.junit.Test;
27 import org.onap.policy.apex.service.engine.main.ApexCommandLineArguments;
28 import org.onap.policy.apex.service.parameters.ApexParameterException;
29 import org.onap.policy.apex.service.parameters.ApexParameterHandler;
30 import org.onap.policy.apex.service.parameters.ApexParameters;
31
32 /**
33  * Test for an empty parameter file.
34  * 
35  * @author Liam Fallon (liam.fallon@ericsson.com)
36  */
37 public class ExecutorParameterTests {
38
39     @Test
40     public void noParamsTest() {
41         final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorNoParams.json"};
42         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
43
44         try {
45             final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
46             assertEquals(0,
47                     parameters.getEngineServiceParameters().getEngineParameters().getExecutorParameterMap().size());
48         } catch (final ApexParameterException e) {
49             fail("This test should not throw any exception: " + e.getMessage());
50         }
51     }
52
53     @Test
54     public void badParamsTest() {
55         final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorBadParams.json"};
56         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
57
58         try {
59             new ApexParameterHandler().getParameters(arguments);
60             fail("This test should throw an exception");
61         } catch (final ApexParameterException e) {
62             assertEquals(
63                     "error reading parameters from \"src/test/resources/parameters/serviceExecutorBadParams.json\"\n"
64                             + "(ApexParameterRuntimeException):value of \"executorParameters:ZOOBY\" entry is not "
65                             + "a parameter JSON object",
66                     e.getMessage());
67         }
68     }
69
70     @Test
71     public void noExecutorParamsTest() {
72         final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorNoExecutorParams.json"};
73         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
74
75         try {
76             new ApexParameterHandler().getParameters(arguments);
77             fail("This test should throw an exception");
78         } catch (final ApexParameterException e) {
79             assertEquals("error reading parameters from "
80                     + "\"src/test/resources/parameters/serviceExecutorNoExecutorParams.json\"\n"
81                     + "(ApexParameterRuntimeException):no \"executorParameters\" entry found in parameters,"
82                     + " at least one executor parameter entry must be specified", e.getMessage());
83         }
84     }
85
86     @Test
87     public void emptyParamsTest() {
88         final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorEmptyParams.json"};
89         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
90
91         try {
92             new ApexParameterHandler().getParameters(arguments);
93             fail("This test should throw an exception");
94         } catch (final ApexParameterException e) {
95             assertEquals("error reading parameters from "
96                     + "\"src/test/resources/parameters/serviceExecutorEmptyParams.json\"\n"
97                     + "(ApexParameterRuntimeException):could not find field \"parameterClassName\" "
98                     + "in \"executorParameters:ZOOBY\" entry", e.getMessage());
99         }
100     }
101
102     @Test
103     public void badPluginParamNameTest() {
104         final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorBadPluginNameParams.json"};
105         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
106
107         try {
108             new ApexParameterHandler().getParameters(arguments);
109             fail("This test should throw an exception");
110         } catch (final ApexParameterException e) {
111             assertEquals("error reading parameters from "
112                     + "\"src/test/resources/parameters/serviceExecutorBadPluginNameParams.json\"\n"
113                     + "(ApexParameterRuntimeException):could not find field \"parameterClassName\" "
114                     + "in \"executorParameters:ZOOBY\" entry", e.getMessage());
115         }
116     }
117
118     @Test
119     public void badPluginParamObjectTest() {
120         final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorBadPluginValueObjectParams.json"};
121         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
122
123         try {
124             new ApexParameterHandler().getParameters(arguments);
125             fail("This test should throw an exception");
126         } catch (final ApexParameterException e) {
127             assertEquals("error reading parameters from "
128                     + "\"src/test/resources/parameters/serviceExecutorBadPluginValueObjectParams.json\"\n"
129                     + "(ApexParameterRuntimeException):value for field \"parameterClassName\" "
130                     + "in \"executorParameters:LOOBY\" entry is not a plain string", e.getMessage());
131         }
132     }
133
134     @Test
135     public void badPluginParamBlankTest() {
136         final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorBadPluginValueBlankParams.json"};
137         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
138
139         try {
140             new ApexParameterHandler().getParameters(arguments);
141             fail("This test should throw an exception");
142         } catch (final ApexParameterException e) {
143             assertEquals("error reading parameters from "
144                     + "\"src/test/resources/parameters/serviceExecutorBadPluginValueBlankParams.json\"\n"
145                     + "(ApexParameterRuntimeException):value for field \"parameterClassName\" "
146                     + "in \"executorParameters:LOOBY\" entry is not specified or is blank", e.getMessage());
147         }
148     }
149
150
151     @Test
152     public void badPluginParamValueTest() {
153         final String[] args = {"-c", "src/test/resources/parameters/serviceExecutorBadPluginValueParams.json"};
154         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
155
156         try {
157             new ApexParameterHandler().getParameters(arguments);
158             fail("This test should throw an exception");
159         } catch (final ApexParameterException e) {
160             assertEquals("error reading parameters from"
161                     + " \"src/test/resources/parameters/serviceExecutorBadPluginValueParams.json\"\n"
162                     + "(ApexParameterRuntimeException):failed to deserialize the parameters "
163                     + "for \"executorParameters:LOOBY\" to parameter class \"helloworld\"\n"
164                     + "java.lang.ClassNotFoundException: helloworld", e.getMessage());
165         }
166     }
167
168     @Test
169     public void goodParametersTest() {
170         final String[] args = {"-c", "src/test/resources/parameters/goodParams.json"};
171         final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args);
172
173         try {
174             final ApexParameters parameters = new ApexParameterHandler().getParameters(arguments);
175
176             assertEquals("MyApexEngine", parameters.getEngineServiceParameters().getName());
177             assertEquals("0.0.1", parameters.getEngineServiceParameters().getVersion());
178             assertEquals(45, parameters.getEngineServiceParameters().getId());
179             assertEquals(19, parameters.getEngineServiceParameters().getInstanceCount());
180             assertEquals(65522, parameters.getEngineServiceParameters().getDeploymentPort());
181         } catch (final ApexParameterException e) {
182             fail("This test should not throw any exception: " + e.getMessage());
183         }
184     }
185 }