Skip to content

Commit 5031159

Browse files
committed
UPS Shipment Tracking: Change "Delivered On" title
1 parent 18da36b commit 5031159

File tree

3 files changed

+118
-0
lines changed

3 files changed

+118
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Ups\Plugin\Block\DataProviders\Tracking;
8+
9+
use Magento\Ups\Model\Carrier;
10+
use Magento\Shipping\Model\Tracking\Result\Status;
11+
use Magento\Shipping\Block\DataProviders\Tracking\DeliveryDateTitle as Subject;
12+
13+
/**
14+
* Plugin to change the "Delivery on" title to a customized value for UPS
15+
*/
16+
class ChangeTitle
17+
{
18+
/**
19+
* Modify title only when UPS is used as carrier
20+
*
21+
* @param Subject $subject
22+
* @param \Magento\Framework\Phrase|string $result
23+
* @param Status $trackingStatus
24+
* @return \Magento\Framework\Phrase|string
25+
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
26+
*/
27+
public function afterGetTitle(Subject $subject, $result, Status $trackingStatus)
28+
{
29+
if ($trackingStatus->getCarrier() === Carrier::CODE) {
30+
$result = __('Status Updated On:');
31+
}
32+
return $result;
33+
}
34+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
declare(strict_types=1);
8+
9+
namespace Magento\Ups\Test\Unit\Plugin\Block\DataProviders\Tracking;
10+
11+
use Magento\Ups\Model\Carrier;
12+
use Magento\Ups\Plugin\Block\DataProviders\Tracking\ChangeTitle;
13+
use Magento\Framework\Phrase;
14+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
15+
use Magento\Shipping\Block\DataProviders\Tracking\DeliveryDateTitle;
16+
use Magento\Shipping\Model\Tracking\Result\Status;
17+
use Magento\Ups\Model\Carrier as UpsCarrier;
18+
use PHPUnit\Framework\MockObject\MockObject;
19+
use PHPUnit\Framework\TestCase;
20+
21+
/**
22+
* Unit Test for @see ChangeTitle
23+
*/
24+
class ChangeTitleTest extends TestCase
25+
{
26+
/**
27+
* @var ChangeTitle|MockObject
28+
*/
29+
private $plugin;
30+
31+
/**
32+
* @inheritDoc
33+
*/
34+
protected function setUp(): void
35+
{
36+
$objectManagerHelper = new ObjectManager($this);
37+
$this->plugin = $objectManagerHelper->getObject(ChangeTitle::class);
38+
}
39+
40+
/**
41+
* Check if DeliveryDateTitle was changed if the carrier is UPS
42+
*
43+
* @param string $carrierCode
44+
* @param string $originalResult
45+
* @param Phrase|string $finalResult
46+
* @dataProvider testAfterGetTitleDataProvider
47+
*/
48+
public function testAfterGetTitle(string $carrierCode, string $originalResult, $finalResult)
49+
{
50+
/** @var DeliveryDateTitle|MockObject $subjectMock */
51+
$subjectMock = $this->getMockBuilder(DeliveryDateTitle::class)
52+
->disableOriginalConstructor()
53+
->getMock();
54+
55+
/** @var Status|MockObject $trackingStatusMock */
56+
$trackingStatusMock = $this->getMockBuilder(Status::class)
57+
->disableOriginalConstructor()
58+
->setMethods(['getCarrier'])
59+
->getMock();
60+
$trackingStatusMock->expects($this::once())
61+
->method('getCarrier')
62+
->willReturn($carrierCode);
63+
64+
$actual = $this->plugin->afterGetTitle($subjectMock, $originalResult, $trackingStatusMock);
65+
66+
$this->assertEquals($finalResult, $actual);
67+
}
68+
69+
/**
70+
* Data provider
71+
*
72+
* @return array
73+
*/
74+
public function testAfterGetTitleDataProvider(): array
75+
{
76+
return [
77+
[Carrier::CODE, 'Original Title', __('Status Updated On:')],
78+
['not-fedex', 'Original Title', 'Original Title'],
79+
];
80+
}
81+
}

app/code/Magento/Ups/etc/di.xml

+3
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,7 @@
2828
</argument>
2929
</arguments>
3030
</type>
31+
<type name="Magento\Shipping\Block\DataProviders\Tracking\DeliveryDateTitle">
32+
<plugin name="ups_update_delivery_date_title" type="Magento\Ups\Plugin\Block\DataProviders\Tracking\ChangeTitle"/>
33+
</type>
3134
</config>

0 commit comments

Comments
 (0)