3
3
* Copyright © Magento, Inc. All rights reserved.
4
4
* See COPYING.txt for license details.
5
5
*/
6
+
6
7
namespace Magento \Sales \Test \Unit \Model ;
7
8
8
9
use Magento \Catalog \Api \Data \ProductInterface ;
17
18
use Magento \Framework \Api \SearchCriteriaBuilder ;
18
19
use Magento \Framework \Api \SearchCriteria ;
19
20
use Magento \Sales \Api \Data \OrderItemSearchResultInterface ;
21
+ use Magento \Framework \App \Config \ScopeConfigInterface ;
22
+ use PHPUnit \Framework \MockObject \MockObject ;
20
23
21
24
/**
22
25
* Test class for \Magento\Sales\Model\Order
23
26
*
24
27
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
25
28
* @SuppressWarnings(PHPMD.TooManyPublicMethods)
26
29
* @SuppressWarnings(PHPMD.ExcessivePublicCount)
30
+ * @SuppressWarnings(PHPMD.TooManyFields)
27
31
*/
28
32
class OrderTest extends \PHPUnit \Framework \TestCase
29
33
{
@@ -102,6 +106,11 @@ class OrderTest extends \PHPUnit\Framework\TestCase
102
106
*/
103
107
private $ searchCriteriaBuilder ;
104
108
109
+ /**
110
+ * @var MockObject|ScopeConfigInterface $scopeConfigMock
111
+ */
112
+ private $ scopeConfigMock ;
113
+
105
114
protected function setUp ()
106
115
{
107
116
$ helper = new \Magento \Framework \TestFramework \Unit \Helper \ObjectManager ($ this );
@@ -125,14 +134,17 @@ protected function setUp()
125
134
\Magento \Sales \Model \ResourceModel \Order \CollectionFactory::class,
126
135
['create ' ]
127
136
);
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
+ [
129
140
'isDeleted ' ,
130
141
'getQtyToInvoice ' ,
131
142
'getParentItemId ' ,
132
143
'getQuoteItemId ' ,
133
144
'getLockedDoInvoice ' ,
134
145
'getProductId ' ,
135
- ]);
146
+ ]
147
+ );
136
148
$ this ->salesOrderCollectionMock = $ this ->getMockBuilder (
137
149
\Magento \Sales \Model \ResourceModel \Order \Collection::class
138
150
)->disableOriginalConstructor ()
@@ -168,6 +180,7 @@ protected function setUp()
168
180
->setMethods (['addFilter ' , 'create ' ])
169
181
->disableOriginalConstructor ()->getMockForAbstractClass ();
170
182
183
+ $ this ->scopeConfigMock = $ this ->createMock (ScopeConfigInterface::class);
171
184
$ this ->order = $ helper ->getObject (
172
185
\Magento \Sales \Model \Order::class,
173
186
[
@@ -182,7 +195,8 @@ protected function setUp()
182
195
'localeResolver ' => $ this ->localeResolver ,
183
196
'timezone ' => $ this ->timezone ,
184
197
'itemRepository ' => $ this ->itemRepository ,
185
- 'searchCriteriaBuilder ' => $ this ->searchCriteriaBuilder
198
+ 'searchCriteriaBuilder ' => $ this ->searchCriteriaBuilder ,
199
+ 'scopeConfig ' => $ this ->scopeConfigMock
186
200
]
187
201
);
188
202
}
@@ -354,6 +368,51 @@ public function testCanInvoice()
354
368
$ this ->assertTrue ($ this ->order ->canInvoice ());
355
369
}
356
370
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
+
357
416
/**
358
417
* @param string $status
359
418
*
@@ -819,9 +878,10 @@ public function testCanVoidPayment($actionFlags, $orderState)
819
878
if ($ orderState == \Magento \Sales \Model \Order::STATE_PAYMENT_REVIEW ) {
820
879
$ canVoidOrder = false ;
821
880
}
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
+ )
825
885
) {
826
886
$ canVoidOrder = false ;
827
887
}
0 commit comments