Remove GroupValidationResult
[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.event.comm.bus.internal.BusTopicParams;
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 BusTopicParams policyApiParameters =
63                         testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
64         final TopicParameterGroup topicParameterGroup =
65             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
66         final XacmlPdpParameterGroup pdpxParameters =
67                         new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME,
68                                 CommonTestData.PDPX_GROUP, "flavor", restServerParameters, policyApiParameters,
69                                 topicParameterGroup, applicationPath.getAbsolutePath());
70         final ValidationResult validationResult = pdpxParameters.validate();
71         assertThat(validationResult.getResult()).isNull();
72         assertTrue(validationResult.isValid());
73         assertEquals(restServerParameters.getHost(), pdpxParameters.getRestServerParameters().getHost());
74         assertEquals(restServerParameters.getPort(), pdpxParameters.getRestServerParameters().getPort());
75         assertEquals(restServerParameters.getUserName(), pdpxParameters.getRestServerParameters().getUserName());
76         assertEquals(restServerParameters.getPassword(), pdpxParameters.getRestServerParameters().getPassword());
77         assertEquals(CommonTestData.PDPX_PARAMETER_GROUP_NAME, pdpxParameters.getName());
78         assertEquals("flavor", pdpxParameters.getPdpType());
79         assertFalse(pdpxParameters.getRestServerParameters().isHttps());
80         assertFalse(pdpxParameters.getRestServerParameters().isAaf());
81     }
82
83     @Test
84     public void testXacmlPdpParameterGroup_NullParameterGroupName() {
85         final RestServerParameters restServerParameters =
86             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
87         final BusTopicParams policyApiParameters =
88                         testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
89         final TopicParameterGroup topicParameterGroup =
90             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
91         final XacmlPdpParameterGroup pdpxParameters = new XacmlPdpParameterGroup(null, CommonTestData.PDPX_GROUP,
92                 null, restServerParameters, policyApiParameters, topicParameterGroup,
93                 applicationPath.getAbsolutePath());
94         final ValidationResult validationResult = pdpxParameters.validate();
95         assertFalse(validationResult.isValid());
96         assertEquals(null, pdpxParameters.getName());
97         assertThat(validationResult.getResult()).contains("\"name\" value \"null\" INVALID, is null");
98     }
99
100     @Test
101     public void testXacmlPdpParameterGroup_EmptyParameterGroupName() {
102         final RestServerParameters restServerParameters =
103             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
104         final BusTopicParams policyApiParameters =
105                         testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
106         final TopicParameterGroup topicParameterGroup =
107             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
108         final XacmlPdpParameterGroup pdpxParameters = new XacmlPdpParameterGroup("", CommonTestData.PDPX_GROUP,
109                 CommonTestData.PDPX_TYPE, restServerParameters, policyApiParameters, topicParameterGroup,
110                 applicationPath.getAbsolutePath());
111         final ValidationResult validationResult = pdpxParameters.validate();
112         assertFalse(validationResult.isValid());
113         assertEquals("", pdpxParameters.getName());
114         assertThat(validationResult.getResult()).contains("\"name\" value \"\" INVALID, is blank");
115     }
116
117     @Test
118     public void testXacmlPdpParameterGroup_NullPdpGroup() {
119         final RestServerParameters restServerParameters =
120             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
121         final BusTopicParams policyApiParameters =
122                         testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
123         final TopicParameterGroup topicParameterGroup =
124             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
125         final XacmlPdpParameterGroup pdpxParameters =
126                 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, null, null, restServerParameters,
127                         policyApiParameters, topicParameterGroup, applicationPath.getAbsolutePath());
128         final ValidationResult validationResult = pdpxParameters.validate();
129         assertFalse(validationResult.isValid());
130         assertEquals(null, pdpxParameters.getPdpGroup());
131         assertThat(validationResult.getResult()).contains("\"pdpGroup\" value \"null\" INVALID, is null");
132     }
133
134     @Test
135     public void testXacmlPdpParameterGroup_EmptyPdpGroup() {
136         final RestServerParameters restServerParameters =
137             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
138         final BusTopicParams policyApiParameters =
139                         testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
140         final TopicParameterGroup topicParameterGroup =
141             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
142         final XacmlPdpParameterGroup pdpxParameters =
143                 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, "", null, restServerParameters,
144                         policyApiParameters, topicParameterGroup, applicationPath.getAbsolutePath());
145         final ValidationResult validationResult = pdpxParameters.validate();
146         assertFalse(validationResult.isValid());
147         assertEquals("", pdpxParameters.getPdpGroup());
148         assertThat(validationResult.getResult()).contains("\"pdpGroup\" value \"\" INVALID, is blank");
149     }
150
151     @Test
152     public void testXacmlPdpParameterGroup_EmptyRestServerParameters() {
153         final RestServerParameters restServerParameters =
154             testData.toObject(testData.getRestServerParametersMap(true), RestServerParameters.class);
155         final BusTopicParams policyApiParameters =
156                         testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.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                         null, restServerParameters, policyApiParameters,
162                         topicParameterGroup, applicationPath.getAbsolutePath());
163         final ValidationResult validationResult = pdpxParameters.validate();
164         assertFalse(validationResult.isValid());
165         assertThat(validationResult.getResult()).contains("\"RestServerParameters\"");
166     }
167
168     @Test
169     public void testXacmlPdpParameterGroup_EmptyPolicyApiParameters() {
170         final RestServerParameters restServerParameters =
171             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
172         final BusTopicParams policyApiParameters =
173                         testData.toObject(testData.getPolicyApiParametersMap(true), BusTopicParams.class);
174         final TopicParameterGroup topicParameterGroup =
175             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
176         final XacmlPdpParameterGroup pdpxParameters =
177                 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, CommonTestData.PDPX_GROUP,
178                         null, restServerParameters, policyApiParameters,
179                         topicParameterGroup, applicationPath.getAbsolutePath());
180         final ValidationResult validationResult = pdpxParameters.validate();
181         assertFalse(validationResult.isValid());
182         assertThat(validationResult.getResult()).contains("\"policyApiParameters\"");
183     }
184
185     @Test
186     public void testXacmlPdpParameterGroup_EmptyTopicParameterGroup() {
187         final RestServerParameters restServerParameters =
188             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
189         final BusTopicParams policyApiParameters =
190                         testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
191         final TopicParameterGroup topicParameterGroup =
192             testData.toObject(testData.getTopicParametersMap(true), TopicParameterGroup.class);
193         final XacmlPdpParameterGroup pdpxParameters =
194                 new XacmlPdpParameterGroup(CommonTestData.PDPX_PARAMETER_GROUP_NAME, CommonTestData.PDPX_GROUP,
195                         null, restServerParameters, policyApiParameters,
196                         topicParameterGroup, applicationPath.getAbsolutePath());
197         final ValidationResult validationResult = pdpxParameters.validate();
198         assertFalse(validationResult.isValid());
199         assertThat(validationResult.getResult()).contains("\"TopicParameterGroup\"");
200     }
201 }