[java-opensaml] 14/24: OSJ-204: md:RequestedAttribute doesn't marshall child elements

Brent Putman putmanb at georgetown.edu
Wed Sep 27 16:46:08 EDT 2017


This is an automated email from the git hooks/post-receive script.

putmanb pushed a commit to branch maint-3.3
in repository java-opensaml.

View the commit online:
http://git.shibboleth.net/view/?p=java-opensaml.git;a=commit;h=4aa60406d008a1b1f5565a8fbbc6cc3119f54ff1

commit 4aa60406d008a1b1f5565a8fbbc6cc3119f54ff1
Author: Brent Putman <putmanb at georgetown.edu>
AuthorDate: Wed May 3 16:33:41 2017 -0400

    OSJ-204: md:RequestedAttribute doesn't marshall child elements
---
 .../metadata/impl/RequestedAttributeImpl.java      |  7 ---
 .../metadata/impl/RequestedAttributeTest.java      | 59 ++++++++++++++++++++--
 .../impl/RequestedAttributeChildElements.xml       |  5 ++
 3 files changed, 60 insertions(+), 11 deletions(-)

diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/RequestedAttributeImpl.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/RequestedAttributeImpl.java
index 1795db7..808dbde 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/RequestedAttributeImpl.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/metadata/impl/RequestedAttributeImpl.java
@@ -21,9 +21,6 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
-import java.util.List;
-
-import org.opensaml.core.xml.XMLObject;
 import org.opensaml.core.xml.schema.XSBooleanValue;
 import org.opensaml.saml.saml2.core.impl.AttributeImpl;
 import org.opensaml.saml.saml2.metadata.RequestedAttribute;
@@ -76,8 +73,4 @@ public class RequestedAttributeImpl extends AttributeImpl implements RequestedAt
 
     }
 
-    /** {@inheritDoc} */
-    public List<XMLObject> getOrderedChildren() {
-        return null;
-    }
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/metadata/impl/RequestedAttributeTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/metadata/impl/RequestedAttributeTest.java
index 81c208e..d083e64 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/metadata/impl/RequestedAttributeTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/metadata/impl/RequestedAttributeTest.java
@@ -17,15 +17,19 @@
 
 package org.opensaml.saml.saml2.metadata.impl;
 
-import org.testng.annotations.Test;
-import org.testng.annotations.BeforeMethod;
-import org.testng.Assert;
 import javax.xml.namespace.QName;
 
-import org.opensaml.core.xml.schema.XSBooleanValue;
 import org.opensaml.core.xml.XMLObjectProviderBaseTestCase;
+import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
+import org.opensaml.core.xml.schema.XSAny;
+import org.opensaml.core.xml.schema.XSBooleanValue;
+import org.opensaml.core.xml.schema.impl.XSAnyBuilder;
 import org.opensaml.saml.common.xml.SAMLConstants;
+import org.opensaml.saml.saml2.core.AttributeValue;
 import org.opensaml.saml.saml2.metadata.RequestedAttribute;
+import org.testng.Assert;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
 
 /**
  * Test case for creating, marshalling, and unmarshalling
@@ -44,6 +48,9 @@ public class RequestedAttributeTest extends XMLObjectProviderBaseTestCase {
 
     /** Excpected isRequired attribute value */
     protected XSBooleanValue expectedIsRequired;
+    
+    /** Expected saml2:AttributeValue values (element content).*/
+    protected String expectedAttributeValue0, expectedAttributeValue1;
 
     /**
      * Constructor
@@ -51,6 +58,7 @@ public class RequestedAttributeTest extends XMLObjectProviderBaseTestCase {
     public RequestedAttributeTest() {
         singleElementFile = "/org/opensaml/saml/saml2/metadata/impl/RequestedAttribute.xml";
         singleElementOptionalAttributesFile = "/org/opensaml/saml/saml2/metadata/impl/RequestedAttributeOptionalAttributes.xml";
+        childElementsFile = "/org/opensaml/saml/saml2/metadata/impl/RequestedAttributeChildElements.xml";
     }
 
     @BeforeMethod
@@ -59,6 +67,8 @@ public class RequestedAttributeTest extends XMLObjectProviderBaseTestCase {
         expectedNameFormat = "urn:string";
         expectedFriendlyName = "Attribute Name";
         expectedIsRequired = new XSBooleanValue(Boolean.TRUE, false);
+        expectedAttributeValue0 = "SomeAttributeValue0";
+        expectedAttributeValue1 = "SomeAttributeValue1";
     }
 
     /** {@inheritDoc} */
