Get policy type from policy-api
[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_GROUP_NAME, restServerParameters,
66                                         policyApiParameters, topicParameterGroup, applicationPath.getAbsolutePath());
67         final GroupValidationResult validationResult = pdpxParameters.validate();
68         assertTrue(validationResult.isValid());
69         assertEquals(restServerParameters.getHost(), pdpxParameters.getRestServerParameters().getHost());
70         assertEquals(restServerParameters.getPort(), pdpxParameters.getRestServerParameters().getPort());
71         assertEquals(restServerParameters.getUserName(), pdpxParameters.getRestServerParameters().getUserName());
72         assertEquals(restServerParameters.getPassword(), pdpxParameters.getRestServerParameters().getPassword());
73         assertEquals(CommonTestData.PDPX_GROUP_NAME, pdpxParameters.getName());
74         assertFalse(pdpxParameters.getRestServerParameters().isHttps());
75         assertFalse(pdpxParameters.getRestServerParameters().isAaf());
76     }
77
78     @Test
79     public void testXacmlPdpParameterGroup_NullName() {
80         final RestServerParameters restServerParameters =
81             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
82         final RestServerParameters policyApiParameters =
83                         testData.toObject(testData.getPolicyApiParametersMap(false), RestServerParameters.class);
84         final TopicParameterGroup topicParameterGroup =
85             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
86         final XacmlPdpParameterGroup pdpxParameters = new XacmlPdpParameterGroup(null, restServerParameters,
87                         policyApiParameters, topicParameterGroup, applicationPath.getAbsolutePath());
88         final GroupValidationResult validationResult = pdpxParameters.validate();
89         assertFalse(validationResult.isValid());
90         assertEquals(null, pdpxParameters.getName());
91         assertTrue(validationResult.getResult().contains(
92                 "field \"name\" type \"java.lang.String\" value \"null\" INVALID, " + "must be a non-blank string"));
93     }
94
95     @Test
96     public void testXacmlPdpParameterGroup_EmptyName() {
97         final RestServerParameters restServerParameters =
98             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
99         final RestServerParameters policyApiParameters =
100                         testData.toObject(testData.getPolicyApiParametersMap(false), RestServerParameters.class);
101         final TopicParameterGroup topicParameterGroup =
102             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
103         final XacmlPdpParameterGroup pdpxParameters = new XacmlPdpParameterGroup("", restServerParameters,
104                         policyApiParameters, topicParameterGroup, applicationPath.getAbsolutePath());
105         final GroupValidationResult validationResult = pdpxParameters.validate();
106         assertFalse(validationResult.isValid());
107         assertEquals("", pdpxParameters.getName());
108         assertTrue(validationResult.getResult().contains(
109                 "field \"name\" type \"java.lang.String\" value \"\" INVALID, " + "must be a non-blank string"));
110     }
111
112     @Test
113     public void testXacmlPdpParameterGroup_EmptyRestServerParameters() {
114         final RestServerParameters restServerParameters =
115             testData.toObject(testData.getRestServerParametersMap(true), RestServerParameters.class);
116         final RestServerParameters policyApiParameters =
117                         testData.toObject(testData.getPolicyApiParametersMap(false), RestServerParameters.class);
118         final TopicParameterGroup topicParameterGroup =
119             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
120         final XacmlPdpParameterGroup pdpxParameters =
121                 new XacmlPdpParameterGroup(CommonTestData.PDPX_GROUP_NAME, restServerParameters,
122                                 policyApiParameters, topicParameterGroup, applicationPath.getAbsolutePath());
123         final GroupValidationResult validationResult = pdpxParameters.validate();
124         assertFalse(validationResult.isValid());
125         assertTrue(validationResult.getResult()
126                 .contains("parameter group \"RestServerParameters\""));
127     }
128
129     @Test
130     public void testXacmlPdpParameterGroup_EmptyPolicyApiParameters() {
131         final RestServerParameters restServerParameters =
132             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
133         final RestServerParameters policyApiParameters =
134                         testData.toObject(testData.getPolicyApiParametersMap(true), RestServerParameters.class);
135         final TopicParameterGroup topicParameterGroup =
136             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
137         final XacmlPdpParameterGroup pdpxParameters =
138                 new XacmlPdpParameterGroup(CommonTestData.PDPX_GROUP_NAME, restServerParameters,
139                                 policyApiParameters, topicParameterGroup, applicationPath.getAbsolutePath());
140         final GroupValidationResult validationResult = pdpxParameters.validate();
141         assertFalse(validationResult.isValid());
142         assertTrue(validationResult.getResult()
143                 .contains("parameter group \"policyApiParameters\""));
144     }
145
146     @Test
147     public void testXacmlPdpParameterGroup_EmptyTopicParameterGroup() {
148         final RestServerParameters restServerParameters =
149             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
150         final RestServerParameters policyApiParameters =
151                         testData.toObject(testData.getPolicyApiParametersMap(false), RestServerParameters.class);
152         final TopicParameterGroup topicParameterGroup =
153             testData.toObject(testData.getTopicParametersMap(true), TopicParameterGroup.class);
154         final XacmlPdpParameterGroup pdpxParameters =
155                 new XacmlPdpParameterGroup(CommonTestData.PDPX_GROUP_NAME, restServerParameters,
156                                 policyApiParameters, topicParameterGroup, applicationPath.getAbsolutePath());
157         final GroupValidationResult validationResult = pdpxParameters.validate();
158         assertFalse(validationResult.isValid());
159         assertTrue(validationResult.getResult()
160                 .contains("parameter group \"TopicParameterGroup\""));
161     }
162 }