Set all cross references of policy/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, 2023 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.assertNull;
29 import static org.junit.Assert.assertTrue;
30
31 import java.io.File;
32 import java.io.IOException;
33 import org.junit.Before;
34 import org.junit.ClassRule;
35 import org.junit.Test;
36 import org.junit.rules.TemporaryFolder;
37 import org.onap.policy.common.endpoints.parameters.RestClientParameters;
38 import org.onap.policy.common.endpoints.parameters.RestServerParameters;
39 import org.onap.policy.common.endpoints.parameters.TopicParameterGroup;
40 import org.onap.policy.common.parameters.ValidationResult;
41
42 /**
43  * Class to perform unit test of XacmlPdpParameterGroup.
44  *
45  */
46 public class TestXacmlPdpParameterGroup {
47     private static File applicationPath;
48     private static final 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()), 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         assertThat(pdpxParameters.getApplicationParameters().getExclusions()).isEmpty();
84     }
85
86     @Test
87     public void testXacmlPdpParameterGroup_NullParameterGroupName() {
88         final RestServerParameters restServerParameters =
89             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
90         final RestClientParameters policyApiParameters =
91                         testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.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()), 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         assertNull(pdpxParameters.getName());
102         assertThat(validationResult.getResult()).contains("\"name\" value \"null\" INVALID, is null");
103     }
104
105     @Test
106     public void testXacmlPdpParameterGroup_EmptyParameterGroupName() {
107         final RestServerParameters restServerParameters =
108             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
109         final RestClientParameters policyApiParameters =
110                         testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.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()), 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");
123     }
124
125     @Test
126     public void testXacmlPdpParameterGroup_NullPdpGroup() {
127         final RestServerParameters restServerParameters =
128             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
129         final RestClientParameters policyApiParameters =
130                         testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.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()), 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         assertNull(pdpxParameters.getPdpGroup());
142         assertThat(validationResult.getResult()).contains("\"pdpGroup\" value \"null\" INVALID, is null");
143     }
144
145     @Test
146     public void testXacmlPdpParameterGroup_EmptyPdpGroup() {
147         final RestServerParameters restServerParameters =
148             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
149         final RestClientParameters policyApiParameters =
150                         testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.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()), 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");
163     }
164
165     @Test
166     public void testXacmlPdpParameterGroup_EmptyRestServerParameters() {
167         final RestServerParameters restServerParameters =
168             testData.toObject(testData.getRestServerParametersMap(true), RestServerParameters.class);
169         final RestClientParameters policyApiParameters =
170                         testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.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()), 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\"");
183     }
184
185     @Test
186     public void testXacmlPdpParameterGroup_EmptyPolicyApiParameters() {
187         final RestServerParameters restServerParameters =
188             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
189         final RestClientParameters policyApiParameters =
190                         testData.toObject(testData.getPolicyApiParametersMap(true), RestClientParameters.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()), 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\"");
203     }
204
205     @Test
206     public void testXacmlPdpParameterGroup_EmptyTopicParameterGroup() {
207         final RestServerParameters restServerParameters =
208             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
209         final RestClientParameters policyApiParameters =
210                         testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.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()), 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\"");
223     }
224
225     @Test
226     public void testXacmlPdpParameterGroup_EmptyApplicationParameterGroup() {
227         final RestServerParameters restServerParameters =
228             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
229         final RestClientParameters policyApiParameters =
230                         testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.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()), 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\"");
243     }
244 }