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

RequiredValidator   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 21
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 8
lcom 0
cbo 0
dl 0
loc 21
ccs 8
cts 8
cp 1
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __invoke() 0 8 3
A validateString() 0 4 2
A validateCountable() 0 4 3
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