/* * 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.services; import static org.mockito.Matchers.*; import static org.mockito.Mockito.*; import net.jforum.core.SessionManager; import net.jforum.core.exceptions.ValidationException; import net.jforum.entities.Group; import net.jforum.entities.UserSession; import net.jforum.repository.GroupRepository; import net.jforum.repository.UserRepository; import net.jforum.security.RoleManager; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; //import net.jforum.actions.helpers.PermissionOptions; /** * @author Rafael Steil, Jonatan Cloutier */ @RunWith(MockitoJUnitRunner.class) public class GroupServiceTestCase { @Mock private GroupRepository repository; @Mock private SessionManager sessionManager; @Mock private UserSession userSession; @Mock private RoleManager roleManager; @Mock private UserRepository userRepository; @InjectMocks private GroupService service; @Test @Ignore("test must be fixed, permission problem") public void savePermissions() { final Group group = new Group(); when(userSession.getRoleManager()).thenReturn(roleManager); when(roleManager.isAdministrator()).thenReturn(false); when(repository.get(1)).thenReturn(new Group()); //TODO: service.savePermissions(1, new PermissionOptions()); verify(userRepository).changeAllowAvatarState(false, group); verify(sessionManager).computeAllOnlineModerators(); verify(repository).update(group); } @Test public void delete() { when(repository.get(1)).thenReturn(new Group()); when(repository.get(2)).thenReturn(new Group()); service.delete(1, 2); verify(repository, times(2)).remove(notNull(Group.class)); } @Test(expected = NullPointerException.class) public void updateUsingNullGroupExpectsNPE() { service.update(null); } @Test(expected = ValidationException.class) public void updateUsingNullNameExpectsValidationException() { Group g = new Group(); g.setId(1); g.setName(null); service.update(g); } @Test(expected = ValidationException.class) public void updateUsingEmptyNameExpectsValidationException() { Group g = new Group(); g.setId(1); g.setName(""); service.update(g); } @Test(expected = ValidationException.class) public void updateUsingIdZeroExpectsValidationException() { Group g = new Group(); g.setName("g1"); g.setId(0); service.update(g); } @Test public void updateExpectsSuccess() { Group g = new Group(); g.setName("g1"); g.setId(2); service.update(g); verify(repository).update(notNull(Group.class)); } @Test public void addExpectSuccess() { Group g = new Group(); g.setName("g1"); service.add(g); verify(repository).add(notNull(Group.class)); } @Test(expected = NullPointerException.class) public void addUsingNullGroupExpectsNPE() { service.add(null); } @Test(expected = ValidationException.class) public void addUsingidBiggerThanZeroExpectsValidationException() { Group g = new Group(); g.setName("g1"); g.setId(1); service.add(g); } @Test(expected = ValidationException.class) public void addUsingEmtpyNameExpectsValidationException() { Group g = new Group(); g.setName(""); service.add(g); } @Test(expected = ValidationException.class) public void addUsingNullNameExpectsValidationException() { Group g = new Group(); g.setName(null); service.add(g); } }