12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- <?php
- /*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace Symfony\Tests\Component\Validator\Mapping\Loader;
- require_once __DIR__.'/../../Fixtures/ConstraintA.php';
- use Symfony\Component\Validator\Mapping\ClassMetadata;
- use Symfony\Component\Validator\Mapping\Loader\StaticMethodLoader;
- use Symfony\Tests\Component\Validator\Fixtures\ConstraintA;
- class StaticMethodLoaderTest extends \PHPUnit_Framework_TestCase
- {
- public function testLoadClassMetadataReturnsTrueIfSuccessful()
- {
- $loader = new StaticMethodLoader('loadMetadata');
- $metadata = new ClassMetadata(__NAMESPACE__.'\StaticLoaderEntity');
- $this->assertTrue($loader->loadClassMetadata($metadata));
- }
- public function testLoadClassMetadataReturnsFalseIfNotSuccessful()
- {
- $loader = new StaticMethodLoader('loadMetadata');
- $metadata = new ClassMetadata('\stdClass');
- $this->assertFalse($loader->loadClassMetadata($metadata));
- }
- public function testLoadClassMetadata()
- {
- $loader = new StaticMethodLoader('loadMetadata');
- $metadata = new ClassMetadata(__NAMESPACE__.'\StaticLoaderEntity');
- $loader->loadClassMetadata($metadata);
- $this->assertEquals(StaticLoaderEntity::$invokedWith, $metadata);
- }
- public function testLoadClassMetadataDoesNotRepeatLoadWithParentClasses()
- {
- $loader = new StaticMethodLoader('loadMetadata');
- $metadata = new ClassMetadata(__NAMESPACE__.'\StaticLoaderDocument');
- $loader->loadClassMetadata($metadata);
- $this->assertSame(0, count($metadata->getConstraints()));
- $loader = new StaticMethodLoader('loadMetadata');
- $metadata = new ClassMetadata(__NAMESPACE__.'\BaseStaticLoaderDocument');
- $loader->loadClassMetadata($metadata);
- $this->assertSame(1, count($metadata->getConstraints()));
- }
- public function testLoadClassMetadataIgnoresInterfaces()
- {
- $loader = new StaticMethodLoader('loadMetadata');
- $metadata = new ClassMetadata(__NAMESPACE__.'\StaticLoaderInterface');
- $loader->loadClassMetadata($metadata);
- $this->assertSame(0, count($metadata->getConstraints()));
- }
- }
- interface StaticLoaderInterface
- {
- public static function loadMetadata(ClassMetadata $metadata);
- }
- class StaticLoaderEntity
- {
- public static $invokedWith = null;
- public static function loadMetadata(ClassMetadata $metadata)
- {
- self::$invokedWith = $metadata;
- }
- }
- class StaticLoaderDocument extends BaseStaticLoaderDocument
- {
- }
- class BaseStaticLoaderDocument
- {
- public static function loadMetadata(ClassMetadata $metadata)
- {
- $metadata->addConstraint(new ConstraintA());
- }
- }
|