package org.springunit.framework.samples.jpetstore.dao.hibernate;
import java.util.List;
import java.util.Map;
import org.springunit.framework.SpringUnitContext;
import org.springunit.framework.samples.jpetstore.dao.AbstractDaoTest;
import org.springunit.framework.samples.jpetstore.dao.OrderDao;
import org.springunit.framework.samples.jpetstore.domain.Order;
public class OrderDaoHibernateTest<V extends Order, D extends OrderDaoHibernate<V>> extends AbstractDaoTest<V, D> {
public OrderDaoHibernateTest() {
this(null);
}
public OrderDaoHibernateTest(String name) {
super(name);
}
public void testGetOrdersByUsernameFound() throws Exception {
runGetOrdersByUsername();
}
public void testGetOrdersByUsernameNotFound() throws Exception {
runGetOrdersByUsername();
}
public void testGetOrder() throws Exception {
runGetOrder();
}
public void testInsertOrder() throws Exception {
runInsertOrder();
}
protected void runGetOrdersByUsername() throws Exception {
String username = getObject("username");
List<? extends V> expected = (List<? extends V>)getObject("expected");
Exception expectedException = getObject("expectedException");
try {
List<? extends V> actual = getSubject().getOrdersByUsername(username);
if (expectedException != null) {
fail("Exception not thrown.");
}
assertTrue(areEqual(expected, actual));
}
catch (Exception ex) {
if (expectedException == null || !expectedException.getClass().isAssignableFrom(ex.getClass())) {
throw ex;
}
}
}
protected void runGetOrder() throws Exception {
Exception expectedException = getObject("expectedException");
try {
List<? extends V> all = getSubject().read();
V expected = all.get(0);
V actual = getSubject().getOrder(expected.getId());
if (expectedException != null) {
fail("Exception not thrown.");
}
assertTrue(isEqual(expected, actual));
}
catch (Exception ex) {
if (expectedException == null || !expectedException.getClass().isAssignableFrom(ex.getClass())) {
throw ex;
}
}
}
protected void runInsertOrder() throws Exception {
V order = (V)getObject("order");
V expected = order;
Exception expectedException = getObject("expectedException");
try {
getSubject().insertOrder(order);
if (expectedException != null) {
fail("Exception not thrown.");
}
V actual = getSubject().read(order.getId());
assertTrue(isEqual(expected, actual));
}
catch (Exception ex) {
if (expectedException == null || !expectedException.getClass().isAssignableFrom(ex.getClass())) {
throw ex;
}
}
}
protected void modify(V item, Map<String, Object> values) {
if (values.containsKey("billFirstName")) {
item.setBillToFirstName((String)values.get("billFirstName"));
}
if (values.containsKey("billLastName")) {
item.setBillToLastName((String)values.get("billLastName"));
}
// others could go here
}
public OrderDao getOrderDao() {
return this.orderDao;
}
public void setOrderDao(OrderDao orderDao) {
this.orderDao = orderDao;
}
public SpringUnitContext getOrderDaoHibernateTest() {
return this.orderDaoHibernateTest;
}
public void setOrderDaoHibernateTest(SpringUnitContext orderDaoHibernateTest) {
this.orderDaoHibernateTest = orderDaoHibernateTest;
}
private OrderDao orderDao;
private SpringUnitContext orderDaoHibernateTest;
}
|