[picketlink-commits] Picketlink SVN: r876 - integration-tests/trunk/picketlink-pdp-tests/src/test/java/org/picketlink/test/integration/pdp.

picketlink-commits at lists.jboss.org picketlink-commits at lists.jboss.org
Tue Apr 12 14:23:27 EDT 2011


Author: anil.saldhana at jboss.com
Date: 2011-04-12 14:23:27 -0400 (Tue, 12 Apr 2011)
New Revision: 876

Modified:
   integration-tests/trunk/picketlink-pdp-tests/src/test/java/org/picketlink/test/integration/pdp/SOAPSAMLXACMLUnitTestCase.java
Log:
update pdp test for PERMIT condition also

Modified: integration-tests/trunk/picketlink-pdp-tests/src/test/java/org/picketlink/test/integration/pdp/SOAPSAMLXACMLUnitTestCase.java
===================================================================
--- integration-tests/trunk/picketlink-pdp-tests/src/test/java/org/picketlink/test/integration/pdp/SOAPSAMLXACMLUnitTestCase.java	2011-04-12 16:59:57 UTC (rev 875)
+++ integration-tests/trunk/picketlink-pdp-tests/src/test/java/org/picketlink/test/integration/pdp/SOAPSAMLXACMLUnitTestCase.java	2011-04-12 18:23:27 UTC (rev 876)
@@ -26,6 +26,10 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.xml.datatype.DatatypeConfigurationException;
+import javax.xml.datatype.DatatypeFactory;
+import javax.xml.datatype.XMLGregorianCalendar;
+
 import org.jboss.security.xacml.core.model.context.ActionType;
 import org.jboss.security.xacml.core.model.context.AttributeType;
 import org.jboss.security.xacml.core.model.context.AttributeValueType;
@@ -53,29 +57,46 @@
    private String issuer = "testIssuer";
 
    @Test
-   public void testXACML() throws Exception
+   public void testPermit() throws Exception
    {
       if(sendRequest)
       {
          //Create an XACML Request
-         RequestType xacmlRequest = getXACMLRequest();
+         RequestType xacmlRequest = getXACMLRequest(true);
          SOAPSAMLXACML soapSAMLXACML = new SOAPSAMLXACML();
          
          Result result = soapSAMLXACML.send(endpoint, issuer, xacmlRequest);
          assertTrue("No fault", result.isFault() == false);
          assertTrue("Decision available", result.isResponseAvailable());
+         assertTrue("Permit", result.isPermit());
+      }
+   }
+   
+   @Test
+   public void testDeny() throws Exception
+   {
+      if(sendRequest)
+      {
+         //Create an XACML Request
+         RequestType xacmlRequest = getXACMLRequest(false);
+         SOAPSAMLXACML soapSAMLXACML = new SOAPSAMLXACML();
+         
+         Result result = soapSAMLXACML.send(endpoint, issuer, xacmlRequest);
+         assertTrue("No fault", result.isFault() == false);
+         assertTrue("Decision available", result.isResponseAvailable());
          assertTrue("Deny", result.isDeny());
       }
+      
    }
    
    
-   private RequestType getXACMLRequest()
+   private RequestType getXACMLRequest( boolean permit)
    {
       RequestType requestType = new RequestType();
       requestType.getSubject().add(createSubject());
-      requestType.getResource().add(createResource());
+      requestType.getResource().add(createResource(permit));
       requestType.setAction(createAction());
-      requestType.setEnvironment(createEnvironment());
+      requestType.setEnvironment(createEnvironment(permit));
       return requestType;
    }
    
@@ -90,8 +111,8 @@
       return subject;
    }
 
-   public ResourceType createResource()
-   {
+   public ResourceType createResource(boolean permit)
+   {  
       ResourceType resourceType = new ResourceType();
 
       AttributeType attResourceID = RequestAttributeFactory.createStringAttributeType(
@@ -123,8 +144,24 @@
       //Add the attributes into the resource
       resourceType.getAttribute().add(attResourceID);
       resourceType.getAttribute().add(multi);
+      
+      if(!permit)
       resourceType.getAttribute().add(attConfidentialityCode);
-      resourceType.getAttribute().add(attDissentedSubjectId); 
+      
+      resourceType.getAttribute().add(attDissentedSubjectId);
+      
+      if(permit)
+      {    
+         AttributeType start = RequestAttributeFactory.createTimeAttributeType(
+               "urn:oasis:names:tc:xspa:1.0:resource:org:hoursofoperation:start",
+               issuer, getXMLTime("00:00:00-08:00"));
+         AttributeType end = RequestAttributeFactory.createTimeAttributeType(
+               "urn:oasis:names:tc:xspa:1.0:resource:org:hoursofoperation:end",
+               issuer, getXMLTime("23:59:00-08:00"));
+         resourceType.getAttribute().add(start);
+         resourceType.getAttribute().add(end);
+      }
+       
       return resourceType;
    }
 
@@ -168,6 +205,7 @@
       multi.getAttributeValue().add(createAttributeValueType("urn:va:xacml:2.0:interop:rsa8:hl7:prd-009"));
       multi.getAttributeValue().add(createAttributeValueType("urn:va:xacml:2.0:interop:rsa8:hl7:prd-006"));
       
+      
       //Locality
       AttributeType attLocality = RequestAttributeFactory.createStringAttributeType(
             "urn:oasis:names:tc:xacml:1.0:subject:locality", issuer, "Facility A"); 
@@ -175,12 +213,13 @@
       attrList.add(attSubjectID);
       attrList.add(attRole);
       attrList.add(multi); 
+       
       attrList.add(attLocality);
       
       return attrList;
    }
    
-   private EnvironmentType createEnvironment()
+   private EnvironmentType createEnvironment(boolean permit)
    {
       EnvironmentType env = new EnvironmentType();
       
@@ -188,6 +227,15 @@
             "urn:va:xacml:2.0:interop:rsa8:environment:locality", issuer, "Facility A"); 
       
       env.getAttribute().add(attFacility);
+      
+      if(permit)
+      {
+
+         AttributeType currentTime = RequestAttributeFactory.createTimeAttributeType(
+               "urn:oasis:names:tc:xacml:1.0:environment:current-time",
+               issuer, getXMLTime("12:59:00-08:00"));
+         env.getAttribute().add(currentTime);
+      }
       return env;
    }
    
@@ -197,4 +245,18 @@
       avt.getContent().add(value);
       return avt;
    }
+   
+   private XMLGregorianCalendar getXMLTime( String time)
+   {
+      DatatypeFactory dtf;
+      try
+      {
+         dtf = DatatypeFactory.newInstance();
+      }
+      catch (DatatypeConfigurationException e)
+      {
+         throw new RuntimeException(e);
+      }
+      return  dtf.newXMLGregorianCalendar(time);
+   }
 }
\ No newline at end of file



More information about the picketlink-commits mailing list