X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fde%2Fjuplo%2Fjackson%2FSimpleMapperTest.java;h=aad470969838dad37323582ab87f605e7b2db2e4;hb=79f55507b7a2a82bbc81fcb288939f277068292d;hp=33fb8a3b36580588304444ee6c00fa6373e69b9a;hpb=727f0b44e115691b6b7679dcbf455de159710e6b;p=simple-mapper diff --git a/src/test/java/de/juplo/jackson/SimpleMapperTest.java b/src/test/java/de/juplo/jackson/SimpleMapperTest.java index 33fb8a3..aad4709 100644 --- a/src/test/java/de/juplo/jackson/SimpleMapperTest.java +++ b/src/test/java/de/juplo/jackson/SimpleMapperTest.java @@ -8,8 +8,15 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Spliterator; +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; import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** @@ -18,6 +25,10 @@ import org.junit.Test; */ public class SimpleMapperTest { + private static final Logger LOG = + LoggerFactory.getLogger(SimpleMapperTest.class); + + private final JsonFactory factory = new JsonFactory(); @@ -107,6 +118,330 @@ public class SimpleMapperTest } + @Test + public void testConvertEmptyArrayToArraySpliterator() throws Exception + { + Spliterator spliterator; + + spliterator = SimpleMapper.getArraySpliterator(get("/array/empty/1.json")); + assertFalse( + "The created splitter should have no entries", + spliterator.tryAdvance((Object t) -> + { + fail("The consumer should never be called!"); + })); + spliterator = SimpleMapper.getArraySpliterator(get("/array/empty/2.json")); + assertFalse( + "The created splitter should have no entries", + spliterator.tryAdvance((Object t) -> + { + fail("The consumer should never be called!"); + })); + spliterator = SimpleMapper.getArraySpliterator(get("/array/empty/3.json")); + assertFalse( + "The created splitter should have no entries", + spliterator.tryAdvance((Object t) -> + { + fail("The consumer should never be called!"); + })); + spliterator = SimpleMapper.getArraySpliterator(get("/array/empty/4.json")); + assertFalse( + "The created splitter should have no entries", + spliterator.tryAdvance((Object t) -> + { + fail("The consumer should never be called!"); + })); + } + + @Test + public void testConvertEmptyArrayToList() throws Exception + { + List list; + + list = SimpleMapper.convertArray(get("/array/empty/1.json")); + assertEquals(0, list.size()); + list = SimpleMapper.convertArray(get("/array/empty/2.json")); + assertEquals(0, list.size()); + list = SimpleMapper.convertArray(get("/array/empty/3.json")); + assertEquals(0, list.size()); + list = SimpleMapper.convertArray(get("/array/empty/4.json")); + assertEquals(0, list.size()); + } + + @Test + public void testConvertEmptyArrayToObjectSpliterator() throws Exception + { + try + { + SimpleMapper.getObjectSpliterator(get("/array/empty/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/empty/2.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/empty/3.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/empty/4.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 testConvertEmptyArrayToMap() throws Exception + { + try + { + SimpleMapper.convertObject(get("/array/empty/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/empty/2.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/empty/3.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/empty/4.json")); + fail("it must not be possible, to get a map for an array"); + } + catch(IllegalArgumentException e) + { + LOG.info(e.getMessage()); + } + } + + @Test + public void testConvertEmptyArray() throws Exception + { + Object object; + + object = SimpleMapper.convert(get("/array/empty/1.json")); + assertNotNull(object); + assertTrue("the returned object should be a list", object instanceof List); + assertEquals(0, ((List)object).size()); + object = SimpleMapper.convert(get("/array/empty/2.json")); + assertNotNull(object); + assertTrue("the returned object should be a list", object instanceof List); + assertEquals(0, ((List)object).size()); + object = SimpleMapper.convert(get("/array/empty/3.json")); + assertNotNull(object); + assertTrue("the returned object should be a list", object instanceof List); + assertEquals(0, ((List)object).size()); + object = SimpleMapper.convert(get("/array/empty/4.json")); + assertNotNull(object); + assertTrue("the returned object should be a list", object instanceof List); + assertEquals(0, ((List)object).size()); + } + + + @Test + public void testConvertEmptyObjectToArraySpliterator() throws Exception + { + try + { + SimpleMapper.getArraySpliterator(get("/object/empty/1.json")); + fail("it must not be possible, to get an array-spliterator for an object"); + } + catch(IllegalArgumentException e) + { + LOG.info(e.getMessage()); + } + + try + { + SimpleMapper.getArraySpliterator(get("/object/empty/2.json")); + fail("it must not be possible, to get an array-spliterator for an object"); + } + catch(IllegalArgumentException e) + { + LOG.info(e.getMessage()); + } + + try + { + SimpleMapper.getArraySpliterator(get("/object/empty/3.json")); + fail("it must not be possible, to get an array-spliterator for an object"); + } + catch(IllegalArgumentException e) + { + LOG.info(e.getMessage()); + } + + try + { + SimpleMapper.getArraySpliterator(get("/object/empty/4.json")); + fail("it must not be possible, to get an array-spliterator for an object"); + } + catch(IllegalArgumentException e) + { + LOG.info(e.getMessage()); + } + } + + @Test + public void testConvertEmptyObjectToList() throws Exception + { + try + { + SimpleMapper.convertArray(get("/object/empty/1.json")); + fail("it must not be possible, to get a list for an array"); + } + catch(IllegalArgumentException e) + { + LOG.info(e.getMessage()); + } + + try + { + SimpleMapper.convertArray(get("/object/empty/2.json")); + fail("it must not be possible, to get a list for an array"); + } + catch(IllegalArgumentException e) + { + LOG.info(e.getMessage()); + } + + try + { + SimpleMapper.convertArray(get("/object/empty/3.json")); + fail("it must not be possible, to get a list for an array"); + } + catch(IllegalArgumentException e) + { + LOG.info(e.getMessage()); + } + + try + { + SimpleMapper.convertArray(get("/object/empty/4.json")); + fail("it must not be possible, to get a list for an array"); + } + catch(IllegalArgumentException e) + { + LOG.info(e.getMessage()); + } + } + + @Test + public void testConvertEmptyObjectToObjectSpliterator() throws Exception + { + Spliterator> spliterator; + + spliterator = SimpleMapper.getObjectSpliterator(get("/object/empty/1.json")); + assertFalse( + "The created splitter should have no entries", + spliterator.tryAdvance((Entry e) -> + { + fail("The consumer should never be called!"); + })); + spliterator = SimpleMapper.getObjectSpliterator(get("/object/empty/2.json")); + assertFalse( + "The created splitter should have no entries", + spliterator.tryAdvance((Entry e) -> + { + fail("The consumer should never be called!"); + })); + spliterator = SimpleMapper.getObjectSpliterator(get("/object/empty/3.json")); + assertFalse( + "The created splitter should have no entries", + spliterator.tryAdvance((Entry e) -> + { + fail("The consumer should never be called!"); + })); + spliterator = SimpleMapper.getObjectSpliterator(get("/object/empty/4.json")); + assertFalse( + "The created splitter should have no entries", + spliterator.tryAdvance((Entry e) -> + { + fail("The consumer should never be called!"); + })); + } + + @Test + public void testConvertEmptyObjectToMap() throws Exception + { + Map map; + + map = SimpleMapper.convertObject(get("/object/empty/1.json")); + assertEquals(0, map.size()); + map = SimpleMapper.convertObject(get("/object/empty/2.json")); + assertEquals(0, map.size()); + map = SimpleMapper.convertObject(get("/object/empty/3.json")); + assertEquals(0, map.size()); + map = SimpleMapper.convertObject(get("/object/empty/4.json")); + assertEquals(0, map.size()); + } + + @Test + public void testConvertEmptyObject() throws Exception + { + Object object; + + object = SimpleMapper.convert(get("/object/empty/1.json")); + assertNotNull(object); + assertTrue("the returned object should be a list", object instanceof Map); + assertEquals(0, ((Map)object).size()); + object = SimpleMapper.convert(get("/object/empty/2.json")); + assertNotNull(object); + assertTrue("the returned object should be a list", object instanceof Map); + assertEquals(0, ((Map)object).size()); + object = SimpleMapper.convert(get("/object/empty/3.json")); + assertNotNull(object); + assertTrue("the returned object should be a list", object instanceof Map); + assertEquals(0, ((Map)object).size()); + object = SimpleMapper.convert(get("/object/empty/4.json")); + assertNotNull(object); + assertTrue("the returned object should be a list", object instanceof Map); + assertEquals(0, ((Map)object).size()); + } + + private JsonParser get(String resource) throws IOException { InputStream is = SimpleMapperTest.class.getResourceAsStream(resource);