Package org.apache.felix.useradmin.impl.role

Source Code of org.apache.felix.useradmin.impl.role.GroupImplTest

/**
*  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);
    }
}
TOP

Related Classes of org.apache.felix.useradmin.impl.role.GroupImplTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.