Skip to content

Commit 0f3c530

Browse files
author
olysenko
committed
Merge remote-tracking branch 'origin/MAGETWO-60054' into bugfixes
2 parents ae86ec3 + cf5bdf9 commit 0f3c530

13 files changed

+199
-107
lines changed

app/code/Magento/Sales/Model/Order/PaymentAdapter.php

Lines changed: 11 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,53 +5,35 @@
55
*/
66
namespace Magento\Sales\Model\Order;
77

8+
use Magento\Sales\Api\Data\InvoiceInterface;
9+
use Magento\Sales\Api\Data\OrderInterface;
10+
use Magento\Sales\Model\Order\Invoice\PayOperation;
11+
812
/**
9-
* Payment adapter.
10-
*
11-
* @api
13+
* @inheritdoc
1214
*/
1315
class PaymentAdapter implements PaymentAdapterInterface
1416
{
1517
/**
16-
* @var \Magento\Sales\Model\Order\Creditmemo\RefundOperation
17-
*/
18-
private $refundOperation;
19-
20-
/**
21-
* @var \Magento\Sales\Model\Order\Invoice\PayOperation
18+
* @var PayOperation
2219
*/
2320
private $payOperation;
2421

2522
/**
26-
* PaymentAdapter constructor.
27-
* @param \Magento\Sales\Model\Order\Creditmemo\RefundOperation $refundOperation
28-
* @param \Magento\Sales\Model\Order\Invoice\PayOperation $payOperation
23+
* @param PayOperation $payOperation
2924
*/
3025
public function __construct(
31-
\Magento\Sales\Model\Order\Creditmemo\RefundOperation $refundOperation,
32-
\Magento\Sales\Model\Order\Invoice\PayOperation $payOperation
26+
PayOperation $payOperation
3327
) {
34-
$this->refundOperation = $refundOperation;
3528
$this->payOperation = $payOperation;
3629
}
3730

3831
/**
39-
* {@inheritdoc}
40-
*/
41-
public function refund(
42-
\Magento\Sales\Api\Data\CreditmemoInterface $creditmemo,
43-
\Magento\Sales\Api\Data\OrderInterface $order,
44-
$isOnline = false
45-
) {
46-
return $this->refundOperation->execute($creditmemo, $order, $isOnline);
47-
}
48-
49-
/**
50-
* {@inheritdoc}
32+
* @inheritdoc
5133
*/
5234
public function pay(
53-
\Magento\Sales\Api\Data\OrderInterface $order,
54-
\Magento\Sales\Api\Data\InvoiceInterface $invoice,
35+
OrderInterface $order,
36+
InvoiceInterface $invoice,
5537
$capture
5638
) {
5739
return $this->payOperation->execute($order, $invoice, $capture);

app/code/Magento/Sales/Model/Order/PaymentAdapterInterface.php

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6-
76
namespace Magento\Sales\Model\Order;
87

98
use Magento\Sales\Api\Data\InvoiceInterface;
109
use Magento\Sales\Api\Data\OrderInterface;
1110

1211
/**
13-
* Interface PaymentAdapterInterface
12+
* Encapsulates payment operation behind unified interface.
13+
* Can be used as extension point.
1414
*
1515
* @api
1616
*/
@@ -23,16 +23,4 @@ interface PaymentAdapterInterface
2323
* @return OrderInterface
2424
*/
2525
public function pay(OrderInterface $order, InvoiceInterface $invoice, $capture);
26-
27-
/**
28-
* @param \Magento\Sales\Api\Data\CreditmemoInterface $creditmemo
29-
* @param \Magento\Sales\Api\Data\OrderInterface $order
30-
* @param bool $isOnline
31-
* @return \Magento\Sales\Api\Data\OrderInterface
32-
*/
33-
public function refund(
34-
\Magento\Sales\Api\Data\CreditmemoInterface $creditmemo,
35-
\Magento\Sales\Api\Data\OrderInterface $order,
36-
$isOnline = false
37-
);
3826
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<?php
2+
/**
3+
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Sales\Model\Order;
7+
8+
use Magento\Sales\Api\Data\CreditmemoInterface;
9+
use Magento\Sales\Api\Data\OrderInterface;
10+
use Magento\Sales\Model\Order\Creditmemo\RefundOperation;
11+
12+
/**
13+
* @inheritdoc
14+
*/
15+
class RefundAdapter implements RefundAdapterInterface
16+
{
17+
/**
18+
* @var RefundOperation
19+
*/
20+
private $refundOperation;
21+
22+
/**
23+
* @param RefundOperation $refundOperation
24+
*/
25+
public function __construct(
26+
RefundOperation $refundOperation
27+
) {
28+
$this->refundOperation = $refundOperation;
29+
}
30+
31+
/**
32+
* @inheritdoc
33+
*/
34+
public function refund(
35+
CreditmemoInterface $creditmemo,
36+
OrderInterface $order,
37+
$isOnline = false
38+
) {
39+
return $this->refundOperation->execute($creditmemo, $order, $isOnline);
40+
}
41+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?php
2+
/**
3+
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Sales\Model\Order;
7+
8+
use Magento\Sales\Api\Data\CreditmemoInterface;
9+
use Magento\Sales\Api\Data\OrderInterface;
10+
11+
/**
12+
* Encapsulates refund operation behind unified interface.
13+
* Can be used as extension point.
14+
*
15+
* @api
16+
*/
17+
interface RefundAdapterInterface
18+
{
19+
/**
20+
* @param CreditmemoInterface $creditmemo
21+
* @param OrderInterface $order
22+
* @param bool $isOnline
23+
* @return OrderInterface
24+
*/
25+
public function refund(
26+
CreditmemoInterface $creditmemo,
27+
OrderInterface $order,
28+
$isOnline = false
29+
);
30+
}

app/code/Magento/Sales/Model/RefundInvoice.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
use Magento\Sales\Model\Order\CreditmemoDocumentFactory;
1616
use Magento\Sales\Model\Order\Validation\RefundInvoiceInterface as RefundInvoiceValidator;
1717
use Magento\Sales\Model\Order\OrderStateResolverInterface;
18-
use Magento\Sales\Model\Order\PaymentAdapterInterface;
18+
use Magento\Sales\Model\Order\RefundAdapterInterface;
1919
use Psr\Log\LoggerInterface;
2020

2121
/**
@@ -50,9 +50,9 @@ class RefundInvoice implements RefundInvoiceInterface
5050
private $creditmemoRepository;
5151

5252
/**
53-
* @var PaymentAdapterInterface
53+
* @var RefundAdapterInterface
5454
*/
55-
private $paymentAdapter;
55+
private $refundAdapter;
5656

5757
/**
5858
* @var CreditmemoDocumentFactory
@@ -88,7 +88,7 @@ class RefundInvoice implements RefundInvoiceInterface
8888
* @param InvoiceRepositoryInterface $invoiceRepository
8989
* @param RefundInvoiceValidator $validator
9090
* @param CreditmemoRepositoryInterface $creditmemoRepository
91-
* @param PaymentAdapterInterface $paymentAdapter
91+
* @param RefundAdapterInterface $refundAdapter
9292
* @param CreditmemoDocumentFactory $creditmemoDocumentFactory
9393
* @param NotifierInterface $notifier
9494
* @param OrderConfig $config
@@ -102,7 +102,7 @@ public function __construct(
102102
InvoiceRepositoryInterface $invoiceRepository,
103103
RefundInvoiceValidator $validator,
104104
CreditmemoRepositoryInterface $creditmemoRepository,
105-
PaymentAdapterInterface $paymentAdapter,
105+
RefundAdapterInterface $refundAdapter,
106106
CreditmemoDocumentFactory $creditmemoDocumentFactory,
107107
NotifierInterface $notifier,
108108
OrderConfig $config,
@@ -114,7 +114,7 @@ public function __construct(
114114
$this->invoiceRepository = $invoiceRepository;
115115
$this->validator = $validator;
116116
$this->creditmemoRepository = $creditmemoRepository;
117-
$this->paymentAdapter = $paymentAdapter;
117+
$this->refundAdapter = $refundAdapter;
118118
$this->creditmemoDocumentFactory = $creditmemoDocumentFactory;
119119
$this->notifier = $notifier;
120120
$this->config = $config;
@@ -164,7 +164,7 @@ public function execute(
164164
try {
165165
$creditmemo->setState(\Magento\Sales\Model\Order\Creditmemo::STATE_REFUNDED);
166166
$order->setCustomerNoteNotify($notify);
167-
$order = $this->paymentAdapter->refund($creditmemo, $order, $isOnline);
167+
$order = $this->refundAdapter->refund($creditmemo, $order, $isOnline);
168168
$order->setState(
169169
$this->orderStateResolver->getStateForOrder($order, [])
170170
);

app/code/Magento/Sales/Model/RefundOrder.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
use Magento\Sales\Model\Order\Creditmemo\NotifierInterface;
1414
use Magento\Sales\Model\Order\CreditmemoDocumentFactory;
1515
use Magento\Sales\Model\Order\OrderStateResolverInterface;
16-
use Magento\Sales\Model\Order\PaymentAdapterInterface;
16+
use Magento\Sales\Model\Order\RefundAdapterInterface;
1717
use Magento\Sales\Model\Order\Validation\RefundOrderInterface as RefundOrderValidator;
1818
use Psr\Log\LoggerInterface;
1919

@@ -44,9 +44,9 @@ class RefundOrder implements RefundOrderInterface
4444
private $creditmemoRepository;
4545

4646
/**
47-
* @var PaymentAdapterInterface
47+
* @var RefundAdapterInterface
4848
*/
49-
private $paymentAdapter;
49+
private $refundAdapter;
5050

5151
/**
5252
* @var CreditmemoDocumentFactory
@@ -80,7 +80,7 @@ class RefundOrder implements RefundOrderInterface
8080
* @param OrderStateResolverInterface $orderStateResolver
8181
* @param OrderRepositoryInterface $orderRepository
8282
* @param CreditmemoRepositoryInterface $creditmemoRepository
83-
* @param PaymentAdapterInterface $paymentAdapter
83+
* @param RefundAdapterInterface $refundAdapter
8484
* @param CreditmemoDocumentFactory $creditmemoDocumentFactory
8585
* @param RefundOrderValidator $validator
8686
* @param NotifierInterface $notifier
@@ -93,7 +93,7 @@ public function __construct(
9393
OrderStateResolverInterface $orderStateResolver,
9494
OrderRepositoryInterface $orderRepository,
9595
CreditmemoRepositoryInterface $creditmemoRepository,
96-
PaymentAdapterInterface $paymentAdapter,
96+
RefundAdapterInterface $refundAdapter,
9797
CreditmemoDocumentFactory $creditmemoDocumentFactory,
9898
RefundOrderValidator $validator,
9999
NotifierInterface $notifier,
@@ -104,7 +104,7 @@ public function __construct(
104104
$this->orderStateResolver = $orderStateResolver;
105105
$this->orderRepository = $orderRepository;
106106
$this->creditmemoRepository = $creditmemoRepository;
107-
$this->paymentAdapter = $paymentAdapter;
107+
$this->refundAdapter = $refundAdapter;
108108
$this->creditmemoDocumentFactory = $creditmemoDocumentFactory;
109109
$this->validator = $validator;
110110
$this->notifier = $notifier;
@@ -150,7 +150,7 @@ public function execute(
150150
try {
151151
$creditmemo->setState(\Magento\Sales\Model\Order\Creditmemo::STATE_REFUNDED);
152152
$order->setCustomerNoteNotify($notify);
153-
$order = $this->paymentAdapter->refund($creditmemo, $order);
153+
$order = $this->refundAdapter->refund($creditmemo, $order);
154154
$order->setState(
155155
$this->orderStateResolver->getStateForOrder($order, [])
156156
);

app/code/Magento/Sales/Model/Service/CreditmemoService.php

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@ class CreditmemoService implements \Magento\Sales\Api\CreditmemoManagementInterf
5353
private $resource;
5454

5555
/**
56-
* @var \Magento\Sales\Model\Order\PaymentAdapterInterface
56+
* @var \Magento\Sales\Model\Order\RefundAdapterInterface
5757
*/
58-
private $paymentAdapter;
58+
private $refundAdapter;
5959

6060
/**
6161
* @var \Magento\Sales\Api\OrderRepositoryInterface
@@ -163,7 +163,7 @@ public function refund(
163163
$connection = $this->getResource()->getConnection('sales');
164164
$connection->beginTransaction();
165165
try {
166-
$order = $this->getPaymentAdapter()->refund(
166+
$order = $this->getRefundAdapter()->refund(
167167
$creditmemo,
168168
$creditmemo->getOrder(),
169169
!$offlineRequested
@@ -219,17 +219,17 @@ protected function validateForRefund(\Magento\Sales\Api\Data\CreditmemoInterface
219219
}
220220

221221
/**
222-
* @return \Magento\Sales\Model\Order\PaymentAdapterInterface
222+
* @return \Magento\Sales\Model\Order\RefundAdapterInterface
223223
*
224224
* @deprecated
225225
*/
226-
private function getPaymentAdapter()
226+
private function getRefundAdapter()
227227
{
228-
if ($this->paymentAdapter === null) {
229-
$this->paymentAdapter = \Magento\Framework\App\ObjectManager::getInstance()
230-
->get(\Magento\Sales\Model\Order\PaymentAdapterInterface::class);
228+
if ($this->refundAdapter === null) {
229+
$this->refundAdapter = \Magento\Framework\App\ObjectManager::getInstance()
230+
->get(\Magento\Sales\Model\Order\RefundAdapterInterface::class);
231231
}
232-
return $this->paymentAdapter;
232+
return $this->refundAdapter;
233233
}
234234

235235
/**

app/code/Magento/Sales/Test/Unit/Model/Order/PaymentAdapterTest.php

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,6 @@ class PaymentAdapterTest extends \PHPUnit_Framework_TestCase
2525
*/
2626
private $creditmemoMock;
2727

28-
/**
29-
* @var \Magento\Sales\Model\Order\Creditmemo\RefundOperation|\PHPUnit_Framework_MockObject_MockObject
30-
*/
31-
private $refundOperationMock;
32-
3328
/**
3429
* @var \Magento\Sales\Api\Data\InvoiceInterface|\PHPUnit_Framework_MockObject_MockObject
3530
*/
@@ -50,10 +45,6 @@ protected function setUp()
5045
->disableOriginalConstructor()
5146
->getMockForAbstractClass();
5247

53-
$this->refundOperationMock = $this->getMockBuilder(\Magento\Sales\Model\Order\Creditmemo\RefundOperation::class)
54-
->disableOriginalConstructor()
55-
->getMock();
56-
5748
$this->invoiceMock = $this->getMockBuilder(\Magento\Sales\Api\Data\InvoiceInterface::class)
5849
->disableOriginalConstructor()
5950
->getMockForAbstractClass();
@@ -63,24 +54,10 @@ protected function setUp()
6354
->getMock();
6455

6556
$this->subject = new \Magento\Sales\Model\Order\PaymentAdapter(
66-
$this->refundOperationMock,
6757
$this->payOperationMock
6858
);
6959
}
7060

71-
public function testRefund()
72-
{
73-
$isOnline = true;
74-
$this->refundOperationMock->expects($this->once())
75-
->method('execute')
76-
->with($this->creditmemoMock, $this->orderMock, $isOnline)
77-
->willReturn($this->orderMock);
78-
$this->assertEquals(
79-
$this->orderMock,
80-
$this->subject->refund($this->creditmemoMock, $this->orderMock, $isOnline)
81-
);
82-
}
83-
8461
public function testPay()
8562
{
8663
$isOnline = true;

0 commit comments

Comments
 (0)