2 * Copyright 2016-2017 Huawei Technologies Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common;
19 import static org.junit.Assert.*;
21 import java.io.IOException;
22 import java.lang.reflect.Constructor;
23 import java.lang.reflect.Modifier;
24 import java.util.ArrayList;
25 import java.util.List;
27 import javax.servlet.http.HttpServletRequest;
29 import net.sf.json.JSONObject;
30 import net.sf.json.JsonConfig;
32 import org.codehaus.jackson.map.ObjectMapper;
33 import org.junit.Test;
34 import org.onap.vfc.nfvo.vnfm.gvnfm.jujuvnfmadapter.common.VNFJsonUtil;
38 import org.codehaus.jackson.map.type.TypeFactory;
39 import org.codehaus.jackson.type.TypeReference;
40 public class VNFJsonUtilTest {
43 public void testGetJsonFieldStr() {
44 JSONObject VNFJsonObj = new JSONObject();
45 VNFJsonObj.put("name", "testName");
46 String result = VNFJsonUtil.getJsonFieldStr(VNFJsonObj, "name");
47 assertEquals("testName", result);
51 public void testGetJsonFieldStrByNull() {
52 String result = VNFJsonUtil.getJsonFieldStr(null, "name");
53 assertEquals("", result);
57 public void testGetJsonFieldStrByFieldNameNull() {
58 JSONObject VNFJsonObj = new JSONObject();
59 VNFJsonObj.put("names", "testName");
60 String result = VNFJsonUtil.getJsonFieldStr(VNFJsonObj, "name");
61 assertEquals("", result);
65 public void testGetJsonFieldStrByNameNull() {
66 JSONObject VNFJsonObj = new JSONObject();
67 VNFJsonObj.put("name", "null");
68 String result = VNFJsonUtil.getJsonFieldStr(VNFJsonObj, "name");
69 assertEquals("", result);
73 public void testGetJsonFieldInt() {
74 JSONObject VNFJsonObj = new JSONObject();
75 VNFJsonObj.put("name", 5);
76 Integer result = VNFJsonUtil.getJsonFieldInt(VNFJsonObj, "name");
77 assertEquals((Integer)5, result);
81 public void testGetJsonFieldIntByNull() {
82 Integer result = VNFJsonUtil.getJsonFieldInt(null, "name");
83 assertEquals((Integer)0, result);
87 public void testGetJsonFieldIntByNameNull() {
88 JSONObject VNFJsonObj = new JSONObject();
89 VNFJsonObj.put("name", 5);
90 Integer result = VNFJsonUtil.getJsonFieldInt(VNFJsonObj, "names");
91 assertEquals((Integer)0, result);
95 public void testGetJsonFieldLong() {
96 JSONObject VNFJsonObj = new JSONObject();
97 VNFJsonObj.put("name", 5L);
98 Long result = VNFJsonUtil.getJsonFieldLong(VNFJsonObj, "name");
99 assertEquals((Long)5L, result);
103 public void testGetJsonFieldLongByNull() {
104 Long result = VNFJsonUtil.getJsonFieldLong(null, "name");
105 assertEquals((Long)0L, result);
109 public void testGetJsonFieldLongByNameNull() {
110 JSONObject VNFJsonObj = new JSONObject();
111 VNFJsonObj.put("name", 5L);
112 Long result = VNFJsonUtil.getJsonFieldLong(VNFJsonObj, "names");
113 assertEquals((Long)0L, result);
117 public void testParseErrorInfo() {
118 String errorInfo = "{\"error\":{\"message\":\"errorMessage\"}}";
119 String result = VNFJsonUtil.parseErrorInfo(errorInfo);
120 assertEquals("errorMessage", result);
124 public void testParseErrorInfoByNull() {
125 String result = VNFJsonUtil.parseErrorInfo(null);
126 assertEquals("System Error!", result);
130 public void testParseErrorInfoByEmpty() {
131 String errorInfo = "";
132 String result = VNFJsonUtil.parseErrorInfo(errorInfo);
133 assertEquals("System Error!", result);
137 public void testParseErrorInfoByNoError() {
138 String errorInfo = "{\"errors\":{\"message\":\"errorMessage\"}}";
139 String result = VNFJsonUtil.parseErrorInfo(errorInfo);
140 assertEquals("System Error!", result);
144 public void testParseErrorInfoByNoMessage() {
145 String errorInfo = "{\"error\":{\"messages\":\"errorMessage\"}}";
146 String result = VNFJsonUtil.parseErrorInfo(errorInfo);
147 assertEquals("System Error!", result);
151 public void testObjectToJsonStr() {
152 String data = "{\"vnf1\":{\"id\":\"id\"}}";
153 String result = VNFJsonUtil.objectToJsonStr(data);
154 assertEquals(data, result);
158 public void testObjectToJson() {
159 String data = "{\"vnf1\":{\"id\":\"id\"}}";
160 JSONObject result = VNFJsonUtil.objectToJson(data);
161 assertEquals(JSONObject.fromObject(data), result);
164 public void marshalTest() throws IOException{
165 net.sf.json.JSON json = new JSONObject();
166 String res = VNFJsonUtil.marshal(json);
167 assertTrue(res.equals("{}"));
171 public void marshalTestException() throws IOException{
173 String res = VNFJsonUtil.marshal(str);
174 assertTrue(res != null);
178 public void VNFJsonToListsTest(){
179 List<TestPojo> pojoList = VNFJsonUtil.vnfJsonToLists("[{\"name\":\"test\",\"id\":\"123\"}]",TestPojo.class);
180 assertTrue(pojoList.size()==1);
184 public void VNFJsonToListTest(){
185 List<TestPojo> pojoList = VNFJsonUtil.vnfJsonToList("[{\"name\":\"test\",\"id\":\"123\"}]", TestPojo.class, "test");
186 assertTrue(pojoList.size()==1);
190 public void VNFJsonToObjectsTest(){
191 TestPojo pojo = VNFJsonUtil.vnfJsonToObjects("{\"name\":\"test\",\"id\":\"123\"}", TestPojo.class);
192 assertTrue("test".equals(pojo.getName()) && "123".equals(pojo.getId()));
195 @Test(expected = Exception.class)
196 public void VNFJsonToObjectsTestException(){
197 JsonConfig VNFJsonConfig = new JsonConfig();
198 TestPojo pojo = VNFJsonUtil.vnfJsonToObjects("{\"id\":\"123\",\"name\":\"test\"}", VNFJsonConfig);
202 public void objectToJsonTest(){
203 JsonConfig VNFJsonConfig = new JsonConfig();
204 TestPojo pojo = new TestPojo();
205 pojo.setName("test");
207 String res = VNFJsonUtil.objectToJson(pojo, VNFJsonConfig);
208 assertTrue("{\"id\":\"123\",\"name\":\"test\"}".equals(res));
212 public void objectToJsonTest2(){
213 TestPojo pojo = new TestPojo();
214 pojo.setName("test");
216 String res = VNFJsonUtil.objectToJson(pojo, "");
217 assertTrue("{\"id\":\"123\",\"name\":\"test\"}".equals(res));
221 public void listToJsonTest(){
222 List<TestPojo> pojoList = new ArrayList<TestPojo>();
223 TestPojo pojo = new TestPojo();
224 pojo.setName("test");
227 String res = VNFJsonUtil.listToJson(pojoList);
228 assertTrue("[{\"id\":\"123\",\"name\":\"test\"}]".equals(res));
232 public void listToJsonTest2(){
233 List<TestPojo> pojoList = new ArrayList<TestPojo>();
234 TestPojo pojo = new TestPojo();
235 pojo.setName("test");
238 String res = VNFJsonUtil.listToJson(pojoList,"");
239 assertTrue("[{\"id\":\"123\",\"name\":\"test\"}]".equals(res));
242 public void testPrivateConstructor() throws Exception {
243 Constructor constructor = VNFJsonUtil.class.getDeclaredConstructor();
244 assertTrue("Constructor private", Modifier.isPrivate(constructor.getModifiers()));
245 constructor.setAccessible(true);
246 constructor.newInstance();