/* * Copyright (c) JForum Team. All rights reserved. * * The software in this package is published under the terms of the LGPL * license a copy of which has been included with this distribution in the * license.txt file. * * The JForum Project * http://www.jforum.net */ package net.jforum.controllers; import static org.junit.Assert.*; import static org.mockito.Mockito.*; import java.util.ArrayList; import net.jforum.entities.Category; import net.jforum.repository.CategoryRepository; import net.jforum.services.CategoryService; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.Spy; import org.mockito.runners.MockitoJUnitRunner; import br.com.caelum.vraptor.util.test.MockResult; /** * @author Rafael Steil, Jonatan Cloutier */ @RunWith(MockitoJUnitRunner.class) public class CategoryAdminControllerTestCase extends AdminTestCase { private CategoryAdminController action; @Mock private CategoryRepository repository; @Mock private CategoryService service; @Mock private CategoryAdminController mockCategoryAdminController; @Spy private MockResult mockResult; public CategoryAdminControllerTestCase() { super(CategoryAdminController.class); } @Test public void delete() { when(mockResult.redirectTo(action)).thenReturn(mockCategoryAdminController); action.delete(1, 2); verify(mockCategoryAdminController).list(); verify(service).delete(1, 2); } @Test public void addSave() { final Category c = new Category(); c.setName("c1"); c.setModerated(false); c.setDisplayOrder(1); when(mockResult.redirectTo(action)).thenReturn(mockCategoryAdminController); action.addSave(c); verify(mockCategoryAdminController).list(); verify(service).add(c); } @Test public void editExpectACategory() { when(repository.get(5)).thenReturn(new Category()); when(mockResult.forwardTo(action)).thenReturn(mockCategoryAdminController); action.edit(5); assertEquals(new Category(), mockResult.included("category")); verify(mockCategoryAdminController).add(); } @Test public void editSave() { final Category c = new Category(); c.setId(2); when(mockResult.redirectTo(action)).thenReturn(mockCategoryAdminController); action.editSave(c); verify(service).update(c); verify(mockCategoryAdminController).list(); } /** * Test method for * {@link net.jforum.controllers.CategoryAdminController#list()}. */ @Test public void list() { when(repository.getAllCategories()).thenReturn(new ArrayList<Category>()); action.list(); assertEquals(new ArrayList<Category>(), mockResult.included("categories")); } /** * Test method for * {@link net.jforum.controllers.CategoryAdminController#up(java.lang.Integer)} * . */ @Test public void up() { when(mockResult.redirectTo(action)).thenReturn(mockCategoryAdminController); action.up(1); verify(service).upCategoryOrder(1); verify(mockCategoryAdminController).list(); } /** * Test method for * {@link net.jforum.controllers.CategoryAdminController#down(java.lang.Integer)} * . */ @Test public void down() { when(mockResult.redirectTo(action)).thenReturn(mockCategoryAdminController); action.down(2); verify(service).downCategoryOrder(2); verify(mockCategoryAdminController).list(); } @Before public void setup() { action = new CategoryAdminController(repository, service, mockResult); } }