Completed
Push — develop ( 9c1b40...ded088 )
by Mikaël
39:36 queued 16:56
created

AbstractMinMaxRule::comparisonString()   A

Complexity

Conditions 6
Paths 6

Size

Total Lines 22
Code Lines 19

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 21
CRAP Score 6

Importance

Changes 0
Metric Value
cc 6
eloc 19
nc 6
nop 0
dl 0
loc 22
ccs 21
cts 21
cp 1
crap 6
rs 9.0111
c 0
b 0
f 0
1
<?php
2
3
namespace WsdlToPhp\PackageGenerator\File\Validation;
4
5
abstract class AbstractMinMaxRule extends AbstractRule
6
{
7
8
    /**
9
     * Symbol to use for max rule
10
     * @var string
11
     */
12
    const SYMBOL_MAX_INCLUSIVE = '>';
13
14
    /**
15
     * Symbol to use for max exclusive rule
16
     * @var string
17
     */
18
    const SYMBOL_MAX_EXCLUSIVE = '>=';
19
20
    /**
21
     * Symbol to use for min rule
22
     * @var string
23
     */
24
    const SYMBOL_MIN_INCLUSIVE = '<';
25
26
    /**
27
     * Symbol to use for min exclusive rule
28
     * @var string
29
     */
30
    const SYMBOL_MIN_EXCLUSIVE = '<=';
31
32
    /**
33
     * Symbol to use for strict rule
34
     * @var string
35
     */
36
    const SYMBOL_STRICT = '!==';
37
38
    /**
39
     * Must return the comparison symbol
40
     * @return string
41
     */
42
    abstract public function symbol();
43
44
    /**
45
     * @return string
46
     */
47 204
    final public function comparisonString()
48
    {
49 204
        switch ($this->symbol()) {
50 204
            case self::SYMBOL_MAX_INCLUSIVE:
51 84
                $comparison = 'less than or equal to';
52 84
                break;
53 174
            case self::SYMBOL_MIN_INCLUSIVE:
54 72
                $comparison = 'greater than or equal to';
55 72
                break;
56 102
            case self::SYMBOL_MIN_EXCLUSIVE:
57 42
                $comparison = 'greater than';
58 42
                break;
59 60
            case self::SYMBOL_MAX_EXCLUSIVE:
60 42
                $comparison = 'less than';
61 42
                break;
62 18
            case self::SYMBOL_STRICT:
63 12
                $comparison = 'equal to';
64 12
                break;
65 3
            default:
66 6
                throw new \InvalidArgumentException(sprintf('Invalid value %s returned by symbol() method, can\'t determine comparison string', $this->symbol()));
67 102
        }
68 198
        return $comparison;
69
    }
70
}
71