package br.com.caelum.guj.uri.bookmarkable; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import java.util.LinkedList; import java.util.List; import org.junit.Test; import br.com.caelum.guj.uri.URIConverter; import br.com.caelum.guj.uri.bookmarkable.ConverterMatcher; public class ConverterMatcherTest { @Test public void shouldMatchIfURIIsBookmarkable() { URIConverter firstConverter = mock(URIConverter.class); URIConverter secondConverter = mock(URIConverter.class); when(firstConverter.isConvertable()).thenReturn(false); when(secondConverter.isConvertable()).thenReturn(true); List<URIConverter> list = new LinkedList<URIConverter>(); list.add(firstConverter); list.add(secondConverter); ConverterMatcher allConverters = new ConverterMatcher(list); assertTrue(allConverters.oneMatched()); assertSame(secondConverter, allConverters.getConverter()); } @Test(expected = RuntimeException.class) public void shouldNotMatchIfURIIsNotBookmarkable() { URIConverter firstConverter = mock(URIConverter.class); URIConverter secondConverter = mock(URIConverter.class); when(firstConverter.isConvertable()).thenReturn(false); when(secondConverter.isConvertable()).thenReturn(false); List<URIConverter> list = new LinkedList<URIConverter>(); list.add(firstConverter); list.add(secondConverter); ConverterMatcher allConverters = new ConverterMatcher(list); assertFalse(allConverters.oneMatched()); allConverters.getConverter(); } }