public function testMarshalling()
{
// Create an assertion
$assertion = new Assertion();
$assertion->setIssuer('testIssuer');
$assertion->setValidAudiences(array('audience1', 'audience2'));
$assertion->setAuthnContext('someAuthnContext');
// Marshall it to a \DOMElement
$assertionElement = $assertion->toXML();
// Test for an Issuer
$issuerElements = Utils::xpQuery($assertionElement, './saml_assertion:Issuer');
$this->assertCount(1, $issuerElements);
$this->assertEquals('testIssuer', $issuerElements[0]->textContent);
// Test for an AudienceRestriction
$audienceElements = Utils::xpQuery($assertionElement, './saml_assertion:Conditions/saml_assertion:AudienceRestriction/saml_assertion:Audience');
$this->assertCount(2, $audienceElements);
$this->assertEquals('audience1', $audienceElements[0]->textContent);
$this->assertEquals('audience2', $audienceElements[1]->textContent);
// Test for an Authentication Context
$authnContextElements = Utils::xpQuery($assertionElement, './saml_assertion:AuthnStatement/saml_assertion:AuthnContext/saml_assertion:AuthnContextClassRef');
$this->assertCount(1, $authnContextElements);
$this->assertEquals('someAuthnContext', $authnContextElements[0]->textContent);
}