package no.dusken.aranea.admin.control; import no.dusken.aranea.model.Page; import no.dusken.aranea.model.PageImage; import no.dusken.aranea.service.PageService; import no.dusken.common.service.GenericService; import org.junit.Before; import org.junit.Test; import org.springframework.ui.ExtendedModelMap; import org.springframework.ui.Model; import java.util.Arrays; import java.util.List; import static junit.framework.Assert.assertEquals; import static org.mockito.Mockito.*; /** * @author Benjamin Bjørnseth <benjamin@underdusken.no> */ public class EditPageImageParagraphTest { private PageService pageService; private GenericService<PageImage> pageImageService; private EditPageImageParagraphController controller; private PageImage pageImage; private Long pageID = 42L, pageImageID = 42L; private Integer oldPNumber = 17, newPNumber = 19; private List<PageImage> pageImages; @Before public void setUp() { pageService = mock(PageService.class); pageImageService = mock(GenericService.class); pageImage = mock(PageImage.class); pageImage.setParagraph(oldPNumber); Page page = mock(Page.class); PageImage[] pageImages = new PageImage[3]; for (int i = 1; i <= pageImages.length; i++) { pageImages[i-1] = new PageImage(); pageImages[i-1].setParagraph((i + 1) % 4); } this.pageImages = Arrays.asList(pageImages); when(pageService.getEntity(pageID)).thenReturn(page); when(page.getPageImages()).thenReturn(Arrays.asList(pageImage)); when(pageImageService.getEntity(pageImageID)).thenReturn(pageImage); controller = new EditPageImageParagraphController(); controller.setPageService(pageService); controller.setPageImageService(pageImageService); } @Test public void testGetImageSelectionView() { Model model = new ExtendedModelMap(); String returnedView = controller.getImageSelectionView(newPNumber, pageID, model); assertEquals("Unexpected view returned", "no/dusken/aranea/base/admin/pageImage/imageChooser", returnedView); assertEquals("Model does not include PageImage list", Arrays.asList(pageImage), model.asMap().get("pageImages")); assertEquals("Model does not include pageID", pageID, model.asMap().get("pageId")); assertEquals("Model does not include new paragraph number", newPNumber, model.asMap().get("paragraphNumber")); } @Test public void testUpdatePageImageParagraph() { controller.updatePageImageParagraph(pageImageID, pageID, newPNumber); verify(pageImage).setParagraph(newPNumber); verify(pageImageService).saveOrUpdate(pageImage); } @Test public void testUpdateGalleryOrdering() { controller.updateGalleryOrdering(pageImages); for (int i = 1; i <= pageImages.size(); i++) { assertEquals("Wrong paragraph number", i, (int)pageImages.get(i-1).getParagraph()); } } }