@@ -91,6 +101,26 @@ public class RequestedAttributeTest extends XMLObjectProviderBaseTestCase {
         Assert.assertEquals(requestedAttribute.isRequiredXSBoolean(), expectedIsRequired,
                 "Is Required was " + isRequired + ", expected " + expectedIsRequired);
     }
+    
+    /** {@inheritDoc} */
+    @Test
+    public void testChildElementsUnmarshall() {
+        RequestedAttribute attribute = (RequestedAttribute) unmarshallElement(childElementsFile);
+
+        String name = attribute.getName();
+        Assert.assertEquals(name, expectedName, "Name was " + name + ", expected " + expectedName);
+        
+        Assert.assertEquals(attribute.getAttributeValues().size(), 2);
+        
+        Assert.assertTrue(attribute.getAttributeValues().get(0) instanceof XSAny);
+        XSAny value0 = (XSAny) attribute.getAttributeValues().get(0);
+        Assert.assertEquals(value0.getTextContent(), expectedAttributeValue0);
+        
+        Assert.assertTrue(attribute.getAttributeValues().get(1) instanceof XSAny);
+        XSAny value1 = (XSAny) attribute.getAttributeValues().get(1);
+        Assert.assertEquals(value1.getTextContent(), expectedAttributeValue1);
+    }
+
 
     /** {@inheritDoc} */
     @Test
@@ -116,6 +146,27 @@ public class RequestedAttributeTest extends XMLObjectProviderBaseTestCase {
         assertXMLEquals(expectedOptionalAttributesDOM, requestedAttribute);
     }
     
+    /** {@inheritDoc} */
+    @Test
+    public void testChildElementsMarshall() {
+        QName qname = new QName(SAMLConstants.SAML20MD_NS, RequestedAttribute.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MD_PREFIX);
+        RequestedAttribute requestedAttribute = (RequestedAttribute) buildXMLObject(qname);
+
+        requestedAttribute.setName(expectedName);
+        
+        XSAnyBuilder valueBuilder = (XSAnyBuilder) XMLObjectProviderRegistrySupport.getBuilderFactory().getBuilder(XSAny.TYPE_NAME);
+
+        XSAny val0 = valueBuilder.buildObject(AttributeValue.DEFAULT_ELEMENT_NAME);
+        val0.setTextContent(expectedAttributeValue0);
+        requestedAttribute.getAttributeValues().add(val0);
+        
+        XSAny val1 = valueBuilder.buildObject(AttributeValue.DEFAULT_ELEMENT_NAME);
+        val1.setTextContent(expectedAttributeValue1);
+        requestedAttribute.getAttributeValues().add(val1);
+
+        assertXMLEquals(expectedChildElementsDOM, requestedAttribute);
+    }
+    
     /**
      * Test the proper behavior of the XSBooleanValue attributes.
      */
diff --git a/opensaml-saml-impl/src/test/resources/org/opensaml/saml/saml2/metadata/impl/RequestedAttributeChildElements.xml b/opensaml-saml-impl/src/test/resources/org/opensaml/saml/saml2/metadata/impl/RequestedAttributeChildElements.xml
new file mode 100644
index 0000000..1a81300
--- /dev/null
+++ b/opensaml-saml-impl/src/test/resources/org/opensaml/saml/saml2/metadata/impl/RequestedAttributeChildElements.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<md:RequestedAttribute xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" Name="attribName">
+    <saml2:AttributeValue xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">SomeAttributeValue0</saml2:AttributeValue>
+    <saml2:AttributeValue xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">SomeAttributeValue1</saml2:AttributeValue>
+</md:RequestedAttribute>

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list