Preload default policies
[policy/api.git] / main / src / test / java / org / onap / policy / api / main / parameters / TestApiParameterGroup.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP Policy API
4  * ================================================================================
5  * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved.
6  * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  * SPDX-License-Identifier: Apache-2.0
21  * ============LICENSE_END=========================================================
22  */
23
24 package org.onap.policy.api.main.parameters;
25
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.util.Collections;
31
32 import org.junit.Test;
33 import org.onap.policy.common.endpoints.parameters.RestServerParameters;
34 import org.onap.policy.common.parameters.GroupValidationResult;
35 import org.onap.policy.models.provider.PolicyModelsProviderParameters;
36
37 /**
38  * Class to perform unit test of ApiParameterGroup.
39  *
40  */
41 public class TestApiParameterGroup {
42     private static final int PORT = 6969;
43     private CommonTestData commonTestData = new CommonTestData();
44
45     @Test
46     public void testApiParameterGroup() {
47         final RestServerParameters restServerParameters = commonTestData.getRestServerParameters(false, PORT);
48         final PolicyModelsProviderParameters databaseProviderParameters =
49                 commonTestData.getDatabaseProviderParameters(false);
50         final ApiParameterGroup apiParameters = new ApiParameterGroup(CommonTestData.API_GROUP_NAME,
51                 restServerParameters, databaseProviderParameters, Collections.emptyList(), Collections.emptyList());
52         final GroupValidationResult validationResult = apiParameters.validate();
53         assertTrue(validationResult.isValid());
54         assertEquals(restServerParameters.getHost(), apiParameters.getRestServerParameters().getHost());
55         assertEquals(restServerParameters.getPort(), apiParameters.getRestServerParameters().getPort());
56         assertEquals(restServerParameters.getUserName(),
57                 apiParameters.getRestServerParameters().getUserName());
58         assertEquals(restServerParameters.getPassword(),
59                 apiParameters.getRestServerParameters().getPassword());
60         assertEquals(restServerParameters.isHttps(), apiParameters.getRestServerParameters().isHttps());
61         assertEquals(restServerParameters.isAaf(), apiParameters.getRestServerParameters().isAaf());
62         assertEquals(CommonTestData.API_GROUP_NAME, apiParameters.getName());
63         assertTrue(apiParameters.getPreloadPolicyTypes().isEmpty());
64     }
65
66     @Test
67     public void testApiParameterGroup_NullName() {
68         final RestServerParameters restServerParameters = commonTestData.getRestServerParameters(false, PORT);
69         final PolicyModelsProviderParameters databaseProviderParameters =
70                 commonTestData.getDatabaseProviderParameters(false);
71         final ApiParameterGroup apiParameters = new ApiParameterGroup(null, restServerParameters,
72                 databaseProviderParameters, Collections.emptyList(), Collections.emptyList());
73         final GroupValidationResult validationResult = apiParameters.validate();
74         assertFalse(validationResult.isValid());
75         assertEquals(null, apiParameters.getName());
76         assertTrue(validationResult.getResult()
77                         .contains("field \"name\" type \"java.lang.String\" value \"null\" INVALID, "
78                                         + "must be a non-blank string"));
79     }
80
81     @Test
82     public void testApiParameterGroup_EmptyName() {
83         final RestServerParameters restServerParameters = commonTestData.getRestServerParameters(false, PORT);
84         final PolicyModelsProviderParameters databaseProviderParameters =
85                 commonTestData.getDatabaseProviderParameters(false);
86         final ApiParameterGroup apiParameters = new ApiParameterGroup("", restServerParameters,
87                 databaseProviderParameters, Collections.emptyList(), Collections.emptyList());
88         final GroupValidationResult validationResult = apiParameters.validate();
89         assertFalse(validationResult.isValid());
90         assertEquals("", apiParameters.getName());
91         assertTrue(validationResult.getResult().contains("field \"name\" type \"java.lang.String\" value \"\" INVALID, "
92                         + "must be a non-blank string"));
93     }
94
95     @Test
96     public void testApiParameterGroup_EmptyRestServerParameters() {
97         final RestServerParameters restServerParameters = commonTestData.getRestServerParameters(true, PORT);
98         final PolicyModelsProviderParameters databaseProviderParameters =
99                 commonTestData.getDatabaseProviderParameters(false);
100         final ApiParameterGroup apiParameters = new ApiParameterGroup(CommonTestData.API_GROUP_NAME,
101                 restServerParameters, databaseProviderParameters, Collections.emptyList(), Collections.emptyList());
102         final GroupValidationResult validationResult = apiParameters.validate();
103         assertFalse(validationResult.isValid());
104         assertTrue(validationResult.getResult()
105                         .contains("\"org.onap.policy.common.endpoints.parameters.RestServerParameters\" INVALID, "
106                                         + "parameter group has status INVALID"));
107     }
108
109     @Test
110     public void testApiParameterGroup_NullRestServerParameters() {
111         final RestServerParameters restServerParameters = null;
112         final PolicyModelsProviderParameters databaseProviderParameters =
113                 commonTestData.getDatabaseProviderParameters(false);
114         final ApiParameterGroup apiParameters = new ApiParameterGroup(CommonTestData.API_GROUP_NAME,
115                 restServerParameters, databaseProviderParameters, Collections.emptyList(), Collections.emptyList());
116         final GroupValidationResult validationResult = apiParameters.validate();
117         assertFalse(validationResult.isValid());
118         assertTrue(validationResult.getResult()
119                         .contains("must have restServerParameters to configure api rest server"));
120     }
121
122
123     @Test
124     public void testApiParameterGroup_EmptyDatabaseProviderParameters() {
125         final RestServerParameters restServerParameters = commonTestData.getRestServerParameters(false, PORT);
126         final PolicyModelsProviderParameters databaseProviderParameters =
127                 commonTestData.getDatabaseProviderParameters(true);
128         final ApiParameterGroup apiParameters = new ApiParameterGroup(CommonTestData.API_GROUP_NAME,
129                 restServerParameters, databaseProviderParameters, Collections.emptyList(), Collections.emptyList());
130         final GroupValidationResult validationResult = apiParameters.validate();
131         assertFalse(validationResult.isValid());
132         assertTrue(validationResult.getResult()
133                         .contains("\"org.onap.policy.models.provider.PolicyModelsProviderParameters\" INVALID, "
134                                         + "parameter group has status INVALID"));
135     }
136
137     @Test
138     public void testApiParameterGroup_NullDatabaseProviderParameters() {
139         final RestServerParameters restServerParameters = commonTestData.getRestServerParameters(false, PORT);
140         final PolicyModelsProviderParameters databaseProviderParameters = null;
141         final ApiParameterGroup apiParameters = new ApiParameterGroup(CommonTestData.API_GROUP_NAME,
142                 restServerParameters, databaseProviderParameters, Collections.emptyList(), Collections.emptyList());
143         final GroupValidationResult validationResult = apiParameters.validate();
144         assertFalse(validationResult.isValid());
145         assertTrue(validationResult.getResult()
146                         .contains("must have databaseProviderParameters to configure api rest server"));
147     }
148
149     @Test
150     public void testApiParameterGroup_SetName() {
151         final ApiParameterGroup apiParameters = new ApiParameterGroup(CommonTestData.API_GROUP_NAME,
152                 null, null, Collections.emptyList(), Collections.emptyList());
153         assertEquals(CommonTestData.API_GROUP_NAME, apiParameters.getName());
154         apiParameters.setName("SampleName");
155         assertEquals("SampleName", apiParameters.getName());
156     }
157 }