package no.dusken.aranea.web.control; import no.dusken.aranea.model.Issue; import no.dusken.aranea.service.IssueService; import no.dusken.common.exception.PageNotFoundException; import org.junit.Before; import org.junit.Test; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.*; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; /** * @author <a href="mailto:erlend@hamnaberg.net">Erlend Hamnaberg</a> * @version $Id $ */ public class IssueControllerTest { private IssueController controller; private IssueService issueService; @Before public void setup() { controller = new IssueController(); issueService = mock(IssueService.class); controller.setIssueService(issueService); } @Test public void noThisYear() throws PageNotFoundException { int year =(new GregorianCalendar()).get(GregorianCalendar.YEAR); List<Issue> issuesPreviousYear = new LinkedList<Issue>(); issuesPreviousYear.add(new Issue()); when(issueService.getIssuesPublished(year)).thenReturn(Collections.<Issue>emptyList()); when(issueService.getIssuesPublished(year - 1)).thenReturn(issuesPreviousYear); HttpServletRequest request = mock(HttpServletRequest.class); HttpServletResponse response = mock(HttpServletResponse.class); ModelAndView modelAndView = controller.handleRequestInternal(request, response); assertNotNull(modelAndView); assertTrue("Model was empty", !modelAndView.getModel().isEmpty()); Map<Integer, Collection> issues = (Map<Integer, Collection>) modelAndView.getModel().get("issueMap"); assertTrue("issues has wrong value", issues.get(year).size() == 0); assertTrue("issues has wrong value", issues.get(year - 1).size() == 1); } }