2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights reserved.
4 * Modifications Copyright (C) 2019, 2023-2024 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.jupiter.api.Assertions.assertEquals;
27 import static org.junit.jupiter.api.Assertions.assertFalse;
28 import static org.junit.jupiter.api.Assertions.assertNull;
29 import static org.junit.jupiter.api.Assertions.assertTrue;
32 import java.nio.file.Path;
33 import org.junit.jupiter.api.BeforeEach;
34 import org.junit.jupiter.api.Test;
35 import org.junit.jupiter.api.io.TempDir;
36 import org.onap.policy.common.parameters.ValidationResult;
37 import org.onap.policy.common.parameters.rest.RestClientParameters;
38 import org.onap.policy.common.parameters.rest.RestServerParameters;
39 import org.onap.policy.common.parameters.topic.TopicParameterGroup;
42 * Class to perform unit test of XacmlPdpParameterGroup.
44 class TestXacmlPdpParameterGroup {
45 private static File applicationPath;
46 private static final CommonTestData testData = new CommonTestData();
49 static Path applicationFolder;
53 applicationPath = applicationFolder.toFile();
57 void testXacmlPdpParameterGroup() {
58 final RestServerParameters restServerParameters =
59 testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
60 final RestClientParameters policyApiParameters =
61 testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.class);
62 final TopicParameterGroup topicParameterGroup =
63 testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
64 final XacmlApplicationParameters xacmlApplicationParameters =
65 testData.toObject(testData.getXacmlapplicationParametersMap(false,
66 applicationPath.getAbsolutePath()), XacmlApplicationParameters.class);
67 final XacmlPdpParameterGroup pdpxParameters =
68 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME,
69 CommonTestData.PDPX_GROUP, "flavor", restServerParameters, policyApiParameters,
70 topicParameterGroup, xacmlApplicationParameters);
71 final ValidationResult validationResult = pdpxParameters.validate();
72 assertThat(validationResult.getResult()).isNull();
73 assertTrue(validationResult.isValid());
74 assertEquals(restServerParameters.getHost(), pdpxParameters.getRestServerParameters().getHost());
75 assertEquals(restServerParameters.getPort(), pdpxParameters.getRestServerParameters().getPort());
76 assertEquals(restServerParameters.getUserName(), pdpxParameters.getRestServerParameters().getUserName());
77 assertEquals(restServerParameters.getPassword(), pdpxParameters.getRestServerParameters().getPassword());
78 assertEquals(CommonTestData.PDPX_PARAMETER_GROUP_NAME, pdpxParameters.getName());
79 assertEquals("flavor", pdpxParameters.getPdpType());
80 assertFalse(pdpxParameters.getRestServerParameters().isHttps());
81 assertThat(pdpxParameters.getApplicationParameters().getExclusions()).isEmpty();
85 void testXacmlPdpParameterGroup_NullParameterGroupName() {
86 final RestServerParameters restServerParameters =
87 testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
88 final RestClientParameters policyApiParameters =
89 testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.class);
90 final TopicParameterGroup topicParameterGroup =
91 testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
92 final XacmlApplicationParameters xacmlApplicationParameters =
93 testData.toObject(testData.getXacmlapplicationParametersMap(false,
94 applicationPath.getAbsolutePath()), XacmlApplicationParameters.class);
95 final XacmlPdpParameterGroup pdpxParameters = new XacmlPdpParameterGroup(null, CommonTestData.PDPX_GROUP,
96 null, restServerParameters, policyApiParameters, topicParameterGroup, xacmlApplicationParameters);
97 final ValidationResult validationResult = pdpxParameters.validate();
98 assertFalse(validationResult.isValid());
99 assertNull(pdpxParameters.getName());
100 assertThat(validationResult.getResult()).contains("\"name\" value \"null\" INVALID, is null");
104 void testXacmlPdpParameterGroup_EmptyParameterGroupName() {
105 final RestServerParameters restServerParameters =
106 testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
107 final RestClientParameters policyApiParameters =
108 testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.class);
109 final TopicParameterGroup topicParameterGroup =
110 testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
111 final XacmlApplicationParameters xacmlApplicationParameters =
112 testData.toObject(testData.getXacmlapplicationParametersMap(false,
113 applicationPath.getAbsolutePath()), XacmlApplicationParameters.class);
114 final XacmlPdpParameterGroup pdpxParameters = new XacmlPdpParameterGroup("", CommonTestData.PDPX_GROUP,
115 CommonTestData.PDPX_TYPE, restServerParameters, policyApiParameters, topicParameterGroup,
116 xacmlApplicationParameters);
117 final ValidationResult validationResult = pdpxParameters.validate();
118 assertFalse(validationResult.isValid());
119 assertEquals("", pdpxParameters.getName());
120 assertThat(validationResult.getResult()).contains("\"name\" value \"\" INVALID, is blank");
124 void testXacmlPdpParameterGroup_NullPdpGroup() {
125 final RestServerParameters restServerParameters =
126 testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
127 final RestClientParameters policyApiParameters =
128 testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.class);
129 final TopicParameterGroup topicParameterGroup =
130 testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
131 final XacmlApplicationParameters xacmlApplicationParameters =
132 testData.toObject(testData.getXacmlapplicationParametersMap(false,
133 applicationPath.getAbsolutePath()), XacmlApplicationParameters.class);
134 final XacmlPdpParameterGroup pdpxParameters =
135 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, null, null, restServerParameters,
136 policyApiParameters, topicParameterGroup, xacmlApplicationParameters);
137 final ValidationResult validationResult = pdpxParameters.validate();
138 assertFalse(validationResult.isValid());
139 assertNull(pdpxParameters.getPdpGroup());
140 assertThat(validationResult.getResult()).contains("\"pdpGroup\" value \"null\" INVALID, is null");
144 void testXacmlPdpParameterGroup_EmptyPdpGroup() {
145 final RestServerParameters restServerParameters =
146 testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
147 final RestClientParameters policyApiParameters =
148 testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.class);
149 final TopicParameterGroup topicParameterGroup =
150 testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
151 final XacmlApplicationParameters xacmlApplicationParameters =
152 testData.toObject(testData.getXacmlapplicationParametersMap(false,
153 applicationPath.getAbsolutePath()), XacmlApplicationParameters.class);
154 final XacmlPdpParameterGroup pdpxParameters =
155 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, "", null, restServerParameters,
156 policyApiParameters, topicParameterGroup, xacmlApplicationParameters);
157 final ValidationResult validationResult = pdpxParameters.validate();
158 assertFalse(validationResult.isValid());
159 assertEquals("", pdpxParameters.getPdpGroup());
160 assertThat(validationResult.getResult()).contains("\"pdpGroup\" value \"\" INVALID, is blank");
164 void testXacmlPdpParameterGroup_EmptyRestServerParameters() {
165 final RestServerParameters restServerParameters =
166 testData.toObject(testData.getRestServerParametersMap(true), RestServerParameters.class);
167 final RestClientParameters policyApiParameters =
168 testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.class);
169 final TopicParameterGroup topicParameterGroup =
170 testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
171 final XacmlApplicationParameters xacmlApplicationParameters =
172 testData.toObject(testData.getXacmlapplicationParametersMap(false,
173 applicationPath.getAbsolutePath()), XacmlApplicationParameters.class);
174 final XacmlPdpParameterGroup pdpxParameters =
175 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, CommonTestData.PDPX_GROUP,
176 null, restServerParameters, policyApiParameters,
177 topicParameterGroup, xacmlApplicationParameters);
178 final ValidationResult validationResult = pdpxParameters.validate();
179 assertFalse(validationResult.isValid());
180 assertThat(validationResult.getResult()).contains("\"RestServerParameters\"");
184 void testXacmlPdpParameterGroup_EmptyPolicyApiParameters() {
185 final RestServerParameters restServerParameters =
186 testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
187 final RestClientParameters policyApiParameters =
188 testData.toObject(testData.getPolicyApiParametersMap(true), RestClientParameters.class);
189 final TopicParameterGroup topicParameterGroup =
190 testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
191 final XacmlApplicationParameters xacmlApplicationParameters =
192 testData.toObject(testData.getXacmlapplicationParametersMap(false,
193 applicationPath.getAbsolutePath()), XacmlApplicationParameters.class);
194 final XacmlPdpParameterGroup pdpxParameters =
195 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, CommonTestData.PDPX_GROUP,
196 null, restServerParameters, policyApiParameters,
197 topicParameterGroup, xacmlApplicationParameters);
198 final ValidationResult validationResult = pdpxParameters.validate();
199 assertFalse(validationResult.isValid());
200 assertThat(validationResult.getResult()).contains("\"policyApiParameters\"");
204 void testXacmlPdpParameterGroup_EmptyTopicParameterGroup() {
205 final RestServerParameters restServerParameters =
206 testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
207 final RestClientParameters policyApiParameters =
208 testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.class);
209 final TopicParameterGroup topicParameterGroup =
210 testData.toObject(testData.getTopicParametersMap(true), TopicParameterGroup.class);
211 final XacmlApplicationParameters xacmlApplicationParameters =
212 testData.toObject(testData.getXacmlapplicationParametersMap(false,
213 applicationPath.getAbsolutePath()), XacmlApplicationParameters.class);
214 final XacmlPdpParameterGroup pdpxParameters =
215 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, CommonTestData.PDPX_GROUP,
216 null, restServerParameters, policyApiParameters,
217 topicParameterGroup, xacmlApplicationParameters);
218 final ValidationResult validationResult = pdpxParameters.validate();
219 assertFalse(validationResult.isValid());
220 assertThat(validationResult.getResult()).contains("\"TopicParameterGroup\"");
224 void testXacmlPdpParameterGroup_EmptyApplicationParameterGroup() {
225 final RestServerParameters restServerParameters =
226 testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
227 final RestClientParameters policyApiParameters =
228 testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.class);
229 final TopicParameterGroup topicParameterGroup =
230 testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
231 final XacmlApplicationParameters xacmlApplicationParameters =
232 testData.toObject(testData.getXacmlapplicationParametersMap(true,
233 applicationPath.getAbsolutePath()), XacmlApplicationParameters.class);
234 final XacmlPdpParameterGroup pdpxParameters =
235 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, CommonTestData.PDPX_GROUP,
236 null, restServerParameters, policyApiParameters,
237 topicParameterGroup, xacmlApplicationParameters);
238 final ValidationResult validationResult = pdpxParameters.validate();
239 assertFalse(validationResult.isValid());
240 assertThat(validationResult.getResult()).contains("\"XacmlApplicationParameters\"");