package org.jooby.json; import static org.easymock.EasyMock.expect; import org.jooby.MediaType; import org.jooby.Parser; import org.jooby.Parser.Context; import org.jooby.test.MockUnit; import org.junit.Test; import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.inject.TypeLiteral; public class JacksonParserTest { @Test public void parseAny() throws Exception { Object value = new Object(); new MockUnit(ObjectMapper.class, Parser.Context.class, MediaType.class) .expect(unit -> { MediaType type = unit.get(MediaType.class); expect(type.isAny()).andReturn(true); Context ctx = unit.get(Parser.Context.class); expect(ctx.type()).andReturn(type); expect(ctx.next()).andReturn(value); }) .run(unit -> { new JacksonParser(unit.get(ObjectMapper.class), MediaType.json) .parse(TypeLiteral.get(JacksonParserTest.class), unit.get(Parser.Context.class)); }); } @Test public void parseSkip() throws Exception { Object value = new Object(); new MockUnit(ObjectMapper.class, Parser.Context.class, MediaType.class, TypeLiteral.class) .expect(unit -> { MediaType type = unit.get(MediaType.class); expect(type.isAny()).andReturn(false); Context ctx = unit.get(Parser.Context.class); expect(ctx.type()).andReturn(type); expect(ctx.next()).andReturn(value); JavaType javaType = unit.mock(JavaType.class); ObjectMapper mapper = unit.get(ObjectMapper.class); expect(mapper.constructType(null)).andReturn(javaType); }) .run(unit -> { new JacksonParser(unit.get(ObjectMapper.class), MediaType.json) .parse(unit.get(TypeLiteral.class), unit.get(Parser.Context.class)); }); } }