X-Git-Url: https://juplo.de/gitweb/?p=maven-thymeleaf-skin;a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fde%2Fjuplo%2Fjackson%2FSimpleMapperTest.java;h=474cafc554fc3832de7b00dcf3e246bb79419e4b;hp=aad470969838dad37323582ab87f605e7b2db2e4;hb=b562f8a414ec49b413fbf948742489202025fa65;hpb=79f55507b7a2a82bbc81fcb288939f277068292d diff --git a/src/test/java/de/juplo/jackson/SimpleMapperTest.java b/src/test/java/de/juplo/jackson/SimpleMapperTest.java index aad4709..474cafc 100644 --- a/src/test/java/de/juplo/jackson/SimpleMapperTest.java +++ b/src/test/java/de/juplo/jackson/SimpleMapperTest.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.core.JsonFactory; import com.fasterxml.jackson.core.JsonParser; import java.io.IOException; import java.io.InputStream; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -17,6 +18,12 @@ import static org.junit.Assert.fail; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; /** @@ -442,6 +449,146 @@ public class SimpleMapperTest } + @Test + public void testConvertArrayToArraySpliterator() throws Exception + { + Spliterator spliterator; + + spliterator = SimpleMapper.getArraySpliterator(get("/array/1.json")); + checkArraySpliterator(spliterator); + spliterator = SimpleMapper.getArraySpliterator(get("/array/2.json")); + checkArraySpliterator(spliterator); + } + + void checkArraySpliterator(Spliterator spliterator) throws Exception + { + assertNotNull(spliterator); + + final ArrayList entries = new ArrayList<>(4); + for (int i = 0; i < 4; i++) + assertTrue( + "The created splitter should have a " + (i+1) + ". entry", + spliterator.tryAdvance((Object t) -> { entries.add(t); }) + ); + + assertFalse( + "The created splitter should have no more entries", + spliterator.tryAdvance((Object t) -> + { + fail("The consumer should not have been called"); + })); + + checkPartnerPageData(entries.get(3)); + } + + @Test + public void testConvertArrayToList() throws Exception + { + List list; + + list = SimpleMapper.convertArray(get("/array/1.json")); + assertNotNull(list); + assertEquals(4, list.size()); + checkPartnerPageData(list.get(3)); + list = SimpleMapper.convertArray(get("/array/2.json")); + assertNotNull(list); + assertEquals(4, list.size()); + checkPartnerPageData(list.get(3)); + } + + @Test + public void testConvertArrayToObjectSpliterator() throws Exception + { + try + { + SimpleMapper.getObjectSpliterator(get("/array/1.json")); + fail("it must not be possible, to get an object-spliterator for an array"); + } + catch(IllegalArgumentException e) + { + LOG.info(e.getMessage()); + } + + try + { + SimpleMapper.getObjectSpliterator(get("/array/2.json")); + fail("it must not be possible, to get an object-spliterator for an array"); + } + catch(IllegalArgumentException e) + { + LOG.info(e.getMessage()); + } + } + + @Test + public void testConvertArrayToMap() throws Exception + { + try + { + SimpleMapper.convertObject(get("/array/1.json")); + fail("it must not be possible, to get a map for an array"); + } + catch(IllegalArgumentException e) + { + LOG.info(e.getMessage()); + } + + try + { + SimpleMapper.convertObject(get("/array/2.json")); + fail("it must not be possible, to get a map for an array"); + } + catch(IllegalArgumentException e) + { + LOG.info(e.getMessage()); + } + } + + @Test + public void testConvertArray() throws Exception + { + Object object; + List list; + + object = SimpleMapper.convert(get("/array/1.json")); + assertNotNull(object); + assertTrue("the returned object should be a list", object instanceof List); + list = (List)object; + assertEquals(4, list.size()); + checkPartnerPageData(list.get(3)); + object = SimpleMapper.convert(get("/array/2.json")); + assertNotNull(object); + assertTrue("the returned object should be a list", object instanceof List); + list = (List)object; + assertEquals(4, list.size()); + checkPartnerPageData(list.get(3)); + } + + void checkPartnerPageData(Object page) + { + assertTrue("The page-data should be of type Map", page instanceof Map); + Map map = (Map)page; + assertEquals(4, map.size()); + assertEquals("/partner.html", map.get("uri")); + assertTrue( + "The page-data should have an entry \"children\" of type Map", + map.get("children") instanceof Map + ); + map = (Map)map.get("children"); + assertEquals(6, map.size()); + assertTrue( + "The children-map should haven an entry \"/partner/juplo.html\" of type Map", + map.get("/partner/juplo.html") instanceof Map + ); + map = (Map)map.get("/partner/juplo.html"); + assertEquals(2, map.size()); + assertEquals( + "Wir sind Unterstützer der Nerd-Plattform juplo.de", + map.get("title") + ); + } + + private JsonParser get(String resource) throws IOException { InputStream is = SimpleMapperTest.class.getResourceAsStream(resource);