package br.com.caelum.guj.uri.bookmarkable;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
import br.com.caelum.guj.uri.CompatibleURIBuilder;
import br.com.caelum.guj.uri.bookmarkable.BookmarkablePostToCompatibleURIConverter;
import static org.mockito.Mockito.*;
public class BookmarkablePostToCompatibleURIConverterTest {
@Test
public void shouldBeAPostBookmarkableURI() {
BookmarkablePostToCompatibleURIConverter validConverter = new BookmarkablePostToCompatibleURIConverter(
"/guj.com.br/java/228076-uma-uri-de-teste", aBuilder());
assertTrue(validConverter.isConvertable());
BookmarkablePostToCompatibleURIConverter invalidConverter = new BookmarkablePostToCompatibleURIConverter(
"", aBuilder());
assertFalse(invalidConverter.isConvertable());
}
@Test
public void shouldReturnCompatiblePaginatedURI() {
CompatibleURIBuilder builder = aBuilder();
when(builder.compatibleURL("228076", 15)).thenReturn("/posts/list/15/228076.java");
when(builder.compatibleURL("228076", 135)).thenReturn("/posts/list/135/228076.java");
BookmarkablePostToCompatibleURIConverter converter = new BookmarkablePostToCompatibleURIConverter(
"/java/228076-uma-uri-de-teste/2", builder);
assertEquals("/posts/list/15/228076.java", converter.convert());
converter = new BookmarkablePostToCompatibleURIConverter(
"/java/228076-uma-uri-de-teste/10", builder);
assertEquals("/posts/list/135/228076.java", converter.convert());
}
@Test
public void shouldReturnCompatibleURI() {
CompatibleURIBuilder builder = aBuilder();
when(builder.compatibleURL("228076")).thenReturn("/posts/list/228076.java");
BookmarkablePostToCompatibleURIConverter converter = new BookmarkablePostToCompatibleURIConverter(
"/java/228076-uma-uri-de-teste", builder);
String compatibleURI = converter.convert();
assertEquals("/posts/list/228076.java", compatibleURI);
}
private CompatibleURIBuilder aBuilder() {
return mock(CompatibleURIBuilder.class);
}
}