<?php
namespace WsdlToPhp\PackageGenerator\Tests\Container\Model;
use WsdlToPhp\PackageGenerator\Model\Struct;
use WsdlToPhp\PackageGenerator\Model\EmptyModel;
use WsdlToPhp\PackageGenerator\Container\Model\EmptyModel as ModelContainer;
use WsdlToPhp\PackageGenerator\Tests\TestCase;
class ModelContainerTest extends TestCase
{
/**
* @return ModelContainer
*/
public static function instance()
{
return new ModelContainer(self::getBingGeneratorInstance());
}
/**
*
*/
public function testAdd()
{
$modelContainer = self::instance();
$modelContainer->add(new EmptyModel(self::getBingGeneratorInstance(), 'Foo'));
}
/**
* @expectedException InvalidArgumentException
*/
public function testExceptionOnObject()
{
$modelContainer = self::instance();
$modelContainer->add(array());
}
/**
* @expectedException InvalidArgumentException
*/
public function testGetExceptionOnValue()
{
$modelContainer = self::instance();
$modelContainer->add(new EmptyModel(self::getBingGeneratorInstance(), 'Foo'));
$modelContainer->get(array());
$modelContainer->get(null);
}
/**
* @expectedException InvalidArgumentException
*/
public function testExceptionOnModelClass()
{
$modelContainer = self::instance();
$modelContainer->add(new Struct(self::getBingGeneratorInstance(), 'Foo'));
}
/**
*
*/
public function testGet()
{
$modelContainer = self::instance();
$modelContainer->add(new EmptyModel(self::getBingGeneratorInstance(), 'Foo'));
$modelContainer->add(new EmptyModel(self::getBingGeneratorInstance(), 'Bar'));
$this->assertInstanceOf('\\WsdlToPhp\\PackageGenerator\\Model\\EmptyModel', $modelContainer->get('Foo'));
}
/**
*
*/
public function testForeach()
{
$models = self::instance();
$models->add(new EmptyModel(self::getBingGeneratorInstance(), 'Foo'));
$models->add(new EmptyModel(self::getBingGeneratorInstance(), 'Bar'));
$models->add(new EmptyModel(self::getBingGeneratorInstance(), 'FooBar'));
$models->add(new EmptyModel(self::getBingGeneratorInstance(), 'BarFoo'));
$index = 0;
foreach ($models as $model) {
$this->assertSame($index, $models->key());
if ($models->key() === 0) {
$this->assertSame('Foo', $model->getName());
} elseif ($models->key() === 1) {
$this->assertSame('Bar', $model->getName());
} elseif ($models->key() === 2) {
$this->assertSame('FooBar', $model->getName());
} elseif ($models->key() === 3) {
$this->assertSame('BarFoo', $model->getName());
}
$index++;
}
}
/**
*
*/
public function testCount()
{
$models = self::instance();
$models->add(new EmptyModel(self::getBingGeneratorInstance(), 'Foo'));
$models->add(new EmptyModel(self::getBingGeneratorInstance(), 'Bar'));
$models->add(new EmptyModel(self::getBingGeneratorInstance(), 'FooBar'));
$models->add(new EmptyModel(self::getBingGeneratorInstance(), 'BarFoo'));
$this->assertSame(4, $models->count());
$this->assertSame(4, count($models));
}
}
|