From c92319fe1b5703902564cec7f9cced8edcb31d1a Mon Sep 17 00:00:00 2001 From: Anton Pinsky Date: Thu, 12 Oct 2023 21:14:48 +0200 Subject: [PATCH] [#617]And once again the copyright Signed-off-by: Anton Pinsky --- .../yasson/serializers/SerializersTest.java | 58 ++++++++++--------- 1 file changed, 32 insertions(+), 26 deletions(-) diff --git a/src/test/java/org/eclipse/yasson/serializers/SerializersTest.java b/src/test/java/org/eclipse/yasson/serializers/SerializersTest.java index 3f361c4d..7b33eb9e 100644 --- a/src/test/java/org/eclipse/yasson/serializers/SerializersTest.java +++ b/src/test/java/org/eclipse/yasson/serializers/SerializersTest.java @@ -81,6 +81,7 @@ import static org.eclipse.yasson.Jsonbs.nullableJsonb; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; import static org.hamcrest.CoreMatchers.is; @@ -121,6 +122,7 @@ public void serialize(Box box, JsonGenerator out, SerializationContext ctx) { out.writeEnd(); }; + @Test public void testClassLevelAnnotation() { Crate crate = new Crate(); @@ -173,46 +175,50 @@ public void testClassLevelAnnotationOnGenericRoot() { * Tests JSONB deserialization of arbitrary type invoked from a Deserializer. */ @Test - public void testDeserializerDeserializationByType() { + public void testDeserializerDeserializationByType() throws Exception { JsonbConfig config = new JsonbConfig().withDeserializers(new CrateDeserializer()); - Jsonb jsonb = JsonbBuilder.create(config); + try (Jsonb jsonb = JsonbBuilder.create(config)) { - Box box = createPojoWithDates(); + Box box = createPojoWithDates(); - String expected = "{\"boxStr\":\"Box string\",\"crate\":{\"crateInner\":{\"crateInnerBigDec\":10,\"crate_inner_str\":\"Single inner\",\"date\":\"14.05.2015 || 11:10:01\"},\"crateInnerList\":[{\"crateInnerBigDec\":10,\"crate_inner_str\":\"List inner 0\"},{\"crateInnerBigDec\":10,\"crate_inner_str\":\"List inner 1\"}],\"date\":\"2015-05-14T11:10:01\"},\"secondBoxStr\":\"Second box string\"}"; + String expected = + "{\"boxStr\":\"Box string\",\"crate\":{\"crateInner\":{\"crateInnerBigDec\":10,\"crate_inner_str\":\"Single inner\",\"date\":\"14.05.2015 || 11:10:01\"},\"crateInnerList\":[{\"crateInnerBigDec\":10,\"crate_inner_str\":\"List inner 0\"},{\"crateInnerBigDec\":10,\"crate_inner_str\":\"List inner 1\"}],\"date\":\"2015-05-14T11:10:01\"},\"secondBoxStr\":\"Second box string\"}"; - Box result = jsonb.fromJson(expected, Box.class); + Box result = jsonb.fromJson(expected, Box.class); - //deserialized by deserializationContext.deserialize(Class c) - assertEquals(box.crate.crateInner.crateInnerBigDec, result.crate.crateInner.crateInnerBigDec); - assertEquals(box.crate.crateInner.crateInnerStr, result.crate.crateInner.crateInnerStr); + //deserialized by deserializationContext.deserialize(Class c) + assertEquals(box.crate.crateInner.crateInnerBigDec, result.crate.crateInner.crateInnerBigDec); + assertEquals(box.crate.crateInner.crateInnerStr, result.crate.crateInner.crateInnerStr); - assertEquals("List inner 0", result.crate.crateInnerList.get(0).crateInnerStr); - assertEquals("List inner 1", result.crate.crateInnerList.get(1).crateInnerStr); + assertEquals("List inner 0", result.crate.crateInnerList.get(0).crateInnerStr); + assertEquals("List inner 1", result.crate.crateInnerList.get(1).crateInnerStr); - //set by deserializer statically - assertEquals(new BigDecimal("123"), result.crate.crateBigDec); - assertEquals("abc", result.crate.crateStr); + //set by deserializer statically + assertEquals(new BigDecimal("123"), result.crate.crateBigDec); + assertEquals("abc", result.crate.crateStr); + } } /** * Tests JSONB serialization of arbitrary type invoked from a Serializer. */ @Test - public void testSerializerSerializationOfType() { + public void testSerializerSerializationOfType() throws Exception { JsonbConfig config = new JsonbConfig().withSerializers(new CrateSerializer()); - Jsonb jsonb = JsonbBuilder.create(config); - String expected = "{\"boxStr\":\"Box string\",\"crate\":{\"crateStr\":\"REPLACED crate str\",\"crateInner\":{\"crateInnerBigDec\":10,\"crate_inner_str\":\"Single inner\"},\"crateInnerList\":[{\"crateInnerBigDec\":10,\"crate_inner_str\":\"List inner 0\"},{\"crateInnerBigDec\":10,\"crate_inner_str\":\"List inner 1\"}],\"crateBigDec\":54321},\"secondBoxStr\":\"Second box string\"}"; - Box pojo = createPojo(); - - assertEquals(expected, jsonb.toJson(pojo)); - - Box result = jsonb.fromJson(expected, Box.class); - assertEquals(new BigDecimal("54321"), result.crate.crateBigDec); - //result.crate.crateStr is mapped to crate_str by jsonb property - assertNull(result.crate.crateStr); - assertEquals(pojo.crate.crateInner.crateInnerStr, result.crate.crateInner.crateInnerStr); - assertEquals(pojo.crate.crateInner.crateInnerBigDec, result.crate.crateInner.crateInnerBigDec); + try (Jsonb jsonb = JsonbBuilder.create(config)) { + String expected = + "{\"boxStr\":\"Box string\",\"crate\":{\"crateStr\":\"REPLACED crate str\",\"crateInner\":{\"crateInnerBigDec\":10,\"crate_inner_str\":\"Single inner\"},\"crateInnerList\":[{\"crateInnerBigDec\":10,\"crate_inner_str\":\"List inner 0\"},{\"crateInnerBigDec\":10,\"crate_inner_str\":\"List inner 1\"}],\"crateBigDec\":54321},\"secondBoxStr\":\"Second box string\"}"; + Box pojo = createPojo(); + + assertEquals(expected, jsonb.toJson(pojo)); + + Box result = jsonb.fromJson(expected, Box.class); + assertEquals(new BigDecimal("54321"), result.crate.crateBigDec); + //result.crate.crateStr is mapped to crate_str by jsonb property + assertNull(result.crate.crateStr); + assertEquals(pojo.crate.crateInner.crateInnerStr, result.crate.crateInner.crateInnerStr); + assertEquals(pojo.crate.crateInner.crateInnerBigDec, result.crate.crateInner.crateInnerBigDec); + } } @Test