|
18 | 18 | use ApiPlatform\Core\Metadata\Resource\Factory\ResourceMetadataFactoryInterface;
|
19 | 19 | use ApiPlatform\Core\Metadata\Resource\ResourceMetadata;
|
20 | 20 | use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\Dummy;
|
| 21 | +use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\EmbeddedDummy; |
21 | 22 | use Doctrine\ORM\EntityManager;
|
22 | 23 | use Doctrine\ORM\Mapping\ClassMetadata;
|
23 | 24 | use Doctrine\ORM\QueryBuilder;
|
@@ -134,4 +135,27 @@ public function testApplyToCollectionWithOrderOverridenWithAssociation()
|
134 | 135 | $orderExtensionTest = new OrderExtension('asc', $resourceMetadataFactoryProphecy->reveal());
|
135 | 136 | $orderExtensionTest->applyToCollection($queryBuilder, new QueryNameGenerator(), Dummy::class);
|
136 | 137 | }
|
| 138 | + |
| 139 | + public function testApplyToCollectionWithOrderOverriddenWithEmbeddedAssociation() |
| 140 | + { |
| 141 | + $resourceMetadataFactoryProphecy = $this->prophesize(ResourceMetadataFactoryInterface::class); |
| 142 | + $queryBuilderProphecy = $this->prophesize(QueryBuilder::class); |
| 143 | + |
| 144 | + $queryBuilderProphecy->addOrderBy('o.embeddedDummy.dummyName', 'DESC')->shouldBeCalled(); |
| 145 | + |
| 146 | + $classMetadataProphecy = $this->prophesize(ClassMetadata::class); |
| 147 | + $classMetadataProphecy->getIdentifier()->shouldBeCalled()->willReturn(['id']); |
| 148 | + $classMetadataProphecy->embeddedClasses = ['embeddedDummy' => []]; |
| 149 | + |
| 150 | + $resourceMetadataFactoryProphecy->create(EmbeddedDummy::class)->shouldBeCalled()->willReturn(new ResourceMetadata(null, null, null, null, null, ['order' => ['embeddedDummy.dummyName' => 'DESC']])); |
| 151 | + |
| 152 | + $emProphecy = $this->prophesize(EntityManager::class); |
| 153 | + $emProphecy->getClassMetadata(EmbeddedDummy::class)->shouldBeCalled()->willReturn($classMetadataProphecy->reveal()); |
| 154 | + |
| 155 | + $queryBuilderProphecy->getEntityManager()->shouldBeCalled()->willReturn($emProphecy->reveal()); |
| 156 | + |
| 157 | + $queryBuilder = $queryBuilderProphecy->reveal(); |
| 158 | + $orderExtensionTest = new OrderExtension('asc', $resourceMetadataFactoryProphecy->reveal()); |
| 159 | + $orderExtensionTest->applyToCollection($queryBuilder, new QueryNameGenerator(), EmbeddedDummy::class); |
| 160 | + } |
137 | 161 | }
|
0 commit comments