Skip to content

Commit 0ae8b44

Browse files
author
Can Demiralp
committed
[EPC-9489] Write unit tests
1 parent 006bfde commit 0ae8b44

File tree

1 file changed

+88
-4
lines changed

1 file changed

+88
-4
lines changed

Test/Unit/Helper/CreditmemoTest.php

+88-4
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@
1717
use Adyen\Payment\Helper\Data;
1818
use Adyen\Payment\Helper\Creditmemo;
1919
use Adyen\Payment\Model\CreditmemoFactory;
20+
use Adyen\Payment\Model\ResourceModel\Creditmemo\Creditmemo as CreditmemoResourceModel;
2021
use Adyen\Payment\Model\ResourceModel\Order\Payment;
2122
use Adyen\Payment\Test\Unit\AbstractAdyenTestCase;
2223
use Magento\Framework\App\Helper\Context;
24+
use Magento\Framework\Exception\NoSuchEntityException;
2325
use Magento\Framework\Model\AbstractModel;
2426

2527
class CreditmemoTest extends AbstractAdyenTestCase
@@ -123,7 +125,7 @@ public function testLinkAndUpdateAdyenCreditmemos()
123125
public function testSaveMethodIsCalledCorrectNumberOfTimes()
124126
{
125127
$adyenCreditmemoResourceModelMock = $this->createMock(
126-
\Adyen\Payment\Model\ResourceModel\Creditmemo\Creditmemo::class
128+
CreditmemoResourceModel::class
127129
);
128130
$magentoCreditmemoMock = $this->createMock(\Magento\Sales\Model\Order\Creditmemo::class);
129131
$magentoCreditmemoId = 1;
@@ -149,12 +151,95 @@ public function testSaveMethodIsCalledCorrectNumberOfTimes()
149151
}
150152
}
151153

154+
/**
155+
* @return void
156+
*/
157+
public function testUpdateAdyenCreditmemosStatus()
158+
{
159+
$adyenCreditmemoMock = $this->createMock(CreditmemoInterface::class);
160+
$status = 'refunded';
161+
162+
$adyenCreditmemoMock->expects($this->once())
163+
->method('setStatus')
164+
->with($status);
165+
166+
$adyenCreditmemoRepositoryMock = $this->createMock(AdyenCreditmemoRepositoryInterface::class);
167+
$adyenCreditmemoRepositoryMock->expects($this->once())
168+
->method('save')
169+
->with($adyenCreditmemoMock);
170+
171+
$creditmemoHelper = $this->createCreditmemoHelper(
172+
null,
173+
null,
174+
null,
175+
null,
176+
null,
177+
$adyenCreditmemoRepositoryMock
178+
);
179+
180+
$creditmemoHelper->updateAdyenCreditmemosStatus($adyenCreditmemoMock, $status);
181+
}
182+
183+
/**
184+
* @return array
185+
*/
186+
private static function dataproviderGetAdyenCreditmemoByPspreference(): array
187+
{
188+
return [
189+
['result' => ['entity_id' => 1]],
190+
['result' => null]
191+
];
192+
}
193+
194+
/**
195+
* @dataProvider dataproviderGetAdyenCreditmemoByPspreference
196+
*
197+
* @param $result
198+
* @return void
199+
* @throws NoSuchEntityException
200+
*/
201+
public function testGetAdyenCreditmemoByPspreference($result)
202+
{
203+
$pspreference = '123_abcdef';
204+
205+
$creditmemoResourceModel = $this->createMock(CreditmemoResourceModel::class);
206+
$creditmemoResourceModel->expects($this->once())
207+
->method('getAdyenCreditmemoByPspreference')
208+
->with($pspreference)
209+
->willReturn($result);
210+
211+
$creditmemoRepository = $this->createMock(AdyenCreditmemoRepositoryInterface::class);
212+
213+
$creditmemoHelper = $this->createCreditmemoHelper(
214+
null,
215+
null,
216+
null,
217+
$creditmemoResourceModel,
218+
null,
219+
$creditmemoRepository
220+
);
221+
222+
if (is_null($result)) {
223+
$this->assertNull($creditmemoHelper->getAdyenCreditmemoByPspreference($pspreference));
224+
} else {
225+
$creditmemoRepository->expects($this->once())
226+
->method('get')
227+
->with($result['entity_id']);
228+
229+
$this->assertInstanceOf(
230+
CreditmemoInterface::class,
231+
$creditmemoHelper->getAdyenCreditmemoByPspreference($pspreference)
232+
);
233+
}
234+
}
235+
152236
/**
153237
* @param null $context
154238
* @param null $adyenDataHelper
155239
* @param null $adyenCreditmemoFactory
156240
* @param null $adyenCreditmemoResourceModel
157241
* @param null $orderPaymentResourceModel
242+
* @param null $adyenCreditmemoRepositoryMock
158243
* @return Creditmemo
159244
*/
160245
protected function createCreditmemoHelper(
@@ -164,8 +249,7 @@ protected function createCreditmemoHelper(
164249
$adyenCreditmemoResourceModel = null,
165250
$orderPaymentResourceModel = null,
166251
$adyenCreditmemoRepositoryMock = null
167-
): Creditmemo
168-
{
252+
): Creditmemo {
169253
if (is_null($context)) {
170254
$context = $this->createMock(Context::class);
171255
}
@@ -180,7 +264,7 @@ protected function createCreditmemoHelper(
180264

181265
if (is_null($adyenCreditmemoResourceModel)) {
182266
$adyenCreditmemoResourceModel = $this->createMock(
183-
\Adyen\Payment\Model\ResourceModel\Creditmemo\Creditmemo::class
267+
CreditmemoResourceModel::class
184268
);
185269
}
186270

0 commit comments

Comments
 (0)