<?php 
 
namespace WsdlToPhp\PackageGenerator\Tests\File; 
 
use WsdlToPhp\PackageGenerator\Model\EmptyModel; 
use WsdlToPhp\PackageGenerator\Model\Struct as StructModel; 
use WsdlToPhp\PackageGenerator\File\Struct as StructFile; 
 
class StructTest extends AbstractFile 
{ 
    /** 
     * @expectedException \InvalidArgumentException 
     */ 
    public function testSetModelGoodNameTooManyAttributesWithException() 
    { 
        $instance = self::bingGeneratorInstance(); 
        $struct = new StructFile($instance, 'Foo'); 
        $struct->setModel(new EmptyModel($instance, 'Foo')); 
    } 
    /** 
     * @expectedException \InvalidArgumentException 
     */ 
    public function testExceptionOnWrite() 
    { 
        $file = new StructFile(self::bingGeneratorInstance(), 'foo'); 
 
        $file->write(); 
    } 
    /** 
     * 
     */ 
    public function testGetFileName() 
    { 
        $model = new StructModel(self::bingGeneratorInstance(), 'Foo'); 
        $file = new StructFile(self::bingGeneratorInstance(), 'foo'); 
        $file->setModel($model); 
 
        $this->assertSame(sprintf('%s%s%s/%s.php', self::getTestDirectory(), StructFile::SRC_FOLDER, $model->getContextualPart(), $model->getPackagedName(false)), $file->getFileName()); 
    } 
    /** 
     * 
     */ 
    public function testWriteBingSearchStructQuery() 
    { 
        $generator = self::bingGeneratorInstance(); 
        if (($model = $generator->getStruct('Query')) instanceof StructModel) { 
            $struct = new StructFile($generator, $model->getName()); 
            $struct 
                ->setModel($model) 
                ->write(); 
            $this->assertSameFileContent('ValidApiQuery', $struct); 
        } else { 
            $this->assertFalse(true, 'Unable to find Query struct for file generation'); 
        } 
    } 
    /** 
     * 
     */ 
    public function testWriteBingSearchStructVideoRequest() 
    { 
        $generator = self::bingGeneratorInstance(); 
        if (($model = $generator->getStruct('VideoRequest')) instanceof StructModel) { 
            $struct = new StructFile($generator, $model->getName()); 
            $struct 
                ->setModel($model) 
                ->write(); 
            $this->assertSameFileContent('ValidApiVideoRequest', $struct); 
        } else { 
            $this->assertFalse(true, 'Unable to find VideoRequest struct for file generation'); 
        } 
    } 
    /** 
     * 
     */ 
    public function testWriteBingSearchStructSearchRequest() 
    { 
        $generator = self::bingGeneratorInstance(); 
        if (($model = $generator->getStruct('SearchRequest')) instanceof StructModel) { 
            $struct = new StructFile($generator, $model->getName()); 
            $struct 
                ->setModel($model) 
                ->write(); 
            $this->assertSameFileContent('ValidApiSearchRequest', $struct); 
        } else { 
            $this->assertFalse(true, 'Unable to find SearchRequest struct for file generation'); 
        } 
    } 
    /** 
     * 
     */ 
    public function testWriteActonStructItem() 
    { 
        $generator = self::actonGeneratorInstance(); 
        if (($model = $generator->getStruct('Item')) instanceof StructModel) { 
            $struct = new StructFile($generator, $model->getName()); 
            $struct 
                ->setModel($model) 
                ->write(); 
            $this->assertSameFileContent('ValidApiItem', $struct); 
        } else { 
            $this->assertFalse(true, 'Unable to find Item struct for file generation'); 
        } 
    } 
    /** 
     * 
     */ 
    public function testWriteOdigeoStructFareItinerary() 
    { 
        $generator = self::odigeoGeneratorInstance(); 
        if (($model = $generator->getStruct('fareItinerary')) instanceof StructModel) { 
            $struct = new StructFile($generator, $model->getName()); 
            $struct 
                ->setModel($model) 
                ->write(); 
            $this->assertSameFileContent('ValidApiFareItinerary', $struct); 
        } else { 
            $this->assertFalse(true, 'Unable to find fareItinerary struct for file generation'); 
        } 
    } 
    /** 
     * 
     */ 
    public function testWriteBingStructNewsArticle() 
    { 
        $generator = self::bingGeneratorInstance(); 
        if (($model = $generator->getStruct('NewsArticle')) instanceof StructModel) { 
            $generator->setOptionStructClass('\Std\Opt\StructClass'); 
            $struct = new StructFile($generator, $model->getName()); 
            $struct 
                ->setModel($model) 
                ->write(); 
            $this->assertSameFileContent('ValidApiNewsArticle', $struct); 
        } else { 
            $this->assertFalse(true, 'Unable to find NewsArticle struct for file generation'); 
        } 
    } 
    /** 
     * 
     */ 
    public function testWriteWcfStructOffer() 
    { 
        $generator = self::wcfGeneratorInstance(); 
        if (($model = $generator->getStruct('offer')) instanceof StructModel) { 
            $struct = new StructFile($generator, $model->getName()); 
            $struct 
                ->setModel($model) 
                ->write(); 
            $this->assertSameFileContent('ValidApiOffer', $struct); 
        } else { 
            $this->assertFalse(true, 'Unable to find offer struct for file generation'); 
        } 
    } 
    /** 
     * 
     */ 
    public function testWriteYandexDirectApiStructAddRequest() 
    { 
        $generator = self::yandexDirectApiAdGroupsGeneratorInstance(); 
        if (($model = $generator->getStruct('AddRequest')) instanceof StructModel) { 
            $struct = new StructFile($generator, $model->getName()); 
            $struct 
                ->setModel($model) 
                ->write(); 
            $this->assertSameFileContent('ValidAddRequest', $struct); 
        } else { 
            $this->assertFalse(true, 'Unable to find AddRequest struct for file generation'); 
        } 
    } 
    /** 
     * 
     */ 
    public function testWriteYandexDirectApiStructAdGroupsSelectionCriteria() 
    { 
        $generator = self::yandexDirectApiAdGroupsGeneratorInstance(); 
        if (($model = $generator->getStruct('AdGroupsSelectionCriteria')) instanceof StructModel) { 
            $struct = new StructFile($generator, $model->getName()); 
            $struct 
                ->setModel($model) 
                ->write(); 
            $this->assertSameFileContent('ValidAdGroupsSelectionCriteria', $struct); 
        } else { 
            $this->assertFalse(true, 'Unable to find AdGroupsSelectionCriteria struct for file generation'); 
        } 
    } 
    /** 
     * 
     */ 
    public function testDestination() 
    { 
        $generator = self::bingGeneratorInstance(); 
        if (($model = $generator->getStruct('NewsArticle')) instanceof StructModel) { 
            $generator->setOptionStructClass('\Std\Opt\StructClass'); 
            $struct = new StructFile($generator, $model->getName()); 
            $struct->setModel($model); 
 
            $this->assertSame(sprintf('%s%s%s/', self::getTestDirectory(), StructFile::SRC_FOLDER, $model->getContextualPart()), $struct->getFileDestination()); 
        } else { 
            $this->assertFalse(true, 'Unable to find NewsArticle struct for file generation'); 
        } 
    } 
} 
 
 |