package br.com.caelum.guj.uri; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import org.junit.Test; import br.com.caelum.guj.view.Slugger; public class DefaultBookmarkableURIBuilderTest { @Test public void shouldGeneratePaginatedURI() { Slugger slugger = mock(Slugger.class); when(slugger.sluggerize("titulo grande")).thenReturn("titulo-grande"); BookmarkableURIBuilder builder = new DefaultBookmarkableURIBuilder(slugger); String uri = builder.bookmarkableURL(123, "titulo grande", 3); assertEquals("/java/123-titulo-grande/3", uri); } @Test public void shouldGeneratePaginatedURIWithAnchor() { Slugger slugger = mock(Slugger.class); when(slugger.sluggerize("titulo grande")).thenReturn("titulo-grande"); BookmarkableURIBuilder builder = new DefaultBookmarkableURIBuilder(slugger); String uri = builder.bookmarkableURL(123, "titulo grande", 3, "456"); assertEquals("/java/123-titulo-grande/3#456", uri); } @Test public void shouldGenerateSimpleURI() { Slugger slugger = mock(Slugger.class); when(slugger.sluggerize("titulo grande")).thenReturn("titulo-grande"); BookmarkableURIBuilder builder = new DefaultBookmarkableURIBuilder(slugger); String uri = builder.bookmarkableURL(123, "titulo grande"); assertEquals("/java/123-titulo-grande", uri); } @Test public void shouldGeneratePrePostURI() { Slugger slugger = mock(Slugger.class); when(slugger.sluggerize("titulo grande")).thenReturn("titulo-grande"); BookmarkableURIBuilder builder = new DefaultBookmarkableURIBuilder(slugger); String uri = builder.bookmarkablePrePostURL(123, 456, "titulo grande"); assertEquals("/prepost/123/456/titulo-grande", uri); } @Test public void shouldGenerateCompletePrePostURIFromACompleteURI() { Slugger slugger = mock(Slugger.class); when(slugger.sluggerize("titulo grande")).thenReturn("titulo-grande"); BookmarkableURIBuilder builder = new DefaultBookmarkableURIBuilder(slugger); String uri = builder.bookmarkableCompletePrePostURL("http://www.guj.com.br/posts/preList/2/32.java", "titulo grande"); assertEquals("http://www.guj.com.br/prepost/2/32/titulo-grande", uri); } @Test public void shouldReturnTheOriginalCompleteURIWhenItsNotAPrePostURI() { Slugger slugger = mock(Slugger.class); when(slugger.sluggerize("titulo grande")).thenReturn("titulo-grande"); BookmarkableURIBuilder builder = new DefaultBookmarkableURIBuilder(slugger); String uri = builder.bookmarkableCompletePrePostURL("http://www.guj.com.br/posts/list/2.java", "titulo grande"); assertEquals("http://www.guj.com.br/posts/list/2.java", uri); } }