3
3
* Copyright © Magento, Inc. All rights reserved.
4
4
* See COPYING.txt for license details.
5
5
*/
6
+
6
7
declare (strict_types=1 );
7
8
8
9
namespace Magento \Sales \Model \ResourceModel ;
9
10
10
- use Magento \Store \Api \StoreRepositoryInterface ;
11
- use Magento \Store \Model \StoreManagerInterface ;
12
11
use 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 ;
13
19
use 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 ;
14
24
15
25
/**
26
+ * Test for \Magento\Sales\Model\ResourceModel\Order.
27
+ *
16
28
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
17
29
*/
18
- class OrderTest extends \ PHPUnit \ Framework \ TestCase
30
+ class OrderTest extends TestCase
19
31
{
20
32
/**
21
- * @var \Magento\Sales\Model\ResourceModel\ Order
33
+ * @var Order
22
34
*/
23
- protected $ resourceModel ;
35
+ private $ resourceModel ;
24
36
25
37
/**
26
38
* @var int
27
39
*/
28
- protected $ orderIncrementId ;
40
+ private $ orderIncrementId ;
29
41
30
42
/**
31
- * @var \Magento\Framework\ ObjectManagerInterface
43
+ * @var ObjectManagerInterface
32
44
*/
33
- protected $ objectManager ;
45
+ private $ objectManager ;
34
46
35
47
/**
36
48
* @var StoreManagerInterface
@@ -47,8 +59,9 @@ class OrderTest extends \PHPUnit\Framework\TestCase
47
59
*/
48
60
protected function setUp (): void
49
61
{
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);
52
65
$ this ->orderIncrementId = '100000001 ' ;
53
66
$ this ->storeManager = $ this ->objectManager ->get (StoreManagerInterface::class);
54
67
$ this ->storeRepository = $ this ->objectManager ->get (StoreRepositoryInterface::class);
@@ -59,7 +72,7 @@ protected function setUp(): void
59
72
*/
60
73
protected function tearDown (): void
61
74
{
62
- $ registry = $ this ->objectManager ->get (\ Magento \ Framework \ Registry::class);
75
+ $ registry = $ this ->objectManager ->get (Registry::class);
63
76
$ registry ->unregister ('isSecureArea ' );
64
77
$ registry ->register ('isSecureArea ' , true );
65
78
@@ -73,14 +86,15 @@ protected function tearDown(): void
73
86
74
87
$ defaultStore = $ this ->storeRepository ->get ('default ' );
75
88
$ this ->storeManager ->setCurrentStore ($ defaultStore ->getId ());
76
-
77
- parent ::tearDown ();
78
89
}
79
90
80
91
/**
92
+ * Test save order
93
+ *
81
94
* @magentoDataFixture Magento/Catalog/_files/product_simple.php
95
+ * @return void
82
96
*/
83
- public function testSaveOrder ()
97
+ public function testSaveOrder (): void
84
98
{
85
99
$ addressData = [
86
100
'region ' => 'CA ' ,
@@ -94,31 +108,28 @@ public function testSaveOrder()
94
108
'country_id ' => 'US '
95
109
];
96
110
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 ]);
101
112
$ billingAddress ->setAddressType ('billing ' );
102
113
103
114
$ shippingAddress = clone $ billingAddress ;
104
115
$ shippingAddress ->setId (null )->setAddressType ('shipping ' );
105
116
106
- $ payment = $ this ->objectManager ->create (\ Magento \ Sales \ Model \ Order \ Payment::class);
117
+ $ payment = $ this ->objectManager ->create (Payment::class);
107
118
$ payment ->setMethod ('checkmo ' );
108
119
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);
111
122
$ orderItem ->setProductId (1 )
112
123
->setQtyOrdered (2 )
113
124
->setBasePrice (10 )
114
125
->setPrice (10 )
115
126
->setRowTotal (10 );
116
127
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);
119
130
$ 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 ))
122
133
->setSubtotal (100 )
123
134
->setBaseSubtotal (100 )
124
135
->setBaseGrandTotal (100 )
@@ -128,7 +139,7 @@ public function testSaveOrder()
128
139
->setShippingAddress ($ shippingAddress )
129
140
->setStoreId (
130
141
$ this ->objectManager
131
- ->get (\ Magento \ Store \ Model \ StoreManagerInterface::class)
142
+ ->get (StoreManagerInterface::class)
132
143
->getStore ()
133
144
->getId ()
134
145
)
@@ -141,26 +152,36 @@ public function testSaveOrder()
141
152
}
142
153
143
154
/**
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
145
156
*
146
157
* @magentoDataFixture Magento/Store/_files/store_with_long_name.php
147
158
* @magentoDbIsolation disabled
148
159
* @return void
149
160
*/
150
- public function testSaveStoreName ()
161
+ public function testSaveLongNames (): void
151
162
{
163
+ $ xForwardedFor = str_repeat ('x ' , 255 );
164
+
152
165
$ store = $ this ->storeRepository ->get ('test_2 ' );
153
166
$ this ->storeManager ->setCurrentStore ($ store ->getId ());
154
167
$ eventManager = $ this ->objectManager ->get (ManagerInterface::class);
155
168
$ 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);
158
171
$ payment ->setMethod ('checkmo ' );
159
- $ order ->setStoreId ($ store ->getId ())->setPayment ($ payment );
172
+
173
+ $ order ->setStoreId ($ store ->getId ());
174
+ $ order ->setXForwardedFor ($ xForwardedFor );
175
+ $ order ->setPayment ($ payment );
160
176
$ this ->resourceModel ->save ($ order );
161
- $ orderRepository = $ this ->objectManager ->create (\Magento \Sales \Api \OrderRepositoryInterface::class);
177
+
178
+ $ orderRepository = $ this ->objectManager ->create (OrderRepositoryInterface::class);
162
179
$ order = $ orderRepository ->get ($ order ->getId ());
180
+
163
181
$ this ->assertEquals (255 , strlen ($ order ->getStoreName ()));
182
+ $ this ->assertEquals (255 , strlen ($ order ->getXForwardedFor ()));
183
+
184
+ $ this ->assertEquals ($ xForwardedFor , $ order ->getXForwardedFor ());
164
185
$ this ->assertStringContainsString ($ store ->getWebsite ()->getName (), $ order ->getStoreName ());
165
186
$ this ->assertStringContainsString ($ store ->getGroup ()->getName (), $ order ->getStoreName ());
166
187
}
0 commit comments