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());
}
}