Skip to content

Commit

Permalink
add testcase
Browse files Browse the repository at this point in the history
  • Loading branch information
wenshao committed May 5, 2022
1 parent 20d53d6 commit f43da23
Showing 1 changed file with 39 additions and 4 deletions.
43 changes: 39 additions & 4 deletions core/src/test/java/com/alibaba/fastjson2/OptionalTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import static org.junit.jupiter.api.Assertions.*;

public class OptionalTest {

@Test
public void testOptionalInt() {
assertEquals(123, JSON.parseObject("123", OptionalInt.class).getAsInt());
Expand Down Expand Up @@ -129,6 +130,40 @@ public void testOptional_Integer_utf8() {
);
}

@Test
public void testOptional_Integer_ascii() {
{
byte[] asciiBytes = "\"123\"".getBytes(StandardCharsets.UTF_8);
Optional<Integer> optional = JSON.parseObject(asciiBytes, 0, asciiBytes.length, StandardCharsets.US_ASCII, new TypeReference<Optional<Integer>>() {
}.getType());
assertEquals(Integer.valueOf(123), optional.get());
}
{
byte[] asciiBytes = "'123'".getBytes(StandardCharsets.UTF_8);
Optional<Integer> optional = JSON.parseObject(asciiBytes, 0, asciiBytes.length, StandardCharsets.US_ASCII, new TypeReference<Optional<Integer>>() {
}.getType());
assertEquals(Integer.valueOf(123), optional.get());
}
{
byte[] asciiBytes = "123".getBytes(StandardCharsets.UTF_8);
Optional<Integer> optional = JSON.parseObject(asciiBytes, 0, asciiBytes.length, StandardCharsets.US_ASCII, new TypeReference<Optional<Integer>>() {
}.getType());
assertEquals(Integer.valueOf(123), optional.get());
}
{
byte[] asciiBytes = "''".getBytes(StandardCharsets.UTF_8);
Optional<Integer> optional = JSON.parseObject(asciiBytes, 0, asciiBytes.length, StandardCharsets.US_ASCII, new TypeReference<Optional<Integer>>() {
}.getType());
assertFalse(optional.isPresent());
}
{
byte[] asciiBytes = "\"\"".getBytes(StandardCharsets.UTF_8);
Optional<Integer> optional = JSON.parseObject(asciiBytes, 0, asciiBytes.length, StandardCharsets.US_ASCII, new TypeReference<Optional<Integer>>() {
}.getType());
assertFalse(optional.isPresent());
}
}

@Test
public void testOptional_Long() {
assertEquals(Long.valueOf(123),
Expand Down Expand Up @@ -466,7 +501,7 @@ public void testOptional_BigDecimal_utf8() {
}

@Test
public void testOptional_Integer_Field() {
public void testOptional_Integer_Field_utf8() {
assertEquals(Integer.valueOf(123), JSON.parseObject("{\"value\":\"123\"}}".getBytes(StandardCharsets.UTF_8), Bean_Integer.class).value.get());
assertEquals(Integer.valueOf(123), JSON.parseObject("{\"value\":'123'}}".getBytes(StandardCharsets.UTF_8), Bean_Integer.class).value.get());
assertEquals(Integer.valueOf(123), JSON.parseObject("{\"value\":123}}".getBytes(StandardCharsets.UTF_8), Bean_Integer.class).value.get());
Expand All @@ -478,7 +513,7 @@ public void testOptional_Integer_Field() {
}

@Test
public void testOptional_Integer_Field_utf8() {
public void testOptional_Integer_Field() {
assertEquals(Integer.valueOf(123), JSON.parseObject("{\"value\":\"123\"}}", Bean_Integer.class).value.get());
assertEquals(Integer.valueOf(123), JSON.parseObject("{\"value\":'123'}}", Bean_Integer.class).value.get());
assertEquals(Integer.valueOf(123), JSON.parseObject("{\"value\":123}}", Bean_Integer.class).value.get());
Expand All @@ -494,7 +529,7 @@ public static class Bean_Integer {
}

@Test
public void testOptional_Long_Field() {
public void testOptional_Long_Field_utf8() {
assertEquals(Long.valueOf(123), JSON.parseObject("{\"value\":\"123\"}}".getBytes(StandardCharsets.UTF_8), Bean_Long.class).value.get());
assertEquals(Long.valueOf(123), JSON.parseObject("{\"value\":'123'}}".getBytes(StandardCharsets.UTF_8), Bean_Long.class).value.get());
assertEquals(Long.valueOf(123), JSON.parseObject("{\"value\":123}}".getBytes(StandardCharsets.UTF_8), Bean_Long.class).value.get());
Expand All @@ -506,7 +541,7 @@ public void testOptional_Long_Field() {
}

@Test
public void testOptional_Long_Field_utf8() {
public void testOptional_Long_Field() {
assertEquals(Long.valueOf(123), JSON.parseObject("{\"value\":\"123\"}}", Bean_Long.class).value.get());
assertEquals(Long.valueOf(123), JSON.parseObject("{\"value\":'123'}}", Bean_Long.class).value.get());
assertEquals(Long.valueOf(123), JSON.parseObject("{\"value\":123}}", Bean_Long.class).value.get());
Expand Down

0 comments on commit f43da23

Please sign in to comment.