Changed Xacml-pdp to report pdp group defined in XacmlPdpParameters config file
[policy/xacml-pdp.git] / main / src / test / java / org / onap / policy / pdpx / main / parameters / TestXacmlPdpParameterGroup.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * Copyright (C) 2019 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.junit.Assert.assertEquals;
26 import static org.junit.Assert.assertFalse;
27 import static org.junit.Assert.assertTrue;
28
29 import java.io.File;
30 import java.io.IOException;
31 import org.junit.Before;
32 import org.junit.ClassRule;
33 import org.junit.Test;
34 import org.junit.rules.TemporaryFolder;
35 import org.onap.policy.common.endpoints.parameters.RestServerParameters;
36 import org.onap.policy.common.endpoints.parameters.TopicParameterGroup;
37 import org.onap.policy.common.parameters.GroupValidationResult;
38
39 /**
40  * Class to perform unit test of XacmlPdpParameterGroup.
41  *
42  */
43 public class TestXacmlPdpParameterGroup {
44     CommonTestData commonTestData = new CommonTestData();
45     private static File applicationPath;
46     private static CommonTestData testData = new CommonTestData();
47
48     @ClassRule
49     public static final TemporaryFolder applicationFolder = new TemporaryFolder();
50
51     @Before
52     public void setupPath() throws IOException {
53         applicationPath = applicationFolder.newFolder();
54     }
55
56     @Test
57     public void testXacmlPdpParameterGroup() throws IOException {
58         final RestServerParameters restServerParameters =
59             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
60         final RestServerParameters policyApiParameters =
61                         testData.toObject(testData.getPolicyApiParametersMap(false), RestServerParameters.class);
62         final TopicParameterGroup topicParameterGroup =
63             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
64         final XacmlPdpParameterGroup pdpxParameters =
65                         new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME,
66                                 CommonTestData.PDPX_GROUP, restServerParameters, policyApiParameters,
67                                 topicParameterGroup, applicationPath.getAbsolutePath());
68         final GroupValidationResult validationResult = pdpxParameters.validate();
69         assertTrue(validationResult.isValid());
70         assertEquals(restServerParameters.getHost(), pdpxParameters.getRestServerParameters().getHost());
71         assertEquals(restServerParameters.getPort(), pdpxParameters.getRestServerParameters().getPort());
72         assertEquals(restServerParameters.getUserName(), pdpxParameters.getRestServerParameters().getUserName());
73         assertEquals(restServerParameters.getPassword(), pdpxParameters.getRestServerParameters().getPassword());
74         assertEquals(CommonTestData.PDPX_PARAMETER_GROUP_NAME, pdpxParameters.getName());
75         assertFalse(pdpxParameters.getRestServerParameters().isHttps());
76         assertFalse(pdpxParameters.getRestServerParameters().isAaf());
77     }
78
79     @Test
80     public void testXacmlPdpParameterGroup_NullParameterGroupName() {
81         final RestServerParameters restServerParameters =
82             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
83         final RestServerParameters policyApiParameters =
84                         testData.toObject(testData.getPolicyApiParametersMap(false), RestServerParameters.class);
85         final TopicParameterGroup topicParameterGroup =
86             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
87         final XacmlPdpParameterGroup pdpxParameters = new XacmlPdpParameterGroup(null, CommonTestData.PDPX_GROUP,
88                 restServerParameters, policyApiParameters, topicParameterGroup, applicationPath.getAbsolutePath());
89         final GroupValidationResult validationResult = pdpxParameters.validate();
90         assertFalse(validationResult.isValid());
91         assertEquals(null, pdpxParameters.getName());
92         assertTrue(validationResult.getResult().contains(
93                 "field \"name\" type \"java.lang.String\" value \"null\" INVALID, " + "must be a non-blank string"));
94     }
95
96     @Test
97     public void testXacmlPdpParameterGroup_EmptyParameterGroupName() {
98         final RestServerParameters restServerParameters =
99             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
100         final RestServerParameters policyApiParameters =
101                         testData.toObject(testData.getPolicyApiParametersMap(false), RestServerParameters.class);
102         final TopicParameterGroup topicParameterGroup =
103             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
104         final XacmlPdpParameterGroup pdpxParameters = new XacmlPdpParameterGroup("", CommonTestData.PDPX_GROUP,
105                 restServerParameters, policyApiParameters, topicParameterGroup, applicationPath.getAbsolutePath());
106         final GroupValidationResult validationResult = pdpxParameters.validate();
107         assertFalse(validationResult.isValid());
108         assertEquals("", pdpxParameters.getName());
109         assertTrue(validationResult.getResult().contains(
110                 "field \"name\" type \"java.lang.String\" value \"\" INVALID, " + "must be a non-blank string"));
111     }
112
113     @Test
114     public void testXacmlPdpParameterGroup_NullPdpGroup() {
115         final RestServerParameters restServerParameters =
116             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
117         final RestServerParameters policyApiParameters =
118                         testData.toObject(testData.getPolicyApiParametersMap(false), RestServerParameters.class);
119         final TopicParameterGroup topicParameterGroup =
120             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
121         final XacmlPdpParameterGroup pdpxParameters =
122                 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, null, restServerParameters,
123                         policyApiParameters, topicParameterGroup, applicationPath.getAbsolutePath());
124         final GroupValidationResult validationResult = pdpxParameters.validate();
125         assertFalse(validationResult.isValid());
126         assertEquals(null, pdpxParameters.getPdpGroup());
127         assertTrue(validationResult.getResult()
128                 .contains("field \"pdpGroup\" type \"java.lang.String\" value \"null\" INVALID, "
129                         + "must be a non-blank string"));
130     }
131
132     @Test
133     public void testXacmlPdpParameterGroup_EmptyPdpGroup() {
134         final RestServerParameters restServerParameters =
135             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
136         final RestServerParameters policyApiParameters =
137                         testData.toObject(testData.getPolicyApiParametersMap(false), RestServerParameters.class);
138         final TopicParameterGroup topicParameterGroup =
139             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
140         final XacmlPdpParameterGroup pdpxParameters =
141                 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, "", restServerParameters,
142                         policyApiParameters, topicParameterGroup, applicationPath.getAbsolutePath());
143         final GroupValidationResult validationResult = pdpxParameters.validate();
144         assertFalse(validationResult.isValid());
145         assertEquals("", pdpxParameters.getPdpGroup());
146         assertTrue(validationResult.getResult()
147                 .contains("field \"pdpGroup\" type \"java.lang.String\" value \"\" INVALID, "
148                         + "must be a non-blank string"));
149     }
150
151     @Test
152     public void testXacmlPdpParameterGroup_EmptyRestServerParameters() {
153         final RestServerParameters restServerParameters =
154             testData.toObject(testData.getRestServerParametersMap(true), RestServerParameters.class);
155         final RestServerParameters policyApiParameters =
156                         testData.toObject(testData.getPolicyApiParametersMap(false), RestServerParameters.class);
157         final TopicParameterGroup topicParameterGroup =
158             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
159         final XacmlPdpParameterGroup pdpxParameters =
160                 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, CommonTestData.PDPX_GROUP,
161                         restServerParameters, policyApiParameters,
162                         topicParameterGroup, applicationPath.getAbsolutePath());
163         final GroupValidationResult validationResult = pdpxParameters.validate();
164         assertFalse(validationResult.isValid());
165         assertTrue(validationResult.getResult()
166                 .contains("parameter group \"RestServerParameters\""));
167     }
168
169     @Test
170     public void testXacmlPdpParameterGroup_EmptyPolicyApiParameters() {
171         final RestServerParameters restServerParameters =
172             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
173         final RestServerParameters policyApiParameters =
174                         testData.toObject(testData.getPolicyApiParametersMap(true), RestServerParameters.class);
175         final TopicParameterGroup topicParameterGroup =
176             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
177         final XacmlPdpParameterGroup pdpxParameters =
178                 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, CommonTestData.PDPX_GROUP,
179                         restServerParameters, policyApiParameters,
180                         topicParameterGroup, applicationPath.getAbsolutePath());
181         final GroupValidationResult validationResult = pdpxParameters.validate();
182         assertFalse(validationResult.isValid());
183         assertTrue(validationResult.getResult()
184                 .contains("parameter group \"policyApiParameters\""));
185     }
186
187     @Test
188     public void testXacmlPdpParameterGroup_EmptyTopicParameterGroup() {
189         final RestServerParameters restServerParameters =
190             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
191         final RestServerParameters policyApiParameters =
192                         testData.toObject(testData.getPolicyApiParametersMap(false), RestServerParameters.class);
193         final TopicParameterGroup topicParameterGroup =
194             testData.toObject(testData.getTopicParametersMap(true), TopicParameterGroup.class);
195         final XacmlPdpParameterGroup pdpxParameters =
196                 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, CommonTestData.PDPX_GROUP,
197                         restServerParameters, policyApiParameters,
198                         topicParameterGroup, applicationPath.getAbsolutePath());
199         final GroupValidationResult validationResult = pdpxParameters.validate();
200         assertFalse(validationResult.isValid());
201         assertTrue(validationResult.getResult()
202                 .contains("parameter group \"TopicParameterGroup\""));
203     }
204 }