Skip to content

Commit 6d39c8f

Browse files
committed
MAGETWO-62428: [Github] Parameters from website configuration isn't applied to the corresponding store view #7943
- Unit test added
1 parent 14af54c commit 6d39c8f

File tree

1 file changed

+88
-0
lines changed

1 file changed

+88
-0
lines changed

app/code/Magento/Sales/Test/Unit/Model/Service/CreditmemoServiceTest.php

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
*/
66
namespace Magento\Sales\Test\Unit\Model\Service;
77

8+
use Magento\Framework\Exception\LocalizedException;
9+
use Magento\Framework\Phrase\RendererInterface;
810
use Magento\Sales\Model\Order;
911

1012
/**
@@ -311,4 +313,90 @@ public function testRefundDoNotExpectsId()
311313
$creditMemoMock->expects($this->once())->method('getId')->willReturn(444);
312314
$this->creditmemoService->refund($creditMemoMock, true);
313315
}
316+
317+
/**
318+
* @expectedException \Magento\Framework\Exception\LocalizedException
319+
*/
320+
public function testRefundWithException()
321+
{
322+
$creditMemoMock = $this->getMockBuilder(\Magento\Sales\Api\Data\CreditmemoInterface::class)
323+
->setMethods(['getId', 'getOrder', 'getInvoice'])
324+
->disableOriginalConstructor()
325+
->getMockForAbstractClass();
326+
$creditMemoMock->expects($this->once())->method('getId')->willReturn(null);
327+
$orderMock = $this->getMockBuilder(Order::class)->disableOriginalConstructor()->getMock();
328+
329+
$creditMemoMock->expects($this->atLeastOnce())->method('getOrder')->willReturn($orderMock);
330+
$orderMock->expects($this->once())->method('getBaseTotalRefunded')->willReturn(0);
331+
$orderMock->expects($this->once())->method('getBaseTotalPaid')->willReturn(10);
332+
$creditMemoMock->expects($this->once())->method('getBaseGrandTotal')->willReturn(10);
333+
334+
$this->priceCurrencyMock->expects($this->any())
335+
->method('round')
336+
->willReturnArgument(0);
337+
338+
// Set payment adapter dependency
339+
$refundAdapterMock = $this->getMockBuilder(\Magento\Sales\Model\Order\RefundAdapterInterface::class)
340+
->disableOriginalConstructor()
341+
->getMockForAbstractClass();
342+
$this->objectManagerHelper->setBackwardCompatibleProperty(
343+
$this->creditmemoService,
344+
'refundAdapter',
345+
$refundAdapterMock
346+
);
347+
348+
// Set resource dependency
349+
$resourceMock = $this->getMockBuilder(\Magento\Framework\App\ResourceConnection::class)
350+
->disableOriginalConstructor()
351+
->getMock();
352+
$this->objectManagerHelper->setBackwardCompatibleProperty(
353+
$this->creditmemoService,
354+
'resource',
355+
$resourceMock
356+
);
357+
358+
// Set order repository dependency
359+
$orderRepositoryMock = $this->getMockBuilder(\Magento\Sales\Api\OrderRepositoryInterface::class)
360+
->disableOriginalConstructor()
361+
->getMockForAbstractClass();
362+
$this->objectManagerHelper->setBackwardCompatibleProperty(
363+
$this->creditmemoService,
364+
'orderRepository',
365+
$orderRepositoryMock
366+
);
367+
368+
$adapterMock = $this->getMockBuilder(\Magento\Framework\DB\Adapter\AdapterInterface::class)
369+
->disableOriginalConstructor()
370+
->getMockForAbstractClass();
371+
$resourceMock->expects($this->once())->method('getConnection')->with('sales')->willReturn($adapterMock);
372+
$adapterMock->expects($this->once())->method('beginTransaction');
373+
374+
/** @var RendererInterface|\PHPUnit_Framework_MockObject_MockObject $rendererMock */
375+
$rendererMock = $this->getMockBuilder(RendererInterface::class)
376+
->setMethods(['render'])
377+
->getMockForAbstractClass();
378+
379+
$rendererMock->expects($this->atLeastOnce())
380+
->method('render')
381+
->with(['Something went wrong'], [])
382+
->willReturn('Algo salió mal');
383+
384+
\Magento\Framework\Phrase::setRenderer($rendererMock);
385+
386+
$exception = new \Exception('Something went wrong');
387+
$thrownException = new LocalizedException(new \Magento\Framework\Phrase('Something went wrong'));
388+
389+
$refundAdapterMock->expects($this->once())
390+
->method('refund')
391+
->with($creditMemoMock, $orderMock, false)
392+
->will($this->throwException($exception));
393+
394+
$adapterMock->expects($this->once())->method('rollBack');
395+
$this->assertEquals(
396+
new \Magento\Framework\Phrase($exception->getMessage()),
397+
$thrownException->getMessage()
398+
);
399+
400+
$this->creditmemoService->refund($creditMemoMock, true);
401+
}
314402
}

0 commit comments

Comments
 (0)