package com.ibatis.jpetstore.service;
import java.util.ArrayList;
import org.jmock.Mock;
import org.jmock.MockObjectTestCase;
import com.ibatis.common.util.PaginatedArrayList;
import com.ibatis.jpetstore.domain.Category;
import com.ibatis.jpetstore.domain.Item;
import com.ibatis.jpetstore.domain.Product;
import com.ibatis.jpetstore.persistence.iface.CategoryDao;
import com.ibatis.jpetstore.persistence.iface.ItemDao;
import com.ibatis.jpetstore.persistence.iface.ProductDao;
public class CatalogServiceTest extends MockObjectTestCase {
public void testShouldCallGetCategoryOnCategoryDao() {
Mock mock = mock(CategoryDao.class);
mock.expects(once()).method("getCategory").with(NOT_NULL).will(returnValue(new Category()));
CatalogService service = new CatalogService((CategoryDao) mock.proxy(), null, null);
service.getCategory("DOGS");
}
public void testShouldCallGetCategoryListOnCategoryDao() {
Mock mock = mock(CategoryDao.class);
mock.expects(once()).method("getCategoryList").withNoArguments().will(returnValue(new ArrayList()));
CatalogService service = new CatalogService((CategoryDao) mock.proxy(), null, null);
service.getCategoryList();
}
public void testShouldCallGetItemOnItemDao() {
Mock mock = mock(ItemDao.class);
mock.expects(once()).method("getItem").with(NOT_NULL).will(returnValue(new Item()));
CatalogService service = new CatalogService(null, (ItemDao) mock.proxy(), null);
service.getItem("EST-1");
}
public void testShouldCallGetItemListByProductOnItemDao() {
Mock mock = mock(ItemDao.class);
mock.expects(once()).method("getItemListByProduct").with(NOT_NULL).will(returnValue(new PaginatedArrayList(5)));
CatalogService service = new CatalogService(null, (ItemDao) mock.proxy(), null);
service.getItemListByProduct("FI-SW-01");
}
public void testShouldCallGetProductOnProductDao() {
Mock mock = mock(ProductDao.class);
mock.expects(once()).method("getProduct").with(NOT_NULL).will(returnValue(new Product()));
CatalogService service = new CatalogService(null, null, (ProductDao) mock.proxy());
service.getProduct("FI-SW-01");
}
public void testShouldCallGetProductListByCategoryOnProductDao() {
Mock mock = mock(ProductDao.class);
mock.expects(once()).method("getProductListByCategory").with(NOT_NULL).will(returnValue(new PaginatedArrayList(5)));
CatalogService service = new CatalogService(null, null, (ProductDao) mock.proxy());
service.getProductListByCategory("DOGS");
}
public void testShouldFindProductIsInStock() {
Mock mock = mock(ItemDao.class);
mock.expects(once()).method("isItemInStock").with(NOT_NULL).will(returnValue(true));
CatalogService service = new CatalogService(null, (ItemDao) mock.proxy(), null);
assertTrue("Expected item to be in stock.", service.isItemInStock("EST-1"));
}
public void testCallSearchProductsOnProductDao() {
Mock mock = mock(ProductDao.class);
mock.expects(once()).method("searchProductList").with(NOT_NULL).will(returnValue(new PaginatedArrayList(5)));
CatalogService service = new CatalogService(null, null, (ProductDao) mock.proxy());
service.searchProductList("dog");
}
}