NotEqualTo   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 22
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 6
eloc 10
dl 0
loc 22
ccs 10
cts 10
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A decorate() 0 20 6
1
<?php
2
3
namespace Er1z\FakeMock\Decorator\AssertDecorator;
4
5
use Er1z\FakeMock\Accessor;
6
use Er1z\FakeMock\Metadata\FieldMetadata;
7
use Symfony\Component\Validator\Constraint;
0 ignored issues
show
Bug introduced by
The type Symfony\Component\Validator\Constraint was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
8
9
class NotEqualTo implements AssertDecoratorInterface
10
{
11 18
    public function decorate(&$value, FieldMetadata $field, Constraint $configuration, ?string $group = null): bool
12
    {
13
        /*
14
         * @var $configuration \Symfony\Component\Validator\Constraints\NotEqualTo
15
         */
16
17 18
        if (!is_scalar($value)) {
18 6
            throw new \InvalidArgumentException('Only scalar values are supported');
19
        }
20
21 12
        if ($configuration->value && $value == $configuration->value) {
22 6
            $value .= mt_rand(0, 9);
23 6
        } elseif ($configuration->propertyPath) {
24 6
            $otherValue = Accessor::getPropertyValue($field->object, $configuration->propertyPath);
25 6
            if ($otherValue == $value) {
26 6
                $value .= mt_rand(0, 9);
27
            }
28
        }
29
30 12
        return true;
31
    }
32
}
33