Пример #1
0
 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']));
 }
Пример #2
0
    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());
    }