GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — master ( aa4ff3...5266c0 )
by Alex
22:35
created

testResolveActionArguments()   B

Complexity

Conditions 3
Paths 4

Size

Total Lines 35
Code Lines 23

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 35
rs 8.8571
c 0
b 0
f 0
cc 3
eloc 23
nc 4
nop 3
1
<?php
2
/**
3
 * This file is part of the Global Trading Technologies Ltd workflow-extension-bundle package.
4
 *
5
 * For the full copyright and license information, please view the LICENSE
6
 * file that was distributed with this source code.
7
 *
8
 * (c) fduch <[email protected]>
9
 *
10
 * Date: 17.10.16
11
 */
12
13
namespace Gtt\Bundle\WorkflowExtensionsBundle\Tests\Trigger\Event;
14
15
use Gtt\Bundle\WorkflowExtensionsBundle\DependencyInjection\Enum\ActionArgumentTypes;
16
use Gtt\Bundle\WorkflowExtensionsBundle\Exception\ActionException;
17
use Gtt\Bundle\WorkflowExtensionsBundle\Trigger\Event\AbstractActionListener;
18
use Gtt\Bundle\WorkflowExtensionsBundle\WorkflowContext;
19
use Gtt\Bundle\WorkflowExtensionsBundle\WorkflowSubject\SubjectManipulator;
20
use Psr\Log\LoggerInterface;
21
use ReflectionMethod;
22
use Symfony\Component\EventDispatcher\Event;
23
use Symfony\Component\ExpressionLanguage\ExpressionLanguage;
24
use Symfony\Component\Workflow\Registry;
25
26
class AbstractActionListenerTest extends \PHPUnit_Framework_TestCase
27
{
28
    /**
29
     * @dataProvider argumentsProvider
30
     */
31
    public function testResolveActionArguments(array $inputArgArray, $expectedResult, ExpressionLanguage $actionLanguage = null)
32
    {
33
        if ($actionLanguage) {
34
            /** @var AbstractActionListener $listener */
35
            $listener = self::getMockForAbstractClass(
36
                AbstractActionListener::class,
37
                [
38
                    $this->getMock(ExpressionLanguage::class),
39
                    $this->getMockBuilder(SubjectManipulator::class)->disableOriginalConstructor()->getMock(),
40
                    $this->getMock(Registry::class),
41
                    $this->getMock(LoggerInterface::class),
42
                    $actionLanguage
43
                ]
44
            );
45
        } else {
46
            /** @var AbstractActionListener $listener */
47
            $listener = self::getMockForAbstractClass(AbstractActionListener::class, [], "", false);
48
        }
49
50
        $resolveActionArgumentsMethodRef = new ReflectionMethod($listener, 'resolveActionArguments');
51
        $resolveActionArgumentsMethodRef->setAccessible(true);
52
53
        $invokeArgs = [
54
            'actionName',
55
            $inputArgArray,
56
            new Event(),
57
            $this->getMockBuilder(WorkflowContext::class)->disableOriginalConstructor()->getMock()
58
        ];
59
        if ($expectedResult instanceof \Exception) {
60
            self::setExpectedException(get_class($expectedResult));
61
            $resolveActionArgumentsMethodRef->invokeArgs($listener, $invokeArgs);
62
        } else {
63
            self::assertEquals($expectedResult, $resolveActionArgumentsMethodRef->invokeArgs($listener, $invokeArgs));
64
        }
65
    }
66
67
    public function argumentsProvider()
68
    {
69
        $data = [];
70
71
        // correct deep array
72
        $validExpression1 = 'e1';
73
        $validExpression2 = 'e2';
74
        $expressionResult1 = 'r1';
75
        $expressionResult2 = 'r2';
76
        $actionLanguage = $this->getMock(ExpressionLanguage::class);
77
        $actionLanguage->expects(self::exactly(2))->method('evaluate')->will(
78
            self::onConsecutiveCalls($expressionResult1, $expressionResult2)
79
        );
80
81
        $data[] = [
82
            [
83
                [
84
                    'type'  => ActionArgumentTypes::TYPE_EXPRESSION,
85
                    'value' => $validExpression1
86
                ],
87
                [
88
                    'type'  => ActionArgumentTypes::TYPE_SCALAR,
89
                    'value' => 123e4
90
                ],
91
                [
92
                    'type'  => ActionArgumentTypes::TYPE_ARRAY,
93
                    'value' =>
94
                        [
95
                            [
96
                                'type'  => ActionArgumentTypes::TYPE_ARRAY,
97
                                'value' =>
98
                                    [
99
                                        [
100
                                            'type'  => ActionArgumentTypes::TYPE_EXPRESSION,
101
                                            'value' => $validExpression2
102
                                        ]
103
                                    ]
104
                            ],
105
                            [
106
                                'type'  => ActionArgumentTypes::TYPE_SCALAR,
107
                                'value' => "string"
108
                            ],
109
                            [
110
                                'type'  => ActionArgumentTypes::TYPE_SCALAR,
111
                                'value' => 12
112
                            ]
113
                        ]
114
                ]
115
            ],
116
            [
117
                $expressionResult1,
118
                123e4,
119
                [
120
                    [
121
                        $expressionResult2
122
                    ],
123
                    'string',
124
                    12
125
                ]
126
            ],
127
            $actionLanguage
128
        ];
129
130
        // invalid expression 1
131
        $actionLanguage = $this->getMock(ExpressionLanguage::class);
132
        $actionLanguage->expects(self::once())->method('evaluate')->willReturn(new \StdClass());
133
        $data[] = [
134
            [
135
                [
136
                    'type'  => ActionArgumentTypes::TYPE_EXPRESSION,
137
                    'value' => "some exp"
138
                ]
139
            ],
140
            new ActionException(),
141
            $actionLanguage
142
        ];
143
144
        // invalid expression 2
145
        $actionLanguage = $this->getMock(ExpressionLanguage::class);
146
        $actionLanguage->expects(self::once())->method('evaluate')->willReturn(["test" => 1]);
147
        $data[] = [
148
            [
149
                [
150
                    'type'  => ActionArgumentTypes::TYPE_EXPRESSION,
151
                    'value' => "some exp"
152
                ]
153
            ],
154
            new ActionException(),
155
            $actionLanguage
156
        ];
157
158
        // associative array keys are dropped
159
        $data[] = [
160
            [
161
                [
162
                    'type'  => ActionArgumentTypes::TYPE_ARRAY,
163
                    'value' => [
164
                        "test" => [
165
                            'type'  => ActionArgumentTypes::TYPE_SCALAR,
166
                            'value' => 123
167
                        ]
168
                    ]
169
                ]
170
            ],
171
            [[123]]
172
        ];
173
174
        return $data;
175
    }
176
}
177