package test.com.demo;
import org.junit.Assert;
import org.junit.Test;
import java.io.Serializable;
import com.demo.demo.factories.demo.*;
import com.demo.demo.model.obj.demo.*;
import com.demo.demo.services.data.DataLayerDemo;
import com.demo.demo.services.data.DataLayerDemoImpl;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.junit.runner.RunWith;
import org.springframework.transaction.annotation.Transactional;
@SuppressWarnings("cast")
@ContextConfiguration(locations = { "/applicationContext.xml" } )
@RunWith(SpringJUnit4ClassRunner.class)
public class DAOTest {
@Test
@Transactional
public void testPreCleanDBFirstPass() {
try{HibernateDemoDaoFactory.getLineDao().getQuery("delete from Line").executeUpdate(); } catch (Exception e) { }
try{HibernateDemoDaoFactory.getStockDao().getQuery("delete from Stock").executeUpdate(); } catch (Exception e) { }
try{HibernateDemoDaoFactory.getOrderDao().getQuery("delete from Order").executeUpdate(); } catch (Exception e) { }
try{HibernateDemoDaoFactory.getCustomerDao().getQuery("delete from Customer").executeUpdate(); } catch (Exception e) { }
}
@Test
@Transactional
public void testPreCleanDBFinalPass() {
HibernateDemoDaoFactory.getLineDao().getQuery("delete from Line").executeUpdate();
HibernateDemoDaoFactory.getStockDao().getQuery("delete from Stock").executeUpdate();
HibernateDemoDaoFactory.getOrderDao().getQuery("delete from Order").executeUpdate();
HibernateDemoDaoFactory.getCustomerDao().getQuery("delete from Customer").executeUpdate();
}
@Transactional
@Test
public void testCustomer() throws CloneNotSupportedException {
DataLayerDemo dataLayerDemo = DataLayerDemoImpl.getInstance();
Customer customer = DemoDataPoolFactory.getCustomer();
dataLayerDemo.saveOrUpdate(customer);
dataLayerDemo.flushSession(); dataLayerDemo.evict(customer);
Serializable customerId = customer.getId();
Customer copy = customer.clone();
customer = dataLayerDemo.getCustomer(customerId);
Assert.assertNotNull(copy);
Assert.assertEquals(copy.getName(), customer.getName());
Assert.assertEquals(copy.getSurname(), customer.getSurname());
Assert.assertFalse(customer.toString().equals(""));
Assert.assertEquals(copy, copy.clone());
Assert.assertEquals(copy, copy);
Assert.assertNotSame(copy, 0L);
}
@Transactional
@Test
public void testLine() throws CloneNotSupportedException {
DataLayerDemo dataLayerDemo = DataLayerDemoImpl.getInstance();
Line line = DemoDataPoolFactory.getLine();
dataLayerDemo.saveOrUpdate(line);
dataLayerDemo.flushSession(); dataLayerDemo.evict(line);
Serializable lineId = line.getId();
Line copy = line.clone();
line = dataLayerDemo.getLine(lineId);
Assert.assertNotNull(copy);
Assert.assertEquals(copy.getComment(), line.getComment());
Assert.assertEquals(copy.getOrder().getId(), line.getOrder().getId());
Assert.assertEquals(copy.getQuantity(), line.getQuantity());
Assert.assertEquals(copy.getStock().getId(), line.getStock().getId());
Assert.assertFalse(line.toString().equals(""));
Assert.assertEquals(copy, copy.clone());
Assert.assertEquals(copy, copy);
Assert.assertNotSame(copy, 0L);
}
@Transactional
@Test
public void testOrder() throws CloneNotSupportedException {
DataLayerDemo dataLayerDemo = DataLayerDemoImpl.getInstance();
Order order = DemoDataPoolFactory.getOrder();
dataLayerDemo.saveOrUpdate(order);
dataLayerDemo.flushSession(); dataLayerDemo.evict(order);
Serializable orderId = order.getId();
Order copy = order.clone();
order = dataLayerDemo.getOrder(orderId);
Assert.assertNotNull(copy);
Assert.assertEquals(copy.getCustomer().getId(), order.getCustomer().getId());
Assert.assertEquals(copy.getOrderDate().getTime() / 1000, order.getOrderDate().getTime() / 1000);
Assert.assertFalse(order.toString().equals(""));
Assert.assertEquals(copy, copy.clone());
Assert.assertEquals(copy, copy);
Assert.assertNotSame(copy, 0L);
}
@Transactional
@Test
public void testStock() throws CloneNotSupportedException {
DataLayerDemo dataLayerDemo = DataLayerDemoImpl.getInstance();
Stock stock = DemoDataPoolFactory.getStock();
dataLayerDemo.saveOrUpdate(stock);
dataLayerDemo.flushSession(); dataLayerDemo.evict(stock);
Serializable stockId = stock.getId();
Stock copy = stock.clone();
stock = dataLayerDemo.getStock(stockId);
Assert.assertNotNull(copy);
Assert.assertEquals(copy.getDescription(), stock.getDescription());
Assert.assertFalse(stock.toString().equals(""));
Assert.assertEquals(copy, copy.clone());
Assert.assertEquals(copy, copy);
Assert.assertNotSame(copy, 0L);
}
@Test
@Transactional
public void testPostCleanDBFirstPass() {
try{HibernateDemoDaoFactory.getLineDao().getQuery("delete from Line").executeUpdate(); } catch (Exception e) { }
try{HibernateDemoDaoFactory.getStockDao().getQuery("delete from Stock").executeUpdate(); } catch (Exception e) { }
try{HibernateDemoDaoFactory.getOrderDao().getQuery("delete from Order").executeUpdate(); } catch (Exception e) { }
try{HibernateDemoDaoFactory.getCustomerDao().getQuery("delete from Customer").executeUpdate(); } catch (Exception e) { }
}
@Test
@Transactional
public void postCleanDBFinalPass() {
HibernateDemoDaoFactory.getLineDao().getQuery("delete from Line").executeUpdate();
HibernateDemoDaoFactory.getStockDao().getQuery("delete from Stock").executeUpdate();
HibernateDemoDaoFactory.getOrderDao().getQuery("delete from Order").executeUpdate();
HibernateDemoDaoFactory.getCustomerDao().getQuery("delete from Customer").executeUpdate();
}
}