<?php 
 
namespace WsdlToPhp\PackageGenerator\Tests; 
 
use WsdlToPhp\PackageGenerator\Generator\Generator; 
use WsdlToPhp\PackageGenerator\Tests\ConfigurationReader\GeneratorOptionsTest; 
 
abstract class TestCase extends \PHPUnit_Framework_TestCase 
{ 
    /** 
     * @var Generator[] 
     */ 
    private static $instances = array(); 
    /** 
     * @return string 
     */ 
    public static function wsdlPartnerPath($local = true) 
    { 
        return __DIR__ . sprintf('/resources/partner/PartnerService%s.wsdl', $local ? '.local' : ''); 
    } 
    /** 
     * @return string 
     */ 
    public static function wsdlPartnerScdPath($local = true) 
    { 
        return __DIR__ . sprintf('/resources/partner/PartnerService%s.wsdl', $local ? '.local.scd' : ''); 
    } 
    /** 
     * @return string 
     */ 
    public static function wsdlPartnerThirdPath($local = true) 
    { 
        return __DIR__ . sprintf('/resources/partner/PartnerService%s.wsdl', $local ? '.local.third' : ''); 
    } 
    /** 
     * @return string 
     */ 
    public static function schemaPartnerPath() 
    { 
        return __DIR__ . '/resources/partner/PartnerService.0.xsd'; 
    } 
    /** 
     * @return string 
     */ 
    public static function wsdlImageViewServicePath() 
    { 
        return __DIR__ . '/resources/image/ImageViewService.local.wsdl'; 
    } 
    /** 
     * @return string 
     */ 
    public static function schemaImageViewServicePath() 
    { 
        return __DIR__ . '/resources/image/imageViewCommon.xsd'; 
    } 
    /** 
     * @return string 
     */ 
    public static function schemaImageViewServiceAvailableImagesRequestPath() 
    { 
        return __DIR__ . '/resources/image/availableImagesRequest.xsd'; 
    } 
    /** 
     * @return string 
     */ 
    public static function wsdlBingPath() 
    { 
        return __DIR__ . '/resources/bingsearch.wsdl'; 
    } 
    /** 
     * @return string 
     */ 
    public static function onlineWsdlBingPath() 
    { 
        return 'http://api.search.live.net/search.wsdl'; 
    } 
    /** 
     * @return string 
     */ 
    public static function wsdlEbayPath() 
    { 
        return __DIR__ . '/resources/ebaySvc.wsdl'; 
    } 
    /** 
     * @return string 
     */ 
    public static function wsdlActonPath() 
    { 
        return __DIR__ . '/resources/ActonService2.local.wsdl'; 
    } 
    /** 
     * @return string 
     */ 
    public static function wsdlOdigeoPath() 
    { 
        return __DIR__ . '/resources/odigeo.wsdl'; 
    } 
    /** 
     * @return string 
     */ 
    public static function wsdlOrderContractPath() 
    { 
        return __DIR__ . '/resources/OrderContract.wsdl'; 
    } 
    /** 
     * @return string 
     */ 
    public static function wsdlMyBoardPackPath() 
    { 
        return __DIR__ . '/resources/MyBoardPack.wsdl'; 
    } 
    /** 
     * @return string 
     */ 
    public static function wsdlWhlPath() 
    { 
        return __DIR__ . '/resources/whl.wsdl'; 
    } 
    /** 
     * @return string 
     */ 
    public static function wsdlPortalPath() 
    { 
        return __DIR__ . '/resources/portaplusapi.wsdl'; 
    } 
    /** 
     * @return string 
     */ 
    public static function wsdlReformaPath() 
    { 
        return __DIR__ . '/resources/reformagkh.wsdl'; 
    } 
    /** 
     * @return string 
     */ 
    public static function wsdlQueuePath() 
    { 
        return __DIR__ . '/resources/QueueService.wsdl'; 
    } 
    /** 
     * @return string 
     */ 
    public static function wsdlBullhornstaffingPath() 
    { 
        return __DIR__ . '/resources/bullhornstaffing.local.wsdl'; 
    } 
    /** 
     * @return string 
     */ 
    public static function wsdlOmniturePath() 
    { 
        return __DIR__ . '/resources/OmnitureAdminServices.wsdl'; 
    } 
    /** 
     * @return string 
     */ 
    public static function wsdlPayPalPath() 
    { 
        return __DIR__ . '/resources/paypal/PayPalSvc.wsdl'; 
    } 
    /** 
     * @return string 
     */ 
    public static function wsdlWcfPath() 
    { 
        return __DIR__ . '/resources/wcf/Service1.wsdl'; 
    } 
    /** 
     * @return string 
     */ 
    public static function wsdlLnpPath() 
    { 
        return __DIR__ . '/resources/lnp/NumberManagement.wsdl'; 
    } 
    /** 
     * @return string 
     */ 
    public static function wsdlEwsPath() 
    { 
        return __DIR__ . '/resources/ews/services.wsdl'; 
    } 
    /** 
     * @return string 
     */ 
    public static function wsdlYandexDirectApiCampaignsPath() 
    { 
        return __DIR__ . '/resources/directapi/campaigns.wsdl'; 
    } 
    /** 
     * @return string 
     */ 
    public static function wsdlYandexDirectApiAdGroupsPath() 
    { 
        return __DIR__ . '/resources/directapi/adgroups.wsdl'; 
    } 
    /** 
     * @return string 
     */ 
    public static function wsdlEmptyPath() 
    { 
        return __DIR__ . '/resources/empty.wsdl'; 
    } 
    /** 
     * @param string $wsdlPath 
     * @return Generator 
     */ 
    private static function getGeneratorInstance($wsdlPath) 
    { 
        $options = GeneratorOptionsTest::optionsInstance(); 
        $options 
            ->setOrigin($wsdlPath) 
            ->setDestination(self::getTestDirectory()); 
        return new Generator($options); 
    } 
    /** 
     * @return Generator 
     */ 
    public static function getBingGeneratorInstance() 
    { 
        return self::getInstance(self::wsdlBingPath()); 
    } 
    /** 
     * @return Generator 
     */ 
    public static function getOmnitureInstance() 
    { 
        return self::getInstance(self::wsdlOmniturePath()); 
    } 
    /** 
     * @return Generator 
     */ 
    public static function getBullhornstaffingInstance() 
    { 
        return self::getInstance(self::wsdlBullhornstaffingPath()); 
    } 
    /** 
     * @return Generator 
     */ 
    public static function getReformaInstance() 
    { 
        return self::getInstance(self::wsdlReformaPath()); 
    } 
    /** 
     * @return Generator 
     */ 
    public static function getWcfInstance() 
    { 
        return self::getInstance(self::wsdlWcfPath()); 
    } 
    /** 
     * @return Generator 
     */ 
    public static function getLnpInstance() 
    { 
        return self::getInstance(self::wsdlLnpPath()); 
    } 
    /** 
     * @return Generator 
     */ 
    public static function getEwsInstance() 
    { 
        return self::getInstance(self::wsdlEwsPath()); 
    } 
    /** 
     * @return Generator 
     */ 
    public static function getYandexDirectApiCampaignsInstance() 
    { 
        return self::getInstance(self::wsdlYandexDirectApiCampaignsPath()); 
    } 
    /** 
     * @return Generator 
     */ 
    public static function getYandexDirectApiAdGroupsInstance() 
    { 
        return self::getInstance(self::wsdlYandexDirectApiAdGroupsPath()); 
    } 
    /** 
     * @param string $wsdlPath 
     * @return Generator 
     */ 
    public static function getInstance($wsdlPath, $reset = false) 
    { 
        if (!isset(self::$instances[$wsdlPath]) || $reset === true) { 
            self::$instances[$wsdlPath] = self::getGeneratorInstance($wsdlPath); 
        } 
        return self::$instances[$wsdlPath]; 
    } 
    /** 
     * @return string 
     */ 
    public static function getTestDirectory() 
    { 
        return __DIR__ . '/resources/generated/'; 
    } 
} 
 
 |