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
10 * http://www.apache.org/licenses/LICENSE-2.0
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.
18 * SPDX-License-Identifier: Apache-2.0
19 * ============LICENSE_END=========================================================
23 package org.onap.policy.pdpx.main.parameters;
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;
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.ValidationResult;
42 * Class to perform unit test of XacmlPdpParameterGroup.
45 public class TestXacmlPdpParameterGroup {
46 CommonTestData commonTestData = new CommonTestData();
47 private static File applicationPath;
48 private static CommonTestData testData = new CommonTestData();
51 public static final TemporaryFolder applicationFolder = new TemporaryFolder();
54 public void setupPath() throws IOException {
55 applicationPath = applicationFolder.newFolder();
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 XacmlApplicationParameters xacmlApplicationParameters =
67 testData.toObject(testData.getXacmlapplicationParametersMap(false,
68 applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
69 final XacmlPdpParameterGroup pdpxParameters =
70 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME,
71 CommonTestData.PDPX_GROUP, "flavor", restServerParameters, policyApiParameters,
72 topicParameterGroup, xacmlApplicationParameters);
73 final ValidationResult validationResult = pdpxParameters.validate();
74 assertThat(validationResult.getResult()).isNull();
75 assertTrue(validationResult.isValid());
76 assertEquals(restServerParameters.getHost(), pdpxParameters.getRestServerParameters().getHost());
77 assertEquals(restServerParameters.getPort(), pdpxParameters.getRestServerParameters().getPort());
78 assertEquals(restServerParameters.getUserName(), pdpxParameters.getRestServerParameters().getUserName());
79 assertEquals(restServerParameters.getPassword(), pdpxParameters.getRestServerParameters().getPassword());
80 assertEquals(CommonTestData.PDPX_PARAMETER_GROUP_NAME, pdpxParameters.getName());
81 assertEquals("flavor", pdpxParameters.getPdpType());
82 assertFalse(pdpxParameters.getRestServerParameters().isHttps());
83 assertFalse(pdpxParameters.getRestServerParameters().isAaf());
87 public void testXacmlPdpParameterGroup_NullParameterGroupName() {
88 final RestServerParameters restServerParameters =
89 testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
90 final BusTopicParams policyApiParameters =
91 testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
92 final TopicParameterGroup topicParameterGroup =
93 testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
94 final XacmlApplicationParameters xacmlApplicationParameters =
95 testData.toObject(testData.getXacmlapplicationParametersMap(false,
96 applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
97 final XacmlPdpParameterGroup pdpxParameters = new XacmlPdpParameterGroup(null, CommonTestData.PDPX_GROUP,
98 null, restServerParameters, policyApiParameters, topicParameterGroup, xacmlApplicationParameters);
99 final ValidationResult validationResult = pdpxParameters.validate();
100 assertFalse(validationResult.isValid());
101 assertEquals(null, pdpxParameters.getName());
102 assertThat(validationResult.getResult()).contains("\"name\" value \"null\" INVALID, is null");
106 public void testXacmlPdpParameterGroup_EmptyParameterGroupName() {
107 final RestServerParameters restServerParameters =
108 testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
109 final BusTopicParams policyApiParameters =
110 testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
111 final TopicParameterGroup topicParameterGroup =
112 testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
113 final XacmlApplicationParameters xacmlApplicationParameters =
114 testData.toObject(testData.getXacmlapplicationParametersMap(false,
115 applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
116 final XacmlPdpParameterGroup pdpxParameters = new XacmlPdpParameterGroup("", CommonTestData.PDPX_GROUP,
117 CommonTestData.PDPX_TYPE, restServerParameters, policyApiParameters, topicParameterGroup,
118 xacmlApplicationParameters);
119 final ValidationResult validationResult = pdpxParameters.validate();
120 assertFalse(validationResult.isValid());
121 assertEquals("", pdpxParameters.getName());
122 assertThat(validationResult.getResult()).contains("\"name\" value \"\" INVALID, is blank");
126 public void testXacmlPdpParameterGroup_NullPdpGroup() {
127 final RestServerParameters restServerParameters =
128 testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
129 final BusTopicParams policyApiParameters =
130 testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
131 final TopicParameterGroup topicParameterGroup =
132 testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
133 final XacmlApplicationParameters xacmlApplicationParameters =
134 testData.toObject(testData.getXacmlapplicationParametersMap(false,
135 applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
136 final XacmlPdpParameterGroup pdpxParameters =
137 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, null, null, restServerParameters,
138 policyApiParameters, topicParameterGroup, xacmlApplicationParameters);
139 final ValidationResult validationResult = pdpxParameters.validate();
140 assertFalse(validationResult.isValid());
141 assertEquals(null, pdpxParameters.getPdpGroup());
142 assertThat(validationResult.getResult()).contains("\"pdpGroup\" value \"null\" INVALID, is null");
146 public void testXacmlPdpParameterGroup_EmptyPdpGroup() {
147 final RestServerParameters restServerParameters =
148 testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
149 final BusTopicParams policyApiParameters =
150 testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
151 final TopicParameterGroup topicParameterGroup =
152 testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
153 final XacmlApplicationParameters xacmlApplicationParameters =
154 testData.toObject(testData.getXacmlapplicationParametersMap(false,
155 applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
156 final XacmlPdpParameterGroup pdpxParameters =
157 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, "", null, restServerParameters,
158 policyApiParameters, topicParameterGroup, xacmlApplicationParameters);
159 final ValidationResult validationResult = pdpxParameters.validate();
160 assertFalse(validationResult.isValid());
161 assertEquals("", pdpxParameters.getPdpGroup());
162 assertThat(validationResult.getResult()).contains("\"pdpGroup\" value \"\" INVALID, is blank");
166 public void testXacmlPdpParameterGroup_EmptyRestServerParameters() {
167 final RestServerParameters restServerParameters =
168 testData.toObject(testData.getRestServerParametersMap(true), RestServerParameters.class);
169 final BusTopicParams policyApiParameters =
170 testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
171 final TopicParameterGroup topicParameterGroup =
172 testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
173 final XacmlApplicationParameters xacmlApplicationParameters =
174 testData.toObject(testData.getXacmlapplicationParametersMap(false,
175 applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
176 final XacmlPdpParameterGroup pdpxParameters =
177 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, CommonTestData.PDPX_GROUP,
178 null, restServerParameters, policyApiParameters,
179 topicParameterGroup, xacmlApplicationParameters);
180 final ValidationResult validationResult = pdpxParameters.validate();
181 assertFalse(validationResult.isValid());
182 assertThat(validationResult.getResult()).contains("\"RestServerParameters\"");
186 public void testXacmlPdpParameterGroup_EmptyPolicyApiParameters() {
187 final RestServerParameters restServerParameters =
188 testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
189 final BusTopicParams policyApiParameters =
190 testData.toObject(testData.getPolicyApiParametersMap(true), BusTopicParams.class);
191 final TopicParameterGroup topicParameterGroup =
192 testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
193 final XacmlApplicationParameters xacmlApplicationParameters =
194 testData.toObject(testData.getXacmlapplicationParametersMap(false,
195 applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
196 final XacmlPdpParameterGroup pdpxParameters =
197 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, CommonTestData.PDPX_GROUP,
198 null, restServerParameters, policyApiParameters,
199 topicParameterGroup, xacmlApplicationParameters);
200 final ValidationResult validationResult = pdpxParameters.validate();
201 assertFalse(validationResult.isValid());
202 assertThat(validationResult.getResult()).contains("\"policyApiParameters\"");
206 public void testXacmlPdpParameterGroup_EmptyTopicParameterGroup() {
207 final RestServerParameters restServerParameters =
208 testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
209 final BusTopicParams policyApiParameters =
210 testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
211 final TopicParameterGroup topicParameterGroup =
212 testData.toObject(testData.getTopicParametersMap(true), TopicParameterGroup.class);
213 final XacmlApplicationParameters xacmlApplicationParameters =
214 testData.toObject(testData.getXacmlapplicationParametersMap(false,
215 applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
216 final XacmlPdpParameterGroup pdpxParameters =
217 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, CommonTestData.PDPX_GROUP,
218 null, restServerParameters, policyApiParameters,
219 topicParameterGroup, xacmlApplicationParameters);
220 final ValidationResult validationResult = pdpxParameters.validate();
221 assertFalse(validationResult.isValid());
222 assertThat(validationResult.getResult()).contains("\"TopicParameterGroup\"");
226 public void testXacmlPdpParameterGroup_EmptyApplicationParameterGroup() {
227 final RestServerParameters restServerParameters =
228 testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
229 final BusTopicParams policyApiParameters =
230 testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
231 final TopicParameterGroup topicParameterGroup =
232 testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
233 final XacmlApplicationParameters xacmlApplicationParameters =
234 testData.toObject(testData.getXacmlapplicationParametersMap(true,
235 applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
236 final XacmlPdpParameterGroup pdpxParameters =
237 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, CommonTestData.PDPX_GROUP,
238 null, restServerParameters, policyApiParameters,
239 topicParameterGroup, xacmlApplicationParameters);
240 final ValidationResult validationResult = pdpxParameters.validate();
241 assertFalse(validationResult.isValid());
242 assertThat(validationResult.getResult()).contains("\"XacmlApplicationParameters\"");