Skip to content

Commit

Permalink
Merge ce0cc99 into 6f0959b
Browse files Browse the repository at this point in the history
  • Loading branch information
divine committed Dec 28, 2020
2 parents 6f0959b + ce0cc99 commit d16ed1e
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 5 deletions.
Expand Up @@ -255,7 +255,7 @@ private function getGraphQlSubscriptionUpdates($object, array $options, string $
return $updates;
}

private function buildUpdate(string $iri, string $data, array $options): Update
private function buildUpdate($iri, string $data, array $options): Update
{
if (method_exists(Update::class, 'isPrivate')) {
return new Update($iri, $data, $options['private'] ?? false, $options['id'] ?? null, $options['type'] ?? null, $options['retry'] ?? null);
Expand Down
Expand Up @@ -26,6 +26,7 @@
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\Dummy;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\DummyCar;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\DummyFriend;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\DummyMercure;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\DummyOffer;
use ApiPlatform\Core\Tests\ProphecyTrait;
use Doctrine\ORM\EntityManagerInterface;
Expand Down Expand Up @@ -139,6 +140,7 @@ public function testPublishUpdate(): void
$toUpdate->setId(2);
$toUpdateNoMercureAttribute = new DummyCar();
$toUpdateMercureOptions = new DummyOffer();
$toUpdateMercureTopicOptions = new DummyMercure();

$toDelete = new Dummy();
$toDelete->setId(3);
Expand All @@ -150,11 +152,13 @@ public function testPublishUpdate(): void
$resourceClassResolverProphecy->getResourceClass(Argument::type(DummyCar::class))->willReturn(DummyCar::class);
$resourceClassResolverProphecy->getResourceClass(Argument::type(DummyFriend::class))->willReturn(DummyFriend::class);
$resourceClassResolverProphecy->getResourceClass(Argument::type(DummyOffer::class))->willReturn(DummyOffer::class);
$resourceClassResolverProphecy->getResourceClass(Argument::type(DummyMercure::class))->willReturn(DummyMercure::class);
$resourceClassResolverProphecy->isResourceClass(Dummy::class)->willReturn(true);
$resourceClassResolverProphecy->isResourceClass(NotAResource::class)->willReturn(false);
$resourceClassResolverProphecy->isResourceClass(DummyCar::class)->willReturn(true);
$resourceClassResolverProphecy->isResourceClass(DummyFriend::class)->willReturn(true);
$resourceClassResolverProphecy->isResourceClass(DummyOffer::class)->willReturn(true);
$resourceClassResolverProphecy->isResourceClass(DummyMercure::class)->willReturn(true);

$iriConverterProphecy = $this->prophesize(IriConverterInterface::class);
$iriConverterProphecy->getIriFromItem($toInsert, UrlGeneratorInterface::ABS_URL)->willReturn('http://example.com/dummies/1')->shouldBeCalled();
Expand All @@ -169,11 +173,13 @@ public function testPublishUpdate(): void
$resourceMetadataFactoryProphecy->create(DummyCar::class)->willReturn(new ResourceMetadata());
$resourceMetadataFactoryProphecy->create(DummyFriend::class)->willReturn(new ResourceMetadata(null, null, null, null, null, ['mercure' => ['private' => true, 'retry' => 10]]));
$resourceMetadataFactoryProphecy->create(DummyOffer::class)->willReturn(new ResourceMetadata(null, null, null, null, null, ['mercure' => ['topics' => 'http://example.com/custom_topics/1', 'normalization_context' => ['groups' => ['baz']]]]));
$resourceMetadataFactoryProphecy->create(DummyMercure::class)->willReturn(new ResourceMetadata(null, null, null, null, null, ['mercure' => ['topics' => ['/dummies/1', '/users/3'], 'normalization_context' => ['groups' => ['baz']]]]));

$serializerProphecy = $this->prophesize(SerializerInterface::class);
$serializerProphecy->serialize($toInsert, 'jsonld', ['groups' => ['foo', 'bar']])->willReturn('1');
$serializerProphecy->serialize($toUpdate, 'jsonld', ['groups' => ['foo', 'bar']])->willReturn('2');
$serializerProphecy->serialize($toUpdateMercureOptions, 'jsonld', ['groups' => ['baz']])->willReturn('mercure_options');
$serializerProphecy->serialize($toUpdateMercureTopicOptions, 'jsonld', ['groups' => ['baz']])->willReturn('mercure_options');

$formats = ['jsonld' => ['application/ld+json'], 'jsonhal' => ['application/hal+json']];

Expand All @@ -200,7 +206,7 @@ public function testPublishUpdate(): void

$uowProphecy = $this->prophesize(UnitOfWork::class);
$uowProphecy->getScheduledEntityInsertions()->willReturn([$toInsert, $toInsertNotResource])->shouldBeCalled();
$uowProphecy->getScheduledEntityUpdates()->willReturn([$toUpdate, $toUpdateNoMercureAttribute, $toUpdateMercureOptions])->shouldBeCalled();
$uowProphecy->getScheduledEntityUpdates()->willReturn([$toUpdate, $toUpdateNoMercureAttribute, $toUpdateMercureOptions, $toUpdateMercureTopicOptions])->shouldBeCalled();
$uowProphecy->getScheduledEntityDeletions()->willReturn([$toDelete, $toDeleteExpressionLanguage])->shouldBeCalled();

$emProphecy = $this->prophesize(EntityManagerInterface::class);
Expand All @@ -210,9 +216,9 @@ public function testPublishUpdate(): void
$listener->onFlush($eventArgs);
$listener->postFlush();

$this->assertSame(['http://example.com/dummies/1', 'http://example.com/dummies/2', 'http://example.com/custom_topics/1', 'http://example.com/dummies/3', 'http://example.com/dummy_friends/4'], $topics);
$this->assertSame([false, false, false, false, true], $private);
$this->assertSame([null, null, null, null, 10], $retry);
$this->assertSame(['http://example.com/dummies/1', 'http://example.com/dummies/2', 'http://example.com/custom_topics/1', '/dummies/1', '/users/3', 'http://example.com/dummies/3', 'http://example.com/dummy_friends/4'], $topics);
$this->assertSame([false, false, false, false, false, true], $private);
$this->assertSame([null, null, null, null, null, 10], $retry);
}

public function testPublishGraphQlUpdates(): void
Expand Down

0 comments on commit d16ed1e

Please sign in to comment.