blob: 14a224686ebeb61632d95f65a93d1f19dfd5d812 [file] [log] [blame]
/**
* 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);
}
}