/*
* Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
*
*/
package org.opensaml.saml1.core.impl;
import java.util.List;
import javax.xml.namespace.QName;
import org.opensaml.common.BaseSAMLObjectProviderTestCase;
import org.opensaml.common.xml.SAMLConstants;
import org.opensaml.saml1.core.Action;
import org.opensaml.saml1.core.AuthorizationDecisionQuery;
import org.opensaml.saml1.core.Evidence;
import org.opensaml.saml1.core.Subject;
import org.w3c.dom.Document;
/**
* Test class for org.opensaml.saml1.core.AttributeQuery
*/
public class AuthorizationDecisionQueryTest extends BaseSAMLObjectProviderTestCase {
/** name used to generate objects */
private final QName qname;
/** A file with a AuthenticationQuery with kids */
private final String fullElementsFile;
/** The expected result of a marshalled multiple element */
private Document expectedFullDOM;
private final String expectedResource;
/**
* Constructor
*/
public AuthorizationDecisionQueryTest() {
singleElementFile = "/data/org/opensaml/saml1/impl/singleAuthorizationDecisionQuery.xml";
singleElementOptionalAttributesFile = "/data/org/opensaml/saml1/impl/singleAuthorizationDecisionQueryAttributes.xml";
fullElementsFile = "/data/org/opensaml/saml1/impl/AuthorizationDecisionQueryWithChildren.xml";
expectedResource = "resource";
qname =new QName(SAMLConstants.SAML10P_NS, AuthorizationDecisionQuery.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
}
/** {@inheritDoc} */
protected void setUp() throws Exception {
super.setUp();
expectedFullDOM = parser.parse(BaseSAMLObjectProviderTestCase.class
.getResourceAsStream(fullElementsFile));
}
/** {@inheritDoc} */
public void testSingleElementUnmarshall() {
AuthorizationDecisionQuery authorizationDecisionQuery;
authorizationDecisionQuery = (AuthorizationDecisionQuery) unmarshallElement(singleElementFile);
assertNull("Resource attribute present", authorizationDecisionQuery.getResource());
assertNull("Subject element present", authorizationDecisionQuery.getSubject());
assertEquals("Count of AttributeDesignator elements", 0, authorizationDecisionQuery.getActions().size());
assertNull("Evidence element present", authorizationDecisionQuery.getEvidence());
}
/** {@inheritDoc} */
public void testSingleElementOptionalAttributesUnmarshall() {
AuthorizationDecisionQuery authorizationDecisionQuery;
authorizationDecisionQuery = (AuthorizationDecisionQuery) unmarshallElement(singleElementOptionalAttributesFile);
assertEquals("Resource attribute", expectedResource, authorizationDecisionQuery.getResource());
assertNull("Subject element present", authorizationDecisionQuery.getSubject());
assertEquals("Count of AttributeDesignator elements", 0, authorizationDecisionQuery.getActions().size());
assertNull("Evidence element present", authorizationDecisionQuery.getEvidence());
}
/**
* Test an Response file with children
*/
public void testFullElementsUnmarshall() {
AuthorizationDecisionQuery authorizationDecisionQuery;
authorizationDecisionQuery = (AuthorizationDecisionQuery) unmarshallElement(fullElementsFile);
assertNotNull("Subject element present", authorizationDecisionQuery.getSubject());
assertEquals("Count of Action elements", 3, authorizationDecisionQuery.getActions().size());
assertNotNull("Evidence element present", authorizationDecisionQuery.getEvidence());
}
/** {@inheritDoc} */
public void testSingleElementMarshall() {
assertEquals(expectedDOM, buildXMLObject(qname));
}
/** {@inheritDoc} */
public void testSingleElementOptionalAttributesMarshall() {
AuthorizationDecisionQuery authorizationDecisionQuery;
authorizationDecisionQuery = (AuthorizationDecisionQuery) buildXMLObject(qname);
authorizationDecisionQuery.setResource(expectedResource);
assertEquals(expectedOptionalAttributesDOM, authorizationDecisionQuery);
}
/**
* Test Marshalling up a file with children
*
*/
public void testFullElementsMarshall() {
AuthorizationDecisionQuery authorizationDecisionQuery;
authorizationDecisionQuery = (AuthorizationDecisionQuery) buildXMLObject(qname);
authorizationDecisionQuery.setSubject((Subject) buildXMLObject(new QName(SAMLConstants.SAML1_NS, Subject.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX)));
QName actionQname = new QName(SAMLConstants.SAML1_NS, Action.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
List <Action> list = authorizationDecisionQuery.getActions();
list.add((Action) buildXMLObject(actionQname));
list.add((Action) buildXMLObject(actionQname));
list.add((Action) buildXMLObject(actionQname));
authorizationDecisionQuery.setEvidence((Evidence) buildXMLObject(new QName(SAMLConstants.SAML1_NS, Evidence.DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX)));
assertEquals(expectedFullDOM, authorizationDecisionQuery);
}
}