17
17
use Adyen \Payment \Helper \Data ;
18
18
use Adyen \Payment \Helper \Creditmemo ;
19
19
use Adyen \Payment \Model \CreditmemoFactory ;
20
+ use Adyen \Payment \Model \ResourceModel \Creditmemo \Creditmemo as CreditmemoResourceModel ;
20
21
use Adyen \Payment \Model \ResourceModel \Order \Payment ;
21
22
use Adyen \Payment \Test \Unit \AbstractAdyenTestCase ;
22
23
use Magento \Framework \App \Helper \Context ;
24
+ use Magento \Framework \Exception \NoSuchEntityException ;
23
25
use Magento \Framework \Model \AbstractModel ;
24
26
25
27
class CreditmemoTest extends AbstractAdyenTestCase
@@ -123,7 +125,7 @@ public function testLinkAndUpdateAdyenCreditmemos()
123
125
public function testSaveMethodIsCalledCorrectNumberOfTimes ()
124
126
{
125
127
$ adyenCreditmemoResourceModelMock = $ this ->createMock (
126
- \ Adyen \ Payment \ Model \ ResourceModel \ Creditmemo \Creditmemo ::class
128
+ CreditmemoResourceModel ::class
127
129
);
128
130
$ magentoCreditmemoMock = $ this ->createMock (\Magento \Sales \Model \Order \Creditmemo::class);
129
131
$ magentoCreditmemoId = 1 ;
@@ -149,12 +151,95 @@ public function testSaveMethodIsCalledCorrectNumberOfTimes()
149
151
}
150
152
}
151
153
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
+
152
236
/**
153
237
* @param null $context
154
238
* @param null $adyenDataHelper
155
239
* @param null $adyenCreditmemoFactory
156
240
* @param null $adyenCreditmemoResourceModel
157
241
* @param null $orderPaymentResourceModel
242
+ * @param null $adyenCreditmemoRepositoryMock
158
243
* @return Creditmemo
159
244
*/
160
245
protected function createCreditmemoHelper (
@@ -164,8 +249,7 @@ protected function createCreditmemoHelper(
164
249
$ adyenCreditmemoResourceModel = null ,
165
250
$ orderPaymentResourceModel = null ,
166
251
$ adyenCreditmemoRepositoryMock = null
167
- ): Creditmemo
168
- {
252
+ ): Creditmemo {
169
253
if (is_null ($ context )) {
170
254
$ context = $ this ->createMock (Context::class);
171
255
}
@@ -180,7 +264,7 @@ protected function createCreditmemoHelper(
180
264
181
265
if (is_null ($ adyenCreditmemoResourceModel )) {
182
266
$ adyenCreditmemoResourceModel = $ this ->createMock (
183
- \ Adyen \ Payment \ Model \ ResourceModel \ Creditmemo \Creditmemo ::class
267
+ CreditmemoResourceModel ::class
184
268
);
185
269
}
186
270
0 commit comments