Fix trailing space in Info.yaml xacml
[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, 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
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.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;
30
31 import java.io.File;
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;
40
41 /**
42  * Class to perform unit test of XacmlPdpParameterGroup.
43  */
44 class TestXacmlPdpParameterGroup {
45     private static File applicationPath;
46     private static final CommonTestData testData = new CommonTestData();
47
48     @TempDir
49     static Path applicationFolder;
50
51     @BeforeEach
52     void setupPath() {
53         applicationPath = applicationFolder.toFile();
54     }
55
56     @Test
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();
82     }
83
84     @Test
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");
101     }
102
103     @Test
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");
121     }
122
123     @Test
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");
141     }
142
143     @Test
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");
161     }
162
163     @Test
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\"");
181     }
182
183     @Test
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\"");
201     }
202
203     @Test
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\"");
221     }
222
223     @Test
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\"");
241     }
242 }