| package org.codehaus.jackson.smile; |
| |
| import java.io.*; |
| |
| import org.junit.Assert; |
| |
| import org.codehaus.jackson.*; |
| import org.codehaus.jackson.map.ObjectMapper; |
| |
| abstract class SmileTestBase |
| extends main.BaseTest |
| { |
| protected ObjectMapper smileMapper() { |
| return smileMapper(false); |
| } |
| |
| protected ObjectMapper smileMapper(boolean requireHeader) { |
| return smileMapper(requireHeader, false, false); |
| } |
| |
| protected ObjectMapper smileMapper(boolean requireHeader, |
| boolean writeHeader, boolean writeEndMarker) |
| { |
| return new ObjectMapper(smileFactory(requireHeader, writeHeader, writeEndMarker)); |
| } |
| |
| protected SmileParser _smileParser(byte[] input) throws IOException { |
| return _smileParser(input, false); |
| } |
| |
| protected SmileParser _smileParser(InputStream input) throws IOException { |
| return _smileParser(input, false); |
| } |
| |
| protected SmileParser _smileParser(byte[] input, boolean requireHeader) throws IOException |
| { |
| SmileFactory f = smileFactory(requireHeader, false, false); |
| return _smileParser(f, input); |
| } |
| |
| protected SmileParser _smileParser(InputStream input, boolean requireHeader) throws IOException |
| { |
| SmileFactory f = smileFactory(requireHeader, false, false); |
| return _smileParser(f, input); |
| } |
| |
| protected SmileParser _smileParser(SmileFactory f, byte[] input) |
| throws IOException |
| { |
| return f.createJsonParser(input); |
| } |
| |
| protected SmileParser _smileParser(SmileFactory f, InputStream input) |
| throws IOException |
| { |
| return f.createJsonParser(input); |
| } |
| |
| protected SmileFactory smileFactory(boolean requireHeader, |
| boolean writeHeader, boolean writeEndMarker) |
| { |
| SmileFactory f = new SmileFactory(); |
| f.configure(SmileParser.Feature.REQUIRE_HEADER, requireHeader); |
| f.configure(SmileGenerator.Feature.WRITE_HEADER, writeHeader); |
| f.configure(SmileGenerator.Feature.WRITE_END_MARKER, writeEndMarker); |
| return f; |
| } |
| |
| protected byte[] _smileDoc(String json) throws IOException |
| { |
| return _smileDoc(json, true); |
| } |
| |
| protected byte[] _smileDoc(String json, boolean writeHeader) throws IOException |
| { |
| return _smileDoc(new SmileFactory(), json, writeHeader); |
| } |
| |
| protected byte[] _smileDoc(SmileFactory smileFactory, String json, boolean writeHeader) throws IOException |
| { |
| JsonFactory jf = new JsonFactory(); |
| JsonParser jp = jf.createJsonParser(json); |
| ByteArrayOutputStream out = new ByteArrayOutputStream(); |
| JsonGenerator jg = smileGenerator(out, writeHeader); |
| |
| while (jp.nextToken() != null) { |
| jg.copyCurrentEvent(jp); |
| } |
| jp.close(); |
| jg.close(); |
| return out.toByteArray(); |
| } |
| |
| protected SmileGenerator smileGenerator(ByteArrayOutputStream result, boolean addHeader) |
| throws IOException |
| { |
| return smileGenerator(new SmileFactory(), result, addHeader); |
| } |
| |
| protected SmileGenerator smileGenerator(SmileFactory f, |
| ByteArrayOutputStream result, boolean addHeader) |
| throws IOException |
| { |
| f.configure(SmileGenerator.Feature.WRITE_HEADER, addHeader); |
| return f.createJsonGenerator(result, null); |
| } |
| |
| protected void _verifyBytes(byte[] actBytes, byte... expBytes) |
| { |
| Assert.assertArrayEquals(expBytes, actBytes); |
| } |
| } |