/
CachingTest.php
66 lines (55 loc) · 2.55 KB
/
CachingTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
declare(strict_types=1);
namespace ApiSkeletonsTest\Doctrine\GraphQL\Feature\Metadata;
use ApiSkeletons\Doctrine\GraphQL\Driver;
use ApiSkeletons\Doctrine\GraphQL\Type\Entity;
use ApiSkeletons\Doctrine\GraphQL\Type\TypeManager;
use ApiSkeletonsTest\Doctrine\GraphQL\AbstractTest;
use ApiSkeletonsTest\Doctrine\GraphQL\Entity\Artist;
use ApiSkeletonsTest\Doctrine\GraphQL\Entity\User;
use GraphQL\Error\Error;
class CachingTest extends AbstractTest
{
public function testCacheMetadata(): void
{
$driver = new Driver($this->getEntityManager());
$metadata = $driver->get('metadata');
unset($driver);
$driver = new Driver($this->getEntityManager(), null, $metadata->getArrayCopy());
$this->assertInstanceOf(Entity::class, $driver->get(TypeManager::class)->build(Entity::class, User::class));
}
public function testStaticMetadata(): void
{
$metadata = [
'ApiSkeletonsTest\Doctrine\GraphQL\Entity\User' => [
'entityClass' => 'ApiSkeletonsTest\Doctrine\GraphQL\Entity\User',
'documentation' => '',
'byValue' => 1,
'namingStrategy' => null,
'fields' => [
'name' => [
'strategy' => 'ApiSkeletons\Doctrine\GraphQL\Hydrator\Strategy\FieldDefault',
'documentation' => '',
],
'recordings' => [
'strategy' => 'ApiSkeletons\Doctrine\GraphQL\Hydrator\Strategy\AssociationDefault',
'excludeCriteria' => ['eq'],
'documentation' => '',
],
],
'strategies' => [
'name' => 'ApiSkeletons\Doctrine\GraphQL\Hydrator\Strategy\FieldDefault',
'email' => 'ApiSkeletons\Doctrine\GraphQL\Hydrator\Strategy\FieldDefault',
'id' => 'ApiSkeletons\Doctrine\GraphQL\Hydrator\Strategy\ToInteger',
'recordings' => 'ApiSkeletons\Doctrine\GraphQL\Hydrator\Strategy\AssociationDefault',
],
'filters' => [],
'typeName' => 'User',
],
];
$driver = new Driver($this->getEntityManager(), null, $metadata);
$this->assertInstanceOf(Entity::class, $driver->get(TypeManager::class)->build(Entity::class, User::class));
$this->expectException(Error::class);
$this->assertInstanceOf(Entity::class, $driver->get(TypeManager::class)->build(Entity::class, Artist::class));
}
}