AbstractAssert   A
last analyzed

Complexity

Total Complexity 8

Size/Duplication

Total Lines 68
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
wmc 8
lcom 0
cbo 1
dl 0
loc 68
rs 10
c 0
b 0
f 0

6 Methods

Rating   Name   Duplication   Size   Complexity  
A setMessage() 0 4 1
A getMessage() 0 4 1
A getFailMessage() 0 4 2
A classToStr() 0 4 2
A validateClass() 0 8 2
createFailMessage() 0 1 ?
1
<?php
2
/**
3
 * ShouldPHP
4
 *
5
 * @author  Gabriel Jacinto <[email protected]>
6
 * @status  dev
7
 * @link    https://github.com/GabrielJMJ/ShouldPHP
8
 * @license MIT
9
 */
10
 
11
namespace Gabrieljmj\Should\Assert;
12
13
use Gabrieljmj\Should\Assert\AssertInterface;
14
use Gabrieljmj\Should\Exception\ShouldException;
15
16
abstract class AbstractAssert implements AssertInterface
17
{
18
    /**
19
     * Custom message in case of fail
20
     *
21
     * @var string
22
     */
23
    protected $message;
24
    
25
    /**
26
     * Sets the custom message
27
     *
28
     * @param string $message
29
     */
30
    public function setMessage($message)
31
    {
32
        $this->message = $message;
33
    }
34
    
35
    /**
36
     * Returns a custom message in case of fail
37
     *
38
     * @return string
39
     */
40
    public function getMessage()
41
    {
42
        return $this->message;
43
    }
44
45
    /**
46
     * Returns teh fail description
47
     * Null case in case of success
48
     *
49
     * @return string|null
50
     */
51
    public function getFailMessage()
52
    {
53
        return $this->execute() ? null : $this->createFailMessage();
54
    }
55
56
    /**
57
     * @param object|string $class
58
     * @return string
59
     */
60
    protected function classToStr($class)
61
    {
62
        return is_object($class) ? get_class($class) : $class;
63
    }
64
65
    /**
66
     * @param string|object $class
67
     */
68
    protected function validateClass($class)
69
    {
70
        $class = $this->classToStr($class);
71
72
        if (!class_exists($class)) {
73
            ShouldException::classDoesNotExist($class);
74
        }
75
    }
76
77
    /**
78
     * Creates the fail message
79
     *
80
     * @return string
81
     */
82
    abstract protected function createFailMessage();
83
}