2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright © 2017-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.aai.introspection;
23 import java.util.HashSet;
26 import org.json.simple.JSONArray;
27 import org.json.simple.JSONObject;
28 import org.junit.Assert;
29 import org.junit.Before;
30 import org.junit.Ignore;
31 import org.junit.Test;
32 import org.onap.aai.AAISetup;
34 @Ignore("Not a used/flushed out feature")
35 public class JSONStrategyTest extends AAISetup {
36 private JSONStrategy jsonStrategy;
37 private JSONStrategy jsonStrategyContainer;
38 private JSONStrategy jsonStrategyComplex;
43 JSONObject pserver = new JSONObject();
44 pserver.put("hostname", "value1");
45 pserver.put("numberofCpus", 4);
46 jsonStrategy = new JSONStrategy(pserver, "pserver-type");
48 // The values of this object are arrays containing JSONObjects
49 JSONArray pservers = new JSONArray();
50 pservers.add(pserver);
51 JSONObject container = new JSONObject();
52 container.put("pservers", pservers);
53 jsonStrategyContainer = new JSONStrategy(container, "pservers-type");
55 // The values of this object are JSONObjects
56 JSONObject complex = new JSONObject();
57 complex.put("pserver", pserver);
58 jsonStrategyComplex = new JSONStrategy(complex, "pservers-type");
59 } catch (Exception e) {
60 System.out.println("error during setup: " + e.getMessage());
65 public void getSetTest() {
66 jsonStrategy.setValue("ramInMegabytes", 1024);
67 Assert.assertEquals("value1", jsonStrategy.getValue("hostname"));
68 Assert.assertEquals(4, jsonStrategy.getValue("numberofCpus"));
69 Assert.assertEquals(1024, jsonStrategy.getValue("ramInMegabytes"));
74 public void testGetMethods() {
75 Assert.assertEquals("pserver-type", jsonStrategy.getName());
76 Assert.assertEquals("pserver-type", jsonStrategy.getDbName());
77 Assert.assertEquals("", jsonStrategy.getGenericURI());
78 Assert.assertNull(jsonStrategy.getChildName());
79 Assert.assertEquals("key", jsonStrategy.preProcessKey("key"));
83 public void getPropertiesTest() {
84 Set<String> expected = new HashSet<>();
85 expected.add("hostname");
86 expected.add("numberofCpus");
87 Assert.assertEquals(expected, jsonStrategy.getProperties());
91 public void getGenericTypeTest() {
92 // If the values of this object are arrays, return the type within the array
93 Assert.assertEquals("class org.json.simple.JSONObject",
94 jsonStrategyContainer.getGenericTypeClass("pservers").toString());
98 public void getJavaClassNameTest() {
99 Assert.assertEquals("org.json.simple.JSONObject", jsonStrategy.getJavaClassName());
100 Assert.assertEquals("org.json.simple.JSONObject", jsonStrategyContainer.getJavaClassName());
104 public void getTypeTest() {
105 Assert.assertEquals("java.lang.String", jsonStrategy.getType("hostname"));
106 Assert.assertEquals("java.lang.Integer", jsonStrategy.getType("numberofCpus"));
110 public void isContainerTest() {
111 Assert.assertTrue(jsonStrategyContainer.isContainer());
115 public void newInstanceOfPropertyTest() {
116 Assert.assertEquals("class org.json.simple.JSONArray",
117 jsonStrategyContainer.newInstanceOfProperty("pservers").getClass().toString());
120 @Test(expected = NullPointerException.class)
121 public void newInvalidInstanceOfPropertyTest() {
122 Assert.assertEquals(null, jsonStrategyContainer.newInstanceOfProperty("invalid").getClass().toString());
126 public void newInstanceOfNestedPropertyTest() {
127 Assert.assertEquals("class org.json.simple.JSONObject",
128 jsonStrategyContainer.newInstanceOfNestedProperty("pservers").getClass().toString());
131 @Test(expected = NullPointerException.class)
132 public void newInvalidInstanceOfNestedPropertyTest() {
133 jsonStrategyContainer.newInstanceOfNestedProperty("invalid").getClass().toString();
137 public void isComplexTypeTest() {
138 // Complex: The value of this key contains a JSONObject
139 Assert.assertTrue(jsonStrategyComplex.isComplexType("pserver"));
140 Assert.assertFalse(jsonStrategyContainer.isComplexType("pservers"));
141 Assert.assertFalse(jsonStrategy.isComplexType("hostname"));
145 public void isComplexGenericTypeTest() {
146 // Complex Generic: The value of this key contains an array of JSONObjects
147 Assert.assertTrue(jsonStrategyContainer.isComplexGenericType("pservers"));
148 Assert.assertFalse(jsonStrategyComplex.isComplexGenericType("pserver"));
149 Assert.assertFalse(jsonStrategy.isComplexGenericType("hostname"));