Package test.authz

Source Code of test.authz.PAPPermissionTest

/**
* Copyright (c) Members of the EGEE Collaboration. 2006-2009.
* See http://www.eu-egee.org/partners/ for details on the copyright holders.
*
* Licensed 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 test.authz;

import java.util.EnumSet;

import junit.framework.TestCase;

import org.glite.authz.pap.authz.PAPPermission;
import org.glite.authz.pap.authz.PAPPermissionList;
import org.glite.authz.pap.authz.PAPPermission.PermissionFlags;
import org.glite.authz.pap.authz.exceptions.PAPAuthzException;


public class PAPPermissionTest extends TestCase {

   
    public void testSingleStringParsingSuccess(){
       
        String permission = "POLICY_READ_LOCAL";
       
        EnumSet <PermissionFlags> perms = EnumSet.of( PermissionFlags.POLICY_READ_LOCAL );
        EnumSet <PermissionFlags> otherPerms = EnumSet.complementOf( perms );
       
       
        PAPPermission perm = PAPPermission.fromString( permission );
        assertTrue( perm.has( PermissionFlags.POLICY_READ_LOCAL ));
                       
        for (PermissionFlags f: otherPerms)
            assertFalse( perm.has( f ) );
       
       
    }

    public void testSingleStringParsingFailure(){
        String permission = "POLICY_READ_READ";
       
        boolean caughtException = false;
       
        try{
            PAPPermission perm = PAPPermission.fromString( permission );
       
        }catch (PAPAuthzException e) {
            caughtException = true;
        }
       
        assertTrue( "The parsing of an unknown permission type didn't cause an exception!", caughtException );
           
    }
   
    public void testMultipleStringParsingSuccess(){
       
        String permissionList = "POLICY_READ_LOCAL|POLICY_READ_REMOTE";
        EnumSet <PermissionFlags> perms = EnumSet.of( PermissionFlags.POLICY_READ_LOCAL, PermissionFlags.POLICY_READ_REMOTE );
        EnumSet <PermissionFlags> otherPerms = EnumSet.complementOf( perms );
       
        PAPPermission perm = PAPPermission.fromString( permissionList );
        assertTrue(perm.hasAll( perms ));
       
        for (PermissionFlags f: otherPerms)
            assertFalse( perm.has( f ) );
       
    }
   
    public void testMultipleStringParsingFailure(){
       
        String permissionList = "POLICY_READ_LOCAL|%CICCIO%|ALL";
       
        boolean caughtException = false;
       
        try{
           
            PAPPermission perm = PAPPermission.fromString( permissionList );
       
        }catch (PAPAuthzException e) {
            caughtException = true;
        }
       
        assertTrue( "The parsing of a permission list containing junk didn't cause an exception!", caughtException );
       
    }
   
    public void testAllPermsParsing(){
       
        String permission = "ALL";
        EnumSet <PermissionFlags> perms = EnumSet.allOf( PermissionFlags.class );
       
        PAPPermission perm = PAPPermission.fromString( permission );
       
        assertTrue( perm.hasAll( perms ) );
       
    }
   
   
    public void testCumulativePerms(){
     
      String perm1 = "POLICY_READ_REMOTE";
      String perm2 = "POLICY_READ_LOCAL";
     
      EnumSet<PermissionFlags> perms = EnumSet.of(PermissionFlags.POLICY_READ_LOCAL,PermissionFlags.POLICY_READ_REMOTE);
      EnumSet<PermissionFlags> compPerms = EnumSet.complementOf(perms);
     
      PAPPermissionList l = PAPPermissionList.instance();
      l.addPermission(PAPPermission.fromString(perm1));
      l.addPermission(PAPPermission.fromString(perm2));
     
      assertTrue(l.getCumulativePermission().hasAll(perms));
      assertFalse(l.getCumulativePermission().hasAll(compPerms));
     
     
    }
   
    public void testEmptyCumulativePerms(){
     
      EnumSet<PermissionFlags> allPerms = EnumSet.allOf(PermissionFlags.class);
     
      PAPPermissionList l = PAPPermissionList.instance();
      l.addPermission(PAPPermission.getEmptyPermission());
      l.addPermission(PAPPermission.getEmptyPermission());
     
      for (PermissionFlags f: allPerms){
       
        assertFalse(l.getCumulativePermission().has(f));
       
      }
    }
   
    public void testPermissionListSatisfy(){
     
      String perm1s = "POLICY_READ_LOCAL|POLICY_READ_REMOTE";
      PAPPermission p = PAPPermission.fromString(perm1s);
     
      PAPPermissionList l = PAPPermissionList.instance();
     
      l.addPermission(PAPPermission.fromString("POLICY_READ_LOCAL"));
      l.addPermission(PAPPermission.fromString("POLICY_READ_REMOTE"));
     
      assertTrue(l.satisfies(p));
     
    }
   
}
TOP

Related Classes of test.authz.PAPPermissionTest

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.