public function testMarshalling()
{
$nameId = new NameID();
$nameId->NameQualifier = 'TheNameQualifier';
$nameId->SPNameQualifier = 'TheSPNameQualifier';
$nameId->Format = 'TheFormat';
$nameId->SPProvidedID = 'TheSPProvidedID';
$nameId->value = 'TheNameIDValue';
$nameIdElement = $nameId->toXML();
$nameIdElements = Utils::xpQuery($nameIdElement, '/saml_assertion:NameID');
$this->assertCount(1, $nameIdElements);
$nameIdElement = $nameIdElements[0];
$this->assertEquals('TheNameQualifier', $nameIdElement->getAttribute("NameQualifier"));
$this->assertEquals('TheSPNameQualifier', $nameIdElement->getAttribute("SPNameQualifier"));
$this->assertEquals('TheFormat', $nameIdElement->getAttribute("Format"));
$this->assertEquals('TheSPProvidedID', $nameIdElement->getAttribute("SPProvidedID"));
$this->assertEquals('TheNameIDValue', $nameIdElement->textContent);
}