2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.onap.policy.pdp.rest.api.utils.test;
24 import static org.junit.Assert.assertFalse;
25 import static org.junit.Assert.assertTrue;
27 import javax.json.Json;
28 import javax.json.JsonArray;
29 import javax.json.JsonObject;
31 import org.json.JSONObject;
32 import org.junit.Test;
33 import org.onap.policy.pdp.rest.api.utils.PolicyApiUtils;
35 public class PolicyApiUtilsTest {
38 public void testValidateDirectoryJsonFields() {
40 String dictonaryAction = "Action";
43 JsonObject jsonObjAttrGood = Json.createObjectBuilder().add("attributeName", "success")
46 .add("url", "http://foobar.com")
47 .add("body", "foobody")
50 JsonObject jsonObjAttrNull = Json.createObjectBuilder().add("attributeName", "").build();
51 JsonObject jsonObjAttrBad = Json.createObjectBuilder().add("attributeName", "succ ess").build();
52 JsonObject jsonObjectMissingAttrName = Json.createObjectBuilder().add("foo", "bar").build();
55 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGood, dictonaryAction).contains("success"));
56 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrNull, dictonaryAction).contains("No Attribute Name provided"));
57 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrBad, dictonaryAction).contains("Invalid Attribute Name"));
58 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjectMissingAttrName, dictonaryAction).contains("Missing attributeName"));
60 /* "type" parameter variations. */
61 JsonObject jsonObjAttrGoodTemp = jsonObjAttrGood;
64 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
67 .add("url", "http://foobar.com")
68 .add("body", "foobody")
70 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("No Type provided"));
73 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
75 .add("url", "http://foobar.com")
76 .add("body", "foobody")
79 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("Missing type key in the dictionaryJson parameter"));
82 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
83 .add("type", "INVALID")
85 .add("url", "http://foobar.com")
86 .add("body", "foobody")
89 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("Invalid Type value"));
91 /* "method" parameter variations. */
92 jsonObjAttrGoodTemp = jsonObjAttrGood;
95 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
98 .add("url", "http://foobar.com")
99 .add("body", "foobody")
101 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("No Method provided"));
104 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
106 .add("url", "http://foobar.com")
107 .add("body", "foobody")
109 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("Missing method key in the dictionaryJson parameter"));
112 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
114 .add("method", "GET")
115 .add("url", "http://foobar.com")
116 .add("body", "foobody")
118 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("success"));
120 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
122 .add("method", "PUT")
123 .add("url", "http://foobar.com")
124 .add("body", "foobody")
126 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("success"));
128 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
130 .add("method", "POST")
131 .add("url", "http://foobar.com")
132 .add("body", "foobody")
134 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("success"));
138 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
140 .add("method", "INVALID")
141 .add("url", "http://foobar.com")
142 .add("body", "foobody")
144 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("Invalid Method value"));
147 /* url parameter variations */
148 jsonObjAttrGoodTemp = jsonObjAttrGood;
151 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
153 .add("method", "GET")
155 .add("body", "foobody")
157 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("No URL provided"));
160 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
162 .add("method", "GET")
163 .add("body", "foobody")
165 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("Missing url key in the dictionaryJson parameter"));
167 /* body parameter variations */
168 jsonObjAttrGoodTemp = jsonObjAttrGood;
171 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
173 .add("method", "GET")
174 .add("url", "http://foobar.com")
177 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("No Body provided"));
180 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
182 .add("method", "GET")
183 .add("url", "http://foobar.com")
185 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("Missing body key in the dictionaryJson parameter"));
188 /*headers parameter variations*/
189 JsonObject jsonObjOption;
190 JsonObject jsonObjNumber;
191 JsonArray jsonArrayHeaders;
193 //missing number headers
194 jsonObjOption = Json.createObjectBuilder().add("option","foobar").build();
195 //jsonObjNumber = Json.createObjectBuilder().add("number","foobar").build();
197 jsonArrayHeaders = Json.createArrayBuilder()
199 //.add(jsonObjNumber)
202 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
204 .add("method", "GET")
205 .add("url", "http://foobar.com")
206 .add("body", "foobody")
207 .add("headers", jsonArrayHeaders)
210 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("Missing number key in the headers list of the dictionaryJson parameter."));
212 //missing options headers
213 jsonObjOption = Json.createObjectBuilder().add("option","foobar").build();
214 jsonObjNumber = Json.createObjectBuilder().add("number","foobar").build();
216 jsonArrayHeaders = Json.createArrayBuilder()
217 //.add(jsonObjOption)
221 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
223 .add("method", "GET")
224 .add("url", "http://foobar.com")
225 .add("body", "foobody")
226 .add("headers", jsonArrayHeaders)
229 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("Missing option key in the headers list of the dictionaryJson parameter."));
232 jsonObjOption = Json.createObjectBuilder().add("option","").build();
233 jsonObjNumber = Json.createObjectBuilder().add("number","foobar").build();
235 jsonArrayHeaders = Json.createArrayBuilder()
240 jsonObjAttrGoodTemp = Json.createObjectBuilder().add("attributeName", "success")
242 .add("method", "GET")
243 .add("url", "http://foobar.com")
244 .add("body", "foobody")
245 .add("headers", jsonArrayHeaders)
248 assertTrue(PolicyApiUtils.validateDictionaryJsonFields(jsonObjAttrGoodTemp, dictonaryAction).contains("Missing required Option value"));
250 //null number can't be tested
255 public void testStringToJsonObject() {
256 String jsonString = "{\"foo\":\"bar\"}";
257 JsonObject obj = PolicyApiUtils.stringToJsonObject(jsonString);
258 assertTrue(obj.get("foo").toString().equals("\"bar\""));
262 public void testIsNumeric() {
263 assertFalse(PolicyApiUtils.isNumeric("notNumeric"));
264 assertTrue(PolicyApiUtils.isNumeric("2"));