Passed
Pull Request — master (#43)
by David
01:47
created

RecursiveTypeMapperTest::testMapClassToType()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 20
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 12
dl 0
loc 20
rs 9.8666
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace TheCodingMachine\GraphQL\Controllers\Mappers;
4
5
use GraphQL\Type\Definition\InputObjectType;
6
use GraphQL\Type\Definition\ObjectType;
7
use PHPUnit\Framework\TestCase;
8
use TheCodingMachine\GraphQL\Controllers\Fixtures\Interfaces\ClassA;
9
use TheCodingMachine\GraphQL\Controllers\Fixtures\Interfaces\ClassB;
10
use TheCodingMachine\GraphQL\Controllers\Fixtures\Interfaces\ClassC;
11
12
class RecursiveTypeMapperTest extends TestCase
13
{
14
15
    public function testMapClassToType()
16
    {
17
        $objectType = new ObjectType([
18
            'name' => 'Foobar'
19
        ]);
20
21
        $typeMapper = new StaticTypeMapper();
22
        $typeMapper->setTypes([
23
            ClassB::class => $objectType
24
        ]);
25
26
        $recursiveTypeMapper = new RecursiveTypeMapper($typeMapper);
27
28
        $this->assertFalse($typeMapper->canMapClassToType(ClassC::class));
29
        $this->assertTrue($recursiveTypeMapper->canMapClassToType(ClassC::class));
30
        $this->assertSame($objectType, $recursiveTypeMapper->mapClassToType(ClassC::class));
31
32
        $this->assertFalse($recursiveTypeMapper->canMapClassToType(ClassA::class));
33
        $this->expectException(CannotMapTypeException::class);
34
        $recursiveTypeMapper->mapClassToType(ClassA::class);
35
    }
36
37
    public function testMapClassToInputType()
38
    {
39
        $inputObjectType = new InputObjectType([
40
            'name' => 'Foobar'
41
        ]);
42
43
        $typeMapper = new StaticTypeMapper();
44
        $typeMapper->setInputTypes([
45
            ClassB::class => $inputObjectType
46
        ]);
47
48
        $recursiveTypeMapper = new RecursiveTypeMapper($typeMapper);
49
50
        $this->assertFalse($recursiveTypeMapper->canMapClassToInputType(ClassC::class));
51
52
        $this->expectException(CannotMapTypeException::class);
53
        $recursiveTypeMapper->mapClassToInputType(ClassC::class);
54
    }
55
}
56