[java-identity-provider COMMIT] in /trunk/idp-attribute-resolver-api/src: main/java/net/shibboleth/idp/attribute/reso...

noreply at shibboleth.net noreply at shibboleth.net
Wed May 7 05:05:17 EDT 2014


Author: rdw
Date: Wed May  7 05:05:17 2014
New Revision: 5865

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=5865&view=rev
Log:
IDP-280  Attribute resolution Context navigation, plus tests

Added:
    trunk/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/context/AttributeIssuerIdLookupFunction.java   (with props)
    trunk/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/context/AttributePrincipalLookupFunction.java   (with props)
    trunk/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/context/AttributeRecipientIdLookupFunction.java   (with props)
Modified:
    trunk/idp-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AttributeResolutionContextTest.java

Modified: trunk/idp-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AttributeResolutionContextTest.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AttributeResolutionContextTest.java?rev=5865&r1=5864&r2=5865&view=diff
==============================================================================
--- trunk/idp-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AttributeResolutionContextTest.java (original)
+++ trunk/idp-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AttributeResolutionContextTest.java Wed May  7 05:05:17 2014
@@ -20,13 +20,25 @@
 import java.util.HashSet;
 
 import net.shibboleth.idp.attribute.IdPAttribute;
+import net.shibboleth.idp.attribute.resolver.context.AttributeIssuerIdLookupFunction;
+import net.shibboleth.idp.attribute.resolver.context.AttributePrincipalLookupFunction;
+import net.shibboleth.idp.attribute.resolver.context.AttributeRecipientIdLookupFunction;
 import net.shibboleth.idp.attribute.resolver.context.AttributeResolutionContext;
 
+import org.opensaml.messaging.context.navigate.ParentContextLookup;
+import org.opensaml.profile.context.ProfileRequestContext;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
+import com.google.common.base.Function;
+
 /** Unit test for {@link AttributeResolutionContext}. */
 public class AttributeResolutionContextTest {
+    
+    static private final String THE_ISSUER = "Issuer"; 
+    static private final String THE_RECIPIENT = "Recipient";
+    static private final String THE_PRINCIPAL = "Principal"; 
+
 
     /** Test instantiation and post-instantiation state. */
     @Test public void instantiation() {
@@ -96,5 +108,52 @@
         Assert.assertNotNull(context.getResolvedIdPAttributes());
         Assert.assertEquals(context.getResolvedIdPAttributes().size(), 1);
     }
+    
+    @Test public void lookupsParent() {
+        final ProfileRequestContext profileCtx = new ProfileRequestContext<>();
+        final AttributeResolutionContext context = profileCtx.getSubcontext(AttributeResolutionContext.class, true);
+        
+        context.setPrincipal(THE_PRINCIPAL);
+        context.setAttributeIssuerID(THE_ISSUER);
+        context.setAttributeRecipientID(THE_RECIPIENT);
+        
+        Assert.assertSame(context.getPrincipal(), THE_PRINCIPAL);
+        Assert.assertSame(context.getAttributeIssuerID(), THE_ISSUER);
+        Assert.assertSame(context.getAttributeRecipientID(), THE_RECIPIENT);
+        
+        final Function<ProfileRequestContext, String> principalFn = new AttributePrincipalLookupFunction();
+        final Function<ProfileRequestContext, String> recipientFn = new AttributeRecipientIdLookupFunction();
+        final Function<ProfileRequestContext, String> issuerFn = new AttributeIssuerIdLookupFunction();
+        
+        Assert.assertSame(principalFn.apply(profileCtx), THE_PRINCIPAL);
+        Assert.assertSame(issuerFn.apply(profileCtx), THE_ISSUER);
+        Assert.assertSame(recipientFn.apply(profileCtx), THE_RECIPIENT);
+    }
+        
+    @Test public void lookupsChild() {
+        final AttributeResolutionContext context = new AttributeResolutionContext();
+        final ProfileRequestContext profileCtx = context.getSubcontext(ProfileRequestContext.class, true);
+        
+        context.setPrincipal(THE_PRINCIPAL);
+        context.setAttributeIssuerID(THE_ISSUER);
+        context.setAttributeRecipientID(THE_RECIPIENT);
+        
+        final AttributePrincipalLookupFunction principalFn = new AttributePrincipalLookupFunction();
+        final AttributeRecipientIdLookupFunction recipientFn = new AttributeRecipientIdLookupFunction();
+        final AttributeIssuerIdLookupFunction issuerFn = new AttributeIssuerIdLookupFunction();
+
+        Assert.assertNull(principalFn.apply(profileCtx), THE_PRINCIPAL);
+        Assert.assertNull(issuerFn.apply(profileCtx), THE_ISSUER);
+        Assert.assertNull(recipientFn.apply(profileCtx), THE_RECIPIENT);
+
+        principalFn.setAttributeResolutionContextLookupStrategy(new ParentContextLookup<ProfileRequestContext, AttributeResolutionContext>());

[... 11 lines stripped ...]


More information about the commits mailing list