21
21
*/
22
22
class PopupDeliveryDateTest extends TestCase
23
23
{
24
+ const STUB_CARRIER_CODE_NOT_FEDEX = 'not-fedex ' ;
25
+ const STUB_DELIVERY_DATE = '2020-02-02 ' ;
26
+ const STUB_DELIVERY_TIME = '12:00 ' ;
27
+
24
28
/**
25
29
* @var MockObject|PopupDeliveryDate
26
30
*/
27
31
private $ plugin ;
28
32
33
+ /**
34
+ * @var MockObject|Status $trackingStatusMock
35
+ */
36
+ private $ trackingStatusMock ;
37
+
38
+ /**
39
+ * @var MockObject|Popup $subjectMock
40
+ */
41
+ private $ subjectMock ;
42
+
29
43
/**
30
44
* @inheritDoc
31
45
*/
32
46
protected function setUp ()
33
47
{
48
+ $ this ->trackingStatusMock = $ this ->getStatusMock ();
49
+ $ this ->subjectMock = $ this ->getPopupMock ();
50
+ $ this ->subjectMock ->expects ($ this ->once ())
51
+ ->method ('getTrackingInfo ' )
52
+ ->willReturn ([[$ this ->trackingStatusMock ]]);
53
+
34
54
$ objectManagerHelper = new ObjectManager ($ this );
35
55
$ this ->plugin = $ objectManagerHelper ->getObject (PopupDeliveryDate::class);
36
56
}
@@ -40,54 +60,67 @@ protected function setUp()
40
60
*/
41
61
public function testAfterFormatDeliveryDateTimeWithFedexCarrier ()
42
62
{
43
- /** @var Status|MockObject $trackingStatusMock */
44
- $ trackingStatusMock = $ this ->getMockBuilder (Status::class)
45
- ->disableOriginalConstructor ()
46
- ->setMethods (['getCarrier ' ])
47
- ->getMock ();
48
- $ trackingStatusMock ->expects ($ this ::once ())
63
+ $ this ->trackingStatusMock ->expects ($ this ::once ())
49
64
->method ('getCarrier ' )
50
65
->willReturn (Carrier::CODE );
51
66
52
- /** @var Popup|MockObject $subjectMock */
53
- $ subjectMock = $ this ->getMockBuilder (Popup::class)
54
- ->disableOriginalConstructor ()
55
- ->setMethods (['formatDeliveryDate ' , 'getTrackingInfo ' ])
56
- ->getMock ();
57
- $ subjectMock ->expects ($ this ->once ())
58
- ->method ('getTrackingInfo ' )
59
- ->willReturn ([[$ trackingStatusMock ]]);
60
- $ subjectMock ->expects ($ this ->once ())
67
+ $ this ->subjectMock ->expects ($ this ->once ())
61
68
->method ('formatDeliveryDate ' );
62
69
63
- $ this ->plugin -> afterFormatDeliveryDateTime ( $ subjectMock , ' Test Result ' , ' 2020-02-02 ' , ' 12:00 ' );
70
+ $ this ->executeOriginalMethod ( );
64
71
}
65
72
66
73
/**
67
74
* Test the method with a different carrier
68
75
*/
69
76
public function testAfterFormatDeliveryDateTimeWithOtherCarrier ()
70
77
{
71
- /** @var Status|MockObject $trackingStatusMock */
72
- $ trackingStatusMock = $ this ->getMockBuilder (Status::class)
78
+ $ this ->trackingStatusMock ->expects ($ this ::once ())
79
+ ->method ('getCarrier ' )
80
+ ->willReturn (self ::STUB_CARRIER_CODE_NOT_FEDEX );
81
+
82
+ $ this ->subjectMock ->expects ($ this ->never ())
83
+ ->method ('formatDeliveryDate ' );
84
+
85
+ $ this ->executeOriginalMethod ();
86
+ }
87
+
88
+ /**
89
+ * Returns Mock for @see Status
90
+ *
91
+ * @return MockObject
92
+ */
93
+ private function getStatusMock (): MockObject
94
+ {
95
+ return $ this ->getMockBuilder (Status::class)
73
96
->disableOriginalConstructor ()
74
97
->setMethods (['getCarrier ' ])
75
98
->getMock ();
76
- $ trackingStatusMock ->expects ($ this ::once ())
77
- ->method ('getCarrier ' )
78
- ->willReturn ('not-fedex ' );
99
+ }
79
100
80
- /** @var Popup|MockObject $subjectMock */
81
- $ subjectMock = $ this ->getMockBuilder (Popup::class)
101
+ /**
102
+ * Returns Mock for @see Popup
103
+ *
104
+ * @return MockObject
105
+ */
106
+ private function getPopupMock (): MockObject
107
+ {
108
+ return $ this ->getMockBuilder (Popup::class)
82
109
->disableOriginalConstructor ()
83
110
->setMethods (['formatDeliveryDate ' , 'getTrackingInfo ' ])
84
111
->getMock ();
85
- $ subjectMock ->expects ($ this ->once ())
86
- ->method ('getTrackingInfo ' )
87
- ->willReturn ([[$ trackingStatusMock ]]);
88
- $ subjectMock ->expects ($ this ->never ())
89
- ->method ('formatDeliveryDate ' );
112
+ }
90
113
91
- $ this ->plugin ->afterFormatDeliveryDateTime ($ subjectMock , 'Test Result ' , '2020-02-02 ' , '12:00 ' );
114
+ /**
115
+ *
116
+ */
117
+ private function executeOriginalMethod ()
118
+ {
119
+ $ this ->plugin ->afterFormatDeliveryDateTime (
120
+ $ this ->subjectMock ,
121
+ 'Test Result ' ,
122
+ self ::STUB_DELIVERY_DATE ,
123
+ self ::STUB_DELIVERY_TIME
124
+ );
92
125
}
93
126
}
0 commit comments