Passed
Push — master ( e129b4...518849 )
by Przemysław eRIZ
02:32
created

Choice::generateForProperty()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 17
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 2

Importance

Changes 0
Metric Value
eloc 8
dl 0
loc 17
ccs 8
cts 8
cp 1
rs 10
c 0
b 0
f 0
cc 2
nc 2
nop 3
crap 2
1
<?php
2
3
namespace Er1z\FakeMock\Generator\AssertGenerator;
4
5
use Er1z\FakeMock\Metadata\FieldMetadata;
6
use Faker\Generator;
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 Choice implements GeneratorInterface
10
{
11 4
    public function generateForProperty(FieldMetadata $field, Constraint $constraint, Generator $faker)
12
    {
13
        /**
14
         * @var \Symfony\Component\Validator\Constraints\Choice
15
         */
16 4
        $options = $constraint->choices;
17
18 4
        if ($constraint->multiple) {
19 2
            $set = (array) array_rand($options, mt_rand(1, count($options)));
20
            $set = array_map(function ($el) use ($options) {
21 2
                return $options[$el];
22 2
            }, $set);
23
24 2
            return array_values($set);
25
        }
26
27 2
        return $options[array_rand($options)];
28
    }
29
}
30