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

UniqueItems::validate()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 13
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 3
Metric Value
cc 3
eloc 7
nc 3
nop 3
dl 0
loc 13
ccs 7
cts 7
cp 1
crap 3
rs 9.4285
1
<?php
2
3
namespace League\JsonGuard\Constraints;
4
5
use League\JsonGuard;
6
use League\JsonGuard\ErrorCode;
7
use League\JsonGuard\ValidationError;
8
9
class UniqueItems implements PropertyConstraint
10
{
11
    /**
12
     * {@inheritdoc}
13
     */
14 6
    public static function validate($value, $parameter, $pointer = null)
15
    {
16 6
        if (!is_array($value)) {
17 2
            return null;
18
        }
19
20 4
        if (count($value) === count(array_unique(array_map('serialize', $value)))) {
21 4
            return null;
22
        }
23
24 2
        $message = sprintf('Array "%s" is not unique.', JsonGuard\asString($value));
25 2
        return new ValidationError($message, ErrorCode::NOT_UNIQUE_ITEM, $value, $pointer);
26
    }
27
}
28