/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.kapti.data.persistence;
import com.kapti.data.PointsTransaction;
import com.kapti.data.PointsTransaction.PointsTransactionPK;
import com.kapti.data.PointsType;
import com.kapti.data.User;
import com.kapti.filter.Filter;
import com.kapti.filter.parsing.Parser;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
/**
*
* @author Thijs
*/
public class PointsTransactionDAOTest {
private static StockPlayDAO mDAO;
private static GenericDAO<User, Integer> userDAO;
private static GenericDAO<PointsTransaction, PointsTransactionPK> pointsDAO;
private static Date time;
private static int userid;
public PointsTransactionDAOTest() {
}
@BeforeClass
public static void setUpClass() throws Exception {
mDAO = StockPlayDAOFactory.getDAO();
pointsDAO = mDAO.getPointsTransactionDAO();
userDAO = mDAO.getUserDAO();
time = Calendar.getInstance().getTime();
User u = new User(-1);
u.setNickname("TESTPoints");
u.setEmail("t@t.com");
u.setFirstname("az");
u.setLastname("be");
u.setPassword("test");
u.setRegdate(Calendar.getInstance().getTime());
userid = userDAO.create(u);
System.out.println("Created user " + userid);
}
@AfterClass
public static void tearDownClass() throws Exception {
userDAO.delete(userDAO.findById(userid));
System.out.println("Deleted user " + userid);
}
@Before
public void setUp() {
}
@After
public void tearDown() {
}
/**
* Test of create method, of class PointsTransactionDAO.
*/
@Test
public void testCreate() throws Exception {
System.out.println("create");
PointsTransaction entity = new PointsTransaction(userid, PointsType.MANUAL, time);
entity.setDelta(100);
entity.setComments("testsuite");
int expResult = 1;
int result = pointsDAO.create(entity);
assertEquals(expResult, result);
}
/**
* Test of findByFilter method, of class PointsTransactionDAO.
*/
@Test
public void testFindByFilter() throws Exception {
System.out.println("findByFilter");
Filter iFilter = Parser.getInstance().parse("userid EQUALS '" + userid + "'");
Collection result = pointsDAO.findByFilter(iFilter);
assertTrue(!result.isEmpty());
Iterator it = result.iterator();
while (it.hasNext()) {
PointsTransaction pt = (PointsTransaction) it.next();
assertEquals(userid, pt.getUser());
assertEquals(time, new Date(pt.getTimestamp().getTime()));
}
}
/**
* Test of findAll method, of class PointsTransactionDAO.
*/
@Test
public void testFindAll() throws Exception {
System.out.println("findAll");
Collection result = pointsDAO.findAll();
assertTrue(!result.isEmpty());
Iterator it = result.iterator();
while (it.hasNext()) {
PointsTransaction pt = (PointsTransaction) it.next();
if (userid == pt.getUser()) {
assertEquals(time, pt.getTimestamp());
}
}
}
/**
* Test of update method, of class PointsTransactionDAO.
*/
@Test
public void testUpdate() throws Exception {
System.out.println("update");
PointsTransaction entity = new PointsTransaction(userid,PointsType.MANUAL, time);
entity.setDelta(200);
entity.setComments("testsuite2");
boolean expResult = true;
boolean result = pointsDAO.update(entity);
assertEquals(expResult, result);
}
/**
* Test of delete method, of class PointsTransactionDAO.
*/
@Test
public void testDelete() throws Exception {
System.out.println("delete");
PointsTransaction entity = new PointsTransaction(userid,PointsType.MANUAL, time);
boolean expResult = true;
boolean result = pointsDAO.delete(entity);
assertEquals(expResult, result);
}
}