add testcase to improve test coverage
[multicloud/framework.git] / artifactbroker / main / src / test / java / org / onap / policy / distribution / main / parameters / TestDistributionParameterGroup.java
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 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.distribution.main.parameters;
22
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertFalse;
25 import static org.junit.Assert.assertTrue;
26 import static org.junit.Assert.fail;
27
28 import java.util.Map;
29
30 import org.junit.Test;
31 import org.onap.policy.common.parameters.GroupValidationResult;
32 import org.onap.policy.distribution.main.testclasses.DummyArtifactForwarderParameterGroup;
33 import org.onap.policy.distribution.main.testclasses.DummyReceptionHandlerParameterGroup;
34 import org.onap.policy.distribution.reception.parameters.ReceptionHandlerConfigurationParameterGroup;
35 import org.onap.policy.distribution.reception.parameters.ReceptionHandlerParameters;
36
37 /**
38  * Class to perform unit test of DistributionParameterGroup.
39  *
40  * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com)
41  */
42 public class TestDistributionParameterGroup {
43     CommonTestData commonTestData = new CommonTestData();
44
45     @Test
46     public void testDistributionParameterGroup() {
47         final RestServerParameters restServerParameters = commonTestData.getRestServerParameters(false);
48         final Map<String, ReceptionHandlerParameters> receptionHandlerParameters =
49                 commonTestData.getReceptionHandlerParameters(false);
50         final Map<String, ReceptionHandlerConfigurationParameterGroup> receptionHandlerConfigurations =
51                 commonTestData.getReceptionHandlerConfigurationParameters(false);
52         final Map<String, ArtifactForwarderConfigurationParameterGroup> forwarderConfigurations =
53                 commonTestData.getArtifactForwarderConfigurationParameters(false);
54
55         final DistributionParameterGroup distributionParameters = new DistributionParameterGroup(
56                 CommonTestData.DISTRIBUTION_GROUP_NAME, restServerParameters, receptionHandlerParameters,
57                 receptionHandlerConfigurations, forwarderConfigurations);
58         final GroupValidationResult validationResult = distributionParameters.validate();
59         assertTrue(validationResult.isValid());
60         assertEquals(restServerParameters.getHost(), distributionParameters.getRestServerParameters().getHost());
61         assertEquals(restServerParameters.getPort(), distributionParameters.getRestServerParameters().getPort());
62         assertEquals(restServerParameters.getUserName(),
63                 distributionParameters.getRestServerParameters().getUserName());
64         assertEquals(restServerParameters.getPassword(),
65                 distributionParameters.getRestServerParameters().getPassword());
66         assertEquals(CommonTestData.DISTRIBUTION_GROUP_NAME, distributionParameters.getName());
67         assertEquals(
68                 receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY).getReceptionHandlerType(),
69                 distributionParameters.getReceptionHandlerParameters().get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
70                         .getReceptionHandlerType());
71         assertEquals(
72                 receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
73                         .getReceptionHandlerClassName(),
74                 distributionParameters.getReceptionHandlerParameters().get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
75                         .getReceptionHandlerClassName());
76         assertEquals(
77                 receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY).getPluginHandlerParameters(),
78                 distributionParameters.getReceptionHandlerParameters().get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
79                         .getPluginHandlerParameters());
80         assertEquals(CommonTestData.MY_STRING_PARAMETER_VALUE,
81                 ((DummyReceptionHandlerParameterGroup) distributionParameters
82                         .getReceptionHandlerConfigurationParameters()
83                         .get(CommonTestData.RECEPTION_CONFIGURATION_PARAMETERS)).getMyStringParameter());
84         assertEquals(CommonTestData.MY_INTEGER_PARAMETER_VALUE,
85                 ((DummyReceptionHandlerParameterGroup) distributionParameters
86                         .getReceptionHandlerConfigurationParameters()
87                         .get(CommonTestData.RECEPTION_CONFIGURATION_PARAMETERS)).getMyIntegerParameter());
88         assertEquals(CommonTestData.MY_BOOLEAN_PARAMETER_VALUE,
89                 ((DummyReceptionHandlerParameterGroup) distributionParameters
90                         .getReceptionHandlerConfigurationParameters()
91                         .get(CommonTestData.RECEPTION_CONFIGURATION_PARAMETERS)).isMyBooleanParameter());
92         assertEquals(CommonTestData.FORWARDER_HOST,
93                 ((DummyArtifactForwarderParameterGroup) distributionParameters.getArtifactForwarderConfigurationParameters()
94                         .get(CommonTestData.FORWARDER_CONFIGURATION_PARAMETERS)).getHostname());
95     }
96
97     @Test
98     public void testDistributionParameterGroup_NullName() {
99         final RestServerParameters restServerParameters = commonTestData.getRestServerParameters(false);
100         final Map<String, ReceptionHandlerParameters> receptionHandlerParameters =
101                 commonTestData.getReceptionHandlerParameters(false);
102         final Map<String, ReceptionHandlerConfigurationParameterGroup> receptionHandlerConfigurations =
103                 commonTestData.getReceptionHandlerConfigurationParameters(false);
104         final Map<String, ArtifactForwarderConfigurationParameterGroup> forwarderConfigurations =
105                 commonTestData.getArtifactForwarderConfigurationParameters(false);
106
107         final DistributionParameterGroup distributionParameters =
108                 new DistributionParameterGroup(null, restServerParameters, receptionHandlerParameters,
109                         receptionHandlerConfigurations, forwarderConfigurations);
110         final GroupValidationResult validationResult = distributionParameters.validate();
111         assertFalse(validationResult.isValid());
112         assertEquals(null, distributionParameters.getName());
113         assertEquals(
114                 receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY).getReceptionHandlerType(),
115                 distributionParameters.getReceptionHandlerParameters().get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
116                         .getReceptionHandlerType());
117         assertEquals(
118                 receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
119                         .getReceptionHandlerClassName(),
120                 distributionParameters.getReceptionHandlerParameters().get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
121                         .getReceptionHandlerClassName());
122         assertEquals(
123                 receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY).getPluginHandlerParameters(),
124                 distributionParameters.getReceptionHandlerParameters().get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
125                         .getPluginHandlerParameters());
126         assertTrue(validationResult.getResult().contains(
127                 "field \"name\" type \"java.lang.String\" value \"null\" INVALID, " + "must be a non-blank string"));
128     }
129
130     @Test
131     public void testDistributionParameterGroup_EmptyName() {
132         final RestServerParameters restServerParameters = commonTestData.getRestServerParameters(false);
133         final Map<String, ReceptionHandlerParameters> receptionHandlerParameters =
134                 commonTestData.getReceptionHandlerParameters(false);
135         final Map<String, ReceptionHandlerConfigurationParameterGroup> receptionHandlerConfigurations =
136                 commonTestData.getReceptionHandlerConfigurationParameters(false);
137         final Map<String, ArtifactForwarderConfigurationParameterGroup> forwarderConfigurations =
138                 commonTestData.getArtifactForwarderConfigurationParameters(false);
139
140         final DistributionParameterGroup distributionParameters =
141                 new DistributionParameterGroup("", restServerParameters, receptionHandlerParameters,
142                         receptionHandlerConfigurations, forwarderConfigurations);
143         final GroupValidationResult validationResult = distributionParameters.validate();
144         assertFalse(validationResult.isValid());
145         assertEquals("", distributionParameters.getName());
146         assertEquals(
147                 receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY).getReceptionHandlerType(),
148                 distributionParameters.getReceptionHandlerParameters().get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
149                         .getReceptionHandlerType());
150         assertEquals(
151                 receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
152                         .getReceptionHandlerClassName(),
153                 distributionParameters.getReceptionHandlerParameters().get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
154                         .getReceptionHandlerClassName());
155         assertEquals(
156                 receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY).getPluginHandlerParameters(),
157                 distributionParameters.getReceptionHandlerParameters().get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
158                         .getPluginHandlerParameters());
159         assertTrue(validationResult.getResult().contains(
160                 "field \"name\" type \"java.lang.String\" value \"\" INVALID, " + "must be a non-blank string"));
161     }
162
163     @Test
164     public void testDistributionParameterGroup_NullReceptionHandlerParameters() {
165         final RestServerParameters restServerParameters = commonTestData.getRestServerParameters(false);
166         final Map<String, ReceptionHandlerConfigurationParameterGroup> receptionHandlerConfigurations =
167                 commonTestData.getReceptionHandlerConfigurationParameters(false);
168         final Map<String, ArtifactForwarderConfigurationParameterGroup> forwarderConfigurations =
169                 commonTestData.getArtifactForwarderConfigurationParameters(false);
170         try {
171             final DistributionParameterGroup distributionParameters =
172                     new DistributionParameterGroup(CommonTestData.DISTRIBUTION_GROUP_NAME, restServerParameters, null,
173                             receptionHandlerConfigurations, forwarderConfigurations);
174             distributionParameters.validate();
175             fail("test should throw an exception here");
176         } catch (final Exception e) {
177             assertTrue(e.getMessage().contains("map parameter \"receptionHandlerParameters\" is null"));
178         }
179
180     }
181
182     @Test
183     public void testDistributionParameterGroup_EmptyReceptionHandlerParameters() {
184         final RestServerParameters restServerParameters = commonTestData.getRestServerParameters(false);
185         final Map<String, ReceptionHandlerParameters> receptionHandlerParameters =
186                 commonTestData.getReceptionHandlerParameters(true);
187         final Map<String, ReceptionHandlerConfigurationParameterGroup> receptionHandlerConfigurations =
188                 commonTestData.getReceptionHandlerConfigurationParameters(false);
189         final Map<String, ArtifactForwarderConfigurationParameterGroup> forwarderConfigurations =
190                 commonTestData.getArtifactForwarderConfigurationParameters(false);
191         final DistributionParameterGroup distributionParameters = new DistributionParameterGroup(
192                 CommonTestData.DISTRIBUTION_GROUP_NAME, restServerParameters, receptionHandlerParameters,
193                 receptionHandlerConfigurations, forwarderConfigurations);
194         distributionParameters.validate();
195         final GroupValidationResult result = distributionParameters.validate();
196         assertFalse(result.isValid());
197         assertTrue(result.getResult().endsWith("must have at least one reception handler\n"));
198     }
199
200     @Test
201     public void testDistributionParameterGroup_EmptyRestServerParameters() {
202         final RestServerParameters restServerParameters = commonTestData.getRestServerParameters(true);
203         final Map<String, ReceptionHandlerParameters> receptionHandlerParameters =
204                 commonTestData.getReceptionHandlerParameters(false);
205         final Map<String, ReceptionHandlerConfigurationParameterGroup> receptionHandlerConfigurations =
206                 commonTestData.getReceptionHandlerConfigurationParameters(false);
207         final Map<String, ArtifactForwarderConfigurationParameterGroup> forwarderConfigurations =
208                 commonTestData.getArtifactForwarderConfigurationParameters(false);
209
210         final DistributionParameterGroup distributionParameters = new DistributionParameterGroup(
211                 CommonTestData.DISTRIBUTION_GROUP_NAME, restServerParameters, receptionHandlerParameters,
212                 receptionHandlerConfigurations, forwarderConfigurations);
213         final GroupValidationResult validationResult = distributionParameters.validate();
214         assertFalse(validationResult.isValid());
215         assertTrue(validationResult.getResult()
216                 .contains("\"org.onap.policy.distribution.main.parameters.RestServerParameters\" INVALID, "
217                         + "parameter group has status INVALID"));
218     }
219 }