Skip to content

Commit d4db3b3

Browse files
committed
Cover changes with unit test.
1 parent 880bab5 commit d4db3b3

File tree

1 file changed

+66
-6
lines changed

1 file changed

+66
-6
lines changed

app/code/Magento/Sales/Test/Unit/Model/OrderTest.php

Lines changed: 66 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* Copyright © Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6+
67
namespace Magento\Sales\Test\Unit\Model;
78

89
use Magento\Catalog\Api\Data\ProductInterface;
@@ -17,13 +18,16 @@
1718
use Magento\Framework\Api\SearchCriteriaBuilder;
1819
use Magento\Framework\Api\SearchCriteria;
1920
use Magento\Sales\Api\Data\OrderItemSearchResultInterface;
21+
use Magento\Framework\App\Config\ScopeConfigInterface;
22+
use PHPUnit\Framework\MockObject\MockObject;
2023

2124
/**
2225
* Test class for \Magento\Sales\Model\Order
2326
*
2427
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
2528
* @SuppressWarnings(PHPMD.TooManyPublicMethods)
2629
* @SuppressWarnings(PHPMD.ExcessivePublicCount)
30+
* @SuppressWarnings(PHPMD.TooManyFields)
2731
*/
2832
class OrderTest extends \PHPUnit\Framework\TestCase
2933
{
@@ -102,6 +106,11 @@ class OrderTest extends \PHPUnit\Framework\TestCase
102106
*/
103107
private $searchCriteriaBuilder;
104108

109+
/**
110+
* @var MockObject|ScopeConfigInterface $scopeConfigMock
111+
*/
112+
private $scopeConfigMock;
113+
105114
protected function setUp()
106115
{
107116
$helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
@@ -125,14 +134,17 @@ protected function setUp()
125134
\Magento\Sales\Model\ResourceModel\Order\CollectionFactory::class,
126135
['create']
127136
);
128-
$this->item = $this->createPartialMock(\Magento\Sales\Model\ResourceModel\Order\Item::class, [
137+
$this->item = $this->createPartialMock(
138+
\Magento\Sales\Model\ResourceModel\Order\Item::class,
139+
[
129140
'isDeleted',
130141
'getQtyToInvoice',
131142
'getParentItemId',
132143
'getQuoteItemId',
133144
'getLockedDoInvoice',
134145
'getProductId',
135-
]);
146+
]
147+
);
136148
$this->salesOrderCollectionMock = $this->getMockBuilder(
137149
\Magento\Sales\Model\ResourceModel\Order\Collection::class
138150
)->disableOriginalConstructor()
@@ -168,6 +180,7 @@ protected function setUp()
168180
->setMethods(['addFilter', 'create'])
169181
->disableOriginalConstructor()->getMockForAbstractClass();
170182

183+
$this->scopeConfigMock = $this->createMock(ScopeConfigInterface::class);
171184
$this->order = $helper->getObject(
172185
\Magento\Sales\Model\Order::class,
173186
[
@@ -182,7 +195,8 @@ protected function setUp()
182195
'localeResolver' => $this->localeResolver,
183196
'timezone' => $this->timezone,
184197
'itemRepository' => $this->itemRepository,
185-
'searchCriteriaBuilder' => $this->searchCriteriaBuilder
198+
'searchCriteriaBuilder' => $this->searchCriteriaBuilder,
199+
'scopeConfig' => $this->scopeConfigMock
186200
]
187201
);
188202
}
@@ -354,6 +368,51 @@ public function testCanInvoice()
354368
$this->assertTrue($this->order->canInvoice());
355369
}
356370

371+
/**
372+
* Ensure customer name returned correctly.
373+
*
374+
* @dataProvider customerNameProvider
375+
* @param array $expectedData
376+
*/
377+
public function testGetCustomerName(array $expectedData)
378+
{
379+
$this->order->setCustomerFirstname($expectedData['first_name']);
380+
$this->order->setCustomerSuffix($expectedData['customer_suffix']);
381+
$this->order->setCustomerPrefix($expectedData['customer_prefix']);
382+
$this->scopeConfigMock->expects($this->exactly($expectedData['invocation']))
383+
->method('isSetFlag')
384+
->willReturn(true);
385+
$this->assertEquals($expectedData['expected_name'], $this->order->getCustomerName());
386+
}
387+
388+
/**
389+
* Customer name data provider
390+
*/
391+
public function customerNameProvider()
392+
{
393+
return
394+
[
395+
[
396+
[
397+
'first_name' => null,
398+
'invocation' => 0,
399+
'expected_name' => 'Guest',
400+
'customer_suffix' => 'smith',
401+
'customer_prefix' => 'mr.'
402+
]
403+
],
404+
[
405+
[
406+
'first_name' => 'Smith',
407+
'invocation' => 1,
408+
'expected_name' => 'mr. Smith Carl',
409+
'customer_suffix' => 'Carl',
410+
'customer_prefix' => 'mr.'
411+
]
412+
]
413+
];
414+
}
415+
357416
/**
358417
* @param string $status
359418
*
@@ -819,9 +878,10 @@ public function testCanVoidPayment($actionFlags, $orderState)
819878
if ($orderState == \Magento\Sales\Model\Order::STATE_PAYMENT_REVIEW) {
820879
$canVoidOrder = false;
821880
}
822-
if ($orderState == \Magento\Sales\Model\Order::STATE_HOLDED && (!isset(
823-
$actionFlags[\Magento\Sales\Model\Order::ACTION_FLAG_UNHOLD]
824-
) || $actionFlags[\Magento\Sales\Model\Order::ACTION_FLAG_UNHOLD] !== false)
881+
if ($orderState == \Magento\Sales\Model\Order::STATE_HOLDED &&
882+
(!isset($actionFlags[\Magento\Sales\Model\Order::ACTION_FLAG_UNHOLD]) ||
883+
$actionFlags[\Magento\Sales\Model\Order::ACTION_FLAG_UNHOLD] !== false
884+
)
825885
) {
826886
$canVoidOrder = false;
827887
}

0 commit comments

Comments
 (0)