public function testGenerateContainersNewConfigClasses() { $mondator = new Mondator(); $mondator->setConfigClasses(array('Article' => array('name' => 'MyArticle', 'extensions' => array(array('class' => 'Mandango\\Mondator\\Tests\\Fixtures\\Extension\\NewConfigClass', 'options' => array('suffix' => 'Translation', 'name' => 'translation', 'multiple' => true, 'multiple_suffix' => 'Multiple', 'multiple_name' => 'multiplex')))), 'Category' => array('name' => 'MyCategory'))); $mondator->setExtensions(array(new \Mandango\Mondator\Tests\Fixtures\Extension\Name(), new \Mandango\Mondator\Tests\Fixtures\Extension\ProcessOthersFromArray())); $containers = $mondator->generateContainers(); $this->assertSame(5, count($containers)); $this->assertTrue(isset($containers['_global'])); $this->assertTrue(isset($containers['Article'])); $this->assertTrue(isset($containers['ArticleTranslation'])); $this->assertTrue(isset($containers['ArticleTranslationMultiple'])); $this->assertTrue(isset($containers['Category'])); }
public function testTwigSupport() { $mondator = new Mondator(); $mondator->setConfigClasses(array('Model\\Article' => array('fields' => array('title' => array(), 'content' => array())))); $mondator->addExtension(new \Mandango\Mondator\Tests\Fixtures\Extension\Twig\MandangoTestsTwigExtension()); $containers = $mondator->generateContainers(); $article = $containers['Model\\Article']->getDefinition('document'); // properties $this->assertTrue($article->hasPropertyByName('publicProperty')); $this->assertSame('public', $article->getPropertyByName('publicProperty')->getVisibility()); $this->assertTrue($article->hasPropertyByName('protectedProperty')); $this->assertSame('protected', $article->getPropertyByName('protectedProperty')->getVisibility()); $this->assertTrue($article->hasPropertyByName('privateProperty')); $this->assertSame('private', $article->getPropertyByName('privateProperty')->getVisibility()); $this->assertTrue($article->hasPropertyByName('staticProperty')); $this->assertTrue($article->getPropertyByName('staticProperty')->isStatic()); $this->assertTrue($article->hasPropertyByName('anotherPublicProperty')); $this->assertSame('public', $article->getPropertyByName('anotherPublicProperty')->getVisibility()); $this->assertTrue($article->hasPropertyByName('anotherProtectedProperty')); $this->assertSame('protected', $article->getPropertyByName('anotherProtectedProperty')->getVisibility()); $this->assertTrue($article->hasPropertyByName('anotherPrivateProperty')); $this->assertSame('private', $article->getPropertyByName('anotherPrivateProperty')->getVisibility()); // methods $this->assertTrue($article->hasMethodByName('publicMethod')); $this->assertSame('public', $article->getMethodbyName('publicMethod')->getVisibility()); $this->assertTrue($article->hasMethodByName('protectedMethod')); $this->assertSame('protected', $article->getMethodbyName('protectedMethod')->getVisibility()); $this->assertTrue($article->hasMethodByName('privateMethod')); $this->assertSame('private', $article->getMethodbyName('privateMethod')->getVisibility()); $this->assertTrue($article->hasMethodByName('methodWithPhpDoc')); $this->assertSame(<<<EOF /** * phpDoc */ EOF , $article->getMethodbyName('methodWithPhpDoc')->getDocComment()); $this->assertTrue($article->hasMethodByName('methodWithArguments')); $this->assertSame('$name, $value', $article->getMethodbyName('methodWithArguments')->getArguments()); $this->assertTrue($article->hasMethodByName('methodWithCode')); $this->assertTrue($article->hasMethodByName('methodWithCode')); $this->assertSame(<<<EOF return null; EOF , $article->getMethodbyName('methodWithCode')->getCode()); $this->assertTrue($article->hasMethodByName('staticMethod')); $this->assertTrue($article->getMethodByName('staticMethod')->isStatic()); $this->assertTrue($article->hasMethodByName('methodWithObjectProperties')); $this->assertSame('\\ArrayObject $array, \\Mandango\\Query $query', $article->getMethodbyName('methodWithObjectProperties')->getArguments()); }