Use new RestClientParameters class in xacml-pdp
[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.parameters.RestClientParameters;
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;
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 RestClientParameters policyApiParameters =
63                         testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.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());
84         assertThat(pdpxParameters.getApplicationParameters().getExclusions()).isEmpty();
85     }
86
87     @Test
88     public void testXacmlPdpParameterGroup_NullParameterGroupName() {
89         final RestServerParameters restServerParameters =
90             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
91         final RestClientParameters policyApiParameters =
92                         testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.class);
93         final TopicParameterGroup topicParameterGroup =
94             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
95         final XacmlApplicationParameters xacmlApplicationParameters =
96                 testData.toObject(testData.getXacmlapplicationParametersMap(false,
97                         applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
98         final XacmlPdpParameterGroup pdpxParameters = new XacmlPdpParameterGroup(null, CommonTestData.PDPX_GROUP,
99                 null, restServerParameters, policyApiParameters, topicParameterGroup, xacmlApplicationParameters);
100         final ValidationResult validationResult = pdpxParameters.validate();
101         assertFalse(validationResult.isValid());
102         assertEquals(null, pdpxParameters.getName());
103         assertThat(validationResult.getResult()).contains("\"name\" value \"null\" INVALID, is null");
104     }
105
106     @Test
107     public void testXacmlPdpParameterGroup_EmptyParameterGroupName() {
108         final RestServerParameters restServerParameters =
109             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
110         final RestClientParameters policyApiParameters =
111                         testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.class);
112         final TopicParameterGroup topicParameterGroup =
113             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
114         final XacmlApplicationParameters xacmlApplicationParameters =
115                 testData.toObject(testData.getXacmlapplicationParametersMap(false,
116                         applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
117         final XacmlPdpParameterGroup pdpxParameters = new XacmlPdpParameterGroup("", CommonTestData.PDPX_GROUP,
118                 CommonTestData.PDPX_TYPE, restServerParameters, policyApiParameters, topicParameterGroup,
119                 xacmlApplicationParameters);
120         final ValidationResult validationResult = pdpxParameters.validate();
121         assertFalse(validationResult.isValid());
122         assertEquals("", pdpxParameters.getName());
123         assertThat(validationResult.getResult()).contains("\"name\" value \"\" INVALID, is blank");
124     }
125
126     @Test
127     public void testXacmlPdpParameterGroup_NullPdpGroup() {
128         final RestServerParameters restServerParameters =
129             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
130         final RestClientParameters policyApiParameters =
131                         testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.class);
132         final TopicParameterGroup topicParameterGroup =
133             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
134         final XacmlApplicationParameters xacmlApplicationParameters =
135                 testData.toObject(testData.getXacmlapplicationParametersMap(false,
136                         applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
137         final XacmlPdpParameterGroup pdpxParameters =
138                 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, null, null, restServerParameters,
139                         policyApiParameters, topicParameterGroup, xacmlApplicationParameters);
140         final ValidationResult validationResult = pdpxParameters.validate();
141         assertFalse(validationResult.isValid());
142         assertEquals(null, pdpxParameters.getPdpGroup());
143         assertThat(validationResult.getResult()).contains("\"pdpGroup\" value \"null\" INVALID, is null");
144     }
145
146     @Test
147     public void testXacmlPdpParameterGroup_EmptyPdpGroup() {
148         final RestServerParameters restServerParameters =
149             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
150         final RestClientParameters policyApiParameters =
151                         testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.class);
152         final TopicParameterGroup topicParameterGroup =
153             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
154         final XacmlApplicationParameters xacmlApplicationParameters =
155                 testData.toObject(testData.getXacmlapplicationParametersMap(false,
156                         applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
157         final XacmlPdpParameterGroup pdpxParameters =
158                 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, "", null, restServerParameters,
159                         policyApiParameters, topicParameterGroup, xacmlApplicationParameters);
160         final ValidationResult validationResult = pdpxParameters.validate();
161         assertFalse(validationResult.isValid());
162         assertEquals("", pdpxParameters.getPdpGroup());
163         assertThat(validationResult.getResult()).contains("\"pdpGroup\" value \"\" INVALID, is blank");
164     }
165
166     @Test
167     public void testXacmlPdpParameterGroup_EmptyRestServerParameters() {
168         final RestServerParameters restServerParameters =
169             testData.toObject(testData.getRestServerParametersMap(true), RestServerParameters.class);
170         final RestClientParameters policyApiParameters =
171                         testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.class);
172         final TopicParameterGroup topicParameterGroup =
173             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
174         final XacmlApplicationParameters xacmlApplicationParameters =
175                 testData.toObject(testData.getXacmlapplicationParametersMap(false,
176                         applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
177         final XacmlPdpParameterGroup pdpxParameters =
178                 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, CommonTestData.PDPX_GROUP,
179                         null, restServerParameters, policyApiParameters,
180                         topicParameterGroup, xacmlApplicationParameters);
181         final ValidationResult validationResult = pdpxParameters.validate();
182         assertFalse(validationResult.isValid());
183         assertThat(validationResult.getResult()).contains("\"RestServerParameters\"");
184     }
185
186     @Test
187     public void testXacmlPdpParameterGroup_EmptyPolicyApiParameters() {
188         final RestServerParameters restServerParameters =
189             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
190         final RestClientParameters policyApiParameters =
191                         testData.toObject(testData.getPolicyApiParametersMap(true), RestClientParameters.class);
192         final TopicParameterGroup topicParameterGroup =
193             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
194         final XacmlApplicationParameters xacmlApplicationParameters =
195                 testData.toObject(testData.getXacmlapplicationParametersMap(false,
196                         applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
197         final XacmlPdpParameterGroup pdpxParameters =
198                 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, CommonTestData.PDPX_GROUP,
199                         null, restServerParameters, policyApiParameters,
200                         topicParameterGroup, xacmlApplicationParameters);
201         final ValidationResult validationResult = pdpxParameters.validate();
202         assertFalse(validationResult.isValid());
203         assertThat(validationResult.getResult()).contains("\"policyApiParameters\"");
204     }
205
206     @Test
207     public void testXacmlPdpParameterGroup_EmptyTopicParameterGroup() {
208         final RestServerParameters restServerParameters =
209             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
210         final RestClientParameters policyApiParameters =
211                         testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.class);
212         final TopicParameterGroup topicParameterGroup =
213             testData.toObject(testData.getTopicParametersMap(true), TopicParameterGroup.class);
214         final XacmlApplicationParameters xacmlApplicationParameters =
215                 testData.toObject(testData.getXacmlapplicationParametersMap(false,
216                         applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
217         final XacmlPdpParameterGroup pdpxParameters =
218                 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, CommonTestData.PDPX_GROUP,
219                         null, restServerParameters, policyApiParameters,
220                         topicParameterGroup, xacmlApplicationParameters);
221         final ValidationResult validationResult = pdpxParameters.validate();
222         assertFalse(validationResult.isValid());
223         assertThat(validationResult.getResult()).contains("\"TopicParameterGroup\"");
224     }
225
226     @Test
227     public void testXacmlPdpParameterGroup_EmptyApplicationParameterGroup() {
228         final RestServerParameters restServerParameters =
229             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
230         final RestClientParameters policyApiParameters =
231                         testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.class);
232         final TopicParameterGroup topicParameterGroup =
233             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
234         final XacmlApplicationParameters xacmlApplicationParameters =
235                 testData.toObject(testData.getXacmlapplicationParametersMap(true,
236                         applicationPath.getAbsolutePath().toString()), XacmlApplicationParameters.class);
237         final XacmlPdpParameterGroup pdpxParameters =
238                 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, CommonTestData.PDPX_GROUP,
239                         null, restServerParameters, policyApiParameters,
240                         topicParameterGroup, xacmlApplicationParameters);
241         final ValidationResult validationResult = pdpxParameters.validate();
242         assertFalse(validationResult.isValid());
243         assertThat(validationResult.getResult()).contains("\"XacmlApplicationParameters\"");
244     }
245 }