[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