From 824f62d3bb6a0ceb6f305cfdac2ae550230327e1 Mon Sep 17 00:00:00 2001 From: Guilliam Xavier <guilliamxavier@users.noreply.github.com> Date: Sat, 25 Jun 2016 18:14:26 +0200 Subject: [PATCH] Add failing test for #5715 (unit test for MetadataFilter) --- .../ORM/Tools/Console/MetadataFilterTest.php | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 tests/Doctrine/Tests/ORM/Tools/Console/MetadataFilterTest.php diff --git a/tests/Doctrine/Tests/ORM/Tools/Console/MetadataFilterTest.php b/tests/Doctrine/Tests/ORM/Tools/Console/MetadataFilterTest.php new file mode 100644 index 000000000..7922f9006 --- /dev/null +++ b/tests/Doctrine/Tests/ORM/Tools/Console/MetadataFilterTest.php @@ -0,0 +1,78 @@ +<?php + +namespace Doctrine\Tests\ORM\Tools\Console; + +use Doctrine\ORM\Tools\Console\MetadataFilter; +use Doctrine\ORM\Tools\DisconnectedClassMetadataFactory; + +/** + * Tests for {@see \Doctrine\ORM\Tools\Console\MetadataFilter} + * + * @covers \Doctrine\ORM\Tools\Console\MetadataFilter + */ +class MetadataFilterTest extends \Doctrine\Tests\OrmTestCase +{ + /** + * @var DisconnectedClassMetadataFactory + */ + private $cmf; + + protected function setUp() + { + parent::setUp(); + + $driver = $this->createAnnotationDriver(); + $em = $this->_getTestEntityManager(); + $em->getConfiguration()->setMetadataDriverImpl($driver); + + $this->cmf = new DisconnectedClassMetadataFactory(); + $this->cmf->setEntityManager($em); + } + + public function testFilterWithArray() + { + $originalMetadatas = array( + $metadataAaa = $this->cmf->getMetadataFor(MetadataFilterTestEntityAaa::CLASSNAME), + $metadataBbb = $this->cmf->getMetadataFor(MetadataFilterTestEntityBbb::CLASSNAME), + $metadataCcc = $this->cmf->getMetadataFor(MetadataFilterTestEntityCcc::CLASSNAME), + ); + + $metadatas = $originalMetadatas; + $metadatas = MetadataFilter::filter($metadatas, array( + 'MetadataFilterTestEntityAaa', + 'MetadataFilterTestEntityCcc', + )); + + $this->assertContains($metadataAaa, $metadatas); + $this->assertNotContains($metadataBbb, $metadatas); + $this->assertContains($metadataCcc, $metadatas); + $this->assertCount(2, $metadatas); + } +} + +/** @Entity */ +class MetadataFilterTestEntityAaa +{ + const CLASSNAME = __CLASS__; + + /** @Id @Column(type="integer") */ + protected $id; +} + +/** @Entity */ +class MetadataFilterTestEntityBbb +{ + const CLASSNAME = __CLASS__; + + /** @Id @Column(type="integer") */ + protected $id; +} + +/** @Entity */ +class MetadataFilterTestEntityCcc +{ + const CLASSNAME = __CLASS__; + + /** @Id @Column(type="integer") */ + protected $id; +}