| /** |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package org.apache.felix.useradmin.impl.role; |
| |
| |
| import org.apache.felix.useradmin.impl.role.GroupImpl; |
| import org.apache.felix.useradmin.impl.role.RoleImpl; |
| import org.apache.felix.useradmin.impl.role.UserImpl; |
| import org.osgi.service.useradmin.Role; |
| |
| import junit.framework.TestCase; |
| |
| /** |
| * Test case for {@link GroupImpl}. |
| */ |
| public class GroupImplTest extends TestCase { |
| |
| /** |
| * Tests that adding a role as basic member twice does not cause duplication. |
| */ |
| public void testAddBasicMemberWithExistingBasicMemberOk() { |
| GroupImpl group = new GroupImpl("foo"); |
| assertTrue(group.addMember(new UserImpl("bar"))); |
| assertFalse(group.addMember(new UserImpl("bar"))); // should be ignored... |
| |
| assertEquals(1, group.getMembers().length); |
| assertNull(group.getRequiredMembers()); |
| } |
| |
| /** |
| * Tests that adding a role as required member works if it is not contained at all. |
| */ |
| public void testAddBasicMemberWithExistingRequiredMemberOk() { |
| GroupImpl group = new GroupImpl("foo"); |
| assertTrue(group.addRequiredMember(new UserImpl("bar"))); |
| assertFalse(group.addMember(new UserImpl("bar"))); // should be ignored... |
| |
| assertNull(group.getMembers()); |
| assertEquals(1, group.getRequiredMembers().length); |
| } |
| |
| /** |
| * Tests that adding a role as basic member while another role with the same name exists does not cause duplication. |
| */ |
| public void testAddBasicMemberWithExistingRoleOk() { |
| GroupImpl group = new GroupImpl("foo"); |
| assertTrue(group.addMember(new UserImpl("bar"))); |
| assertFalse(group.addMember(new RoleImpl("bar"))); // should be ignored... |
| |
| assertEquals(1, group.getMembers().length); |
| assertNull(group.getRequiredMembers()); |
| } |
| |
| /** |
| * Tests that adding a role as basic member works if it is not contained at all. |
| */ |
| public void testAddNonExistingMemberOk() { |
| GroupImpl group = new GroupImpl("foo"); |
| assertTrue(group.addMember(new UserImpl("bar"))); |
| |
| assertEquals(1, group.getMembers().length); |
| assertNull(group.getRequiredMembers()); |
| } |
| |
| /** |
| * Tests that adding a role as basic member while it exists as required member does not cause duplication. |
| */ |
| public void testAddNonExistingRequiredMemberOk() { |
| GroupImpl group = new GroupImpl("foo"); |
| assertTrue(group.addRequiredMember(new UserImpl("bar"))); |
| |
| assertNull(group.getMembers()); |
| assertEquals(1, group.getRequiredMembers().length); |
| } |
| |
| /** |
| * Tests that adding a role as required member works if it is not contained at all. |
| */ |
| public void testAddRequiredMemberWithExistingBasicMemberOk() { |
| GroupImpl group = new GroupImpl("foo"); |
| assertTrue(group.addMember(new UserImpl("bar"))); |
| assertFalse(group.addRequiredMember(new UserImpl("bar"))); // should be ignored... |
| |
| assertEquals(1, group.getMembers().length); |
| assertNull(group.getRequiredMembers()); |
| } |
| |
| /** |
| * Tests that adding a role as required member while another role with the same name exists does not cause duplication. |
| */ |
| public void testAddRequiredMemberWithExistingRoleOk() { |
| GroupImpl group = new GroupImpl("foo"); |
| assertTrue(group.addRequiredMember(new UserImpl("bar"))); |
| assertFalse(group.addRequiredMember(new RoleImpl("bar"))); // should be ignored... |
| |
| assertNull(group.getMembers()); |
| assertEquals(1, group.getRequiredMembers().length); |
| } |
| |
| /** |
| * Test method for {@link org.apache.felix.useradmin.impl.role.RoleImpl#getType()}. |
| */ |
| public void testGetType() { |
| GroupImpl group = new GroupImpl("foo"); |
| |
| assertEquals(Role.GROUP, group.getType()); |
| } |
| |
| /** |
| * Tests that {@link GroupImpl#hashCode()} yields predictable results. |
| */ |
| public void testHashCodeOk() { |
| GroupImpl group1 = new GroupImpl("foo"); |
| GroupImpl group2 = new GroupImpl("foo"); |
| GroupImpl group3 = new GroupImpl("bar"); |
| |
| assertTrue(group1.hashCode() == group2.hashCode()); |
| assertFalse(group1.hashCode() == group3.hashCode()); |
| assertFalse(group2.hashCode() == group3.hashCode()); |
| } |
| |
| /** |
| * Tests that removing an basic required member works. |
| */ |
| public void testRemoveExistingBasicMemberOk() { |
| UserImpl role1 = new UserImpl("bar"); |
| UserImpl role2 = new UserImpl("qux"); |
| |
| GroupImpl group = new GroupImpl("foo"); |
| assertTrue(group.addMember(role1)); |
| assertTrue(group.addRequiredMember(role2)); |
| |
| assertEquals(1, group.getMembers().length); |
| assertEquals(1, group.getRequiredMembers().length); |
| |
| assertTrue(group.removeMember(role1)); |
| |
| assertNull(group.getMembers()); |
| assertEquals(1, group.getRequiredMembers().length); |
| } |
| |
| /** |
| * Tests that removing an existing required member works. |
| */ |
| public void testRemoveExistingRequiredMemberOk() { |
| UserImpl role1 = new UserImpl("bar"); |
| UserImpl role2 = new UserImpl("qux"); |
| |
| GroupImpl group = new GroupImpl("foo"); |
| assertTrue(group.addMember(role1)); |
| assertTrue(group.addRequiredMember(role2)); |
| |
| assertEquals(1, group.getMembers().length); |
| assertEquals(1, group.getRequiredMembers().length); |
| |
| assertTrue(group.removeMember(role2)); |
| |
| assertEquals(1, group.getMembers().length); |
| assertNull(group.getRequiredMembers()); |
| } |
| |
| /** |
| * Tests that removing an basic required member works. |
| */ |
| public void testRemoveNonExistingMemberOk() { |
| UserImpl role1 = new UserImpl("bar"); |
| UserImpl role2 = new UserImpl("qux"); |
| UserImpl role3 = new UserImpl("quu"); |
| |
| GroupImpl group = new GroupImpl("foo"); |
| assertTrue(group.addMember(role1)); |
| assertTrue(group.addRequiredMember(role2)); |
| |
| assertEquals(1, group.getMembers().length); |
| assertEquals(1, group.getRequiredMembers().length); |
| |
| assertFalse(group.removeMember(role3)); |
| |
| assertEquals(1, group.getMembers().length); |
| assertEquals(1, group.getRequiredMembers().length); |
| } |
| } |