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

Completed
Pull Request — master (#494)
by Jérémiah
18:56
created

ResolverMaps   A

Complexity

Total Complexity 13

Size/Duplication

Total Lines 60
Duplicated Lines 0 %

Test Coverage

Coverage 51.85%

Importance

Changes 0
Metric Value
wmc 13
eloc 23
dl 0
loc 60
ccs 14
cts 27
cp 0.5185
rs 10
c 0
b 0
f 0

5 Methods

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