Completed
Push — master ( aeb11c...f98da5 )
by Adrian
02:32
created

RequiredWith   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 27
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Test Coverage

Coverage 100%

Importance

Changes 6
Bugs 1 Features 1
Metric Value
wmc 5
c 6
b 1
f 1
lcom 1
cbo 2
dl 0
loc 27
ccs 9
cts 9
cp 1
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B validate() 0 15 5
1
<?php
2
namespace Sirius\Validation\Rule;
3
4
class RequiredWith extends Required
5
{
6
    const OPTION_ITEM = 'item';
7
8
    const MESSAGE = 'This field is required';
9
    const LABELED_MESSAGE = '{label} is required';
10
11
    protected $optionsIndexMap = array(
12
        0 => self::OPTION_ITEM
13
    );
14
15 4
    public function validate($value, $valueIdentifier = null)
16
    {
17 4
        $this->value = $value;
18
19 4
        $relatedItemPath  = $this->getRelatedValueIdentifier($valueIdentifier, $this->options[self::OPTION_ITEM]);
20 4
        $relatedItemValue = $relatedItemPath !== null ? $this->context->getItemValue($relatedItemPath) : null;
21
22 4
        if (isset($this->options[self::OPTION_ITEM]) && $relatedItemValue !== null) {
23 3
            $this->success = ($value !== null || trim($value) !== '');
24 3
        } else {
25 1
            $this->success = true;
26
        }
27
28 4
        return $this->success;
29
    }
30
}
31