package com.globant.katari.sample.time.view; import static org.easymock.EasyMock.createMock; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.replay; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import junit.framework.TestCase; import org.springframework.validation.BindException; import org.springframework.web.servlet.ModelAndView; 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.application.UserProjectHoursReportCommand; import com.globant.katari.sample.time.domain.TimeRepository; import com.globant.katari.user.domain.User; import com.globant.katari.user.domain.UserRepository; /** Test the UserProjectHoursReportController. * * @author roman.cunci */ public class UserProjectHoursReportControllerTest extends TestCase { /** This is the user project hours report controller. */ private UserProjectHoursReportController userProjectHoursReportController; /** The time entry repository. */ private TimeRepository timeRepository; /** The user repository. */ private UserRepository userRepository; private User user; /** This is a set up method of this TestCase. */ @Override protected final void setUp() { userProjectHoursReportController = (UserProjectHoursReportController) SpringTestUtils.getTimeModuleBeanFactory() .getBean("/userProjectHoursReport.do"); timeRepository = (TimeRepository) SpringTestUtils .getTimeModuleBeanFactory().getBean("timeRepository"); userRepository = (UserRepository) SpringTestUtils.get() .getBeanFactory().getBean("user.userRepository"); user = userRepository.findUserByName("admin"); DataHelper.createTimeEntry(timeRepository, user); } /** Test the referenceData method. * @throws Exception if the test fails */ @SuppressWarnings("unchecked") public final void testReferenceData() throws Exception { HttpServletRequest request = createMock(HttpServletRequest.class); expect(request.getAttribute("baseweb")).andReturn("path").anyTimes(); replay(request); SecurityTestUtils.setContextUser(user); Map map = userProjectHoursReportController.referenceData(request); assertFalse(map.isEmpty()); } /** Test the OnSubmit method. * @throws Exception if the test fails */ public final void testOnSubmit() throws Exception { HttpServletRequest request; request = createMock(HttpServletRequest.class); HttpServletResponse response; response = createMock(HttpServletResponse.class); UserProjectHoursReportCommand userProjectHoursReportCommand = (UserProjectHoursReportCommand) SpringTestUtils .getTimeModuleBeanFactory().getBean("userProjectHoursReportCommand"); userProjectHoursReportCommand.setFormat("pdf"); userProjectHoursReportCommand.setFromDate("01/01/2008"); userProjectHoursReportCommand.setToDate("02/02/2008"); ModelAndView mav = userProjectHoursReportController.onSubmit( request, response, userProjectHoursReportCommand, new BindException(userProjectHoursReportCommand, "command")); assertNotNull(mav); } }