From 15c145f3b361d5f956eed47fff909480a19f5480 Mon Sep 17 00:00:00 2001 From: Mathieu Duplouy Date: Sat, 30 Sep 2017 10:31:24 +0200 Subject: [PATCH] Add failing test for DCOM-288 Reported on: https://github.com/doctrine/common/issues/600 --- .../ORM/Functional/Ticket/GH6740Test.php | 108 ++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 tests/Doctrine/Tests/ORM/Functional/Ticket/GH6740Test.php diff --git a/tests/Doctrine/Tests/ORM/Functional/Ticket/GH6740Test.php b/tests/Doctrine/Tests/ORM/Functional/Ticket/GH6740Test.php new file mode 100644 index 000000000..3589fa2fb --- /dev/null +++ b/tests/Doctrine/Tests/ORM/Functional/Ticket/GH6740Test.php @@ -0,0 +1,108 @@ +useModelSet('ecommerce'); + + parent::setUp(); + + $product = new ECommerceProduct(); + $product->setName('First Product'); + + $firstCategory = new ECommerceCategory(); + $secondCategory = new ECommerceCategory(); + + $firstCategory->setName('Business'); + $secondCategory->setName('Home'); + + $product->addCategory($firstCategory); + $product->addCategory($secondCategory); + + $this->_em->persist($product); + $this->_em->flush(); + $this->_em->clear(); + + $this->productId = $product->getId(); + $this->firstCategoryId = $firstCategory->getId(); + $this->secondCategoryId = $secondCategory->getId(); + } + + /** + * @group 6740 + */ + public function testCollectionFilteringLteOperator() : void + { + $product = $this->_em->find(ECommerceProduct::class, $this->productId); + $criteria = Criteria::create()->where(Criteria::expr()->lte('id', $this->secondCategoryId)); + + self::assertCount(2, $product->getCategories()->matching($criteria)); + } + + /** + * @group 6740 + */ + public function testCollectionFilteringLtOperator() : void + { + $product = $this->_em->find(ECommerceProduct::class, $this->productId); + $criteria = Criteria::create()->where(Criteria::expr()->lt('id', $this->secondCategoryId)); + + self::assertCount(1, $product->getCategories()->matching($criteria)); + } + + /** + * @group 6740 + */ + public function testCollectionFilteringGteOperator() : void + { + $product = $this->_em->find(ECommerceProduct::class, $this->productId); + $criteria = Criteria::create()->where(Criteria::expr()->gte('id', $this->firstCategoryId)); + + self::assertCount(2, $product->getCategories()->matching($criteria)); + } + + /** + * @group 6740 + */ + public function testCollectionFilteringGtOperator() : void + { + $product = $this->_em->find(ECommerceProduct::class, $this->productId); + $criteria = Criteria::create()->where(Criteria::expr()->gt('id', $this->firstCategoryId)); + + self::assertCount(1, $product->getCategories()->matching($criteria)); + } + + /** + * @group 6740 + */ + public function testCollectionFilteringEqualsOperator() : void + { + $product = $this->_em->find(ECommerceProduct::class, $this->productId); + $criteria = Criteria::create()->where(Criteria::expr()->eq('id', $this->firstCategoryId)); + + self::assertCount(1, $product->getCategories()->matching($criteria)); + } +}