DeliveryEvent   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 84
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 100%
Metric Value
wmc 6
lcom 1
cbo 1
dl 0
loc 84
ccs 20
cts 20
cp 1
rs 10

6 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 11 1
A getTrackingNumber() 0 4 1
A getInternalNumber() 0 4 1
A getEventDate() 0 4 1
A getStatus() 0 4 1
A toArray() 0 9 1
1
<?php
2
3
namespace LWI\DeliveryTracking;
4
5
use \DateTime;
6
7
/**
8
 * Class DeliveryEvent
9
 */
10
class DeliveryEvent
11
{
12
    /**
13
     * @var string
14
     */
15
    protected $trackingNumber;
16
17
    /**
18
     * @var string
19
     */
20
    protected $internalNumber;
21
22
    /**
23
     * @var DateTime
24
     */
25
    protected $eventDate;
26
27
    /**
28
     * @var DeliveryStatus
29
     */
30
    protected $status;
31
32
    /**
33
     * DeliveryEvent constructor.
34
     *
35
     * @param string $trackingNumber
36
     * @param DateTime $eventDate
37
     * @param DeliveryStatus $status
38
     * @param null | string $internalNumber
39
     */
40 18
    public function __construct(
41
        $trackingNumber,
42
        DateTime $eventDate,
43
        DeliveryStatus $status,
44
        $internalNumber = null
45
    ) {
46 18
        $this->trackingNumber = $trackingNumber;
47 18
        $this->eventDate = $eventDate;
48 18
        $this->status = $status;
49 18
        $this->internalNumber = $internalNumber;
50 18
    }
51
52
    /**
53
     * @return string
54
     */
55 9
    public function getTrackingNumber()
56
    {
57 9
        return $this->trackingNumber;
58
    }
59
60
    /**
61
     * @return string
62
     */
63 6
    public function getInternalNumber()
64
    {
65 6
        return $this->internalNumber;
66
    }
67
68
    /**
69
     * @return DateTime
70
     */
71 9
    public function getEventDate()
72
    {
73 9
        return $this->eventDate;
74
    }
75
76
    /**
77
     * @return DeliveryStatus
78
     */
79 9
    public function getStatus()
80
    {
81 9
        return $this->status;
82
    }
83
84 6
    public function toArray()
85
    {
86
        return [
87 6
            'trackingNumber' => $this->getTrackingNumber(),
88 6
            'internalNumber' => $this->getInternalNumber(),
89 6
            'eventDate' => $this->getEventDate(),
90 6
            'status' => $this->getStatus()->__toString(),
91 4
        ];
92
    }
93
}
94