/*
* ProgramControllerTest.java
* JUnit based test
*
* Created on 17 August 2007, 19:36
*/
package org.spw.controller;
import junit.framework.*;
import java.util.List;
import org.spw.model.Program;
import java.util.Calendar;
import java.util.Date;
/**
*
* @author PSe
*/
public class ProgramControllerTest extends TestCase {
private static final long TEST_ID = 9999990L;
private static final ProgramController ctrl = new ProgramController();
public ProgramControllerTest(String testName) {
super(testName);
}
protected void setUp() throws Exception {
Program test = new Program();
test.setIdProgram(TEST_ID);
test.setProgramAcronym("TEST");
test.setProgram(getName());
test.setStartDate(new Date());
test.setEndDate(new Date());
ctrl.create(test);
Calendar cal = Calendar.getInstance();
cal.clear();
test.setIdProgram(TEST_ID+1);
test.setProgramAcronym("TEST");
test.setProgram(getName());
cal.set(2007, 1, 1); //1st of Feb 2007
test.setStartDate(cal.getTime());
cal.set(2007, 11, 31); //31st of Dec 2007
test.setEndDate(cal.getTime());
ctrl.create(test);
cal = Calendar.getInstance();
test.setIdProgram(TEST_ID+2);
test.setProgramAcronym("TEST");
test.setProgram(getName());
cal.set(2006, 1, 1); //1st of Feb 2006
test.setStartDate(cal.getTime());
cal.set(2006, 11, 31); //31st of Dec 2006
test.setEndDate(cal.getTime());
ctrl.create(test);
test.setIdProgram(TEST_ID+3);
test.setProgramAcronym("TEST");
test.setProgram(getName());
cal.set(2008, 0, 1); //1st of Jan 2008
test.setStartDate(cal.getTime());
cal.set(2008, 11, 31); //31st of Dec 2008
test.setEndDate(cal.getTime());
ctrl.create(test);
}
protected void tearDown() throws Exception {
for(int i = 0; i < 4; i++) {
ctrl.delete(ctrl.read(TEST_ID + i));
}
}
/**
* Test of getPrograms method, of class org.spw.controller.ProgramController.
*/
public void testGetPrograms() {
boolean found = false;
System.out.println("getPrograms");
List<Program> result = ctrl.getPrograms();
assertNotNull(result);
assertTrue("Must find at least the test entity.", result.size() > 0);
for (Program prog : result) {
if (prog.getIdProgram() == TEST_ID) {
found = true;
break;
}
}
assertTrue("Cannot find the test entity.", found);
}
/**
* Test of getProgramsYear method, of class org.spw.controller.ProgramController.
*/
public void testGetProgramsYear() {
System.out.println("getProgramsYear");
Calendar cal = Calendar.getInstance();
cal.clear();
int year = 0;
ProgramController instance = new ProgramController();
List<Program> result = instance.getProgramsYear(year);
assertTrue(result.size() == 0); //noting in year 0
year = 2006;
result = instance.getProgramsYear(year);
assertTrue(result.size() > 0);
cal.set(2006,0,1,0,0);
Date startDate = cal.getTime();
cal.set(2006,11,31,23,59);
Date endDate = cal.getTime();
for(Program p: result) {
assertTrue("Date must be a 2006 date, found: " + p.getStartDate() +
" (compared to " + startDate + ")",
p.getStartDate().compareTo(startDate) >= 0);
assertTrue("Date must be a 2006 date, found: " + p.getEndDate() +
" (compared to " + endDate + ")",
p.getStartDate().compareTo(endDate) <=0);
}
year = 2007;
result = instance.getProgramsYear(year);
assertTrue(result.size() > 0);
cal.set(2007,0,1,0,0);
startDate = cal.getTime();
cal.set(2007,11,31,23,59);
endDate = cal.getTime();
for(Program p: result) {
assertTrue("Date must be a 2007 date, found: " + p.getStartDate() +
" (compared to " + startDate + ")",
p.getStartDate().compareTo(startDate) >= 0);
assertTrue("Date must be a 2007 date, found: " + p.getEndDate() +
" (compared to " + endDate + ")",
p.getStartDate().compareTo(endDate) <=0);
}
}
/**
* Test of create method, of class org.spw.controller.ProgramController.
*/
public void testCreate() {
System.out.println("create");
// assume JPA is bug free
}
/**
* Test of read method, of class org.spw.controller.ProgramController.
*/
public void testRead() {
System.out.println("read");
// assume JPA is bug free
}
/**
* Test of update method, of class org.spw.controller.ProgramController.
*/
public void testUpdate() {
System.out.println("update");
// assume JPA is bug free
}
/**
* Test of delete method, of class org.spw.controller.ProgramController.
*/
public void testDelete() {
System.out.println("delete");
// assume JPA is bug free
}
}