Skip to content

Commit b2f4812

Browse files
committed
add json parse test
1 parent 830e515 commit b2f4812

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package com.checkmarx.ast;
2+
3+
import com.checkmarx.ast.utils.JsonParser;
4+
import com.fasterxml.jackson.databind.JavaType;
5+
import com.fasterxml.jackson.databind.type.TypeFactory;
6+
import org.junit.jupiter.api.Assertions;
7+
import org.junit.jupiter.api.Test;
8+
9+
import java.util.Arrays;
10+
import java.util.List;
11+
import java.util.Map;
12+
13+
class JsonParserTest extends BaseTest {
14+
15+
@Test
16+
void testValidJsonParsing_WhenValidJsonProvided_ReturnsParsedObject() {
17+
// Arrange
18+
String validJson = "{\"name\": \"test\", \"value\": 123}";
19+
TypeFactory typeFactory = TypeFactory.defaultInstance();
20+
JavaType type = typeFactory.constructMapType(Map.class, String.class, Object.class);
21+
22+
// Act
23+
Map<String, Object> result = JsonParser.parse(validJson, type);
24+
25+
// Assert
26+
Assertions.assertNotNull(result, "Result should not be null");
27+
Assertions.assertEquals("test", result.get("name"), "Name value should match");
28+
Assertions.assertEquals(123, result.get("value"), "Numeric value should match");
29+
}
30+
31+
@Test
32+
void testNullAndEmptyInput_WhenInvalidInputProvided_ReturnsNull() {
33+
// Arrange
34+
TypeFactory typeFactory = TypeFactory.defaultInstance();
35+
JavaType type = typeFactory.constructMapType(Map.class, String.class, String.class);
36+
37+
// Act & Assert
38+
Assertions.assertNull(JsonParser.parse(null, type), "Null input should return null");
39+
Assertions.assertNull(JsonParser.parse("", type), "Empty string should return null");
40+
Assertions.assertNull(JsonParser.parse(" ", type), "Whitespace should return null");
41+
}
42+
43+
@Test
44+
void testInvalidJson_WhenMalformedJsonProvided_ReturnsNull() {
45+
// Arrange
46+
TypeFactory typeFactory = TypeFactory.defaultInstance();
47+
JavaType type = typeFactory.constructMapType(Map.class, String.class, String.class);
48+
49+
// Act & Assert
50+
Assertions.assertNull(JsonParser.parse("{invalid:json}", type), "Invalid JSON should return null");
51+
Assertions.assertNull(JsonParser.parse("{\"key\":\"value\"", type), "Incomplete JSON should return null");
52+
}
53+
54+
@Test
55+
void testListParsing_WhenValidJsonArrayProvided_ReturnsParsedList() {
56+
// Arrange
57+
String jsonList = "[\"item1\", \"item2\", \"item3\"]";
58+
TypeFactory typeFactory = TypeFactory.defaultInstance();
59+
JavaType type = typeFactory.constructCollectionType(List.class, String.class);
60+
61+
// Act
62+
List<String> result = JsonParser.parse(jsonList, type);
63+
64+
// Assert
65+
Assertions.assertNotNull(result, "Result should not be null");
66+
Assertions.assertEquals(Arrays.asList("item1", "item2", "item3"), result, "List contents should match");
67+
}
68+
}

0 commit comments

Comments
 (0)