package com.globant.katari.sample.time.application; import java.util.Calendar; import java.util.List; import junit.framework.TestCase; import com.globant.katari.sample.testsupport.DataHelper; import com.globant.katari.sample.testsupport.SecurityTestUtils; import com.globant.katari.sample.testsupport.SpringTestUtils; import com.globant.katari.sample.time.domain.TimeRepository; import com.globant.katari.user.domain.User; import com.globant.katari.user.domain.UserRepository; /** This class represents a TestCase of the user project hours report command. * * @author roman.cunci */ public class UserProjectHoursReportCommandTest extends TestCase { /** The user project hours report command. */ private UserProjectHoursReportCommand userProjectHoursReportCommand; /** This is a set up method of this TestCase. */ @Override public void setUp() { userProjectHoursReportCommand = (UserProjectHoursReportCommand) SpringTestUtils.getTimeModuleBeanFactory() .getBean("userProjectHoursReportCommand"); TimeRepository repository = (TimeRepository) SpringTestUtils .getTimeModuleBeanFactory().getBean("timeRepository"); UserRepository userRepository = (UserRepository) SpringTestUtils.get().getBeanFactory().getBean("user.userRepository"); User user = userRepository.findUserByName("admin"); Calendar tmpCalendar = Calendar.getInstance(); tmpCalendar.set(2008, 1, 15); DataHelper.removeExtraTimeEntries(repository); DataHelper.createTimeEntry(repository, user, tmpCalendar.getTime()); SecurityTestUtils.setContextUser(user); } /** Test the execute method with one entry. */ public void testExecuteSuccess() { userProjectHoursReportCommand.setFromDate("01/01/2008"); userProjectHoursReportCommand.setToDate("02/01/2008"); List<UserProjectHoursReportDTO> dtos = userProjectHoursReportCommand .execute(); assertFalse(dtos.isEmpty()); assertEquals(1, dtos.size()); assertEquals(1L, dtos.get(0).getHours().longValue()); } /** Test the execute method with no entries. */ public void testExecuteFail() { userProjectHoursReportCommand.setFromDate("02/01/2008"); userProjectHoursReportCommand.setToDate("03/01/2008"); List<UserProjectHoursReportDTO> dtos = userProjectHoursReportCommand .execute(); assertTrue(dtos.isEmpty()); } }