package net.rrm.ehour.persistence.timesheet.dao; import net.rrm.ehour.data.DateRange; import net.rrm.ehour.domain.ProjectAssignment; import net.rrm.ehour.domain.TimesheetEntry; import net.rrm.ehour.persistence.dao.AbstractAnnotationDaoTest; import net.rrm.ehour.timesheet.dto.BookedDay; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import java.util.*; import static org.junit.Assert.assertEquals; /** * @author thies (Thies Edeling - thies@te-con.nl) * Created on: Nov 16, 2010 - 7:36:19 PM */ @SuppressWarnings("deprecation") public class TimesheetDaoHibernateImplTest extends AbstractAnnotationDaoTest { public TimesheetDaoHibernateImplTest() { super("dataset-timesheet.xml"); } @Test public void shouldGetTimesheetEntriesInRangeForUser() { Calendar dateStart = new GregorianCalendar(2006, Calendar.OCTOBER, 1); Calendar dateEnd = new GregorianCalendar(2006, Calendar.NOVEMBER, 1); DateRange dateRange = new DateRange(dateStart.getTime(), dateEnd.getTime()); List<TimesheetEntry> results = timesheetDAO.getTimesheetEntriesInRange(1, dateRange); assertEquals(9, results.size()); } @Test public void shouldGetTimesheetEntriesInRangeForAssignment() { Calendar dateStart = new GregorianCalendar(2006, Calendar.OCTOBER, 1); Calendar dateEnd = new GregorianCalendar(2006, Calendar.NOVEMBER, 1); DateRange dateRange = new DateRange(dateStart.getTime(), dateEnd.getTime()); List<TimesheetEntry> results = timesheetDAO.getTimesheetEntriesInRange(new ProjectAssignment(2), dateRange); assertEquals(2, results.size()); } @Test public void shouldGetTimesheetEntriesInRange() { Calendar dateStart = new GregorianCalendar(2006, Calendar.OCTOBER, 1); Calendar dateEnd = new GregorianCalendar(2006, Calendar.NOVEMBER, 1); DateRange dateRange = new DateRange(dateStart.getTime(), dateEnd.getTime()); List<TimesheetEntry> results = timesheetDAO.getTimesheetEntriesInRange(dateRange); assertEquals(9, results.size()); } @Test public void shouldGetBookedHoursperDayInRange() { Calendar dateStart = new GregorianCalendar(2006, Calendar.OCTOBER, 1); Calendar dateEnd = new GregorianCalendar(2006, Calendar.NOVEMBER, 1); DateRange dateRange = new DateRange(dateStart.getTime(), dateEnd.getTime()); List<BookedDay> results = timesheetDAO.getBookedHoursperDayInRange(1, dateRange); assertEquals(6, results.size()); assertEquals(6.5, results.get(3).getHours().floatValue(), 0.01); assertEquals(-1, results.get(2).getHours().floatValue(), 0.01); } @Test public void shouldGetTimesheetEntriesBefore() { List<TimesheetEntry> res = timesheetDAO.getTimesheetEntriesBefore(new ProjectAssignment(1), new Date(2006 - 1900, Calendar.OCTOBER, 3)); assertEquals(1, res.size()); } @Test public void shouldGetTimesheetEntriesAfter() { List<TimesheetEntry> res = timesheetDAO.getTimesheetEntriesAfter(new ProjectAssignment(1), new Date(2006 - 1900, Calendar.OCTOBER, 4)); assertEquals(3, res.size()); } @Test public void shouldGetLatestTimesheetEntryForAssignment() { TimesheetEntry entry = timesheetDAO.getLatestTimesheetEntryForAssignment(1); assertEquals(9.2f, entry.getHours(), 0.01f); } @Test public void shouldDeleteTimesheetEntries() { List<Integer> ids = new ArrayList<>(Arrays.asList(5)); int deleted = timesheetDAO.deleteTimesheetEntries(ids); assertEquals(2, deleted); } @Autowired private TimesheetDao timesheetDAO; }