1 package de.juplo.jackson;
3 import com.fasterxml.jackson.core.JsonFactory;
4 import com.fasterxml.jackson.core.JsonParser;
5 import java.io.IOException;
6 import java.io.InputStream;
9 import java.util.Map.Entry;
10 import java.util.Spliterator;
11 import static org.junit.Assert.assertEquals;
12 import static org.junit.Assert.assertFalse;
13 import static org.junit.Assert.assertNotNull;
14 import static org.junit.Assert.assertNull;
15 import static org.junit.Assert.assertTrue;
16 import static org.junit.Assert.fail;
17 import org.junit.Test;
18 import org.slf4j.Logger;
19 import org.slf4j.LoggerFactory;
26 public class SimpleMapperTest
28 private static final Logger LOG =
29 LoggerFactory.getLogger(SimpleMapperTest.class);
32 private final JsonFactory factory = new JsonFactory();
36 public void testConvertEmptyInputToArraySpliterator() throws Exception
38 Spliterator<Object> spliterator;
40 spliterator = SimpleMapper.getArraySpliterator(get("/empty/1.json"));
41 assertNull(spliterator);
42 spliterator = SimpleMapper.getArraySpliterator(get("/empty/2.json"));
43 assertNull(spliterator);
44 spliterator = SimpleMapper.getArraySpliterator(get("/empty/3.json"));
45 assertNull(spliterator);
46 spliterator = SimpleMapper.getArraySpliterator(get("/empty/4.json"));
47 assertNull(spliterator);
48 spliterator = SimpleMapper.getArraySpliterator(get("/empty/5.json"));
49 assertNull(spliterator);
53 public void testConvertEmptyInputToList() throws Exception
57 list = SimpleMapper.convertArray(get("/empty/1.json"));
59 list = SimpleMapper.convertArray(get("/empty/2.json"));
61 list = SimpleMapper.convertArray(get("/empty/3.json"));
63 list = SimpleMapper.convertArray(get("/empty/4.json"));
65 list = SimpleMapper.convertArray(get("/empty/5.json"));
70 public void testConvertEmptyInputToObjectSpliterator() throws Exception
72 Spliterator<Entry<String, Object>> spliterator;
74 spliterator = SimpleMapper.getObjectSpliterator(get("/empty/1.json"));
75 assertNull(spliterator);
76 spliterator = SimpleMapper.getObjectSpliterator(get("/empty/2.json"));
77 assertNull(spliterator);
78 spliterator = SimpleMapper.getObjectSpliterator(get("/empty/3.json"));
79 assertNull(spliterator);
80 spliterator = SimpleMapper.getObjectSpliterator(get("/empty/4.json"));
81 assertNull(spliterator);
82 spliterator = SimpleMapper.getObjectSpliterator(get("/empty/5.json"));
83 assertNull(spliterator);
87 public void testConvertEmptyInputToMap() throws Exception
89 Map<String, Object> map;
91 map = SimpleMapper.convertObject(get("/empty/1.json"));
93 map = SimpleMapper.convertObject(get("/empty/2.json"));
95 map = SimpleMapper.convertObject(get("/empty/3.json"));
97 map = SimpleMapper.convertObject(get("/empty/4.json"));
99 map = SimpleMapper.convertObject(get("/empty/5.json"));
104 public void testConvertEmptyInput() throws Exception
108 object = SimpleMapper.convert(get("/empty/1.json"));
110 object = SimpleMapper.convert(get("/empty/2.json"));
112 object = SimpleMapper.convert(get("/empty/3.json"));
114 object = SimpleMapper.convert(get("/empty/4.json"));
116 object = SimpleMapper.convert(get("/empty/5.json"));
122 public void testConvertEmptyArrayToArraySpliterator() throws Exception
124 Spliterator<Object> spliterator;
126 spliterator = SimpleMapper.getArraySpliterator(get("/array/empty/1.json"));
128 "The created splitter should have no entries",
129 spliterator.tryAdvance((Object t) ->
131 fail("The consumer should never be called!");
133 spliterator = SimpleMapper.getArraySpliterator(get("/array/empty/2.json"));
135 "The created splitter should have no entries",
136 spliterator.tryAdvance((Object t) ->
138 fail("The consumer should never be called!");
140 spliterator = SimpleMapper.getArraySpliterator(get("/array/empty/3.json"));
142 "The created splitter should have no entries",
143 spliterator.tryAdvance((Object t) ->
145 fail("The consumer should never be called!");
147 spliterator = SimpleMapper.getArraySpliterator(get("/array/empty/4.json"));
149 "The created splitter should have no entries",
150 spliterator.tryAdvance((Object t) ->
152 fail("The consumer should never be called!");
157 public void testConvertEmptyArrayToList() throws Exception
161 list = SimpleMapper.convertArray(get("/array/empty/1.json"));
162 assertEquals(0, list.size());
163 list = SimpleMapper.convertArray(get("/array/empty/2.json"));
164 assertEquals(0, list.size());
165 list = SimpleMapper.convertArray(get("/array/empty/3.json"));
166 assertEquals(0, list.size());
167 list = SimpleMapper.convertArray(get("/array/empty/4.json"));
168 assertEquals(0, list.size());
172 public void testConvertEmptyArrayToObjectSpliterator() throws Exception
176 SimpleMapper.getObjectSpliterator(get("/array/empty/1.json"));
177 fail("it must not be possible, to get an object-spliterator for an array");
179 catch(IllegalArgumentException e)
181 LOG.info(e.getMessage());
186 SimpleMapper.getObjectSpliterator(get("/array/empty/2.json"));
187 fail("it must not be possible, to get an object-spliterator for an array");
189 catch(IllegalArgumentException e)
191 LOG.info(e.getMessage());
196 SimpleMapper.getObjectSpliterator(get("/array/empty/3.json"));
197 fail("it must not be possible, to get an object-spliterator for an array");
199 catch(IllegalArgumentException e)
201 LOG.info(e.getMessage());
206 SimpleMapper.getObjectSpliterator(get("/array/empty/4.json"));
207 fail("it must not be possible, to get an object-spliterator for an array");
209 catch(IllegalArgumentException e)
211 LOG.info(e.getMessage());
216 public void testConvertEmptyArrayToMap() throws Exception
220 SimpleMapper.convertObject(get("/array/empty/1.json"));
221 fail("it must not be possible, to get a map for an array");
223 catch(IllegalArgumentException e)
225 LOG.info(e.getMessage());
230 SimpleMapper.convertObject(get("/array/empty/2.json"));
231 fail("it must not be possible, to get a map for an array");
233 catch(IllegalArgumentException e)
235 LOG.info(e.getMessage());
240 SimpleMapper.convertObject(get("/array/empty/3.json"));
241 fail("it must not be possible, to get a map for an array");
243 catch(IllegalArgumentException e)
245 LOG.info(e.getMessage());
250 SimpleMapper.convertObject(get("/array/empty/4.json"));
251 fail("it must not be possible, to get a map for an array");
253 catch(IllegalArgumentException e)
255 LOG.info(e.getMessage());
260 public void testConvertEmptyArray() throws Exception
264 object = SimpleMapper.convert(get("/array/empty/1.json"));
265 assertNotNull(object);
266 assertTrue("the returned object should be a list", object instanceof List);
267 assertEquals(0, ((List)object).size());
268 object = SimpleMapper.convert(get("/array/empty/2.json"));
269 assertNotNull(object);
270 assertTrue("the returned object should be a list", object instanceof List);
271 assertEquals(0, ((List)object).size());
272 object = SimpleMapper.convert(get("/array/empty/3.json"));
273 assertNotNull(object);
274 assertTrue("the returned object should be a list", object instanceof List);
275 assertEquals(0, ((List)object).size());
276 object = SimpleMapper.convert(get("/array/empty/4.json"));
277 assertNotNull(object);
278 assertTrue("the returned object should be a list", object instanceof List);
279 assertEquals(0, ((List)object).size());
283 private JsonParser get(String resource) throws IOException
285 InputStream is = SimpleMapperTest.class.getResourceAsStream(resource);
286 return factory.createParser(is);