Completed
Push — master ( 158f00...4ee9ec )
by San
06:17 queued 02:55
created

HttpCallResultPoolResolver::resolveArguments()   B

Complexity

Conditions 5
Paths 2

Size

Total Lines 16
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 16
rs 8.8571
c 0
b 0
f 0
cc 5
eloc 10
nc 2
nop 2
1
<?php
2
3
namespace Behatch\HttpCall;
4
5
use Behat\Behat\Context\Argument\ArgumentResolver;
6
7
class HttpCallResultPoolResolver implements ArgumentResolver
8
{
9
    private $dependencies;
10
11
    public function __construct(/* ... */)
12
    {
13
        $this->dependencies = [];
14
15
        foreach (func_get_args() as $param) {
16
            $this->dependencies[get_class($param)] = $param;
17
        }
18
    }
19
20
    public function resolveArguments(\ReflectionClass $classReflection, array $arguments)
21
    {
22
        $constructor = $classReflection->getConstructor();
23
        if ($constructor !== null) {
24
            $parameters = $constructor->getParameters();
25
            foreach ($parameters as $parameter) {
26
                if (
27
                    null !== $parameter->getClass()
28
                    && isset($this->dependencies[$parameter->getClass()->name])
29
                ) {
30
                    $arguments[$parameter->name] = $this->dependencies[$parameter->getClass()->name];
31
                }
32
            }
33
        }
34
        return $arguments;
35
    }
36
}
37