Merge branch 'fix/#5715-fix-metadata-filtering-in-cli-tools-2.5' into 2.5
Close #5715
This commit is contained in:
commit
ad5397b581
@ -84,10 +84,6 @@ class MetadataFilter extends \FilterIterator implements \Countable
|
||||
);
|
||||
}
|
||||
|
||||
if ($pregResult === 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($pregResult) {
|
||||
return true;
|
||||
}
|
||||
|
195
tests/Doctrine/Tests/ORM/Tools/Console/MetadataFilterTest.php
Normal file
195
tests/Doctrine/Tests/ORM/Tools/Console/MetadataFilterTest.php
Normal file
@ -0,0 +1,195 @@
|
||||
<?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 testFilterWithEmptyArray()
|
||||
{
|
||||
$originalMetadatas = array(
|
||||
$metadataAaa = $this->cmf->getMetadataFor(MetadataFilterTestEntityAaa::CLASSNAME),
|
||||
$metadataBbb = $this->cmf->getMetadataFor(MetadataFilterTestEntityBbb::CLASSNAME),
|
||||
);
|
||||
|
||||
$metadatas = $originalMetadatas;
|
||||
$metadatas = MetadataFilter::filter($metadatas, array());
|
||||
|
||||
$this->assertContains($metadataAaa, $metadatas);
|
||||
$this->assertContains($metadataBbb, $metadatas);
|
||||
$this->assertCount(count($originalMetadatas), $metadatas);
|
||||
}
|
||||
|
||||
public function testFilterWithString()
|
||||
{
|
||||
$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, 'MetadataFilterTestEntityAaa');
|
||||
|
||||
$this->assertContains($metadataAaa, $metadatas);
|
||||
$this->assertNotContains($metadataBbb, $metadatas);
|
||||
$this->assertNotContains($metadataCcc, $metadatas);
|
||||
$this->assertCount(1, $metadatas);
|
||||
|
||||
$metadatas = $originalMetadatas;
|
||||
$metadatas = MetadataFilter::filter($metadatas, 'MetadataFilterTestEntityBbb');
|
||||
|
||||
$this->assertNotContains($metadataAaa, $metadatas);
|
||||
$this->assertContains($metadataBbb, $metadatas);
|
||||
$this->assertNotContains($metadataCcc, $metadatas);
|
||||
$this->assertCount(1, $metadatas);
|
||||
|
||||
$metadatas = $originalMetadatas;
|
||||
$metadatas = MetadataFilter::filter($metadatas, 'MetadataFilterTestEntityCcc');
|
||||
|
||||
$this->assertNotContains($metadataAaa, $metadatas);
|
||||
$this->assertNotContains($metadataBbb, $metadatas);
|
||||
$this->assertContains($metadataCcc, $metadatas);
|
||||
$this->assertCount(1, $metadatas);
|
||||
}
|
||||
|
||||
public function testFilterWithString2()
|
||||
{
|
||||
$originalMetadatas = array(
|
||||
$metadataFoo = $this->cmf->getMetadataFor(MetadataFilterTestEntityFoo::CLASSNAME),
|
||||
$metadataFooBar = $this->cmf->getMetadataFor(MetadataFilterTestEntityFooBar::CLASSNAME),
|
||||
$metadataBar = $this->cmf->getMetadataFor(MetadataFilterTestEntityBar::CLASSNAME),
|
||||
);
|
||||
|
||||
$metadatas = $originalMetadatas;
|
||||
$metadatas = MetadataFilter::filter($metadatas, 'MetadataFilterTestEntityFoo');
|
||||
|
||||
$this->assertContains($metadataFoo, $metadatas);
|
||||
$this->assertContains($metadataFooBar, $metadatas);
|
||||
$this->assertNotContains($metadataBar, $metadatas);
|
||||
$this->assertCount(2, $metadatas);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
public function testFilterWithRegex()
|
||||
{
|
||||
$originalMetadatas = array(
|
||||
$metadataFoo = $this->cmf->getMetadataFor(MetadataFilterTestEntityFoo::CLASSNAME),
|
||||
$metadataFooBar = $this->cmf->getMetadataFor(MetadataFilterTestEntityFooBar::CLASSNAME),
|
||||
$metadataBar = $this->cmf->getMetadataFor(MetadataFilterTestEntityBar::CLASSNAME),
|
||||
);
|
||||
|
||||
$metadatas = $originalMetadatas;
|
||||
$metadatas = MetadataFilter::filter($metadatas, 'Foo$');
|
||||
|
||||
$this->assertContains($metadataFoo, $metadatas);
|
||||
$this->assertNotContains($metadataFooBar, $metadatas);
|
||||
$this->assertNotContains($metadataBar, $metadatas);
|
||||
$this->assertCount(1, $metadatas);
|
||||
|
||||
$metadatas = $originalMetadatas;
|
||||
$metadatas = MetadataFilter::filter($metadatas, 'Bar$');
|
||||
|
||||
$this->assertNotContains($metadataFoo, $metadatas);
|
||||
$this->assertContains($metadataFooBar, $metadatas);
|
||||
$this->assertContains($metadataBar, $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;
|
||||
}
|
||||
|
||||
/** @Entity */
|
||||
class MetadataFilterTestEntityFoo
|
||||
{
|
||||
const CLASSNAME = __CLASS__;
|
||||
|
||||
/** @Id @Column(type="integer") */
|
||||
protected $id;
|
||||
}
|
||||
|
||||
/** @Entity */
|
||||
class MetadataFilterTestEntityBar
|
||||
{
|
||||
const CLASSNAME = __CLASS__;
|
||||
|
||||
/** @Id @Column(type="integer") */
|
||||
protected $id;
|
||||
}
|
||||
|
||||
/** @Entity */
|
||||
class MetadataFilterTestEntityFooBar
|
||||
{
|
||||
const CLASSNAME = __CLASS__;
|
||||
|
||||
/** @Id @Column(type="integer") */
|
||||
protected $id;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user