Change RestServerParameters to BusTopicParams
[policy/xacml-pdp.git] / main / src / test / java / org / onap / policy / pdpx / main / parameters / TestXacmlPdpParameterGroup.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights reserved.
4  * Modifications Copyright (C) 2019 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
23 package org.onap.policy.pdpx.main.parameters;
24
25 import static org.assertj.core.api.Assertions.assertThat;
26 import static org.junit.Assert.assertEquals;
27 import static org.junit.Assert.assertFalse;
28 import static org.junit.Assert.assertTrue;
29
30 import java.io.File;
31 import java.io.IOException;
32 import org.junit.Before;
33 import org.junit.ClassRule;
34 import org.junit.Test;
35 import org.junit.rules.TemporaryFolder;
36 import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
37 import org.onap.policy.common.endpoints.parameters.RestServerParameters;
38 import org.onap.policy.common.endpoints.parameters.TopicParameterGroup;
39 import org.onap.policy.common.parameters.GroupValidationResult;
40
41 /**
42  * Class to perform unit test of XacmlPdpParameterGroup.
43  *
44  */
45 public class TestXacmlPdpParameterGroup {
46     CommonTestData commonTestData = new CommonTestData();
47     private static File applicationPath;
48     private static CommonTestData testData = new CommonTestData();
49
50     @ClassRule
51     public static final TemporaryFolder applicationFolder = new TemporaryFolder();
52
53     @Before
54     public void setupPath() throws IOException {
55         applicationPath = applicationFolder.newFolder();
56     }
57
58     @Test
59     public void testXacmlPdpParameterGroup() throws IOException {
60         final RestServerParameters restServerParameters =
61             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
62         final BusTopicParams policyApiParameters =
63                         testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
64         final TopicParameterGroup topicParameterGroup =
65             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
66         final XacmlPdpParameterGroup pdpxParameters =
67                         new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME,
68                                 CommonTestData.PDPX_GROUP, "flavor", restServerParameters, policyApiParameters,
69                                 topicParameterGroup, applicationPath.getAbsolutePath());
70         final GroupValidationResult validationResult = pdpxParameters.validate();
71         assertThat(validationResult.getResult()).isNull();
72         assertTrue(validationResult.isValid());
73         assertEquals(restServerParameters.getHost(), pdpxParameters.getRestServerParameters().getHost());
74         assertEquals(restServerParameters.getPort(), pdpxParameters.getRestServerParameters().getPort());
75         assertEquals(restServerParameters.getUserName(), pdpxParameters.getRestServerParameters().getUserName());
76         assertEquals(restServerParameters.getPassword(), pdpxParameters.getRestServerParameters().getPassword());
77         assertEquals(CommonTestData.PDPX_PARAMETER_GROUP_NAME, pdpxParameters.getName());
78         assertEquals("flavor", pdpxParameters.getPdpType());
79         assertFalse(pdpxParameters.getRestServerParameters().isHttps());
80         assertFalse(pdpxParameters.getRestServerParameters().isAaf());
81     }
82
83     @Test
84     public void testXacmlPdpParameterGroup_NullParameterGroupName() {
85         final RestServerParameters restServerParameters =
86             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
87         final BusTopicParams policyApiParameters =
88                         testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
89         final TopicParameterGroup topicParameterGroup =
90             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
91         final XacmlPdpParameterGroup pdpxParameters = new XacmlPdpParameterGroup(null, CommonTestData.PDPX_GROUP,
92                 null, restServerParameters, policyApiParameters, topicParameterGroup,
93                 applicationPath.getAbsolutePath());
94         final GroupValidationResult validationResult = pdpxParameters.validate();
95         assertFalse(validationResult.isValid());
96         assertEquals(null, pdpxParameters.getName());
97         assertTrue(validationResult.getResult().contains(
98                 "field \"name\" type \"java.lang.String\" value \"null\" INVALID, " + "must be a non-blank string"));
99     }
100
101     @Test
102     public void testXacmlPdpParameterGroup_EmptyParameterGroupName() {
103         final RestServerParameters restServerParameters =
104             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
105         final BusTopicParams policyApiParameters =
106                         testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
107         final TopicParameterGroup topicParameterGroup =
108             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
109         final XacmlPdpParameterGroup pdpxParameters = new XacmlPdpParameterGroup("", CommonTestData.PDPX_GROUP,
110                 CommonTestData.PDPX_TYPE, restServerParameters, policyApiParameters, topicParameterGroup,
111                 applicationPath.getAbsolutePath());
112         final GroupValidationResult validationResult = pdpxParameters.validate();
113         assertFalse(validationResult.isValid());
114         assertEquals("", pdpxParameters.getName());
115         assertTrue(validationResult.getResult().contains(
116                 "field \"name\" type \"java.lang.String\" value \"\" INVALID, " + "must be a non-blank string"));
117     }
118
119     @Test
120     public void testXacmlPdpParameterGroup_NullPdpGroup() {
121         final RestServerParameters restServerParameters =
122             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
123         final BusTopicParams policyApiParameters =
124                         testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
125         final TopicParameterGroup topicParameterGroup =
126             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
127         final XacmlPdpParameterGroup pdpxParameters =
128                 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, null, null, restServerParameters,
129                         policyApiParameters, topicParameterGroup, applicationPath.getAbsolutePath());
130         final GroupValidationResult validationResult = pdpxParameters.validate();
131         assertFalse(validationResult.isValid());
132         assertEquals(null, pdpxParameters.getPdpGroup());
133         assertTrue(validationResult.getResult()
134                 .contains("field \"pdpGroup\" type \"java.lang.String\" value \"null\" INVALID, "
135                         + "must be a non-blank string"));
136     }
137
138     @Test
139     public void testXacmlPdpParameterGroup_EmptyPdpGroup() {
140         final RestServerParameters restServerParameters =
141             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
142         final BusTopicParams policyApiParameters =
143                         testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
144         final TopicParameterGroup topicParameterGroup =
145             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
146         final XacmlPdpParameterGroup pdpxParameters =
147                 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, "", null, restServerParameters,
148                         policyApiParameters, topicParameterGroup, applicationPath.getAbsolutePath());
149         final GroupValidationResult validationResult = pdpxParameters.validate();
150         assertFalse(validationResult.isValid());
151         assertEquals("", pdpxParameters.getPdpGroup());
152         assertTrue(validationResult.getResult()
153                 .contains("field \"pdpGroup\" type \"java.lang.String\" value \"\" INVALID, "
154                         + "must be a non-blank string"));
155     }
156
157     @Test
158     public void testXacmlPdpParameterGroup_EmptyRestServerParameters() {
159         final RestServerParameters restServerParameters =
160             testData.toObject(testData.getRestServerParametersMap(true), RestServerParameters.class);
161         final BusTopicParams policyApiParameters =
162                         testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
163         final TopicParameterGroup topicParameterGroup =
164             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
165         final XacmlPdpParameterGroup pdpxParameters =
166                 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, CommonTestData.PDPX_GROUP,
167                         null, restServerParameters, policyApiParameters,
168                         topicParameterGroup, applicationPath.getAbsolutePath());
169         final GroupValidationResult validationResult = pdpxParameters.validate();
170         assertFalse(validationResult.isValid());
171         assertTrue(validationResult.getResult()
172                 .contains("parameter group \"RestServerParameters\""));
173     }
174
175     @Test
176     public void testXacmlPdpParameterGroup_EmptyPolicyApiParameters() {
177         final RestServerParameters restServerParameters =
178             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
179         final BusTopicParams policyApiParameters =
180                         testData.toObject(testData.getPolicyApiParametersMap(true), BusTopicParams.class);
181         final TopicParameterGroup topicParameterGroup =
182             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
183         final XacmlPdpParameterGroup pdpxParameters =
184                 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, CommonTestData.PDPX_GROUP,
185                         null, restServerParameters, policyApiParameters,
186                         topicParameterGroup, applicationPath.getAbsolutePath());
187         final GroupValidationResult validationResult = pdpxParameters.validate();
188         assertFalse(validationResult.isValid());
189         assertThat(validationResult.getResult())
190                 .contains("field \"policyApiParameters\"");
191     }
192
193     @Test
194     public void testXacmlPdpParameterGroup_EmptyTopicParameterGroup() {
195         final RestServerParameters restServerParameters =
196             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
197         final BusTopicParams policyApiParameters =
198                         testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
199         final TopicParameterGroup topicParameterGroup =
200             testData.toObject(testData.getTopicParametersMap(true), TopicParameterGroup.class);
201         final XacmlPdpParameterGroup pdpxParameters =
202                 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, CommonTestData.PDPX_GROUP,
203                         null, restServerParameters, policyApiParameters,
204                         topicParameterGroup, applicationPath.getAbsolutePath());
205         final GroupValidationResult validationResult = pdpxParameters.validate();
206         assertFalse(validationResult.isValid());
207         assertTrue(validationResult.getResult()
208                 .contains("parameter group \"TopicParameterGroup\""));
209     }
210 }