33 * Copyright © Magento, Inc. All rights reserved.
44 * See COPYING.txt for license details.
55 */
6+
67declare (strict_types=1 );
78
89namespace Magento \Sales \Model \ResourceModel ;
910
10- use Magento \Store \Api \StoreRepositoryInterface ;
11- use Magento \Store \Model \StoreManagerInterface ;
1211use Magento \Framework \Event \ManagerInterface ;
12+ use Magento \Framework \ObjectManagerInterface ;
13+ use Magento \Framework \Registry ;
14+ use Magento \Sales \Api \OrderRepositoryInterface ;
15+ use Magento \Sales \Model \Order as OrderModel ;
16+ use Magento \Sales \Model \Order \Address ;
17+ use Magento \Sales \Model \Order \Item ;
18+ use Magento \Sales \Model \Order \Payment ;
1319use Magento \Sales \Model \ResourceModel \Order \CollectionFactory as OrderCollectionFactory ;
20+ use Magento \Store \Api \StoreRepositoryInterface ;
21+ use Magento \Store \Model \StoreManagerInterface ;
22+ use Magento \TestFramework \Helper \Bootstrap ;
23+ use PHPUnit \Framework \TestCase ;
1424
1525/**
26+ * Test for \Magento\Sales\Model\ResourceModel\Order.
27+ *
1628 * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
1729 */
18- class OrderTest extends \ PHPUnit \ Framework \ TestCase
30+ class OrderTest extends TestCase
1931{
2032 /**
21- * @var \Magento\Sales\Model\ResourceModel\ Order
33+ * @var Order
2234 */
23- protected $ resourceModel ;
35+ private $ resourceModel ;
2436
2537 /**
2638 * @var int
2739 */
28- protected $ orderIncrementId ;
40+ private $ orderIncrementId ;
2941
3042 /**
31- * @var \Magento\Framework\ ObjectManagerInterface
43+ * @var ObjectManagerInterface
3244 */
33- protected $ objectManager ;
45+ private $ objectManager ;
3446
3547 /**
3648 * @var StoreManagerInterface
@@ -47,8 +59,9 @@ class OrderTest extends \PHPUnit\Framework\TestCase
4759 */
4860 protected function setUp (): void
4961 {
50- $ this ->objectManager = \Magento \TestFramework \Helper \Bootstrap::getObjectManager ();
51- $ this ->resourceModel = $ this ->objectManager ->create (\Magento \Sales \Model \ResourceModel \Order::class);
62+ $ this ->objectManager = Bootstrap::getObjectManager ();
63+
64+ $ this ->resourceModel = $ this ->objectManager ->create (Order::class);
5265 $ this ->orderIncrementId = '100000001 ' ;
5366 $ this ->storeManager = $ this ->objectManager ->get (StoreManagerInterface::class);
5467 $ this ->storeRepository = $ this ->objectManager ->get (StoreRepositoryInterface::class);
@@ -59,7 +72,7 @@ protected function setUp(): void
5972 */
6073 protected function tearDown (): void
6174 {
62- $ registry = $ this ->objectManager ->get (\ Magento \ Framework \ Registry::class);
75+ $ registry = $ this ->objectManager ->get (Registry::class);
6376 $ registry ->unregister ('isSecureArea ' );
6477 $ registry ->register ('isSecureArea ' , true );
6578
@@ -73,14 +86,15 @@ protected function tearDown(): void
7386
7487 $ defaultStore = $ this ->storeRepository ->get ('default ' );
7588 $ this ->storeManager ->setCurrentStore ($ defaultStore ->getId ());
76-
77- parent ::tearDown ();
7889 }
7990
8091 /**
92+ * Test save order
93+ *
8194 * @magentoDataFixture Magento/Catalog/_files/product_simple.php
95+ * @return void
8296 */
83- public function testSaveOrder ()
97+ public function testSaveOrder (): void
8498 {
8599 $ addressData = [
86100 'region ' => 'CA ' ,
@@ -94,31 +108,28 @@ public function testSaveOrder()
94108 'country_id ' => 'US '
95109 ];
96110
97- $ billingAddress = $ this ->objectManager ->create (
98- \Magento \Sales \Model \Order \Address::class,
99- ['data ' => $ addressData ]
100- );
111+ $ billingAddress = $ this ->objectManager ->create (Address::class, ['data ' => $ addressData ]);
101112 $ billingAddress ->setAddressType ('billing ' );
102113
103114 $ shippingAddress = clone $ billingAddress ;
104115 $ shippingAddress ->setId (null )->setAddressType ('shipping ' );
105116
106- $ payment = $ this ->objectManager ->create (\ Magento \ Sales \ Model \ Order \ Payment::class);
117+ $ payment = $ this ->objectManager ->create (Payment::class);
107118 $ payment ->setMethod ('checkmo ' );
108119
109- /** @var \Magento\Sales\Model\Order\ Item $orderItem */
110- $ orderItem = $ this ->objectManager ->create (\ Magento \ Sales \ Model \ Order \ Item::class);
120+ /** @var Item $orderItem */
121+ $ orderItem = $ this ->objectManager ->create (Item::class);
111122 $ orderItem ->setProductId (1 )
112123 ->setQtyOrdered (2 )
113124 ->setBasePrice (10 )
114125 ->setPrice (10 )
115126 ->setRowTotal (10 );
116127
117- /** @var \Magento\Sales\Model\Order $order */
118- $ order = $ this ->objectManager ->create (\ Magento \ Sales \ Model \Order ::class);
128+ /** @var OrderModel $order */
129+ $ order = $ this ->objectManager ->create (OrderModel ::class);
119130 $ order ->setIncrementId ($ this ->orderIncrementId )
120- ->setState (\ Magento \ Sales \ Model \Order ::STATE_PROCESSING )
121- ->setStatus ($ order ->getConfig ()->getStateDefaultStatus (\ Magento \ Sales \ Model \Order ::STATE_PROCESSING ))
131+ ->setState (OrderModel ::STATE_PROCESSING )
132+ ->setStatus ($ order ->getConfig ()->getStateDefaultStatus (OrderModel ::STATE_PROCESSING ))
122133 ->setSubtotal (100 )
123134 ->setBaseSubtotal (100 )
124135 ->setBaseGrandTotal (100 )
@@ -128,7 +139,7 @@ public function testSaveOrder()
128139 ->setShippingAddress ($ shippingAddress )
129140 ->setStoreId (
130141 $ this ->objectManager
131- ->get (\ Magento \ Store \ Model \ StoreManagerInterface::class)
142+ ->get (StoreManagerInterface::class)
132143 ->getStore ()
133144 ->getId ()
134145 )
@@ -141,26 +152,36 @@ public function testSaveOrder()
141152 }
142153
143154 /**
144- * Check that store name with length within 255 chars can be saved in table sales_order
155+ * Check that store name and x_forwarded_for with length within 255 chars can be saved in table sales_order
145156 *
146157 * @magentoDataFixture Magento/Store/_files/store_with_long_name.php
147158 * @magentoDbIsolation disabled
148159 * @return void
149160 */
150- public function testSaveStoreName ()
161+ public function testSaveLongNames (): void
151162 {
163+ $ xForwardedFor = str_repeat ('x ' , 255 );
164+
152165 $ store = $ this ->storeRepository ->get ('test_2 ' );
153166 $ this ->storeManager ->setCurrentStore ($ store ->getId ());
154167 $ eventManager = $ this ->objectManager ->get (ManagerInterface::class);
155168 $ eventManager ->dispatch ('store_add ' , ['store ' => $ store ]);
156- $ order = $ this ->objectManager ->create (\ Magento \ Sales \ Model \Order ::class);
157- $ payment = $ this ->objectManager ->create (\ Magento \ Sales \ Model \ Order \ Payment::class);
169+ $ order = $ this ->objectManager ->create (OrderModel ::class);
170+ $ payment = $ this ->objectManager ->create (Payment::class);
158171 $ payment ->setMethod ('checkmo ' );
159- $ order ->setStoreId ($ store ->getId ())->setPayment ($ payment );
172+
173+ $ order ->setStoreId ($ store ->getId ());
174+ $ order ->setXForwardedFor ($ xForwardedFor );
175+ $ order ->setPayment ($ payment );
160176 $ this ->resourceModel ->save ($ order );
161- $ orderRepository = $ this ->objectManager ->create (\Magento \Sales \Api \OrderRepositoryInterface::class);
177+
178+ $ orderRepository = $ this ->objectManager ->create (OrderRepositoryInterface::class);
162179 $ order = $ orderRepository ->get ($ order ->getId ());
180+
163181 $ this ->assertEquals (255 , strlen ($ order ->getStoreName ()));
182+ $ this ->assertEquals (255 , strlen ($ order ->getXForwardedFor ()));
183+
184+ $ this ->assertEquals ($ xForwardedFor , $ order ->getXForwardedFor ());
164185 $ this ->assertStringContainsString ($ store ->getWebsite ()->getName (), $ order ->getStoreName ());
165186 $ this ->assertStringContainsString ($ store ->getGroup ()->getName (), $ order ->getStoreName ());
166187 }
0 commit comments