/* * 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.core.events.forum; import static org.mockito.Mockito.*; import java.util.Arrays; import net.jforum.entities.Forum; import net.jforum.entities.Group; import net.jforum.entities.Role; import net.jforum.entities.User; import net.jforum.entities.UserSession; import net.jforum.repository.GroupRepository; import net.jforum.services.GroupService; import net.jforum.util.SecurityConstants; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; /** * @author Rafael Steil, Jonatan Cloutier */ @RunWith(MockitoJUnitRunner.class) public class NewForumGroupPermissionsEventTestCase { @Mock private GroupRepository groupRepository; @Mock private GroupService groupService; @Mock private UserSession userSession; @InjectMocks private NewForumGroupPermissionsEvent event; @Test public void added() { Group group1 = createGroupWithRole(1, SecurityConstants.ADMINISTRATOR, SecurityConstants.APPROVE_MESSAGES); Group group2 = createGroupWithRole(2, SecurityConstants.CO_ADMINISTRATOR); Group group3 = createGroupWithRole(3, SecurityConstants.CATEGORY); Group group4 = createGroupWithRole(4, SecurityConstants.FORUM); when(groupRepository.getAllGroups()).thenReturn(Arrays.asList(group1, group2, group3, group4)); User user = new User(); user.getGroups().add(group2); user.getGroups().add(group4); when(userSession.getUser()).thenReturn(user); Forum forum = new Forum(); forum.setId(1); event.added(forum); verify(groupService).appendRole(group1, SecurityConstants.FORUM, 1); verify(groupService).appendRole(group2, SecurityConstants.FORUM, 1); } private Group createGroupWithRole(int groupId, String... roleNames) { Group g = new Group(); g.setId(groupId); for (String roleName : roleNames) { Role r = new Role(); r.setName(roleName); g.addRole(r); } return g; } }