| 
<?php
 namespace WsdlToPhp\PackageGenerator\Tests\Parser\Wsdl;
 
 use WsdlToPhp\PackageGenerator\Parser\Wsdl\TagHeader;
 
 class TagHeaderTest extends WsdlParser
 {
 /**
 * @return \WsdlToPhp\PackageGenerator\Parser\Wsdl\TagHeader
 */
 public static function imageViewServiceInstance()
 {
 return new TagHeader(self::generatorInstance(self::wsdlImageViewServicePath()));
 }
 /**
 * @return \WsdlToPhp\PackageGenerator\Parser\Wsdl\TagHeader
 */
 public static function actonInstance()
 {
 return new TagHeader(self::generatorInstance(self::wsdlActonPath()));
 }
 /**
 * @return \WsdlToPhp\PackageGenerator\Parser\Wsdl\TagHeader
 */
 public static function paypalInstance()
 {
 return new TagHeader(self::generatorInstance(self::wsdlPayPalPath()));
 }
 /**
 * @return \WsdlToPhp\PackageGenerator\Parser\Wsdl\TagHeader
 */
 public static function ewsInstance()
 {
 return new TagHeader(self::generatorInstance(self::wsdlEwsPath(), false, false, false));
 }
 /**
 *
 */
 public function testParseImageViewService()
 {
 $tagHeaderParser = self::imageViewServiceInstance();
 
 $tagHeaderParser->parse();
 
 $ok = false;
 $services = $tagHeaderParser->getGenerator()->getServices();
 if ($services->count() > 0) {
 foreach ($services as $service) {
 if ($service->getName() === 'Image') {
 foreach ($service->getMethods() as $method) {
 $this->assertSame(array(
 'auth',
 ), $method->getMetaValue(TagHeader::META_SOAP_HEADER_NAMES));
 $this->assertSame(array(
 'http://ws.estesexpress.com/imageview',
 ), $method->getMetaValue(TagHeader::META_SOAP_HEADER_NAMESPACES));
 $this->assertSame(array(
 'AuthenticationType',
 ), $method->getMetaValue(TagHeader::META_SOAP_HEADER_TYPES));
 $this->assertSame(array(
 'required',
 ), $method->getMetaValue(TagHeader::META_SOAP_HEADERS));
 $ok = true;
 }
 }
 }
 }
 $this->assertTrue((bool)$ok);
 }
 /**
 *
 */
 public function testParseActon()
 {
 $tagHeaderParser = self::actonInstance();
 
 $tagHeaderParser->parse();
 
 $ok = false;
 $services = $tagHeaderParser->getGenerator()->getServices();
 if ($services->count() > 0) {
 foreach ($services as $service) {
 if ($service->getName() === 'Send') {
 foreach ($service->getMethods() as $method) {
 $this->assertSame(array(
 'SessionHeader',
 'ClusterHeader',
 ), $method->getMetaValue(TagHeader::META_SOAP_HEADER_NAMES));
 $this->assertSame(array(
 'urn:api.actonsoftware.com',
 'urn:api.actonsoftware.com',
 ), $method->getMetaValue(TagHeader::META_SOAP_HEADER_NAMESPACES));
 $this->assertSame(array(
 'SessionHeader',
 'ClusterHeader',
 ), $method->getMetaValue(TagHeader::META_SOAP_HEADER_TYPES));
 $this->assertSame(array(
 'optional',
 'optional',
 ), $method->getMetaValue(TagHeader::META_SOAP_HEADERS));
 $ok = true;
 }
 } elseif ($service->getName() === 'List') {
 foreach ($service->getMethods() as $method) {
 $this->assertSame(array(
 'SessionHeader',
 'ClusterHeader',
 ), $method->getMetaValue(TagHeader::META_SOAP_HEADER_NAMES));
 $this->assertSame(array(
 'urn:api.actonsoftware.com',
 'urn:api.actonsoftware.com',
 ), $method->getMetaValue(TagHeader::META_SOAP_HEADER_NAMESPACES));
 $this->assertSame(array(
 'SessionHeader',
 'ClusterHeader',
 ), $method->getMetaValue(TagHeader::META_SOAP_HEADER_TYPES));
 $this->assertSame(array(
 'optional',
 'required',
 ), $method->getMetaValue(TagHeader::META_SOAP_HEADERS));
 $ok = true;
 }
 } elseif ($service->getName() === 'Login') {
 foreach ($service->getMethods() as $method) {
 $this->assertSame(array(
 'ClusterHeader',
 ), $method->getMetaValue(TagHeader::META_SOAP_HEADER_NAMES));
 $this->assertSame(array(
 'urn:api.actonsoftware.com',
 ), $method->getMetaValue(TagHeader::META_SOAP_HEADER_NAMESPACES));
 $this->assertSame(array(
 'ClusterHeader',
 ), $method->getMetaValue(TagHeader::META_SOAP_HEADER_TYPES));
 $this->assertSame(array(
 'required',
 ), $method->getMetaValue(TagHeader::META_SOAP_HEADERS));
 $ok = true;
 }
 }
 }
 }
 $this->assertTrue((bool)$ok);
 }
 /**
 *
 */
 public function testParsePayPal()
 {
 $tagHeaderParser = self::paypalInstance();
 
 $tagHeaderParser->parse();
 
 $count = 0;
 $services = $tagHeaderParser->getGenerator()->getServices();
 if ($services->count() > 0) {
 foreach ($services as $service) {
 foreach ($service->getMethods() as $method) {
 $this->assertSame(array(
 'RequesterCredentials',
 ), $method->getMetaValue(TagHeader::META_SOAP_HEADER_NAMES));
 $this->assertSame(array(
 'urn:ebay:api:PayPalAPI',
 ), $method->getMetaValue(TagHeader::META_SOAP_HEADER_NAMESPACES));
 $this->assertSame(array(
 'CustomSecurityHeaderType',
 ), $method->getMetaValue(TagHeader::META_SOAP_HEADER_TYPES));
 $this->assertSame(array(
 'required',
 ), $method->getMetaValue(TagHeader::META_SOAP_HEADERS));
 $count++;
 }
 }
 }
 $this->assertSame(57, $count);
 }
 /**
 *
 */
 public function testParseEws()
 {
 $tagHeaderParser = self::ewsInstance();
 // parsing the whole structs/functions is too long for only tests purpose!
 $tagHeaderParser
 ->getGenerator()
 ->getServices()
 ->addService($tagHeaderParser->getGenerator(), 'Update', 'UpdateItemInRecoverableItems', 'string', 'string');
 
 $tagHeaderParser->parse();
 
 $count = 0;
 $services = $tagHeaderParser->getGenerator()->getServices();
 if ($services->count() > 0) {
 foreach ($services as $service) {
 foreach ($service->getMethods() as $method) {
 if ($method->getName() === 'UpdateItemInRecoverableItems') {
 $this->assertSame(array(
 'ExchangeImpersonation',
 'MailboxCulture',
 'RequestServerVersion',
 'TimeZoneContext',
 'ManagementRole',
 ), $method->getMetaValue(TagHeader::META_SOAP_HEADER_NAMES));
 $this->assertSame(array(
 'ExchangeImpersonationType',
 'MailboxCultureType',
 'RequestServerVersion',
 'TimeZoneContextType',
 'ManagementRoleType',
 ), $method->getMetaValue(TagHeader::META_SOAP_HEADER_TYPES));
 $this->assertSame(array(
 'required',
 'required',
 'required',
 'required',
 'required',
 ), $method->getMetaValue(TagHeader::META_SOAP_HEADERS));
 $this->assertSame(array(
 'http://schemas.microsoft.com/exchange/services/2006/types',
 'http://schemas.microsoft.com/exchange/services/2006/types',
 'http://schemas.microsoft.com/exchange/services/2006/types',
 'http://schemas.microsoft.com/exchange/services/2006/types',
 'http://schemas.microsoft.com/exchange/services/2006/types',
 ), $method->getMetaValue(TagHeader::META_SOAP_HEADER_NAMESPACES));
 $count++;
 }
 }
 }
 }
 $this->assertSame(1, $count);
 }
 }
 
 |