|
11 | 11 |
|
12 | 12 | declare(strict_types=1);
|
13 | 13 |
|
| 14 | +use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\Address as AddressDocument; |
14 | 15 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\Answer as AnswerDocument;
|
15 | 16 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\CompositeItem as CompositeItemDocument;
|
16 | 17 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\CompositeLabel as CompositeLabelDocument;
|
17 | 18 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\CompositePrimitiveItem as CompositePrimitiveItemDocument;
|
18 | 19 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\CompositeRelation as CompositeRelationDocument;
|
| 20 | +use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\Customer as CustomerDocument; |
19 | 21 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\Dummy as DummyDocument;
|
20 | 22 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\DummyAggregateOffer as DummyAggregateOfferDocument;
|
21 | 23 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\DummyCar as DummyCarDocument;
|
|
37 | 39 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\FourthLevel as FourthLevelDocument;
|
38 | 40 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\Greeting as GreetingDocument;
|
39 | 41 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\MaxDepthDummy as MaxDepthDummyDocument;
|
| 42 | +use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\Order as OrderDocument; |
40 | 43 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\Person as PersonDocument;
|
41 | 44 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\PersonToPet as PersonToPetDocument;
|
42 | 45 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\Pet as PetDocument;
|
|
49 | 52 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\SecuredDummy as SecuredDummyDocument;
|
50 | 53 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\ThirdLevel as ThirdLevelDocument;
|
51 | 54 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\User as UserDocument;
|
| 55 | +use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\Address; |
52 | 56 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\Answer;
|
53 | 57 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\CompositeItem;
|
54 | 58 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\CompositeLabel;
|
55 | 59 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\CompositePrimitiveItem;
|
56 | 60 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\CompositeRelation;
|
57 | 61 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\Container;
|
| 62 | +use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\Customer; |
58 | 63 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\Dummy;
|
59 | 64 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\DummyAggregateOffer;
|
60 | 65 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\DummyCar;
|
|
78 | 83 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\Greeting;
|
79 | 84 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\MaxDepthDummy;
|
80 | 85 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\Node;
|
| 86 | +use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\Order; |
81 | 87 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\Person;
|
82 | 88 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\PersonToPet;
|
83 | 89 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\Pet;
|
@@ -1505,4 +1511,33 @@ private function buildThirdLevel()
|
1505 | 1511 | {
|
1506 | 1512 | return $this->isOrm() ? new ThirdLevel() : new ThirdLevelDocument();
|
1507 | 1513 | }
|
| 1514 | + |
| 1515 | + /** |
| 1516 | + * @Given there is a order with same customer and receiver |
| 1517 | + */ |
| 1518 | + public function testEagerLoadingNotDuplicateRelation() |
| 1519 | + { |
| 1520 | + $customer = $this->isOrm() ? new Customer() : new CustomerDocument(); |
| 1521 | + $customer->name = 'customer_name'; |
| 1522 | + |
| 1523 | + $address1 = $this->isOrm() ? new Address() : new AddressDocument(); |
| 1524 | + $address1->name = 'foo'; |
| 1525 | + $address2 = $this->isOrm() ? new Address() : new AddressDocument(); |
| 1526 | + $address2->name = 'bar'; |
| 1527 | + |
| 1528 | + $order = $this->isOrm() ? new Order() : new OrderDocument(); |
| 1529 | + $order->recipient = $customer; |
| 1530 | + $order->customer = $customer; |
| 1531 | + |
| 1532 | + $customer->addresses->add($address1); |
| 1533 | + $customer->addresses->add($address2); |
| 1534 | + |
| 1535 | + $this->manager->persist($address1); |
| 1536 | + $this->manager->persist($address2); |
| 1537 | + $this->manager->persist($customer); |
| 1538 | + $this->manager->persist($order); |
| 1539 | + |
| 1540 | + $this->manager->flush(); |
| 1541 | + $this->manager->clear(); |
| 1542 | + } |
1508 | 1543 | }
|
0 commit comments