Skip to content

Commit bf77523

Browse files
committed
Unit test for Magento\Fedex\Plugin\Block\Tracking\PopupDeliveryDate
1 parent c2e2646 commit bf77523

File tree

1 file changed

+90
-0
lines changed

1 file changed

+90
-0
lines changed
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Fedex\Test\Unit\Plugin\Block\Tracking;
8+
9+
use Magento\Fedex\Plugin\Block\Tracking\PopupDeliveryDate;
10+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
11+
use Magento\Shipping\Block\Tracking\Popup;
12+
use Magento\Shipping\Model\Tracking\Result\Status;
13+
use PHPUnit\Framework\MockObject\MockObject;
14+
use PHPUnit\Framework\TestCase;
15+
16+
/**
17+
* Unit Test for @see \Magento\Fedex\Plugin\Block\Tracking\PopupDeliveryDate
18+
*/
19+
class PopupDeliveryDateTest extends TestCase
20+
{
21+
/**
22+
* @var MockObject|PopupDeliveryDate
23+
*/
24+
private $plugin;
25+
26+
/**
27+
* @inheritDoc
28+
*/
29+
protected function setUp()
30+
{
31+
$objectManagerHelper = new ObjectManager($this);
32+
$this->plugin = $objectManagerHelper->getObject(PopupDeliveryDate::class);
33+
}
34+
35+
/**
36+
* Test the method with Fedex carrier
37+
*/
38+
public function testAfterFormatDeliveryDateTimeWithFedexCarrier()
39+
{
40+
/** @var Status|MockObject $trackingStatusMock */
41+
$trackingStatusMock = $this->getMockBuilder(Status::class)
42+
->disableOriginalConstructor()
43+
->setMethods(['getCarrier'])
44+
->getMock();
45+
$trackingStatusMock->expects($this::once())
46+
->method('getCarrier')
47+
->willReturn(\Magento\Fedex\Model\Carrier::CODE);
48+
49+
/** @var Popup|MockObject $subjectMock */
50+
$subjectMock = $this->getMockBuilder(Popup::class)
51+
->disableOriginalConstructor()
52+
->setMethods(['formatDeliveryDate', 'getTrackingInfo'])
53+
->getMock();
54+
$subjectMock->expects($this->once())
55+
->method('getTrackingInfo')
56+
->willReturn([[$trackingStatusMock]]);
57+
$subjectMock->expects($this->once())
58+
->method('formatDeliveryDate');
59+
60+
$this->plugin->afterFormatDeliveryDateTime($subjectMock, 'Test Result', '2020-02-02', '12:00');
61+
}
62+
63+
/**
64+
* Test the method with a different carrier
65+
*/
66+
public function testAfterFormatDeliveryDateTimeWithOtherCarrier()
67+
{
68+
/** @var Status|MockObject $trackingStatusMock */
69+
$trackingStatusMock = $this->getMockBuilder(Status::class)
70+
->disableOriginalConstructor()
71+
->setMethods(['getCarrier'])
72+
->getMock();
73+
$trackingStatusMock->expects($this::once())
74+
->method('getCarrier')
75+
->willReturn('not-fedex');
76+
77+
/** @var Popup|MockObject $subjectMock */
78+
$subjectMock = $this->getMockBuilder(Popup::class)
79+
->disableOriginalConstructor()
80+
->setMethods(['formatDeliveryDate', 'getTrackingInfo'])
81+
->getMock();
82+
$subjectMock->expects($this->once())
83+
->method('getTrackingInfo')
84+
->willReturn([[$trackingStatusMock]]);
85+
$subjectMock->expects($this->never())
86+
->method('formatDeliveryDate');
87+
88+
$this->plugin->afterFormatDeliveryDateTime($subjectMock, 'Test Result', '2020-02-02', '12:00');
89+
}
90+
}

0 commit comments

Comments
 (0)