Completed
Push — master ( 5927eb...1e13db )
by
unknown
04:04
created

AnyOf   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Test Coverage

Coverage 93.33%
Metric Value
dl 0
loc 26
ccs 14
cts 15
cp 0.9333
rs 10
wmc 4
lcom 0
cbo 3

1 Method

Rating   Name   Duplication   Size   Complexity  
A validate() 0 20 4
1
<?php
2
3
namespace League\JsonGuard\Constraints;
4
5
use League\JsonGuard\ErrorCode;
6
use League\JsonGuard\SubSchemaValidatorFactory;
7
use League\JsonGuard\ValidationError;
8
9
class AnyOf implements ContainerInstanceConstraint
10
{
11
    /**
12
     * {@inheritdoc}
13
     */
14 4
    public static function validate($data, $parameter, SubSchemaValidatorFactory $validatorFactory, $pointer = null)
15
    {
16 4
        if (!is_array($parameter)) {
17
            return null;
18
        }
19
20 4
        foreach ($parameter as $schema) {
21 4
            $validator = $validatorFactory->makeSubSchemaValidator($data, $schema, $pointer);
22 4
            if ($validator->passes()) {
23 4
                return null;
24
            }
25 4
        }
26 4
        return new ValidationError(
27 4
            'Failed matching any of the provided schemas.',
28 4
            ErrorCode::ANY_OF_SCHEMA,
29 4
            $data,
30 4
            $pointer,
31 4
            ['any_of' => $parameter]
32 4
        );
33
    }
34
}
35