From 134248ac94b927ee8e0723edfde0e075766bcf43 Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 21 Dec 2013 16:49:46 +0200 Subject: [PATCH] jackson work --- ...va => JacksonDeserializationUnitTest.java} | 73 ++++--------------- .../jackson/JacksonSerializationUnitTest.java | 66 +++++++++++++++++ 2 files changed, 79 insertions(+), 60 deletions(-) rename jackson/src/test/java/org/baeldung/jackson/{JacksonUnitTest.java => JacksonDeserializationUnitTest.java} (59%) create mode 100644 jackson/src/test/java/org/baeldung/jackson/JacksonSerializationUnitTest.java diff --git a/jackson/src/test/java/org/baeldung/jackson/JacksonUnitTest.java b/jackson/src/test/java/org/baeldung/jackson/JacksonDeserializationUnitTest.java similarity index 59% rename from jackson/src/test/java/org/baeldung/jackson/JacksonUnitTest.java rename to jackson/src/test/java/org/baeldung/jackson/JacksonDeserializationUnitTest.java index 3bb2041a17..1bbdbeb075 100644 --- a/jackson/src/test/java/org/baeldung/jackson/JacksonUnitTest.java +++ b/jackson/src/test/java/org/baeldung/jackson/JacksonDeserializationUnitTest.java @@ -1,72 +1,25 @@ package org.baeldung.jackson; -import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.not; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertThat; import java.io.IOException; -import java.util.List; import org.junit.Test; import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.deser.DeserializationProblemHandler; import com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException; -import com.google.common.collect.Lists; -public class JacksonUnitTest { - - // tests - single entity to json - - @Test - public final void givenOnlyNonDefaultValuesAreSerialized_whenDtoHasOnlyDefaultValues_thenCorrect() throws JsonParseException, IOException { - final ObjectMapper mapper = new ObjectMapper(); - final String dtoAsString = mapper.writeValueAsString(new FooDto()); - - assertThat(dtoAsString, not(containsString("intValue"))); - System.out.println(dtoAsString); - } - - @Test - public final void givenOnlyNonDefaultValuesAreSerialized_whenDtoHasNonDefaultValue_thenCorrect() throws JsonParseException, IOException { - final ObjectMapper mapper = new ObjectMapper(); - final FooDto dtoObject = new FooDto(); - dtoObject.setBooleanValue(true); - - final String dtoAsString = mapper.writeValueAsString(dtoObject); - - assertThat(dtoAsString, containsString("booleanValue")); - System.out.println(dtoAsString); - } - - @Test - public final void givenFieldIsIgnored_whenDtoIsSerialized_thenCorrect() throws JsonParseException, IOException { - final ObjectMapper mapper = new ObjectMapper(); - final BarDto dtoObject = new BarDto(); - dtoObject.setBooleanValue(true); - - final String dtoAsString = mapper.writeValueAsString(dtoObject); - - assertThat(dtoAsString, not(containsString("intValue"))); - assertThat(dtoAsString, containsString("booleanValue")); - System.out.println(dtoAsString); - } - - // tests - multiple entities to json - - @Test - public final void whenDtoIsSerialized_thenCorrect() throws JsonParseException, IOException { - final List listOfDtos = Lists.newArrayList(new MyDto("a", 1, true), new MyDto("bc", 3, false)); - - final ObjectMapper mapper = new ObjectMapper(); - final String dtosAsString = mapper.writeValueAsString(listOfDtos); - - System.out.println(dtosAsString); - } +public class JacksonDeserializationUnitTest { // tests - json to single entity @@ -120,14 +73,14 @@ public class JacksonUnitTest { assertThat(readValue.getStringValue(), equalTo("a")); assertThat(readValue.isBooleanValue(), equalTo(true)); assertThat(readValue.getIntValue(), equalTo(1)); - } - // tests - json to multiple entities + mapper.addHandler(new DeserializationProblemHandler() { + @Override + public boolean handleUnknownProperty(final DeserializationContext ctxt, final JsonParser jp, final JsonDeserializer deserializer, final Object beanOrClass, final String propertyName) throws IOException, JsonProcessingException { + return super.handleUnknownProperty(ctxt, jp, deserializer, beanOrClass, propertyName); + } + }); + } } -/* -Article Ideas: -- Deserializing with a custom JsonParser -- Jackson Ignore: ignore specific fields at field level, at class level, - */ diff --git a/jackson/src/test/java/org/baeldung/jackson/JacksonSerializationUnitTest.java b/jackson/src/test/java/org/baeldung/jackson/JacksonSerializationUnitTest.java new file mode 100644 index 0000000000..46bdff06fb --- /dev/null +++ b/jackson/src/test/java/org/baeldung/jackson/JacksonSerializationUnitTest.java @@ -0,0 +1,66 @@ +package org.baeldung.jackson; + +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.not; +import static org.junit.Assert.assertThat; + +import java.io.IOException; +import java.util.List; + +import org.junit.Test; + +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.collect.Lists; + +public class JacksonSerializationUnitTest { + + // tests - single entity to json + + @Test + public final void givenOnlyNonDefaultValuesAreSerialized_whenDtoHasOnlyDefaultValues_thenCorrect() throws JsonParseException, IOException { + final ObjectMapper mapper = new ObjectMapper(); + final String dtoAsString = mapper.writeValueAsString(new FooDto()); + + assertThat(dtoAsString, not(containsString("intValue"))); + System.out.println(dtoAsString); + } + + @Test + public final void givenOnlyNonDefaultValuesAreSerialized_whenDtoHasNonDefaultValue_thenCorrect() throws JsonParseException, IOException { + final ObjectMapper mapper = new ObjectMapper(); + final FooDto dtoObject = new FooDto(); + dtoObject.setBooleanValue(true); + + final String dtoAsString = mapper.writeValueAsString(dtoObject); + + assertThat(dtoAsString, containsString("booleanValue")); + System.out.println(dtoAsString); + } + + @Test + public final void givenFieldIsIgnored_whenDtoIsSerialized_thenCorrect() throws JsonParseException, IOException { + final ObjectMapper mapper = new ObjectMapper(); + final BarDto dtoObject = new BarDto(); + dtoObject.setBooleanValue(true); + + final String dtoAsString = mapper.writeValueAsString(dtoObject); + + assertThat(dtoAsString, not(containsString("intValue"))); + assertThat(dtoAsString, containsString("booleanValue")); + System.out.println(dtoAsString); + } + + // tests - multiple entities to json + + @Test + public final void whenDtoIsSerialized_thenCorrect() throws JsonParseException, IOException { + final List listOfDtos = Lists.newArrayList(new MyDto("a", 1, true), new MyDto("bc", 3, false)); + + final ObjectMapper mapper = new ObjectMapper(); + final String dtosAsString = mapper.writeValueAsString(listOfDtos); + + System.out.println(dtosAsString); + } + +}