This is an automated email from the ASF dual-hosted git repository. struberg pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/johnzon.git
The following commit(s) were added to refs/heads/master by this push: new e4b893b1 adding a test for primitive value defaults e4b893b1 is described below commit e4b893b100ea1eb6309a3c384d80d0b2346297de Author: Mark Struberg <strub...@apache.org> AuthorDate: Wed Oct 11 13:10:55 2023 +0200 adding a test for primitive value defaults --- .../org/apache/johnzon/jsonb/JsonbTypesTest.java | 69 +++++++++++++++++++++- 1 file changed, 66 insertions(+), 3 deletions(-) diff --git a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbTypesTest.java b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbTypesTest.java index 04d43705..68be3de3 100644 --- a/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbTypesTest.java +++ b/johnzon-jsonb/src/test/java/org/apache/johnzon/jsonb/JsonbTypesTest.java @@ -136,33 +136,50 @@ public class JsonbTypesTest { } @Test - public void testOptionalViaJsonbCreatorFullJson() { + public void testOptionalViaJsonbCreatorFullJson() throws Exception { final Jsonb jsonb = newJsonb(); final String json = "{\"intOptional\":4711,\"stringOptional\":\"testVal\"}"; final OptionalTypes optionalTypes = jsonb.fromJson(json, OptionalTypes.class); assertNotNull(optionalTypes); assertEquals("testVal", optionalTypes.getOptionalString()); assertEquals(4711, optionalTypes.getOptionalInt()); + jsonb.close(); } @Test - public void testOptionalViaJsonbCreatorEmptyJson() { + public void testOptionalViaJsonbCreatorEmptyJson() throws Exception { final Jsonb jsonb = newJsonb(); final String json = "{ }"; final OptionalTypes optionalTypes = jsonb.fromJson(json, OptionalTypes.class); assertNotNull(optionalTypes); assertEquals(OptionalTypes.EMPTY, optionalTypes.getOptionalString()); assertEquals(-1, optionalTypes.getOptionalInt()); + jsonb.close(); } @Test - public void testOptionalViaJsonbCreatorPartialJson() { + public void testOptionalViaJsonbCreatorPartialJson() throws Exception { final Jsonb jsonb = newJsonb(); final String json = "{\"intOptional\":4711}"; final OptionalTypes optionalTypes = jsonb.fromJson(json, OptionalTypes.class); assertNotNull(optionalTypes); assertEquals(OptionalTypes.EMPTY, optionalTypes.getOptionalString()); assertEquals(4711, optionalTypes.getOptionalInt()); + jsonb.close(); + } + + @Test + public void testPrimitiveEmptyJson() throws Exception { + final Jsonb jsonb = newJsonb(); + final String json = "{ }"; + final PrimitiveTypes primitiveTypes = jsonb.fromJson(json, PrimitiveTypes.class); + assertNotNull(primitiveTypes); + assertEquals(0, primitiveTypes.getByteVal()); + assertEquals(0, primitiveTypes.getShortVal()); + assertEquals(0, primitiveTypes.getIntVal()); + assertEquals(0L, primitiveTypes.getLongVal()); + + jsonb.close(); } private void readAndWriteWithDateFormat(DateTimeFormatter dateTimeFormatter, String dateFormat) throws Exception { @@ -580,4 +597,50 @@ public class JsonbTypesTest { return optionalInt; } } + + public static class PrimitiveTypes { + private final byte byteVal; + private final short shortVal; + private final char charVal; + private final int intVal; + private final long longVal; + + public PrimitiveTypes(byte byteVal, short shortVal, char charVal, int intVal, long longVal) { + this.byteVal = byteVal; + this.shortVal = shortVal; + this.charVal = charVal; + this.intVal = intVal; + this.longVal = longVal; + + } + + @JsonbCreator + public static PrimitiveTypes init(@JsonbProperty("byteVal") byte byteVal, + @JsonbProperty("shortVal") short shortVal, + @JsonbProperty("charVal") char charVal, + @JsonbProperty("intVal") int intVal, + @JsonbProperty("longVal") long longVal) { + return new PrimitiveTypes(byteVal, shortVal, charVal, intVal, longVal); + } + + public byte getByteVal() { + return byteVal; + } + + public short getShortVal() { + return shortVal; + } + + public char getCharVal() { + return charVal; + } + + public int getIntVal() { + return intVal; + } + + public long getLongVal() { + return longVal; + } + } }