1 /** 2 * Licensed to the University Corporation for Advanced Internet 3 * Development, Inc. (UCAID) under one or more contributor license 4 * agreements. See the NOTICE file distributed with this work for 5 * additional information regarding copyright ownership. 6 * 7 * UCAID licenses this file to you under the Apache License, 8 * Version 2.0 (the "License"); you may not use this file except 9 * in compliance with the License. You may obtain a copy of the 10 * License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, 15 * software distributed under the License is distributed on an 16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 17 * either express or implied. See the License for the specific 18 * language governing permissions and limitations under the License. 19 */ 20 21 #include "internal.h" 22 #include <saml/saml2/core/Assertions.h> 23 #include <saml/util/SAMLConstants.h> 24 25 using namespace opensaml::saml2; 26 27 class AudienceRestriction20Test : public CxxTest::TestSuite, public SAMLObjectBaseTestCase { 28 29 public: setUp()30 void setUp() { 31 singleElementFile = data_path + "saml2/core/impl/AudienceRestriction.xml"; 32 childElementsFile = data_path + "saml2/core/impl/AudienceRestrictionChildElements.xml"; 33 SAMLObjectBaseTestCase::setUp(); 34 } 35 tearDown()36 void tearDown() { 37 SAMLObjectBaseTestCase::tearDown(); 38 } 39 testSingleElementUnmarshall()40 void testSingleElementUnmarshall() { 41 scoped_ptr<XMLObject> xo(unmarshallElement(singleElementFile)); 42 AudienceRestriction* ar = dynamic_cast<AudienceRestriction*>(xo.get()); 43 TS_ASSERT(ar!=nullptr); 44 45 TSM_ASSERT_EQUALS("# of Audience child elements", 0, ar->getAudiences().size()); 46 } 47 testChildElementsUnmarshall()48 void testChildElementsUnmarshall() { 49 scoped_ptr<XMLObject> xo(unmarshallElement(childElementsFile)); 50 AudienceRestriction* ar= dynamic_cast<AudienceRestriction*>(xo.get()); 51 TS_ASSERT(ar!=nullptr); 52 53 TSM_ASSERT_EQUALS("# of Audience child elements", 2, ar->getAudiences().size()); 54 } 55 testSingleElementMarshall()56 void testSingleElementMarshall() { 57 AudienceRestriction* ar=AudienceRestrictionBuilder::buildAudienceRestriction(); 58 assertEquals(expectedDOM, ar); 59 } 60 testChildElementsMarshall()61 void testChildElementsMarshall() { 62 AudienceRestriction* ar=AudienceRestrictionBuilder::buildAudienceRestriction(); 63 ar->getAudiences().push_back(AudienceBuilder::buildAudience()); 64 ar->getAudiences().push_back(AudienceBuilder::buildAudience()); 65 assertEquals(expectedChildElementsDOM, ar); 66 } 67 68 }; 69