2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Modifications Copyright (C) 2019 Samsung
8 * ================================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 * ============LICENSE_END=========================================================
23 package org.onap.policy.pdp.rest.api.utils.test;
26 import static org.junit.Assert.assertFalse;
27 import static org.junit.Assert.assertTrue;
28 import javax.json.Json;
29 import javax.json.JsonArray;
30 import javax.json.JsonObject;
31 import org.junit.Test;
32 import org.onap.policy.pdp.rest.api.utils.PolicyApiUtils;
34 public class PolicyApiUtilsTest {
37 public void testValidateDirectoryJsonFields() {
39 String dictonaryAction = "Action";
41 JsonObject jsonObjAttrGood = Json.createObjectBuilder().add("attributeName", "success")
42 .add("type", "REST").add("method", "GET").add("url", "http://foobar.com")
43 .add("body", "foobody").build();
45 JsonObject jsonObjAttrNull = Json.createObjectBuilder().add("attributeName", "").build();
46 JsonObject jsonObjAttrBad =
47 Json.createObjectBuilder().add("attributeName", "succ ess").build();
48 JsonObject jsonObjectMissingAttrName = Json.createObjectBuilder().add("foo", "bar").build();
50 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGood, dictonaryAction)
51 .contains("success"));
52 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrNull, dictonaryAction)
53 .contains("No Attribute Name provided"));
54 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrBad, dictonaryAction)
55 .contains("Invalid Attribute Name"));
56 assertTrue(PolicyApiUtils
57 .validateDictionaryJsonFields(jsonObjectMissingAttrName, dictonaryAction)
58 .contains("Missing attributeName"));
60 /* "type" parameter variations. */
61 JsonObject jsonObjAttrGoodTemp = jsonObjAttrGood;
64 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
65 .add("type", "").add("method", "GET").add("url", "http://foobar.com")
66 .add("body", "foobody").build();
67 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction)
68 .contains("No Type provided"));
72 Json.createObjectBuilder().add("attributeName", "success").add("method", "GET")
73 .add("url", "http://foobar.com").add("body", "foobody").build();
75 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction)
76 .contains("Missing type key in the dictionaryJson parameter"));
79 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
80 .add("type", "INVALID").add("method", "GET").add("url", "http://foobar.com")
81 .add("body", "foobody").build();
83 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction)
84 .contains("Invalid Type value"));
86 /* "method" parameter variations. */
87 jsonObjAttrGoodTemp = jsonObjAttrGood;
90 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
91 .add("type", "REST").add("method", "").add("url", "http://foobar.com")
92 .add("body", "foobody").build();
93 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction)
94 .contains("No Method provided"));
97 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
98 .add("type", "REST").add("url", "http://foobar.com").add("body", "foobody").build();
99 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction)
100 .contains("Missing method key in the dictionaryJson parameter"));
103 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
104 .add("type", "REST").add("method", "GET").add("url", "http://foobar.com")
105 .add("body", "foobody").build();
106 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction)
107 .contains("success"));
109 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
110 .add("type", "REST").add("method", "PUT").add("url", "http://foobar.com")
111 .add("body", "foobody").build();
112 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction)
113 .contains("success"));
115 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
116 .add("type", "REST").add("method", "POST").add("url", "http://foobar.com")
117 .add("body", "foobody").build();
118 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction)
119 .contains("success"));
123 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
124 .add("type", "REST").add("method", "INVALID").add("url", "http://foobar.com")
125 .add("body", "foobody").build();
126 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction)
127 .contains("Invalid Method value"));
129 /* url parameter variations */
130 jsonObjAttrGoodTemp = jsonObjAttrGood;
133 jsonObjAttrGoodTemp =
134 Json.createObjectBuilder().add("attributeName", "success").add("type", "REST")
135 .add("method", "GET").add("url", "").add("body", "foobody").build();
136 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction)
137 .contains("No URL provided"));
140 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
141 .add("type", "REST").add("method", "GET").add("body", "foobody").build();
142 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction)
143 .contains("Missing url key in the dictionaryJson parameter"));
145 /* body parameter variations */
146 jsonObjAttrGoodTemp = jsonObjAttrGood;
149 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
150 .add("type", "REST").add("method", "GET").add("url", "http://foobar.com")
151 .add("body", "").build();
152 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction)
153 .contains("No Body provided"));
156 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
157 .add("type", "REST").add("method", "GET").add("url", "http://foobar.com").build();
158 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction)
159 .contains("Missing body key in the dictionaryJson parameter"));
161 /* headers parameter variations */
162 JsonObject jsonObjOption;
163 JsonObject jsonObjNumber;
164 JsonArray jsonArrayHeaders;
166 // missing number headers
167 jsonObjOption = Json.createObjectBuilder().add("option", "foobar").build();
168 // jsonObjNumber = Json.createObjectBuilder().add("number","foobar").build();
170 jsonArrayHeaders = Json.createArrayBuilder().add(jsonObjOption)
171 // .add(jsonObjNumber)
174 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
175 .add("type", "REST").add("method", "GET").add("url", "http://foobar.com")
176 .add("body", "foobody").add("headers", jsonArrayHeaders).build();
178 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction)
180 "Missing number key in the headers list of the dictionaryJson parameter."));
182 // missing options headers
183 jsonObjOption = Json.createObjectBuilder().add("option", "foobar").build();
184 jsonObjNumber = Json.createObjectBuilder().add("number", "foobar").build();
186 jsonArrayHeaders = Json.createArrayBuilder()
187 // .add(jsonObjOption)
188 .add(jsonObjNumber).build();
190 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
191 .add("type", "REST").add("method", "GET").add("url", "http://foobar.com")
192 .add("body", "foobody").add("headers", jsonArrayHeaders).build();
194 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction)
196 "Missing option key in the headers list of the dictionaryJson parameter."));
199 jsonObjOption = Json.createObjectBuilder().add("option", "").build();
200 jsonObjNumber = Json.createObjectBuilder().add("number", "foobar").build();
202 jsonArrayHeaders = Json.createArrayBuilder().add(jsonObjOption).add(jsonObjNumber).build();
204 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
205 .add("type", "REST").add("method", "GET").add("url", "http://foobar.com")
206 .add("body", "foobody").add("headers", jsonArrayHeaders).build();
208 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction)
209 .contains("Missing required Option value"));
211 // null number can't be tested
215 public void testStringToJsonObject() {
216 String jsonString = "{\"foo\":\"bar\"}";
217 JsonObject obj = PolicyApiUtils.stringToJsonObject(jsonString);
218 assertTrue(obj.get("foo").toString().equals("\"bar\""));
222 public void testIsNumeric() {
223 assertFalse(PolicyApiUtils.isNumeric("notNumeric"));
224 assertTrue(PolicyApiUtils.isNumeric("2"));