public function testConvertIssuerToXML()
{
// first, try with common Issuer objects (Format=entity)
$response = new Response();
$issuer = new XML\saml\Issuer();
$issuer->value = 'https://gateway.stepup.org/saml20/sp/metadata';
$response->setIssuer($issuer);
$xml = $response->toUnsignedXML();
$xml_issuer = Utils::xpQuery($xml, './saml_assertion:Issuer');
$xml_issuer = $xml_issuer[0];
$this->assertFalse($xml_issuer->hasAttributes());
$this->assertEquals($issuer->value, $xml_issuer->textContent);
// now, try an Issuer with another format and attributes
$issuer->Format = Constants::NAMEID_UNSPECIFIED;
$issuer->NameQualifier = 'SomeNameQualifier';
$issuer->SPNameQualifier = 'SomeSPNameQualifier';
$issuer->SPProvidedID = 'SomeSPProvidedID';
$response->setIssuer($issuer);
$xml = $response->toUnsignedXML();
$xml_issuer = Utils::xpQuery($xml, './saml_assertion:Issuer');
$xml_issuer = $xml_issuer[0];
$this->assertTrue($xml_issuer->hasAttributes());
$this->assertEquals($issuer->value, $xml_issuer->textContent);
$this->assertEquals($issuer->NameQualifier, $xml_issuer->getAttribute('NameQualifier'));
$this->assertEquals($issuer->SPNameQualifier, $xml_issuer->getAttribute('SPNameQualifier'));
$this->assertEquals($issuer->SPProvidedID, $xml_issuer->getAttribute('SPProvidedID'));
// finally, make sure we can skip the Issuer by setting it to null
$response->setIssuer(null);
$xml = $response->toUnsignedXML();
$this->assertEmpty(Utils::xpQuery($xml, './saml_assertion:Issuer'));
}