55 */
66namespace Magento \Shipping \Helper ;
77
8+ use Magento \Store \Model \StoreManagerInterface ;
9+
810class DataTest extends \PHPUnit \Framework \TestCase
911{
1012 /**
1113 * @var \Magento\Shipping\Helper\Data
1214 */
13- protected $ _helper = null ;
15+ private $ helper ;
1416
1517 protected function setUp ()
1618 {
17- $ this ->_helper = \Magento \TestFramework \Helper \Bootstrap::getObjectManager ()->get (
19+ $ this ->helper = \Magento \TestFramework \Helper \Bootstrap::getObjectManager ()->get (
1820 \Magento \Shipping \Helper \Data::class
1921 );
2022 }
@@ -31,33 +33,77 @@ public function testGetTrackingPopupUrlBySalesModel($modelName, $getIdMethod, $e
3133 {
3234 $ objectManager = \Magento \TestFramework \Helper \Bootstrap::getObjectManager ();
3335 $ 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 );
3681 $ 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 );
3984 $ constructArgs ['shipmentRepository ' ] = $ shipmentRepository ;
4085 }
4186
4287 $ model = $ objectManager ->create ($ modelName , $ constructArgs );
4388 $ model ->{$ getIdMethod }($ entityId );
4489
45- if (\Magento \Sales \Model \Order::class == $ modelName ) {
90+ if (\Magento \Sales \Model \Order::class === $ modelName ) {
4691 $ model ->setProtectCode ($ code );
4792 }
48- if (\Magento \Sales \Model \Order \Shipment \Track::class == $ modelName ) {
93+ if (\Magento \Sales \Model \Order \Shipment \Track::class === $ modelName ) {
4994 $ model ->setParentId (1 );
5095 }
5196
52- $ actual = $ this ->_helper ->getTrackingPopupUrlBySalesModel ($ model );
97+ //Frontend URL should be used there
98+ $ actual = $ this ->helper ->getTrackingPopupUrlBySalesModel ($ model );
5399 $ this ->assertEquals ($ expected , $ actual );
54100 }
55101
56102 /**
57103 * @param $code
58- * @return \Magento\Sales\Api\OrderRepositoryInterface
104+ * @return \Magento\Sales\Api\OrderRepositoryInterface|\PHPUnit_Framework_MockObject_MockObject
59105 */
60- protected function _getMockOrderRepository ($ code )
106+ private function getMockOrderRepository ($ code )
61107 {
62108 $ objectManager = \Magento \TestFramework \Helper \Bootstrap::getObjectManager ();
63109 $ order = $ objectManager ->create (\Magento \Sales \Model \Order::class);
@@ -71,10 +117,10 @@ protected function _getMockOrderRepository($code)
71117 * @param $code
72118 * @return \Magento\Sales\Model\Order\ShipmentRepository|\PHPUnit_Framework_MockObject_MockObject
73119 */
74- protected function _getMockShipmentRepository ($ code )
120+ private function getMockShipmentRepository ($ code )
75121 {
76122 $ objectManager = \Magento \TestFramework \Helper \Bootstrap::getObjectManager ();
77- $ orderRepository = $ this ->_getMockOrderRepository ($ code );
123+ $ orderRepository = $ this ->getMockOrderRepository ($ code );
78124 $ shipmentArgs = ['orderRepository ' => $ orderRepository ];
79125
80126 $ shipment = $ objectManager ->create (\Magento \Sales \Model \Order \Shipment::class, $ shipmentArgs );
0 commit comments