5
5
*/
6
6
namespace Magento \Shipping \Helper ;
7
7
8
+ use Magento \Store \Model \StoreManagerInterface ;
9
+
8
10
class DataTest extends \PHPUnit \Framework \TestCase
9
11
{
10
12
/**
11
13
* @var \Magento\Shipping\Helper\Data
12
14
*/
13
- protected $ _helper = null ;
15
+ private $ helper ;
14
16
15
17
protected function setUp ()
16
18
{
17
- $ this ->_helper = \Magento \TestFramework \Helper \Bootstrap::getObjectManager ()->get (
19
+ $ this ->helper = \Magento \TestFramework \Helper \Bootstrap::getObjectManager ()->get (
18
20
\Magento \Shipping \Helper \Data::class
19
21
);
20
22
}
@@ -31,33 +33,77 @@ public function testGetTrackingPopupUrlBySalesModel($modelName, $getIdMethod, $e
31
33
{
32
34
$ objectManager = \Magento \TestFramework \Helper \Bootstrap::getObjectManager ();
33
35
$ constructArgs = [];
34
- if (\Magento \Sales \Model \Order \Shipment::class == $ modelName ) {
35
- $ orderRepository = $ this ->_getMockOrderRepository ($ code );
36
+ if (\Magento \Sales \Model \Order \Shipment::class === $ modelName ) {
37
+ $ orderRepository = $ this ->getMockOrderRepository ($ code );
38
+ $ constructArgs ['orderRepository ' ] = $ orderRepository ;
39
+ } elseif (\Magento \Sales \Model \Order \Shipment \Track::class === $ modelName ) {
40
+ $ shipmentRepository = $ this ->getMockShipmentRepository ($ code );
41
+ $ constructArgs ['shipmentRepository ' ] = $ shipmentRepository ;
42
+ }
43
+
44
+ $ model = $ objectManager ->create ($ modelName , $ constructArgs );
45
+ $ model ->{$ getIdMethod }($ entityId );
46
+
47
+ if (\Magento \Sales \Model \Order::class === $ modelName ) {
48
+ $ model ->setProtectCode ($ code );
49
+ }
50
+ if (\Magento \Sales \Model \Order \Shipment \Track::class === $ modelName ) {
51
+ $ model ->setParentId (1 );
52
+ }
53
+
54
+ $ actual = $ this ->helper ->getTrackingPopupUrlBySalesModel ($ model );
55
+ $ this ->assertEquals ($ expected , $ actual );
56
+ }
57
+
58
+ /**
59
+ * From the admin panel with custom URL we should have generated frontend URL
60
+ *
61
+ * @param string $modelName
62
+ * @param string $getIdMethod
63
+ * @param int $entityId
64
+ * @param string $code
65
+ * @param string $expected
66
+ * @magentoAppArea adminhtml
67
+ * @magentoConfigFixture admin_store web/unsecure/base_link_url http://admin.localhost/
68
+ * @dataProvider getTrackingPopupUrlBySalesModelDataProvider
69
+ */
70
+ public function testGetTrackingPopupUrlBySalesModelFromAdmin ($ modelName , $ getIdMethod , $ entityId , $ code , $ expected )
71
+ {
72
+ $ objectManager = \Magento \TestFramework \Helper \Bootstrap::getObjectManager ();
73
+
74
+ /** @var StoreManagerInterface $storeManager */
75
+ $ storeManager = $ objectManager ->create (StoreManagerInterface::class);
76
+ $ storeManager ->reinitStores ();
77
+
78
+ $ constructArgs = [];
79
+ if (\Magento \Sales \Model \Order \Shipment::class === $ modelName ) {
80
+ $ orderRepository = $ this ->getMockOrderRepository ($ code );
36
81
$ constructArgs ['orderRepository ' ] = $ orderRepository ;
37
- } elseif (\Magento \Sales \Model \Order \Shipment \Track::class == $ modelName ) {
38
- $ shipmentRepository = $ this ->_getMockShipmentRepository ($ code );
82
+ } elseif (\Magento \Sales \Model \Order \Shipment \Track::class === $ modelName ) {
83
+ $ shipmentRepository = $ this ->getMockShipmentRepository ($ code );
39
84
$ constructArgs ['shipmentRepository ' ] = $ shipmentRepository ;
40
85
}
41
86
42
87
$ model = $ objectManager ->create ($ modelName , $ constructArgs );
43
88
$ model ->{$ getIdMethod }($ entityId );
44
89
45
- if (\Magento \Sales \Model \Order::class == $ modelName ) {
90
+ if (\Magento \Sales \Model \Order::class === $ modelName ) {
46
91
$ model ->setProtectCode ($ code );
47
92
}
48
- if (\Magento \Sales \Model \Order \Shipment \Track::class == $ modelName ) {
93
+ if (\Magento \Sales \Model \Order \Shipment \Track::class === $ modelName ) {
49
94
$ model ->setParentId (1 );
50
95
}
51
96
52
- $ actual = $ this ->_helper ->getTrackingPopupUrlBySalesModel ($ model );
97
+ //Frontend URL should be used there
98
+ $ actual = $ this ->helper ->getTrackingPopupUrlBySalesModel ($ model );
53
99
$ this ->assertEquals ($ expected , $ actual );
54
100
}
55
101
56
102
/**
57
103
* @param $code
58
- * @return \Magento\Sales\Api\OrderRepositoryInterface
104
+ * @return \Magento\Sales\Api\OrderRepositoryInterface|\PHPUnit_Framework_MockObject_MockObject
59
105
*/
60
- protected function _getMockOrderRepository ($ code )
106
+ private function getMockOrderRepository ($ code )
61
107
{
62
108
$ objectManager = \Magento \TestFramework \Helper \Bootstrap::getObjectManager ();
63
109
$ order = $ objectManager ->create (\Magento \Sales \Model \Order::class);
@@ -71,10 +117,10 @@ protected function _getMockOrderRepository($code)
71
117
* @param $code
72
118
* @return \Magento\Sales\Model\Order\ShipmentRepository|\PHPUnit_Framework_MockObject_MockObject
73
119
*/
74
- protected function _getMockShipmentRepository ($ code )
120
+ private function getMockShipmentRepository ($ code )
75
121
{
76
122
$ objectManager = \Magento \TestFramework \Helper \Bootstrap::getObjectManager ();
77
- $ orderRepository = $ this ->_getMockOrderRepository ($ code );
123
+ $ orderRepository = $ this ->getMockOrderRepository ($ code );
78
124
$ shipmentArgs = ['orderRepository ' => $ orderRepository ];
79
125
80
126
$ shipment = $ objectManager ->create (\Magento \Sales \Model \Order \Shipment::class, $ shipmentArgs );
0 commit comments