Completed
Push — master ( d01340...7e7fa7 )
by Portey
07:36
created

StarWarsTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 155
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 4

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 2
c 2
b 0
f 0
lcom 0
cbo 4
dl 0
loc 155
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testSchema() 0 9 1
B dataProvider() 0 133 1
1
<?php
2
/**
3
 * Date: 07.12.15
4
 *
5
 * @author Portey Vasil <[email protected]>
6
 */
7
8
namespace Youshido\Tests;
9
10
11
use Youshido\GraphQL\Processor;
12
use Youshido\GraphQL\Validator\ResolveValidator\ResolveValidator;
13
use Youshido\Tests\Schema\Schema;
14
15
class StarWarsTest extends \PHPUnit_Framework_TestCase
16
{
17
18
    /**
19
     * @param $query
20
     * @param $validResult
21
     * @param $variables
22
     *
23
     * @dataProvider dataProvider
24
     */
25
    public function testSchema($query, $validResult, $variables)
26
    {
27
        $processor = new Processor(new ResolveValidator());
28
        $processor->setSchema(new Schema());
29
30
        $processor->processQuery($query, $variables);
31
32
        $this->assertEquals($processor->getResponseData(), $validResult);
33
    }
34
35
36
    public function dataProvider()
37
    {
38
        return [
39
            [
40
                'query {
41
                  hero {
42
                    name
43
                  }
44
              }',
45
                ['data' => [
46
                    'hero' => [
47
                        'name' => 'R2-D2'
48
                    ]
49
                ]],
50
                []
51
            ],
52
            [
53
                'query {
54
                  hero {
55
                    id,
56
                    name,
57
                    friends {
58
                      name
59
                    }
60
                  }
61
                }',
62
                ['data' => [
63
                    'hero' => [
64
                        'id'      => '2001',
65
                        'name'    => 'R2-D2',
66
                        'friends' => [
67
                            [
68
                                'name' => 'Luke Skywalker',
69
                            ],
70
                            [
71
                                'name' => 'Han Solo',
72
                            ],
73
                            [
74
                                'name' => 'Leia Organa',
75
                            ],
76
                        ]
77
                    ]
78
                ]],
79
                []
80
            ],
81
            [
82
                '{
83
                  hero {
84
                    name,
85
                    friends {
86
                      name,
87
                      appearsIn,
88
                      friends {
89
                        name
90
                      }
91
                    }
92
                  }
93
                }',
94
                [
95
                    'data' => [
96
                        'hero' => [
97
                            'name'    => 'R2-D2',
98
                            'friends' => [
99
                                [
100
                                    'name'      => 'Luke Skywalker',
101
                                    'appearsIn' => ['NEWHOPE', 'EMPIRE', 'JEDI',],
102
                                    'friends'   => [
103
                                        ['name' => 'Han Solo',],
104
                                        ['name' => 'Leia Organa',],
105
                                        ['name' => 'C-3PO',],
106
                                        ['name' => 'R2-D2',],
107
                                    ],
108
                                ],
109
                                [
110
                                    'name'      => 'Han Solo',
111
                                    'appearsIn' => ['NEWHOPE', 'EMPIRE', 'JEDI'],
112
                                    'friends'   => [
113
                                        ['name' => 'Luke Skywalker',],
114
                                        ['name' => 'Leia Organa'],
115
                                        ['name' => 'R2-D2',],
116
                                    ]
117
                                ],
118
                                [
119
                                    'name'      => 'Leia Organa',
120
                                    'appearsIn' => ['NEWHOPE', 'EMPIRE', 'JEDI'],
121
                                    'friends'   =>
122
                                        [
123
                                            ['name' => 'Luke Skywalker',],
124
                                            ['name' => 'Han Solo',],
125
                                            ['name' => 'C-3PO',],
126
                                            ['name' => 'R2-D2',],
127
                                        ],
128
                                ],
129
                            ],
130
                        ]
131
                    ]
132
                ],
133
                []
134
            ],
135
            [
136
                '{
137
                  human(id: "1000") {
138
                    name
139
                  }
140
                }',
141
                [
142
                    'data' => [
143
                        'human' => [
144
                            'name' => 'Luke Skywalker'
145
                        ]
146
                    ]
147
                ],
148
                []
149
            ],
150
            [
151
                '{
152
                  human(id: $someId) {
153
                    name
154
                  }
155
                }',
156
                [
157
                    'data' => [
158
                        'human' => [
159
                            'name' => 'Luke Skywalker'
160
                        ]
161
                    ]
162
                ],
163
                [
164
                    'someId' => '1000'
165
                ]
166
            ]
167
        ];
168
    }
169
}