package no.dusken.aranea.admin.control; import no.dusken.aranea.model.Article; import no.dusken.aranea.model.Page; import no.dusken.aranea.service.PageService; import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.web.servlet.ModelAndView; import java.util.ArrayList; import java.util.List; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.mock; /** * @author Marvin B. Lillehaug <lillehau@underdusken.no> */ public class PublishPageTest { private PublishPageController controller; private PageService service; @Before public void setup() { controller = new PublishPageController(); service = mock(PageService.class); controller.setPageService(service); } /** * Test that the controller returns a list of unpublished pages. */ @Test public void testGetUnPublishedPages() throws Exception { List<Page> l = new ArrayList<Page>(); l.add(new Article()); l.add(new Article()); l.add(new Article()); Mockito.when(service.getNotPublishedPages(0, 30)).thenReturn(l); ModelAndView mav = controller.handleRequestInternal(new MockHttpServletRequest(), new MockHttpServletResponse()); List<Page> list = (List<Page>)mav.getModel().get("pages"); assertEquals("Could not get unpublished pages", 3, list.size()); } /** * Test that the controller changes publishedstatus for page */ @Test public void testPublishPage() throws Exception { Article a = new Article(); a.setPublished(false); a.setID(123L); Mockito.when(service.getEntity(123L)).thenReturn(a); MockHttpServletRequest request = new MockHttpServletRequest(); request.setParameter("ID", String.valueOf(123)); ModelAndView mav = controller.handleRequestInternal(request, new MockHttpServletResponse()); Page p = (Page) mav.getModel().get("updatedPage"); assertEquals(true, p.getPublished()); } }