Completed
Push — master ( 4a3107...e79946 )
by Alexpts
01:27
created

RequiredValidator::validateString()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 2
eloc 2
nc 2
nop 1
crap 2
1
<?php
2
declare(strict_types = 1);
3
4
namespace PTS\Validator\Validators;
5
6
class RequiredValidator
7
{
8 2
    public function __invoke($value): bool
9
    {
10 2
        if ($value === null || $this->validateString($value)) {
11 1
            return false;
12
        }
13
14 2
        return !$this->validateCountable($value);
15
    }
16
17 2
    protected function validateString($value): bool
18
    {
19 2
        return is_string($value) && trim($value) === '';
20
    }
21
22 2
    protected function validateCountable($value): bool
23
    {
24 2
        return (is_array($value) || $value instanceof \Countable) && count($value) < 1;
25
    }
26
}
27