DeliveryEvent::toArray()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 1
Metric Value
dl 0
loc 9
ccs 6
cts 6
cp 1
rs 9.6666
cc 1
eloc 6
nc 1
nop 0
crap 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