public function testContactPerson()
{
$contactType = "other";
$Company = "Test Company";
$GivenName = "John";
$SurName = "Doe";
$EmailAddress = array('[email protected]', '[email protected]');
$TelephoneNumber = array('1-234-567-8901');
$ContactPersonAttributes = array('testattr' => 'testval', 'testattr2' => 'testval2');
$mdNamespace = Constants::NS_MD;
$document = DOMDocumentFactory::fromString(<<<XML
<md:Test xmlns:md="{$mdNamespace}" Binding="urn:something" Location="https://whatever/" xmlns:test="urn:test" test:attr="value">
</md:Test>
XML
);
$contactPerson = new ContactPerson();
$contactPerson->contactType = $contactType;
$contactPerson->Company = $Company;
$contactPerson->GivenName = $GivenName;
$contactPerson->SurName = $SurName;
$contactPerson->EmailAddress = $EmailAddress;
$contactPerson->TelephoneNumber = $TelephoneNumber;
$contactPerson->ContactPersonAttributes = $ContactPersonAttributes;
$contactPerson->toXML($document->firstChild);
$contactPersonElement = $document->getElementsByTagName('ContactPerson')->item(0);
$this->assertEquals($contactType, $contactPersonElement->getAttribute('contactType'));
$this->assertEquals($Company, $contactPersonElement->getElementsByTagName('Company')->item(0)->nodeValue);
$this->assertEquals($GivenName, $contactPersonElement->getElementsByTagName('GivenName')->item(0)->nodeValue);
$this->assertEquals($SurName, $contactPersonElement->getElementsByTagName('SurName')->item(0)->nodeValue);
$this->assertEquals(count($EmailAddress), $contactPersonElement->getElementsByTagName('EmailAddress')->length);
foreach ($contactPersonElement->getElementsByTagName('EmailAddress') as $element) {
$this->assertTrue(in_array($element->nodeValue, $EmailAddress));
}
$this->assertEquals(count($TelephoneNumber), $contactPersonElement->getElementsByTagName('TelephoneNumber')->length);
foreach ($contactPersonElement->getElementsByTagName('TelephoneNumber') as $element) {
$this->assertTrue(in_array($element->nodeValue, $TelephoneNumber));
}
foreach ($ContactPersonAttributes as $attr => $val) {
$this->assertEquals($val, $contactPersonElement->getAttribute($attr));
}
}