@@ -55,10 +55,19 @@ public function testShouldDoASyncIfPaymentHasId(): void
5555 $ gatewayMock
5656 ->expects ($ this ->exactly (2 ))
5757 ->method ('execute ' )
58- ->withConsecutive (
59- [$ this ->isInstanceOf (Sync::class)],
60- [$ this ->isInstanceOf (CaptureAuthorized::class)]
61- )
58+ ->with ($ this ->callback (function ($ request ) {
59+ static $ callCount = 0 ;
60+ $ callCount ++;
61+
62+ switch ($ callCount ) {
63+ case 1 :
64+ return $ request instanceof Sync;
65+ case 2 :
66+ return $ request instanceof CaptureAuthorized;
67+ default :
68+ return false ;
69+ }
70+ }))
6271 ;
6372
6473 $ token = new Token ();
@@ -99,13 +108,26 @@ public function executeCaptureAction(array $model, string $objectName): void
99108 $ gatewayMock
100109 ->expects ($ this ->exactly (3 ))
101110 ->method ('execute ' )
102- ->withConsecutive (
103- [$ this ->isInstanceOf (CreateSession::class)],
104- [$ this ->isInstanceOf (Sync::class)],
105- [$ this ->isInstanceOf (RedirectToCheckout::class)]
106- )
111+ ->with ($ this ->callback (function ($ request ) {
112+ static $ callCount = 0 ;
113+ $ callCount ++;
114+
115+ switch ($ callCount ) {
116+ case 1 :
117+ return $ request instanceof CreateSession;
118+ case 2 :
119+ return $ request instanceof Sync;
120+ case 3 :
121+ return $ request instanceof RedirectToCheckout;
122+ default :
123+ return false ;
124+ }
125+ }))
107126 ->willReturnOnConsecutiveCalls (
108127 $ this ->returnCallback (function (CreateSession $ request ) {
128+ $ this ->assertEquals ([
129+ 'idempotency_key ' => md5 (1 ),
130+ ], $ request ->getOptions ());
109131 $ this ->assertInstanceOf (ArrayObject::class, $ request ->getModel ());
110132 $ request ->setApiResource (new Session ('sess_0001 ' ));
111133 }),
0 commit comments