Browse Source
* JSONUtils support LocalDateTime * remove extraneous unit tests * remove unused classes import. Co-authored-by: HomminLee <lihongmin@ysstech.com>3.1.0-release
HomminLee
2 years ago
committed by
GitHub
2 changed files with 231 additions and 0 deletions
@ -0,0 +1,197 @@ |
|||||||
|
/* |
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||||
|
* contributor license agreements. See the NOTICE file distributed with |
||||||
|
* this work for additional information regarding copyright ownership. |
||||||
|
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||||
|
* (the "License"); you may not use this file except in compliance with |
||||||
|
* the License. You may obtain a copy of the License at |
||||||
|
* |
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* |
||||||
|
* Unless required by applicable law or agreed to in writing, software |
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, |
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||||
|
* See the License for the specific language governing permissions and |
||||||
|
* limitations under the License. |
||||||
|
*/ |
||||||
|
|
||||||
|
package org.apache.dolphinscheduler.spi.utils; |
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.type.TypeReference; |
||||||
|
import com.fasterxml.jackson.databind.SerializationFeature; |
||||||
|
import com.fasterxml.jackson.databind.node.ArrayNode; |
||||||
|
import com.fasterxml.jackson.databind.node.ObjectNode; |
||||||
|
import org.junit.Assert; |
||||||
|
import org.junit.Test; |
||||||
|
|
||||||
|
import java.time.LocalDateTime; |
||||||
|
import java.time.ZoneId; |
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.Date; |
||||||
|
import java.util.HashMap; |
||||||
|
import java.util.LinkedHashMap; |
||||||
|
import java.util.List; |
||||||
|
import java.util.Map; |
||||||
|
import java.util.TimeZone; |
||||||
|
|
||||||
|
public class JSONUtilsTest { |
||||||
|
|
||||||
|
|
||||||
|
@Test |
||||||
|
public void createObjectNodeTest() { |
||||||
|
String jsonStr = "{\"a\":\"b\",\"b\":\"d\"}"; |
||||||
|
|
||||||
|
ObjectNode objectNode = JSONUtils.createObjectNode(); |
||||||
|
objectNode.put("a", "b"); |
||||||
|
objectNode.put("b", "d"); |
||||||
|
String s = JSONUtils.toJsonString(objectNode); |
||||||
|
Assert.assertEquals(s, jsonStr); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void toMap() { |
||||||
|
|
||||||
|
String jsonStr = "{\"id\":\"1001\",\"name\":\"Jobs\"}"; |
||||||
|
|
||||||
|
Map<String, String> models = JSONUtils.toMap(jsonStr); |
||||||
|
Assert.assertEquals("1001", models.get("id")); |
||||||
|
Assert.assertEquals("Jobs", models.get("name")); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Test |
||||||
|
public void string2MapTest() { |
||||||
|
String str = list2String(); |
||||||
|
|
||||||
|
List<LinkedHashMap> maps = JSONUtils.toList(str, |
||||||
|
LinkedHashMap.class); |
||||||
|
|
||||||
|
Assert.assertEquals(1, maps.size()); |
||||||
|
Assert.assertEquals("mysql200", maps.get(0).get("mysql service name")); |
||||||
|
Assert.assertEquals("192.168.xx.xx", maps.get(0).get("mysql address")); |
||||||
|
Assert.assertEquals("3306", maps.get(0).get("port")); |
||||||
|
Assert.assertEquals("80", maps.get(0).get("no index of number")); |
||||||
|
Assert.assertEquals("190", maps.get(0).get("database client connections")); |
||||||
|
} |
||||||
|
|
||||||
|
public String list2String() { |
||||||
|
|
||||||
|
LinkedHashMap<String, String> map1 = new LinkedHashMap<>(); |
||||||
|
map1.put("mysql service name", "mysql200"); |
||||||
|
map1.put("mysql address", "192.168.xx.xx"); |
||||||
|
map1.put("port", "3306"); |
||||||
|
map1.put("no index of number", "80"); |
||||||
|
map1.put("database client connections", "190"); |
||||||
|
|
||||||
|
List<LinkedHashMap<String, String>> maps = new ArrayList<>(); |
||||||
|
maps.add(0, map1); |
||||||
|
String resultJson = JSONUtils.toJsonString(maps); |
||||||
|
return resultJson; |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void testParseObject() { |
||||||
|
Assert.assertNull(JSONUtils.parseObject("")); |
||||||
|
Assert.assertNull(JSONUtils.parseObject("foo", String.class)); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@Test |
||||||
|
public void testJsonByteArray() { |
||||||
|
String str = "foo"; |
||||||
|
byte[] serializeByte = JSONUtils.toJsonByteArray(str); |
||||||
|
String deserialize = JSONUtils.parseObject(serializeByte, String.class); |
||||||
|
Assert.assertEquals(str, deserialize); |
||||||
|
str = null; |
||||||
|
serializeByte = JSONUtils.toJsonByteArray(str); |
||||||
|
deserialize = JSONUtils.parseObject(serializeByte, String.class); |
||||||
|
Assert.assertNull(deserialize); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void testToList() { |
||||||
|
Assert.assertEquals(new ArrayList(), |
||||||
|
JSONUtils.toList("A1B2C3", null)); |
||||||
|
Assert.assertEquals(new ArrayList(), |
||||||
|
JSONUtils.toList("", null)); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void testToMap() { |
||||||
|
Map<String, String> map = new HashMap<>(); |
||||||
|
map.put("foo", "bar"); |
||||||
|
|
||||||
|
Assert.assertTrue(map.equals(JSONUtils.toMap( |
||||||
|
"{\n" + "\"foo\": \"bar\"\n" + "}"))); |
||||||
|
|
||||||
|
Assert.assertFalse(map.equals(JSONUtils.toMap( |
||||||
|
"{\n" + "\"bar\": \"foo\"\n" + "}"))); |
||||||
|
|
||||||
|
Assert.assertNull(JSONUtils.toMap("3")); |
||||||
|
Assert.assertNull(JSONUtils.toMap(null)); |
||||||
|
|
||||||
|
String str = "{\"resourceList\":[],\"localParams\":[],\"rawScript\":\"#!/bin/bash\\necho \\\"shell-1\\\"\"}"; |
||||||
|
Map<String, String> m = JSONUtils.toMap(str); |
||||||
|
Assert.assertNotNull(m); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void testToJsonString() { |
||||||
|
Map<String, Object> map = new HashMap<>(); |
||||||
|
map.put("foo", "bar"); |
||||||
|
|
||||||
|
Assert.assertEquals("{\"foo\":\"bar\"}", |
||||||
|
JSONUtils.toJsonString(map)); |
||||||
|
Assert.assertEquals(String.valueOf((Object) null), |
||||||
|
JSONUtils.toJsonString(null)); |
||||||
|
|
||||||
|
Assert.assertEquals("{\"foo\":\"bar\"}", |
||||||
|
JSONUtils.toJsonString(map, SerializationFeature.WRITE_NULL_MAP_VALUES)); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void parseObject() { |
||||||
|
String str = "{\"color\":\"yellow\",\"type\":\"renault\"}"; |
||||||
|
ObjectNode node = JSONUtils.parseObject(str); |
||||||
|
|
||||||
|
Assert.assertEquals("yellow", node.path("color").asText()); |
||||||
|
|
||||||
|
node.put("price", 100); |
||||||
|
Assert.assertEquals(100, node.path("price").asInt()); |
||||||
|
|
||||||
|
node.put("color", "red"); |
||||||
|
Assert.assertEquals("red", node.path("color").asText()); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void parseArray() { |
||||||
|
String str = "[{\"color\":\"yellow\",\"type\":\"renault\"}]"; |
||||||
|
ArrayNode node = JSONUtils.parseArray(str); |
||||||
|
|
||||||
|
Assert.assertEquals("yellow", node.path(0).path("color").asText()); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void localDateTimeToString() { |
||||||
|
TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai")); |
||||||
|
String time = "2022-02-22 13:38:24"; |
||||||
|
Date date = DateUtils.stringToDate(time); |
||||||
|
LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()); |
||||||
|
String json = JSONUtils.toJsonString(localDateTime); |
||||||
|
Assert.assertEquals("\"" + time + "\"", json); |
||||||
|
} |
||||||
|
|
||||||
|
@Test |
||||||
|
public void stringToLocalDateTime() { |
||||||
|
TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai")); |
||||||
|
String time = "2022-02-22 13:38:24"; |
||||||
|
Date date = DateUtils.stringToDate(time); |
||||||
|
LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()); |
||||||
|
List<LocalDateTime> timeList = JSONUtils.parseObject("[\"2022-02-22 13:38:24\"]", new TypeReference<List<LocalDateTime>>(){}); |
||||||
|
Assert.assertNotNull(timeList); |
||||||
|
Assert.assertEquals(1, timeList.size()); |
||||||
|
Assert.assertEquals(localDateTime, timeList.get(0)); |
||||||
|
} |
||||||
|
|
||||||
|
} |
Loading…
Reference in new issue