Skip to content

Commit 2c8cfc9

Browse files
[Magento Community Engineering] Community Contributions - 2.4-develop-prs
- merged with '2.4-develop-fast-lane-prs' branch
2 parents 35a1b12 + ba7bde9 commit 2c8cfc9

File tree

2 files changed

+54
-33
lines changed

2 files changed

+54
-33
lines changed

app/code/Magento/Sales/etc/db_schema.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@
220220
<column xsi:type="varchar" name="shipping_method" nullable="true" length="120"/>
221221
<column xsi:type="varchar" name="store_currency_code" nullable="true" length="3" comment="Store Currency Code"/>
222222
<column xsi:type="varchar" name="store_name" nullable="true" length="255" comment="Store Name"/>
223-
<column xsi:type="varchar" name="x_forwarded_for" nullable="true" length="32" comment="X Forwarded For"/>
223+
<column xsi:type="varchar" name="x_forwarded_for" nullable="true" length="255" comment="X Forwarded For"/>
224224
<column xsi:type="text" name="customer_note" nullable="true" comment="Customer Note"/>
225225
<column xsi:type="timestamp" name="created_at" on_update="false" nullable="false" default="CURRENT_TIMESTAMP"
226226
comment="Created At"/>

dev/tests/integration/testsuite/Magento/Sales/Model/ResourceModel/OrderTest.php

Lines changed: 53 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,46 @@
33
* Copyright © Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6+
67
declare(strict_types=1);
78

89
namespace Magento\Sales\Model\ResourceModel;
910

10-
use Magento\Store\Api\StoreRepositoryInterface;
11-
use Magento\Store\Model\StoreManagerInterface;
1211
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;
1319
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;
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

Comments
 (0)