import static org.fest.assertions.Assertions.assertThat;
import static play.test.Helpers.fakeApplication;
import static play.test.Helpers.running;
import static utils.SphereTestable.mockCategory;
import static utils.SphereTestable.mockProduct;
import io.sphere.client.shop.model.Category;
import io.sphere.client.shop.model.Product;
import org.junit.Before;
import org.junit.Test;
import utils.SphereTestable;
import utils.ViewHelper;
import java.util.List;
public class UtilsTest {
private SphereTestable sphere;
@Before
public void mockSphere() {
running(fakeApplication(), new Runnable() {
public void run() {
sphere = new SphereTestable();
}
});
}
private Category createCategory(int level) {
List<Category> categories = mockCategory("cat", level);
return categories.get(categories.size()-1);
}
private Product createProduct() {
return mockProduct("prod", 1, 1, 1);
}
@Test
public void UrlWithOneCategory() {
Category category = createCategory(1);
String path = ViewHelper.getCategoryUrl(category).url();
assertThat(path).isEqualTo("/cat1Slug");
}
@Test
public void UrlWithTwoCategories() {
Category category = createCategory(2);
String path = ViewHelper.getCategoryUrl(category).url();
assertThat(path).isEqualTo("/cat2Slug");
}
@Test
public void UrlWithThreeCategories() {
Category category = createCategory(3);
String path = ViewHelper.getCategoryUrl(category).url();
assertThat(path).isEqualTo("/cat3Slug");
}
@Test
public void UrlWithMoreThanThreeCategories() {
Category category = createCategory(4);
String path = ViewHelper.getCategoryUrl(category).url();
assertThat(path).isEqualTo("/cat4Slug");
}
@Test
public void UrlWithProduct() {
Category category = createCategory(1);
Product product = createProduct();
String path = ViewHelper.getProductUrl(product, product.getMasterVariant(), category).url();
assertThat(path).isEqualTo("/prodSlug-0.html");
}
}