You are here

class LazyLoadingMetadataFactoryTest in Plug 7

Hierarchy

  • class \Symfony\Component\Validator\Tests\Mapping\Factory\LazyLoadingMetadataFactoryTest extends \Symfony\Component\Validator\Tests\Mapping\Factory\PHPUnit_Framework_TestCase

Expanded class hierarchy of LazyLoadingMetadataFactoryTest

File

lib/Symfony/validator/Symfony/Component/Validator/Tests/Mapping/Factory/LazyLoadingMetadataFactoryTest.php, line 19

Namespace

Symfony\Component\Validator\Tests\Mapping\Factory
View source
class LazyLoadingMetadataFactoryTest extends \PHPUnit_Framework_TestCase {
  const CLASSNAME = 'Symfony\\Component\\Validator\\Tests\\Fixtures\\Entity';
  const PARENTCLASS = 'Symfony\\Component\\Validator\\Tests\\Fixtures\\EntityParent';
  public function testLoadClassMetadata() {
    $factory = new LazyLoadingMetadataFactory(new TestLoader());
    $metadata = $factory
      ->getMetadataFor(self::PARENTCLASS);
    $constraints = array(
      new ConstraintA(array(
        'groups' => array(
          'Default',
          'EntityParent',
        ),
      )),
    );
    $this
      ->assertEquals($constraints, $metadata
      ->getConstraints());
  }
  public function testMergeParentConstraints() {
    $factory = new LazyLoadingMetadataFactory(new TestLoader());
    $metadata = $factory
      ->getMetadataFor(self::CLASSNAME);
    $constraints = array(
      new ConstraintA(array(
        'groups' => array(
          'Default',
          'EntityParent',
          'Entity',
        ),
      )),
      new ConstraintA(array(
        'groups' => array(
          'Default',
          'EntityInterface',
          'Entity',
        ),
      )),
      new ConstraintA(array(
        'groups' => array(
          'Default',
          'Entity',
        ),
      )),
    );
    $this
      ->assertEquals($constraints, $metadata
      ->getConstraints());
  }
  public function testWriteMetadataToCache() {
    $cache = $this
      ->getMock('Symfony\\Component\\Validator\\Mapping\\Cache\\CacheInterface');
    $factory = new LazyLoadingMetadataFactory(new TestLoader(), $cache);
    $tester = $this;
    $constraints = array(
      new ConstraintA(array(
        'groups' => array(
          'Default',
          'EntityParent',
        ),
      )),
    );
    $cache
      ->expects($this
      ->never())
      ->method('has');
    $cache
      ->expects($this
      ->once())
      ->method('read')
      ->with($this
      ->equalTo(self::PARENTCLASS))
      ->will($this
      ->returnValue(false));
    $cache
      ->expects($this
      ->once())
      ->method('write')
      ->will($this
      ->returnCallback(function ($metadata) use ($tester, $constraints) {
      $tester
        ->assertEquals($constraints, $metadata
        ->getConstraints());
    }));
    $metadata = $factory
      ->getMetadataFor(self::PARENTCLASS);
    $this
      ->assertEquals(self::PARENTCLASS, $metadata
      ->getClassName());
    $this
      ->assertEquals($constraints, $metadata
      ->getConstraints());
  }
  public function testReadMetadataFromCache() {
    $loader = $this
      ->getMock('Symfony\\Component\\Validator\\Mapping\\Loader\\LoaderInterface');
    $cache = $this
      ->getMock('Symfony\\Component\\Validator\\Mapping\\Cache\\CacheInterface');
    $factory = new LazyLoadingMetadataFactory($loader, $cache);
    $tester = $this;
    $metadata = new ClassMetadata(self::PARENTCLASS);
    $metadata
      ->addConstraint(new ConstraintA());
    $loader
      ->expects($this
      ->never())
      ->method('loadClassMetadata');
    $cache
      ->expects($this
      ->never())
      ->method('has');
    $cache
      ->expects($this
      ->once())
      ->method('read')
      ->will($this
      ->returnValue($metadata));
    $this
      ->assertEquals($metadata, $factory
      ->getMetadataFor(self::PARENTCLASS));
  }

}

Members