Skip to content

Commit

Permalink
Fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Seriyyy95 authored and Seriyyy95 committed Feb 2, 2022
1 parent 05efd8a commit b8b5701
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 37 deletions.
7 changes: 3 additions & 4 deletions src/SoapHeaderEventSubscriber.php
Original file line number Diff line number Diff line change
Expand Up @@ -68,13 +68,12 @@ public function addSoapHeader(ObjectEvent $event)
$document->firstChild->firstChild
)
);


$tagName = $metadata->xmlRootName;
if ($metadata->xmlRootPrefix !== null) {
$tagName = $metadata->xmlRootPrefix . ':' . $metadata->xmlRootName;
} else {
$tagName = $metadata->xmlRootName;
}

$visitor->setCurrentNode(
$header->appendChild(
$document->createElementNS($metadata->xmlRootNamespace, $tagName)
Expand Down
3 changes: 1 addition & 2 deletions src/SoapMessageEventSubscriber.php
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,9 @@ public function addMessage(PreSerializeEvent $event)
throw new RuntimeException('Missing XmlRootName or XmlRootNamespace for ' . $event->getType()['name']);
}

$tagName = $metadata->xmlRootName;
if ($metadata->xmlRootPrefix !== null) {
$tagName = $metadata->xmlRootPrefix . ':' . $metadata->xmlRootName;
} else {
$tagName = $metadata->xmlRootName;
}

$document = $visitor->getDocument();
Expand Down
1 change: 0 additions & 1 deletion tests/Fixtures/HeaderLoginWithPrefix.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,4 @@
*/
class HeaderLoginWithPrefix extends HeaderLogin
{

}
1 change: 0 additions & 1 deletion tests/Fixtures/LanguageWithPrefix.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,4 @@
*/
class LanguageWithPrefix extends Language
{

}
24 changes: 10 additions & 14 deletions tests/SoapHeaderEventSubscriberTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -124,22 +124,18 @@ function (HandlerRegistry $registry) {
]);
$languages->setCount(new Count(2));

$xml = simplexml_load_string(
$serializer->serialize($languages, 'soap')
);
$serialized = $serializer->serialize($languages, 'soap');

static::assertContains(SoapNamespaceInterface::SOAP_NAMESPACES[SOAP_1_1], $xml->getNamespaces());
static::assertSame('Envelope', $xml->getName());
static::assertSame('Header', $xml->xpath('/*[local-name()="Envelope"]/*')[0]->getName());
static::assertSame('Body', $xml->xpath('/*[local-name()="Envelope"]/*')[1]->getName());
static::assertCount(2, $xml->xpath('//*[local-name()="Languages"]/*[local-name()="language"]'));
static::assertCount(1, $xml->xpath('//*[local-name()="Languages"]/*[local-name()="count"]'));
$doc = new \DOMDocument();
$doc->loadXML($serialized);

$header = $xml->xpath('//*[local-name()="Header"]/*')[0]->children('http://xmpl-namespace.nl');
static::assertContains('http://xmpl-namespace.nl', $header->getNamespaces());
static::assertContains('ns', array_keys($header->getNamespaces()));
static::assertSame('dummy', strval($header->username));
static::assertSame('secret123!', strval($header->password));
$xpath = new \DOMXPath($doc);
$node = $xpath->query('//*[local-name()="HeaderAuthenticate" and namespace-uri()="http://xmpl-namespace.nl"]')[0];
$username = $xpath->query('//*[local-name()="username" and namespace-uri()="http://xmpl-namespace.nl"]')[0];
$password = $xpath->query('//*[local-name()="password" and namespace-uri()="http://xmpl-namespace.nl"]')[0];

static::assertSame('ns', $node->prefix);
static::assertSame('ns', $username->prefix);
static::assertSame('ns', $password->prefix);
}
}
26 changes: 11 additions & 15 deletions tests/SoapSerializationTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -50,23 +50,19 @@ public function testSerializationWithPrefix(string $name, int $complexity, DateT
{
$serialized = $this->serializer->serialize(new LanguageWithPrefix($name, $complexity, $date), 'soap');

$xml = simplexml_load_string($serialized);
$doc = new \DOMDocument();
$doc->loadXML($serialized);

static::assertContains(SoapNamespaceInterface::SOAP_NAMESPACES[SOAP_1_1], $xml->getNamespaces());
static::assertSame('Envelope', $xml->getName());
static::assertSame('Body', $xml->xpath('/*[local-name()="Envelope"]/*')[0]->getName());

/** @var \SimpleXMLElement $message */
$message = $xml->xpath('/*[local-name()="Envelope"]/*')[0]->children('http://xmpl-namespace.nl')[0];
static::assertContains('http://xmpl-namespace.nl', $message->getNamespaces());
static::assertContains('ns', array_keys($message->getNamespaces()));
static::assertSame($name, strval($message->name));
static::assertSame($complexity, intval($message->complexity));
static::assertSame($date->format('Y-m-d'), strval($message->since));
$xpath = new \DOMXPath($doc);
$node = $xpath->query('//*[local-name()="Language" and namespace-uri()="http://xmpl-namespace.nl"]')[0];
$name = $xpath->query('//*[local-name()="name" and namespace-uri()="http://xmpl-namespace.nl"]')[0];
$complexity = $xpath->query('//*[local-name()="complexity" and namespace-uri()="http://xmpl-namespace.nl"]')[0];
$since = $xpath->query('//*[local-name()="since" and namespace-uri()="http://xmpl-namespace.nl"]')[0];

$lang = $message->children('http://xmpl-namespace.nl')[0];
static::assertContains('http://xmpl-namespace.nl', $lang->getNamespaces());
static::assertContains('ns', array_keys($lang->getNamespaces()));
static::assertSame('ns', $node->prefix);
static::assertSame('ns', $name->prefix);
static::assertSame('ns', $complexity->prefix);
static::assertSame('ns', $since->prefix);
}

public function provideLanguage(): array
Expand Down

0 comments on commit b8b5701

Please sign in to comment.