package br.com.caelum.vraptor.deserialization; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import org.junit.Before; import org.junit.Test; public class DeserializesHandlerTest { private DeserializesHandler handler; private Deserializers deserializers; @Before public void setUp() throws Exception { deserializers = mock(Deserializers.class); handler = new DeserializesHandler(deserializers); } @Test public void shouldAcceptDeserializesAnnotation() throws Exception { assertEquals(handler.stereotype(), Deserializes.class); } static interface MyDeserializer extends Deserializer{} static interface NotADeserializer{} @Test(expected=IllegalArgumentException.class) public void shouldThrowExceptionWhenTypeIsNotADeserializer() throws Exception { handler.handle(NotADeserializer.class); } @Test public void shouldRegisterTypesOnDeserializers() throws Exception { handler.handle(MyDeserializer.class); verify(deserializers).register(MyDeserializer.class); } }