package fr.openwide.core.test.jpa.security.business;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import fr.openwide.core.jpa.exception.SecurityServiceException;
import fr.openwide.core.jpa.exception.ServiceException;
import fr.openwide.core.jpa.security.business.authority.model.Authority;
import fr.openwide.core.jpa.security.business.authority.util.CoreAuthorityConstants;
import fr.openwide.core.test.AbstractJpaSecurityTestCase;
import fr.openwide.core.test.jpa.security.business.person.model.MockUser;
import fr.openwide.core.test.jpa.security.business.person.model.MockUserGroup;
public class TestPersonGroupService extends AbstractJpaSecurityTestCase {
@Test
public void testAuthorities() throws ServiceException, SecurityServiceException {
MockUserGroup group1 = createMockPersonGroup("group1");
MockUserGroup group2 = createMockPersonGroup("group2");
Authority adminAuthority = authorityService.getByName(CoreAuthorityConstants.ROLE_ADMIN);
Authority group1Authority = authorityService.getByName(ROLE_GROUP_1);
group1.addAuthority(adminAuthority);
group1.addAuthority(group1Authority);
mockUserGroupService.update(group1);
assertEquals(2, group1.getAuthorities().size());
group2.addAuthority(adminAuthority);
group2.addAuthority(group1Authority);
mockUserGroupService.update(group2);
assertEquals(2, group2.getAuthorities().size());
mockUserGroupService.delete(group1);
assertEquals(2, group2.getAuthorities().size());
group2.removeAuthority(adminAuthority);
mockUserGroupService.update(group2);
assertEquals(1, group2.getAuthorities().size());
}
@Test
public void testMembers() throws ServiceException, SecurityServiceException {
MockUserGroup group1 = createMockPersonGroup("group1");
MockUser user1 = createMockPerson("user1", "user1", "user1");
MockUser user2 = createMockPerson("user2", "user2", "user2");
mockUserGroupService.addUser(group1, user1);
user1 = mockUserService.getByUserName(user1.getUserName());
assertEquals(1, mockUserGroupService.listUsersByUserGroup(group1).size());
assertEquals(1, user1.getGroups().size());
mockUserGroupService.addUser(group1, user2);
assertEquals(2, mockUserGroupService.listUsersByUserGroup(group1).size());
mockUserGroupService.removeUser(group1, user2);
assertEquals(1, mockUserGroupService.listUsersByUserGroup(group1).size());
}
}