/* * 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.Matchers.*; import static org.mockito.Mockito.*; import java.util.ArrayList; import net.jforum.actions.helpers.Actions; import net.jforum.entities.Avatar; import net.jforum.repository.AvatarRepository; import net.jforum.services.AvatarService; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; import org.mockito.runners.MockitoJUnitRunner; import br.com.caelum.vraptor.interceptor.multipart.UploadedFile; import br.com.caelum.vraptor.util.test.MockResult; /** * @author Rafael Steil, Jonatan Cloutier */ @RunWith(MockitoJUnitRunner.class) public class AvatarAdminControllerTestCase extends AdminTestCase { @Mock private AvatarRepository repository; @Mock private AvatarService service; @Spy private MockResult mockResult; @Mock private AvatarAdminController mockAdminController; @InjectMocks private AvatarAdminController avatarAction; public AvatarAdminControllerTestCase() { super(SmilieAdminController.class); } @Test public void edit() { when(repository.get(1)).thenReturn(new Avatar()); avatarAction.edit(1); assertEquals(new Avatar(), mockResult.included("avatar")); verify(mockResult).forwardTo(Actions.ADD); } @Test public void editSave() { when(mockResult.redirectTo(avatarAction)).thenReturn(mockAdminController); avatarAction.editSave(new Avatar(), null); verify(service).update(notNull(Avatar.class), isNull(UploadedFile.class)); verify(mockAdminController).list(); } @Test public void delete() { final Avatar avatar = new Avatar(); when(repository.get(1)).thenReturn(avatar); when(repository.get(2)).thenReturn(avatar); when(repository.get(3)).thenReturn(avatar); when(mockResult.redirectTo(avatarAction)).thenReturn(mockAdminController); avatarAction.delete(1, 2, 3); verify(repository, times(3)).remove(avatar); verify(mockAdminController).list(); } @Test public void listExpectOneRecord() { when(repository.getGalleryAvatar()).thenReturn(new ArrayList<Avatar>()); when(repository.getUploadedAvatar()).thenReturn(new ArrayList<Avatar>()); avatarAction.list(); assertEquals(new ArrayList<Avatar>(), mockResult.included("GalleryAvatars")); assertEquals(new ArrayList<Avatar>(), mockResult.included("UploadedAvatars")); } @Test public void addSave() { avatarAction.addSave(new Avatar(), null); verify(service).add(notNull(Avatar.class), isNull(UploadedFile.class)); verify(mockResult).redirectTo(Actions.LIST); } }