From 6aa70c68123b9fd8837dcbfbd18300889b3a2a86 Mon Sep 17 00:00:00 2001 From: Martin van Wingerden Date: Wed, 23 Oct 2019 13:56:03 +0200 Subject: [PATCH] [BAEL-3233] Add missing code snippets from the Jackson ObjectMapper art. Also: Corrected rendering problem in the readme and formatted using eclipse --- jackson-simple/README.md | 3 +- .../JavaReadWriteJsonExampleUnitTest.java | 62 ++++++++++++++++--- jackson-simple/src/test/resources/.gitignore | 13 ---- .../src/test/resources/json_car.json | 4 ++ 4 files changed, 59 insertions(+), 23 deletions(-) delete mode 100644 jackson-simple/src/test/resources/.gitignore create mode 100644 jackson-simple/src/test/resources/json_car.json diff --git a/jackson-simple/README.md b/jackson-simple/README.md index 302fcb5b05..9d24a20e4a 100644 --- a/jackson-simple/README.md +++ b/jackson-simple/README.md @@ -2,7 +2,8 @@ This module contains articles about Jackson that are also part of the Jackson Ebook. -###The Course +### The Course + The "REST With Spring" Classes: http://bit.ly/restwithspring ### Relevant Articles: diff --git a/jackson-simple/src/test/java/com/baeldung/jackson/objectmapper/JavaReadWriteJsonExampleUnitTest.java b/jackson-simple/src/test/java/com/baeldung/jackson/objectmapper/JavaReadWriteJsonExampleUnitTest.java index 2745e4f767..a339ddf2c5 100644 --- a/jackson-simple/src/test/java/com/baeldung/jackson/objectmapper/JavaReadWriteJsonExampleUnitTest.java +++ b/jackson-simple/src/test/java/com/baeldung/jackson/objectmapper/JavaReadWriteJsonExampleUnitTest.java @@ -1,20 +1,29 @@ package com.baeldung.jackson.objectmapper; +import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.equalTo; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThat; + +import java.io.File; +import java.net.URL; +import java.util.List; +import java.util.Map; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TemporaryFolder; + import com.baeldung.jackson.objectmapper.dto.Car; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Test; - -import java.util.List; -import java.util.Map; - -import static org.hamcrest.Matchers.containsString; -import static org.hamcrest.Matchers.equalTo; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertThat; public class JavaReadWriteJsonExampleUnitTest { + @Rule + public TemporaryFolder folder = new TemporaryFolder(); + final String EXAMPLE_JSON = "{ \"color\" : \"Black\", \"type\" : \"BMW\" }"; final String LOCAL_JSON = "[{ \"color\" : \"Black\", \"type\" : \"BMW\" }, { \"color\" : \"Red\", \"type\" : \"BMW\" }]"; @@ -27,6 +36,19 @@ public class JavaReadWriteJsonExampleUnitTest { assertThat(carAsString, containsString("renault")); } + @Test + public void whenWriteToFile_thanCorrect() throws Exception { + File resultFile = folder.newFile("car.json"); + + ObjectMapper objectMapper = new ObjectMapper(); + Car car = new Car("yellow", "renault"); + objectMapper.writeValue(resultFile, car); + + Car fromFile = objectMapper.readValue(resultFile, Car.class); + assertEquals(car.getType(), fromFile.getType()); + assertEquals(car.getColor(), fromFile.getColor()); + } + @Test public void whenReadJsonToJava_thanCorrect() throws Exception { final ObjectMapper objectMapper = new ObjectMapper(); @@ -66,4 +88,26 @@ public class JavaReadWriteJsonExampleUnitTest { assertNotNull(key); } } + + @Test + public void wheReadFromFile_thanCorrect() throws Exception { + File resource = new File("src/test/resources/json_car.json"); + + ObjectMapper objectMapper = new ObjectMapper(); + Car fromFile = objectMapper.readValue(resource, Car.class); + + assertEquals("BMW", fromFile.getType()); + assertEquals("Black", fromFile.getColor()); + } + + @Test + public void wheReadFromUrl_thanCorrect() throws Exception { + URL resource = new URL("file:src/test/resources/json_car.json"); + + ObjectMapper objectMapper = new ObjectMapper(); + Car fromFile = objectMapper.readValue(resource, Car.class); + + assertEquals("BMW", fromFile.getType()); + assertEquals("Black", fromFile.getColor()); + } } diff --git a/jackson-simple/src/test/resources/.gitignore b/jackson-simple/src/test/resources/.gitignore deleted file mode 100644 index 83c05e60c8..0000000000 --- a/jackson-simple/src/test/resources/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -*.class - -#folders# -/target -/neoDb* -/data -/src/main/webapp/WEB-INF/classes -*/META-INF/* - -# Packaged files # -*.jar -*.war -*.ear \ No newline at end of file diff --git a/jackson-simple/src/test/resources/json_car.json b/jackson-simple/src/test/resources/json_car.json new file mode 100644 index 0000000000..2f6b35b523 --- /dev/null +++ b/jackson-simple/src/test/resources/json_car.json @@ -0,0 +1,4 @@ +{ + "color": "Black", + "type": "BMW" +} \ No newline at end of file