From 95f0bd0f2af48bcd736ff1f796fec5693f1b402c Mon Sep 17 00:00:00 2001 From: Joseph Bielawski Date: Tue, 8 Sep 2020 16:20:31 +0200 Subject: [PATCH] Added test covering that `null` should be ignored in metadata --- .../AnnotationResourceMetadataFactoryTest.php | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/tests/Metadata/Resource/Factory/AnnotationResourceMetadataFactoryTest.php b/tests/Metadata/Resource/Factory/AnnotationResourceMetadataFactoryTest.php index 4a071077179..f5006a44898 100644 --- a/tests/Metadata/Resource/Factory/AnnotationResourceMetadataFactoryTest.php +++ b/tests/Metadata/Resource/Factory/AnnotationResourceMetadataFactoryTest.php @@ -62,7 +62,7 @@ public function testCreateWithoutAttributes() public function getCreateDependencies() { - $annotation = new ApiResource([ + $resourceData = [ 'shortName' => 'shortName', 'description' => 'description', 'iri' => 'http://example.com', @@ -71,10 +71,11 @@ public function getCreateDependencies() 'subresourceOperations' => ['sub' => ['bus' => false]], 'attributes' => ['a' => 1, 'route_prefix' => '/foobar'], 'graphql' => ['foo' => 'bar'], - ]); + ]; + $annotationFull = new ApiResource($resourceData); $reader = $this->prophesize(Reader::class); - $reader->getClassAnnotation(Argument::type(\ReflectionClass::class), ApiResource::class)->willReturn($annotation)->shouldBeCalled(); + $reader->getClassAnnotation(Argument::type(\ReflectionClass::class), ApiResource::class)->willReturn($annotationFull)->shouldBeCalled(); $decoratedThrow = $this->prophesize(ResourceMetadataFactoryInterface::class); $decoratedThrow->create(Dummy::class)->willThrow(ResourceClassNotFoundException::class); @@ -82,10 +83,20 @@ public function getCreateDependencies() $decoratedReturn = $this->prophesize(ResourceMetadataFactoryInterface::class); $decoratedReturn->create(Dummy::class)->willReturn(new ResourceMetadata('hello', 'blabla'))->shouldBeCalled(); + $resourceData['description'] = null; + $annotationWithNull = new ApiResource($resourceData); + + $decoratedReturnWithNull = $this->prophesize(ResourceMetadataFactoryInterface::class); + $decoratedReturnWithNull->create(Dummy::class)->willReturn(new ResourceMetadata('hello'))->shouldBeCalled(); + + $readerWithNull = $this->prophesize(Reader::class); + $readerWithNull->getClassAnnotation(Argument::type(\ReflectionClass::class), ApiResource::class)->willReturn($annotationWithNull)->shouldBeCalled(); + return [ [$reader, $decoratedThrow, 'shortName', 'description'], [$reader, null, 'shortName', 'description'], [$reader, $decoratedReturn, 'hello', 'blabla'], + [$readerWithNull, $decoratedReturnWithNull, 'hello', null], ]; } }