[java-identity-provider COMMIT] /trunk/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/co...

noreply at shibboleth.net noreply at shibboleth.net
Tue Oct 21 04:56:12 EDT 2014


Author: rdw
Date: Tue Oct 21 04:56:11 2014
New Revision: 6751

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=6751&view=rev
Log:
SC197 more odd tests around matchers as policy and vice versa

Modified:
    trunk/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/complex/impl/TargettedAttributeValueFilterTest.java

Modified: trunk/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/complex/impl/TargettedAttributeValueFilterTest.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/complex/impl/TargettedAttributeValueFilterTest.java?rev=6751&r1=6750&r2=6751&view=diff
==============================================================================
--- trunk/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/complex/impl/TargettedAttributeValueFilterTest.java (original)
+++ trunk/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/complex/impl/TargettedAttributeValueFilterTest.java Tue Oct 21 04:56:11 2014
@@ -32,6 +32,7 @@
 import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
 import net.shibboleth.idp.attribute.filter.impl.AttributeFilterImpl;
 import net.shibboleth.idp.attribute.filter.matcher.impl.AttributeValueStringMatcher;
+import net.shibboleth.idp.attribute.filter.matcher.logic.impl.NotMatcher;
 import net.shibboleth.idp.attribute.resolver.ResolutionException;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
 import net.shibboleth.utilities.java.support.component.ComponentSupport;
@@ -121,6 +122,68 @@
 
     /**
      * test the following policy.
+     * 
+     <code>
+      <AttributeFilterPolicy id="targettedValueInEPA">
+          <PolicyRequirementRule xsi:type="basic:ANY" /> 
+          <AttributeRule attributeID="eduPersonAffiliation">
+              <PermitValueRule xsi:type="basic:Not">
+                  <basic:Rule xsi:type="basic:AttributeValueString" value="jsmith" attributeId="uid" ignoreCase="true"/>
+              </PermitValueRule>
+          </AttributeRule>
+      <AttributeFilterPolicy/>
+      </code> which should return all values of eduPersonAffiliation when uid has a "jsmith"
+     * 
+     */
+    @Test public void testTargettedNotPolicyRequirement() throws ComponentInitializationException, ResolutionException,
+            AttributeFilterException {
+
+        final AttributeRule attributeValueFilterPolicy = new AttributeRule();
+        attributeValueFilterPolicy.setId("test");
+        attributeValueFilterPolicy.setAttributeId("eduPersonAffiliation");
+        final NotMatcher notM = new NotMatcher(valueMatcher());
+        notM.setId("notM");
+        notM.initialize();
+        final PolicyFromMatcherId pfm = new PolicyFromMatcherId(notM, "uid");
+        pfm.setId("pfm");
+        final MatcherFromPolicy mfp = new MatcherFromPolicy(pfm);
+        mfp.setId("mfp");
+        
+        attributeValueFilterPolicy.setMatcher(mfp);
+        attributeValueFilterPolicy.setIsDenyRule(false);
+
+        final AttributeFilterPolicy policy =
+                new AttributeFilterPolicy("targettedAtPermit", PolicyRequirementRule.MATCHES_ALL,
+                        Collections.singleton(attributeValueFilterPolicy));
+
+        final AttributeFilter engine = new AttributeFilterImpl("engine", Collections.singleton(policy));
+
+        ComponentSupport.initialize(attributeValueFilterPolicy);
+        ComponentSupport.initialize(policy);
+        ComponentSupport.initialize(engine);
+
+        AttributeFilterContext context = new AttributeFilterContext();
+        context.setPrefilteredIdPAttributes(getIdPAttributes("epa-uidwithjsmith.xml").values());
+        engine.filterAttributes(context);
+        Map<String, IdPAttribute> attributes = context.getFilteredIdPAttributes();
+        IdPAttribute attribute = attributes.get("eduPersonAffiliation");
+        Assert.assertEquals(attribute.getValues().size(), 3);
+
+        context = new AttributeFilterContext();
+        context.setPrefilteredIdPAttributes(getIdPAttributes("uid-epawithjsmith.xml").values());
+        engine.filterAttributes(context);
+        attributes = context.getFilteredIdPAttributes();
+        Assert.assertEquals(attribute.getValues().size(), 3);
+
+        context = new AttributeFilterContext();
+        context.setPrefilteredIdPAttributes(getIdPAttributes("epa-uid.xml").values());
+        engine.filterAttributes(context);
+        attributes = context.getFilteredIdPAttributes();
+        Assert.assertEquals(attribute.getValues().size(), 3);
+    }
+
+    /**
+     * test the following policy.
      <code>
         <AttributeFilterPolicy id="targettedValueInEPA">
         <PolicyRequirementRule xsi:type="basic:AttributeValueString" value="jsmith" attributeId="uid" ignoreCase="true"/>



More information about the commits mailing list