diff --git a/src/Event/EntityDefinition.php b/src/Event/EntityDefinition.php index a4519e5..e39aa4b 100644 --- a/src/Event/EntityDefinition.php +++ b/src/Event/EntityDefinition.php @@ -4,7 +4,7 @@ namespace ApiSkeletons\Doctrine\ORM\GraphQL\Event; -use ArrayObject; +use ApiSkeletons\Doctrine\ORM\GraphQL\Type\Entity\Definition; use League\Event\HasEventName; use Override; @@ -14,9 +14,8 @@ class EntityDefinition implements HasEventName { - /** @param ArrayObject $definition<'description'|'fields'|'name'|'resolveField', mixed> */ public function __construct( - protected readonly ArrayObject $definition, + protected readonly Definition $definition, protected readonly string $eventName, ) { } @@ -27,7 +26,7 @@ public function eventName(): string return $this->eventName; } - public function getDefinition(): ArrayObject + public function getDefinition(): Definition { return $this->definition; } diff --git a/src/Event/Metadata.php b/src/Event/Metadata.php index 543564c..44fe48b 100644 --- a/src/Event/Metadata.php +++ b/src/Event/Metadata.php @@ -4,7 +4,7 @@ namespace ApiSkeletons\Doctrine\ORM\GraphQL\Event; -use ArrayObject; +use ApiSkeletons\Doctrine\ORM\GraphQL\Metadata as MetadataObject; use League\Event\HasEventName; use Override; @@ -15,7 +15,7 @@ class Metadata implements HasEventName { public function __construct( - protected readonly ArrayObject $metadata, + protected readonly MetadataObject $metadata, protected readonly string $eventName, ) { } @@ -26,7 +26,7 @@ public function eventName(): string return $this->eventName; } - public function getMetadata(): ArrayObject + public function getMetadata(): MetadataObject { return $this->metadata; } diff --git a/src/Metadata.php b/src/Metadata.php new file mode 100644 index 0000000..732d58d --- /dev/null +++ b/src/Metadata.php @@ -0,0 +1,16 @@ + + */ +class Metadata extends ArrayObject +{ +} diff --git a/src/Metadata/GlobalEnable.php b/src/Metadata/GlobalEnable.php index e89e9cb..4dcd725 100644 --- a/src/Metadata/GlobalEnable.php +++ b/src/Metadata/GlobalEnable.php @@ -5,10 +5,10 @@ namespace ApiSkeletons\Doctrine\ORM\GraphQL\Metadata; use ApiSkeletons\Doctrine\ORM\GraphQL\Config; -use ApiSkeletons\Doctrine\ORM\GraphQL\Event\Metadata; +use ApiSkeletons\Doctrine\ORM\GraphQL\Event\Metadata as MetadataEvent; use ApiSkeletons\Doctrine\ORM\GraphQL\Hydrator\Strategy; +use ApiSkeletons\Doctrine\ORM\GraphQL\Metadata; use ApiSkeletons\Doctrine\ORM\GraphQL\Metadata\Common\MetadataFactory; -use ArrayObject; use Doctrine\ORM\EntityManager; use League\Event\EventDispatcher; use Override; @@ -20,18 +20,18 @@ */ final class GlobalEnable extends MetadataFactory { - private ArrayObject $metadata; + private Metadata $metadata; public function __construct( protected readonly EntityManager $entityManager, protected readonly Config $config, protected readonly EventDispatcher $eventDispatcher, ) { - $this->metadata = new ArrayObject(); + $this->metadata = new Metadata(); } /** @param class-string[] $entityClasses */ - public function __invoke(array $entityClasses): ArrayObject + public function getMetadata(array $entityClasses): Metadata { foreach ($entityClasses as $entityClass) { // Get extract by value or reference @@ -53,7 +53,7 @@ public function __invoke(array $entityClasses): ArrayObject } $this->eventDispatcher->dispatch( - new Metadata($this->metadata, 'metadata.build'), + new MetadataEvent($this->metadata, 'metadata.build'), ); return $this->metadata; diff --git a/src/Metadata/MetadataFactory.php b/src/Metadata/MetadataFactory.php index d02cb3e..f94b436 100644 --- a/src/Metadata/MetadataFactory.php +++ b/src/Metadata/MetadataFactory.php @@ -6,11 +6,11 @@ use ApiSkeletons\Doctrine\ORM\GraphQL\Attribute; use ApiSkeletons\Doctrine\ORM\GraphQL\Config; -use ApiSkeletons\Doctrine\ORM\GraphQL\Event\Metadata; +use ApiSkeletons\Doctrine\ORM\GraphQL\Event\Metadata as MetadataEvent; use ApiSkeletons\Doctrine\ORM\GraphQL\Filter\Filters; use ApiSkeletons\Doctrine\ORM\GraphQL\Hydrator\Strategy; +use ApiSkeletons\Doctrine\ORM\GraphQL\Metadata; use ApiSkeletons\Doctrine\ORM\GraphQL\Metadata\Common\MetadataFactory as CommonMetadataFactory; -use ArrayObject; use Doctrine\ORM\EntityManager; use Doctrine\ORM\Mapping\ClassMetadata; use League\Event\EventDispatcher; @@ -18,7 +18,6 @@ use ReflectionClass; use function assert; -use function count; /** * Build metadata for entities @@ -26,7 +25,7 @@ class MetadataFactory extends CommonMetadataFactory { public function __construct( - protected ArrayObject $metadata, + protected Metadata $metadata, protected readonly EntityManager $entityManager, protected readonly Config $config, protected readonly GlobalEnable $globalEnable, @@ -37,9 +36,9 @@ public function __construct( /** * Build metadata for all entities and return it */ - public function __invoke(): ArrayObject + public function getMetadata(): Metadata { - if (count($this->metadata)) { + if ($this->metadata->count()) { return $this->metadata; } @@ -51,7 +50,7 @@ public function __invoke(): ArrayObject // If global enable is set, use the GlobalEnable class to build metadata if ($this->config->getGlobalEnable()) { - $this->metadata = ($this->globalEnable)($entityClasses); + $this->metadata = $this->globalEnable->getMetadata($entityClasses); return $this->metadata; } @@ -71,7 +70,7 @@ public function __invoke(): ArrayObject // Fire the metadata.build event $this->eventDispatcher->dispatch( - new Metadata($this->metadata, 'metadata.build'), + new MetadataEvent($this->metadata, 'metadata.build'), ); return $this->metadata; diff --git a/src/Resolve/ResolveCollectionFactory.php b/src/Resolve/ResolveCollectionFactory.php index 6c4f4ab..98a6f2a 100644 --- a/src/Resolve/ResolveCollectionFactory.php +++ b/src/Resolve/ResolveCollectionFactory.php @@ -7,10 +7,10 @@ use ApiSkeletons\Doctrine\ORM\GraphQL\Config; use ApiSkeletons\Doctrine\ORM\GraphQL\Event\Criteria as CriteriaEvent; use ApiSkeletons\Doctrine\ORM\GraphQL\Filter\Filters; +use ApiSkeletons\Doctrine\ORM\GraphQL\Metadata; use ApiSkeletons\Doctrine\ORM\GraphQL\Type\Entity\Entity; use ApiSkeletons\Doctrine\ORM\GraphQL\Type\Entity\EntityTypeContainer; use ApiSkeletons\Doctrine\ORM\GraphQL\Type\TypeContainer; -use ArrayObject; use Closure; use Doctrine\Common\Collections\Collection; use Doctrine\Common\Collections\Criteria; @@ -38,7 +38,7 @@ public function __construct( protected readonly TypeContainer $typeContainer, protected readonly EntityTypeContainer $entityTypeContainer, protected readonly EventDispatcher $eventDispatcher, - protected readonly ArrayObject $metadata, + protected readonly Metadata $metadata, ) { } diff --git a/src/Resolve/ResolveEntityFactory.php b/src/Resolve/ResolveEntityFactory.php index 94e01a7..fdeaad5 100644 --- a/src/Resolve/ResolveEntityFactory.php +++ b/src/Resolve/ResolveEntityFactory.php @@ -7,8 +7,8 @@ use ApiSkeletons\Doctrine\ORM\GraphQL\Config; use ApiSkeletons\Doctrine\ORM\GraphQL\Event\QueryBuilder as QueryBuilderEvent; use ApiSkeletons\Doctrine\ORM\GraphQL\Filter\QueryBuilder as QueryBuilderFilter; +use ApiSkeletons\Doctrine\ORM\GraphQL\Metadata; use ApiSkeletons\Doctrine\ORM\GraphQL\Type\Entity\Entity; -use ArrayObject; use Closure; use Doctrine\ORM\EntityManager; use Doctrine\ORM\QueryBuilder; @@ -28,7 +28,7 @@ public function __construct( protected readonly Config $config, protected readonly EntityManager $entityManager, protected readonly EventDispatcher $eventDispatcher, - protected readonly ArrayObject $metadata, + protected readonly Metadata $metadata, ) { } diff --git a/src/Services.php b/src/Services.php index 2ff89ba..ac82251 100644 --- a/src/Services.php +++ b/src/Services.php @@ -6,7 +6,6 @@ use ApiSkeletons\Doctrine\ORM\GraphQL\Metadata\GlobalEnable; use ApiSkeletons\Doctrine\ORM\GraphQL\Type\Entity\EntityTypeContainer; -use ArrayObject; use Doctrine\ORM\EntityManager; use League\Event\EventDispatcher; use ReflectionClass; @@ -24,7 +23,8 @@ public function __construct( readonly Config|null $config = null, readonly array $metadataArray = [], ) { - $metadata = new ArrayObject($metadataArray); + $self = $this; + $metadata = new Metadata($metadataArray); $this ->set(EntityManager::class, $entityManager) @@ -42,15 +42,13 @@ static function () use ($config) { ->set(Type\TypeContainer::class, static fn () => new Type\TypeContainer()) ->set( Type\Entity\EntityTypeContainer::class, - static function (Container $container): Type\Entity\EntityTypeContainer { - return (new ReflectionClass(Type\Entity\EntityTypeContainer::class)) - ->newLazyGhost(static function (Type\Entity\EntityTypeContainer $object) use ($container): void { - $object->__construct($container); - }); - }, + (new ReflectionClass(Type\Entity\EntityTypeContainer::class)) + ->newLazyGhost(static function (Type\Entity\EntityTypeContainer $object) use ($self): void { + $object->__construct($self); + }), ) ->set( - 'metadata', + Metadata::class, static function (Container $container) use ($metadata) { return (new Metadata\MetadataFactory( $metadata, @@ -58,104 +56,90 @@ static function (Container $container) use ($metadata) { $container->get(Config::class), $container->get(GlobalEnable::class), $container->get(EventDispatcher::class), - ))(); + ))->getMetadata(); }, ) ->set( Metadata\GlobalEnable::class, - static function (Container $container): Metadata\GlobalEnable { - return (new ReflectionClass(Metadata\GlobalEnable::class)) - ->newLazyGhost(static function (Metadata\GlobalEnable $object) use ($container): void { - $object->__construct( - $container->get(EntityManager::class), - $container->get(Config::class), - $container->get(EventDispatcher::class), - ); - }); - }, + (new ReflectionClass(Metadata\GlobalEnable::class)) + ->newLazyGhost(static function (Metadata\GlobalEnable $object) use ($self): void { + $object->__construct( + $self->get(EntityManager::class), + $self->get(Config::class), + $self->get(EventDispatcher::class), + ); + }), ) ->set( Resolve\FieldResolver::class, - static function (Container $container): Resolve\FieldResolver { - return (new ReflectionClass(Resolve\FieldResolver::class)) - ->newLazyGhost(static function (Resolve\FieldResolver $object) use ($container): void { - $object->__construct( - $container->get(Config::class), - $container->get(Type\Entity\EntityTypeContainer::class), - ); - }); - }, + (new ReflectionClass(Resolve\FieldResolver::class)) + ->newLazyGhost(static function (Resolve\FieldResolver $object) use ($self): void { + $object->__construct( + $self->get(Config::class), + $self->get(Type\Entity\EntityTypeContainer::class), + ); + }), ) ->set( Resolve\ResolveCollectionFactory::class, - static function (Container $container): Resolve\ResolveCollectionFactory { - return (new ReflectionClass(Resolve\ResolveCollectionFactory::class)) - ->newLazyGhost(static function (Resolve\ResolveCollectionFactory $object) use ($container): void { - $object->__construct( - $container->get(EntityManager::class), - $container->get(Config::class), - $container->get(Resolve\FieldResolver::class), - $container->get(Type\TypeContainer::class), - $container->get(EntityTypeContainer::class), - $container->get(EventDispatcher::class), - $container->get('metadata'), - ); - }); - }, + (new ReflectionClass(Resolve\ResolveCollectionFactory::class)) + ->newLazyGhost(static function (Resolve\ResolveCollectionFactory $object) use ($self): void { + $object->__construct( + $self->get(EntityManager::class), + $self->get(Config::class), + $self->get(Resolve\FieldResolver::class), + $self->get(Type\TypeContainer::class), + $self->get(EntityTypeContainer::class), + $self->get(EventDispatcher::class), + $self->get(Metadata::class), + ); + }), ) ->set( Resolve\ResolveEntityFactory::class, - static function (Container $container): Resolve\ResolveEntityFactory { - return (new ReflectionClass(Resolve\ResolveEntityFactory::class)) - ->newLazyGhost(static function (Resolve\ResolveEntityFactory $object) use ($container): void { - $object->__construct( - $container->get(Config::class), - $container->get(EntityManager::class), - $container->get(EventDispatcher::class), - $container->get('metadata'), - ); - }); - }, + (new ReflectionClass(Resolve\ResolveEntityFactory::class)) + ->newLazyGhost(static function (Resolve\ResolveEntityFactory $object) use ($self): void { + $object->__construct( + $self->get(Config::class), + $self->get(EntityManager::class), + $self->get(EventDispatcher::class), + $self->get(Metadata::class), + ); + }), ) ->set( Filter\FilterFactory::class, - static function (Container $container): Filter\FilterFactory { - return (new ReflectionClass(Filter\FilterFactory::class)) - ->newLazyGhost(static function (Filter\FilterFactory $object) use ($container): void { - $object->__construct( - $container->get(Config::class), - $container->get(EntityManager::class), - $container->get(Type\TypeContainer::class), - $container->get(EventDispatcher::class), - ); - }); - }, + (new ReflectionClass(Filter\FilterFactory::class)) + ->newLazyGhost(static function (Filter\FilterFactory $object) use ($self): void { + $object->__construct( + $self->get(Config::class), + $self->get(EntityManager::class), + $self->get(Type\TypeContainer::class), + $self->get(EventDispatcher::class), + ); + }), ) ->set( Hydrator\HydratorContainer::class, - static function (Container $container): Hydrator\HydratorContainer { - return (new ReflectionClass(Hydrator\HydratorContainer::class)) - ->newLazyGhost(static function (Hydrator\HydratorContainer $object) use ($container): void { - $object->__construct( - $container->get(EntityManager::class), - $container->get(Type\Entity\EntityTypeContainer::class), - ); - }); - }, + (new ReflectionClass(Hydrator\HydratorContainer::class)) + ->newLazyGhost(static function (Hydrator\HydratorContainer $object) use ($self): void { + $object->__construct( + $self->get(EntityManager::class), + $self->get(Type\Entity\EntityTypeContainer::class), + ); + }), ) ->set( Input\InputFactory::class, - static function (Container $container): Input\InputFactory { - return (new ReflectionClass(Input\InputFactory::class)) - ->newLazyGhost(static function (Input\InputFactory $object) use ($container): void { - $object->__construct( - $container->get(Config::class), - $container->get(EntityManager::class), - $container->get(Type\Entity\EntityTypeContainer::class), - $container->get(Type\TypeContainer::class), - ); - }); - }, + (new ReflectionClass(Input\InputFactory::class)) + ->newLazyGhost(static function (Input\InputFactory $object) use ($self): void { + $object->__construct( + $self->get(Config::class), + $self->get(EntityManager::class), + $self->get(Type\Entity\EntityTypeContainer::class), + $self->get(Type\TypeContainer::class), + ); + }), ); } diff --git a/src/Type/Entity/Definition.php b/src/Type/Entity/Definition.php new file mode 100644 index 0000000..7d6d1cb --- /dev/null +++ b/src/Type/Entity/Definition.php @@ -0,0 +1,17 @@ + + */ +class Definition extends ArrayObject +{ +} diff --git a/src/Type/Entity/Entity.php b/src/Type/Entity/Entity.php index c83ff0e..e2148ed 100644 --- a/src/Type/Entity/Entity.php +++ b/src/Type/Entity/Entity.php @@ -5,7 +5,6 @@ namespace ApiSkeletons\Doctrine\ORM\GraphQL\Type\Entity; use ApiSkeletons\Doctrine\ORM\GraphQL\Config; -use ApiSkeletons\Doctrine\ORM\GraphQL\Container; use ApiSkeletons\Doctrine\ORM\GraphQL\Event\EntityDefinition; use ApiSkeletons\Doctrine\ORM\GraphQL\Filter\FilterFactory; use ApiSkeletons\Doctrine\ORM\GraphQL\Hydrator\HydratorContainer; @@ -13,7 +12,6 @@ use ApiSkeletons\Doctrine\ORM\GraphQL\Resolve\ResolveCollectionFactory; use ApiSkeletons\Doctrine\ORM\GraphQL\Type\Connection; use ApiSkeletons\Doctrine\ORM\GraphQL\Type\TypeContainer; -use ArrayObject; use Closure; use Doctrine\ORM\EntityManager; use Doctrine\ORM\Mapping\ClassMetadata; @@ -31,43 +29,29 @@ use function ksort; use function ucwords; -use const SORT_REGULAR; - /** * This class is used to build an ObjectType for an entity */ class Entity { - /** @var mixed[] */ - protected array $metadata; /** @var array */ protected array $extractionMap = []; protected ObjectType|null $objectType = null; - protected readonly Config $config; - protected readonly EntityManager $entityManager; - protected readonly EntityTypeContainer $entityTypeContainer; - protected readonly EventDispatcher $eventDispatcher; - protected readonly FieldResolver $fieldResolver; - protected readonly FilterFactory $filterFactory; - protected readonly HydratorContainer $hydratorContainer; - protected readonly ResolveCollectionFactory $resolveCollectionFactory; - protected readonly TypeContainer $typeContainer; + /** @param array $metadata */ public function __construct( - Container $container, - string $typeName, - private string|null $eventName = null, + private string|null $eventName, + protected readonly Config $config, + protected readonly EntityManager $entityManager, + protected readonly EntityTypeContainer $entityTypeContainer, + protected readonly EventDispatcher $eventDispatcher, + protected readonly FieldResolver $fieldResolver, + protected readonly FilterFactory $filterFactory, + protected readonly HydratorContainer $hydratorContainer, + protected readonly ResolveCollectionFactory $resolveCollectionFactory, + protected readonly TypeContainer $typeContainer, + protected readonly array $metadata, ) { - $this->config = $container->get(Config::class); - $this->entityManager = $container->get(EntityManager::class); - $this->entityTypeContainer = $container->get(EntityTypeContainer::class); - $this->eventDispatcher = $container->get(EventDispatcher::class); - $this->fieldResolver = $container->get(FieldResolver::class); - $this->filterFactory = $container->get(FilterFactory::class); - $this->hydratorContainer = $container->get(HydratorContainer::class); - $this->resolveCollectionFactory = $container->get(ResolveCollectionFactory::class); - $this->typeContainer = $container->get(TypeContainer::class); - $this->metadata = $container->get('metadata')[$typeName]; } public function getHydrator(): HydratorInterface @@ -146,8 +130,7 @@ public function getObjectType(): ObjectType $typeName .= '.' . $this->eventName; } - /** @var ArrayObject<'description'|'fields'|'name'|'resolveField', mixed> $arrayObject */ - $arrayObject = new ArrayObject([ + $definition = new Definition([ 'name' => $typeName, 'description' => $this->getDescription(), 'fields' => static fn () => $fields, @@ -158,25 +141,25 @@ public function getObjectType(): ObjectType * Dispatch event to allow modifications to the ObjectType definition */ $this->eventDispatcher->dispatch( - new EntityDefinition($arrayObject, $this->eventName ??= $this->getEntityClass() . '.definition'), + new EntityDefinition($definition, $this->eventName ??= $this->getEntityClass() . '.definition'), ); /** * If sortFields then resolve the fields and sort them */ if ($this->config->getSortFields()) { - if ($arrayObject['fields'] instanceof Closure) { - $arrayObject['fields'] = $arrayObject['fields'](); + if ($definition['fields'] instanceof Closure) { + $definition['fields'] = $definition['fields'](); } - ksort($arrayObject['fields'], SORT_REGULAR); + ksort($definition['fields']); } /** @psalm-suppress InvalidArgument */ $this->objectType = (new ReflectionClass(ObjectType::class)) - ->newLazyGhost(static function (ObjectType $object) use ($arrayObject): void { + ->newLazyGhost(static function (ObjectType $object) use ($definition): void { $object->__construct( - $arrayObject->getArrayCopy(), + $definition->getArrayCopy(), ); }); diff --git a/src/Type/Entity/EntityTypeContainer.php b/src/Type/Entity/EntityTypeContainer.php index b543c00..715d2aa 100644 --- a/src/Type/Entity/EntityTypeContainer.php +++ b/src/Type/Entity/EntityTypeContainer.php @@ -4,8 +4,17 @@ namespace ApiSkeletons\Doctrine\ORM\GraphQL\Type\Entity; +use ApiSkeletons\Doctrine\ORM\GraphQL\Config; use ApiSkeletons\Doctrine\ORM\GraphQL\Container; +use ApiSkeletons\Doctrine\ORM\GraphQL\Filter\FilterFactory; +use ApiSkeletons\Doctrine\ORM\GraphQL\Hydrator\HydratorContainer; +use ApiSkeletons\Doctrine\ORM\GraphQL\Metadata; +use ApiSkeletons\Doctrine\ORM\GraphQL\Resolve\FieldResolver; +use ApiSkeletons\Doctrine\ORM\GraphQL\Resolve\ResolveCollectionFactory; +use ApiSkeletons\Doctrine\ORM\GraphQL\Type\TypeContainer; +use Doctrine\ORM\EntityManager; use GraphQL\Error\Error; +use League\Event\EventDispatcher; use Override; use ReflectionClass; @@ -28,7 +37,7 @@ public function __construct( #[Override] public function has(string $id): bool { - return isset($this->container->get('metadata')[$id]); + return isset($this->container->get(Metadata::class)[$id]); } /** @@ -58,9 +67,17 @@ public function get(string $id, string|null $eventName = null): mixed (new ReflectionClass(Entity::class)) ->newLazyGhost(static function (Entity $object) use ($container, $id, $eventName): void { $object->__construct( - $container, - $id, $eventName, + $container->get(Config::class), + $container->get(EntityManager::class), + $container->get(EntityTypeContainer::class), + $container->get(EventDispatcher::class), + $container->get(FieldResolver::class), + $container->get(FilterFactory::class), + $container->get(HydratorContainer::class), + $container->get(ResolveCollectionFactory::class), + $container->get(TypeContainer::class), + $container->get(Metadata::class)[$id], ); }), ); diff --git a/test/Feature/DriverTest.php b/test/Feature/DriverTest.php index 092f106..a4bede7 100644 --- a/test/Feature/DriverTest.php +++ b/test/Feature/DriverTest.php @@ -6,6 +6,7 @@ use ApiSkeletons\Doctrine\ORM\GraphQL\Config; use ApiSkeletons\Doctrine\ORM\GraphQL\Driver; +use ApiSkeletons\Doctrine\ORM\GraphQL\Metadata; use ApiSkeletons\Doctrine\ORM\GraphQL\Type\Entity\Entity; use ApiSkeletons\Doctrine\ORM\GraphQL\Type\Entity\EntityTypeContainer; use ApiSkeletons\Doctrine\ORM\GraphQL\Type\TypeContainer; @@ -40,7 +41,7 @@ public function testCreateDriverWithoutConfig(): void $entityTypeContainer = $driver->get(EntityTypeContainer::class); $this->assertInstanceOf(Driver::class, $driver); - $this->assertInstanceOf(ArrayObject::class, $driver->get('metadata')); + $this->assertInstanceOf(ArrayObject::class, $driver->get(Metadata::class)); $this->assertInstanceOf(Entity::class, $entityTypeContainer->get(User::class)); $this->assertInstanceOf(Entity::class, $entityTypeContainer->get(Artist::class)); $this->assertInstanceOf(Entity::class, $entityTypeContainer->get(Performance::class)); @@ -59,7 +60,7 @@ public function testCreateDriverWithConfig(): void $driver = new Driver($this->getEntityManager(), $config, [], $container); $this->assertInstanceOf(Driver::class, $driver); - $this->assertInstanceOf(ArrayObject::class, $driver->get('metadata')); + $this->assertInstanceOf(ArrayObject::class, $driver->get(Metadata::class)); } public function testNonDefaultGroup(): void diff --git a/test/Feature/Event/BuildMetadataTest.php b/test/Feature/Event/BuildMetadataTest.php index 76ac633..047d5d5 100644 --- a/test/Feature/Event/BuildMetadataTest.php +++ b/test/Feature/Event/BuildMetadataTest.php @@ -6,7 +6,8 @@ use ApiSkeletons\Doctrine\ORM\GraphQL\Config; use ApiSkeletons\Doctrine\ORM\GraphQL\Driver; -use ApiSkeletons\Doctrine\ORM\GraphQL\Event\Metadata; +use ApiSkeletons\Doctrine\ORM\GraphQL\Event\Metadata as MetadataEvent; +use ApiSkeletons\Doctrine\ORM\GraphQL\Metadata; use ApiSkeletonsTest\Doctrine\ORM\GraphQL\TestCase; use ArrayObject; use League\Event\EventDispatcher; @@ -25,7 +26,7 @@ public function testEvent(): void $driver->get(EventDispatcher::class)->subscribeTo( 'metadata.build', - static function (Metadata $event) use ($test): void { + static function (MetadataEvent $event) use ($test): void { $metadata = $event->getMetadata(); $test->assertEquals('metadata.build', $event->eventName()); @@ -36,7 +37,7 @@ static function (Metadata $event) use ($test): void { }, ); - $metadata = $driver->get('metadata'); + $metadata = $driver->get(Metadata::class); $this->assertInstanceOf(ArrayObject::class, $metadata); $test->assertEquals(100, $metadata['ApiSkeletonsTest\Doctrine\ORM\GraphQL\Entity\Performance']['limit']); @@ -50,7 +51,7 @@ public function testEventWithGlobalEnable(): void $driver->get(EventDispatcher::class)->subscribeTo( 'metadata.build', - static function (Metadata $event) use ($test): void { + static function (MetadataEvent $event) use ($test): void { $metadata = $event->getMetadata(); $test->assertEquals('metadata.build', $event->eventName()); @@ -61,7 +62,7 @@ static function (Metadata $event) use ($test): void { }, ); - $metadata = $driver->get('metadata'); + $metadata = $driver->get(Metadata::class); $this->assertInstanceOf(ArrayObject::class, $metadata); $test->assertEquals(100, $metadata['ApiSkeletonsTest\Doctrine\ORM\GraphQL\Entity\Performance']['limit']); diff --git a/test/Feature/Metadata/CachingTest.php b/test/Feature/Metadata/CachingTest.php index 0561ac8..a2d0602 100644 --- a/test/Feature/Metadata/CachingTest.php +++ b/test/Feature/Metadata/CachingTest.php @@ -6,6 +6,7 @@ use ApiSkeletons\Doctrine\ORM\GraphQL\Config; use ApiSkeletons\Doctrine\ORM\GraphQL\Driver; +use ApiSkeletons\Doctrine\ORM\GraphQL\Metadata; use ApiSkeletons\Doctrine\ORM\GraphQL\Type\Entity\Entity; use ApiSkeletons\Doctrine\ORM\GraphQL\Type\Entity\EntityTypeContainer; use ApiSkeletonsTest\Doctrine\ORM\GraphQL\Entity\Artist; @@ -19,7 +20,7 @@ public function testCacheMetadata(): void { $driver = new Driver($this->getEntityManager()); - $metadata = $driver->get('metadata'); + $metadata = $driver->get(Metadata::class); unset($driver); @@ -30,7 +31,7 @@ public function testCacheMetadata(): void public function testStaticMetadata(): void { $driver = new Driver($this->getEntityManager(), new Config(['group' => 'StaticMetadata'])); - $generatedMetadata = $driver->get('metadata')->getArrayCopy(); + $generatedMetadata = $driver->get(Metadata::class)->getArrayCopy(); $metadata = [ 'ApiSkeletonsTest\Doctrine\ORM\GraphQL\Entity\User' => [ @@ -63,7 +64,7 @@ public function testStaticMetadata(): void $driver = new Driver($this->getEntityManager(), new Config(['group' => 'StaticMetadata']), $metadata); $this->assertEquals($generatedMetadata, $metadata); - $this->assertEquals($generatedMetadata, $driver->get('metadata')->getArrayCopy()); + $this->assertEquals($generatedMetadata, $driver->get(Metadata::class)->getArrayCopy()); $this->assertInstanceOf(Entity::class, $driver->get(EntityTypeContainer::class)->get(User::class)); diff --git a/test/Feature/Metadata/DuplicateGroupTest.php b/test/Feature/Metadata/DuplicateGroupTest.php index fdd73bc..c6d0eef 100644 --- a/test/Feature/Metadata/DuplicateGroupTest.php +++ b/test/Feature/Metadata/DuplicateGroupTest.php @@ -6,6 +6,7 @@ use ApiSkeletons\Doctrine\ORM\GraphQL\Config; use ApiSkeletons\Doctrine\ORM\GraphQL\Driver; +use ApiSkeletons\Doctrine\ORM\GraphQL\Metadata; use ApiSkeletonsTest\Doctrine\ORM\GraphQL\TestCase; use AssertionError; @@ -17,7 +18,7 @@ public function testDuplicateEntityAttributeForGroup(): void $driver = new Driver($this->getEntityManager(), new Config(['group' => 'DuplicateGroup'])); - $driver->get('metadata'); + $driver->get(Metadata::class); } public function testDuplicateEntityAttributeForField(): void @@ -26,7 +27,7 @@ public function testDuplicateEntityAttributeForField(): void $driver = new Driver($this->getEntityManager(), new Config(['group' => 'DuplicateGroupField'])); - $driver->get('metadata'); + $driver->get(Metadata::class); } public function testDuplicateEntityAttributeForAssociation(): void @@ -35,6 +36,6 @@ public function testDuplicateEntityAttributeForAssociation(): void $driver = new Driver($this->getEntityManager(), new Config(['group' => 'DuplicateGroupAssociation'])); - $driver->get('metadata'); + $driver->get(Metadata::class); } }