33 * Copyright © Magento, Inc. All rights reserved.
44 * See COPYING.txt for license details.
55 */
6+ declare (strict_types=1 );
7+
68namespace Magento \Shipping \Block \Adminhtml \Order ;
79
810use Magento \Backend \Block \Template ;
@@ -28,12 +30,19 @@ class AddToPackageTest extends TestCase
2830 */
2931 private $ orderRepository ;
3032
31- /** @var ObjectManagerInterface */
33+ /**
34+ * @var ObjectManagerInterface
35+ */
3236 private $ objectManager ;
3337
34- /** @var Registry */
38+ /**
39+ * @var Registry
40+ */
3541 private $ registry ;
3642
43+ /**
44+ * @inheritDoc
45+ */
3746 protected function setUp (): void
3847 {
3948 $ this ->objectManager = Bootstrap::getObjectManager ();
@@ -42,30 +51,45 @@ protected function setUp(): void
4251 }
4352
4453 /**
45- * Loads order entity by provided order increment ID.
54+ * Test that Packaging popup renders
4655 *
47- * @param string $incrementId
48- * @return OrderInterface
56+ * @magentoDataFixture Magento/Shipping/_files/shipping_with_carrier_data.php
4957 */
50- private function getOrderByIncrementId ( string $ incrementId ) : OrderInterface
58+ public function testGetCommentsHtml (): void
5159 {
52- /** @var SearchCriteria $searchCriteria */
53- $ searchCriteria = $ this ->objectManager ->get (SearchCriteriaBuilder::class)
54- ->addFilter ('increment_id ' , $ incrementId )
55- ->create ();
56-
57- $ items = $ this ->orderRepository ->getList ($ searchCriteria )
58- ->getItems ();
60+ $ expectedNeedle = "packaging.setItemQtyCallback(function(itemId){
61+ var item = $$('[name= \"shipment[items]['+itemId+'] \"]')[0],
62+ itemTitle = $('order_item_' + itemId + '_title');
63+ if (!itemTitle && !item) {
64+ return 0;
65+ }
66+ if (item && !isNaN(item.value)) {
67+ return item.value;
68+ }
69+ }); " ;
70+ $ this ->assertStringContainsString ($ expectedNeedle , $ this ->getHtml ());
71+ }
5972
60- return array_pop ($ items );
73+ /**
74+ * Verify currency code on custom value field
75+ *
76+ * @magentoDataFixture Magento/Shipping/_files/shipping_with_carrier_data_different_currency_code.php
77+ */
78+ public function testGetCurrencyCodeCustomValue ()
79+ {
80+ $ template = '/<span class="customs-value-currency">\s*?(?<currency>[A-Za-z]+)\s*?<\/span>/ ' ;
81+ $ matches = [];
82+ preg_match ($ template , $ this ->getHtml (), $ matches );
83+ $ currency = $ matches ['currency ' ] ?? null ;
84+ $ this ->assertEquals ('FR ' ,$ currency );
6185 }
6286
6387 /**
64- * Test that Packaging popup renders
88+ * Get html for packaging popup
6589 *
66- * @magentoDataFixture Magento/Shipping/_files/shipping_with_carrier_data.php
90+ * @return string
6791 */
68- public function testGetCommentsHtml ()
92+ private function getHtml ()
6993 {
7094 /** @var Template $block */
7195 $ block = $ this ->objectManager ->get (Packaging::class);
@@ -78,17 +102,26 @@ public function testGetCommentsHtml()
78102 $ this ->registry ->register ('current_shipment ' , $ shipment );
79103
80104 $ block ->setTemplate ('Magento_Shipping::order/packaging/popup.phtml ' );
81- $ html = $ block ->toHtml ();
82- $ expectedNeedle = "packaging.setItemQtyCallback(function(itemId){
83- var item = $$('[name= \"shipment[items]['+itemId+'] \"]')[0],
84- itemTitle = $('order_item_' + itemId + '_title');
85- if (!itemTitle && !item) {
86- return 0;
87- }
88- if (item && !isNaN(item.value)) {
89- return item.value;
90- }
91- }); " ;
92- $ this ->assertStringContainsString ($ expectedNeedle , $ html );
105+
106+ return $ block ->toHtml ();
107+ }
108+
109+ /**
110+ * Loads order entity by provided order increment ID.
111+ *
112+ * @param string $incrementId
113+ * @return OrderInterface
114+ */
115+ private function getOrderByIncrementId (string $ incrementId ) : OrderInterface
116+ {
117+ /** @var SearchCriteria $searchCriteria */
118+ $ searchCriteria = $ this ->objectManager ->get (SearchCriteriaBuilder::class)
119+ ->addFilter ('increment_id ' , $ incrementId )
120+ ->create ();
121+
122+ $ items = $ this ->orderRepository ->getList ($ searchCriteria )
123+ ->getItems ();
124+
125+ return array_pop ($ items );
93126 }
94127}
0 commit comments