RequestValidatorTest   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 110
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 11

Importance

Changes 0
Metric Value
wmc 2
lcom 0
cbo 11
dl 0
loc 110
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testInvalidRequests() 0 4 1
B invalidRequestProvider() 0 94 1
1
<?php
2
/**
3
 * Date: 27.10.16
4
 *
5
 * @author Portey Vasil <[email protected]>
6
 */
7
8
namespace Youshido\Tests\Library\Validator;
9
10
11
use Youshido\GraphQL\Execution\Request;
12
use Youshido\GraphQL\Parser\Ast\Argument;
13
use Youshido\GraphQL\Parser\Ast\ArgumentValue\Variable;
14
use Youshido\GraphQL\Parser\Ast\ArgumentValue\VariableReference;
15
use Youshido\GraphQL\Parser\Ast\Field;
16
use Youshido\GraphQL\Parser\Ast\Fragment;
17
use Youshido\GraphQL\Parser\Ast\FragmentReference;
18
use Youshido\GraphQL\Parser\Ast\Query;
19
use Youshido\GraphQL\Parser\Location;
20
use Youshido\GraphQL\Validator\RequestValidator\RequestValidator;
21
22
class RequestValidatorTest extends \PHPUnit_Framework_TestCase
23
{
24
25
    /**
26
     * @expectedException \Youshido\GraphQL\Exception\Parser\InvalidRequestException
27
     * @dataProvider invalidRequestProvider
28
     *
29
     * @param Request $request
30
     */
31
    public function testInvalidRequests(Request $request)
32
    {
33
        (new RequestValidator())->validate($request);
34
    }
35
36
    public function invalidRequestProvider()
37
    {
38
        $variable1 = (new Variable('test', 'Int', false, false, true, new Location(1, 1)))->setUsed(true);
39
        $variable2 = (new Variable('test2', 'Int', false, false, true, new Location(1, 1)))->setUsed(true);
40
        $variable3 = (new Variable('test3', 'Int', false, false, true, new Location(1, 1)))->setUsed(false);
41
42
        return [
43
            [
44
                new Request([
45
                    'queries'            => [
46
                        new Query('test', null, [], [
47
                            new FragmentReference('reference', new Location(1, 1))
48
                        ], [], new Location(1, 1))
49
                    ],
50
                    'fragmentReferences' => [
51
                        new FragmentReference('reference', new Location(1, 1))
52
                    ]
53
                ])
54
            ],
55
            [
56
                new Request([
57
                    'queries'            => [
58
                        new Query('test', null, [], [
59
                            new FragmentReference('reference', new Location(1, 1)),
60
                            new FragmentReference('reference2', new Location(1, 1)),
61
                        ], [], new Location(1, 1))
62
                    ],
63
                    'fragments'          => [
64
                        new Fragment('reference', 'TestType', [], [], new Location(1, 1))
65
                    ],
66
                    'fragmentReferences' => [
67
                        new FragmentReference('reference', new Location(1, 1)),
68
                        new FragmentReference('reference2', new Location(1, 1))
69
                    ]
70
                ])
71
            ],
72
            [
73
                new Request([
74
                    'queries'            => [
75
                        new Query('test', null, [], [
76
                            new FragmentReference('reference', new Location(1, 1)),
77
                        ], [], new Location(1, 1))
78
                    ],
79
                    'fragments'          => [
80
                        new Fragment('reference', 'TestType', [], [], new Location(1, 1)),
81
                        new Fragment('reference2', 'TestType', [], [], new Location(1, 1))
82
                    ],
83
                    'fragmentReferences' => [
84
                        new FragmentReference('reference', new Location(1, 1))
85
                    ]
86
                ])
87
            ],
88
            [
89
                new Request([
90
                    'queries'            => [
91
                        new Query('test', null,
92
                            [
93
                                new Argument('test', new VariableReference('test', null, new Location(1, 1)), new Location(1, 1))
94
                            ],
95
                            [
96
                                new Field('test', null, [], [], new Location(1, 1))
97
                            ],
98
                            [],
99
                            new Location(1, 1)
100
                        )
101
                    ],
102
                    'variableReferences' => [
103
                        new VariableReference('test', null, new Location(1, 1))
104
                    ]
105
                ], ['test' => 1])
106
            ],
107
            [
108
                new Request([
109
                    'queries'            => [
110
                        new Query('test', null, [
111
                            new Argument('test', new VariableReference('test', $variable1, new Location(1, 1)), new Location(1, 1)),
112
                            new Argument('test2', new VariableReference('test2', $variable2, new Location(1, 1)), new Location(1, 1)),
113
                        ], [
114
                            new Field('test', null, [], [], new Location(1, 1))
115
                        ], [], new Location(1,1))
116
                    ],
117
                    'variables'          => [
118
                        $variable1,
119
                        $variable2,
120
                        $variable3
121
                    ],
122
                    'variableReferences' => [
123
                        new VariableReference('test', $variable1, new Location(1, 1)),
124
                        new VariableReference('test2', $variable2, new Location(1, 1))
125
                    ]
126
                ], ['test' => 1, 'test2' => 2])
127
            ]
128
        ];
129
    }
130
131
}
132