@@ -355,6 +355,55 @@ public function testDeleteCustomer(array $data): void
355355 $ this ->assertTrue ($ res ['deleted ' ]);
356356 }
357357
358+ /**
359+ * Test list disputes
360+ *
361+ * @param array $data
362+ * @return void
363+ */
364+ public function testListDisputes (): void
365+ {
366+ $ customer = $ this ->stripe ->createCustomer ('Test customer ' , 'testcustomer@email.com ' , ['city ' => 'Kathmandu ' , 'country ' => 'NP ' , 'line1 ' => 'Gaurighat ' , 'line2 ' => 'Pambu Marga ' , 'postal_code ' => '44600 ' , 'state ' => 'Bagmati ' ]);
367+ $ this ->assertNotEmpty ($ customer ['id ' ]);
368+ $ customerId = $ customer ['id ' ];
369+
370+ $ pm = $ this ->stripe ->createPaymentMethod ($ customerId , 'card ' , [
371+ 'number ' => 4000000000000259 ,
372+ 'exp_month ' => 8 ,
373+ 'exp_year ' => 2030 ,
374+ 'cvc ' => 123 ,
375+ ]);
376+ $ this ->assertNotEmpty ($ pm ['id ' ]);
377+ $ this ->assertNotEmpty ($ pm ['card ' ]);
378+
379+ $ card = $ pm ['card ' ];
380+ $ this ->assertEquals ('visa ' , $ card ['brand ' ]);
381+ $ this ->assertEquals ('US ' , $ card ['country ' ]);
382+ $ this ->assertEquals (2030 , $ card ['exp_year ' ]);
383+ $ this ->assertEquals (8 , $ card ['exp_month ' ]);
384+ $ this ->assertEquals ('0259 ' , $ card ['last4 ' ]);
385+
386+ $ paymentMethodId = $ pm ['id ' ];
387+
388+ $ purchase = $ this ->stripe ->purchase (5000 , $ customerId , $ paymentMethodId );
389+
390+ $ this ->assertNotEmpty ($ purchase ['id ' ]);
391+ $ this ->assertEquals (5000 , $ purchase ['amount_received ' ]);
392+ $ this ->assertEquals ('payment_intent ' , $ purchase ['object ' ]);
393+ $ this ->assertEquals ('succeeded ' , $ purchase ['status ' ]);
394+
395+ // list disputes
396+ $ paymentIntentId = $ purchase ['id ' ];
397+
398+ $ disputes = $ this ->stripe ->listDisputes (1 );
399+ $ this ->assertIsArray ($ disputes );
400+ $ this ->assertEquals (1 , count ($ disputes ));
401+
402+ $ disputes = $ this ->stripe ->listDisputes (paymentIntentId: $ paymentIntentId );
403+ $ this ->assertEquals (1 , count ($ disputes ));
404+ $ this ->assertEquals ($ paymentIntentId , $ disputes [0 ]['payment_intent ' ]);
405+ }
406+
358407 public function testErrorHandling (): void
359408 {
360409 try {
0 commit comments