Completed
Push — master ( 9eea1d...6105f5 )
by Lucas
07:27
created

JsonDefinitionRelTest::testGetDefAsArray()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 24
Code Lines 17

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 24
rs 8.9713
cc 1
eloc 17
nc 1
nop 0
1
<?php
2
/**
3
 * JsonDefinitionRelTest class file
4
 */
5
6
namespace Graviton\GeneratorBundle\Tests\Definition;
7
8
use Graviton\GeneratorBundle\Definition\JsonDefinitionRel;
9
use Graviton\GeneratorBundle\Definition\Schema;
10
11
/**
12
 * JsonDefinitionRel test
13
 *
14
 * @author   List of contributors <https://github.com/libgraviton/graviton/graphs/contributors>
15
 * @license  http://opensource.org/licenses/gpl-license.php GNU Public License
16
 * @link     http://swisscom.ch
17
 */
18
class JsonDefinitionRelTest extends BaseJsonDefinitionFieldTest
19
{
20
    /**
21
     * Test JsonDefinitionRel::getName()
22
     *
23
     * @return void
24
     */
25 View Code Duplication
    public function testGetName()
26
    {
27
        $name = __METHOD__;
28
        $definition = new Schema\Field();
29
30
        $field = new JsonDefinitionRel($name, $definition);
31
        $this->assertEquals($name, $field->getName());
32
    }
33
34
    /**
35
     * Test JsonDefinitionRel::getType()
36
     *
37
     * @return void
38
     */
39 View Code Duplication
    public function testGetType()
40
    {
41
        $type = __METHOD__;
42
        $definition = (new Schema\Field())->setType('class:'.$type);
43
44
        $field = new JsonDefinitionRel('name', $definition);
45
        $this->assertEquals($type, $field->getType());
46
    }
47
48
    /**
49
     * Test JsonDefinitionRel::getTypeDoctrine()
50
     *
51
     * @return void
52
     */
53 View Code Duplication
    public function testGetTypeDoctrine()
54
    {
55
        $type = __METHOD__;
56
        $definition = (new Schema\Field())->setType('class:'.$type);
57
58
        $field = new JsonDefinitionRel('name', $definition);
59
        $this->assertEquals($type, $field->getTypeDoctrine());
60
    }
61
62
    /**
63
     * Test JsonDefinitionRel::getTypeSerializer()
64
     *
65
     * @return void
66
     */
67 View Code Duplication
    public function testGetTypeSerializer()
68
    {
69
        $type = __METHOD__;
70
        $definition = (new Schema\Field())->setType('class:'.$type);
71
72
        $field = new JsonDefinitionRel('name', $definition);
73
        $this->assertEquals($type, $field->getTypeSerializer());
74
    }
75
76
    /**
77
     * Test JsonDefinitionRel::getDefAsArray()
78
     *
79
     * @return void
80
     */
81
    public function testGetDefAsArray()
82
    {
83
        $definition = $this->getBaseField();
84
        $relation = (new Schema\Relation())
85
            ->setType(__METHOD__.__LINE__);
86
87
        $field = new JsonDefinitionRel('name', $definition, $relation);
88
        $this->assertEquals(
89
            array_replace(
90
                $this->getBaseDefAsArray($definition),
91
                [
92
                    'name'              => $field->getName(),
93
                    'type'              => $field->getType(),
94
                    'exposedName'       => $definition->getExposeAs(),
95
                    'doctrineType'      => $field->getTypeDoctrine(),
96
                    'serializerType'    => $field->getTypeSerializer(),
97
                    'relType'           => $relation->getType(),
98
                    'isClassType'       => true,
99
                    'searchable'        => false,
100
                ]
101
            ),
102
            $field->getDefAsArray()
103
        );
104
    }
105
}
106