Scrutinizer GitHub App not installed

We could not synchronize checks via GitHub's checks API since Scrutinizer's GitHub App is not installed for this repository.

Install GitHub App

Passed
Pull Request — master (#277)
by Jérémiah
22:38 queued 19:05
created

ResolverMaps   A

Complexity

Total Complexity 13

Size/Duplication

Total Lines 65
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 13
lcom 1
cbo 2
dl 0
loc 65
ccs 28
cts 28
cp 1
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A resolve() 0 9 3
A isResolvable() 0 10 3
A covered() 0 10 2
A checkResolverMaps() 0 12 4
1
<?php
2
3
namespace Overblog\GraphQLBundle\Resolver;
4
5
final class ResolverMaps implements ResolverMapInterface
6
{
7
    /** @var ResolverMapInterface[] */
8
    private $resolverMaps;
9
10 77
    public function __construct(array $resolverMaps)
11
    {
12 77
        self::checkResolverMaps($resolverMaps);
13 72
        $this->resolverMaps = $resolverMaps;
14 72
    }
15
16
    /**
17
     * {@inheritdoc}
18
     */
19 7
    public function resolve($typeName, $fieldName)
20
    {
21 7
        foreach ($this->resolverMaps as $resolverMap) {
22 6
            if ($resolverMap->isResolvable($typeName, $fieldName)) {
23 6
                return $resolverMap->resolve($typeName, $fieldName);
24
            }
25
        }
26 1
        throw new UnresolvableException(sprintf('Field "%s.%s" could not be resolved.', $typeName, $fieldName));
27
    }
28
29
    /**
30
     * {@inheritdoc}
31
     */
32 6
    public function isResolvable($typeName, $fieldName)
33
    {
34 6
        foreach ($this->resolverMaps as $resolverMap) {
35 6
            if ($resolverMap->isResolvable($typeName, $fieldName)) {
36 6
                return true;
37
            }
38
        }
39
40 6
        return false;
41
    }
42
43
    /**
44
     * {@inheritdoc}
45
     */
46 71
    public function covered($typeName = null)
47
    {
48 71
        $covered = [];
49 71
        foreach ($this->resolverMaps as $resolverMap) {
50 6
            $covered = array_merge($covered, $resolverMap->covered($typeName));
51
        }
52 71
        $covered = array_unique($covered);
53
54 71
        return $covered;
55
    }
56
57 77
    private static function checkResolverMaps(array $resolverMaps)
58
    {
59 77
        foreach ($resolverMaps as $resolverMap) {
60 11
            if (!$resolverMap instanceof ResolverMapInterface) {
61 5
                throw new \InvalidArgumentException(sprintf(
62 5
                    'ResolverMap should be instance of "%s" but got "%s".',
63 5
                    ResolverMapInterface::class,
64 11
                    is_object($resolverMap) ? get_class($resolverMap) : gettype($resolverMap)
65
                ));
66
            }
67
        }
68 72
    }
69
}
70