DisputeSearchTest.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <?php
  2. namespace Test\Integration;
  3. require_once dirname(__DIR__) . '/Setup.php';
  4. use DateTime;
  5. use Test;
  6. use Test\Setup;
  7. use Braintree;
  8. class DisputeSearchTest extends Setup
  9. {
  10. public function testAdvancedSearch_noResults()
  11. {
  12. $collection = Braintree\Dispute::search([
  13. Braintree\DisputeSearch::id()->is('non_existent_dispute')
  14. ]);
  15. $disputes = $this->collectionToArray($collection);
  16. $this->assertEquals(0, count($disputes));
  17. }
  18. public function testAdvancedSearch_byId_returnsSingleDispute()
  19. {
  20. $collection = Braintree\Dispute::search([
  21. Braintree\DisputeSearch::id()->is('open_dispute')
  22. ]);
  23. $disputes = $this->collectionToArray($collection);
  24. $this->assertEquals(1, count($disputes));
  25. }
  26. public function testAdvancedSearch_byCustomerid_returnsDispute()
  27. {
  28. $customerId = Braintree\Customer::create()->customer->id;
  29. Braintree\Transaction::sale([
  30. 'amount' => '10.00',
  31. 'customerId' => $customerId,
  32. 'creditCard' => [
  33. 'number' => Braintree\Test\CreditCardNumbers::$disputes['Chargeback'],
  34. 'expirationDate' => "12/20"
  35. ]
  36. ]);
  37. $collection = Braintree\Dispute::search([
  38. Braintree\DisputeSearch::customerId()->is($customerId)
  39. ]);
  40. $disputes = $this->collectionToArray($collection);
  41. $this->assertEquals(1, count($disputes));
  42. }
  43. public function testAdvancededSearch_byReason_returnsTwoDisputes()
  44. {
  45. $collection = Braintree\Dispute::search([
  46. Braintree\DisputeSearch::reason()->in([
  47. Braintree\Dispute::PRODUCT_UNSATISFACTORY,
  48. Braintree\Dispute::RETRIEVAL
  49. ])
  50. ]);
  51. $disputes = $this->collectionToArray($collection);
  52. $this->assertEquals(2, count($disputes));
  53. }
  54. public function testAdvancedSearch_byReceivedDateRange_returnsDispute()
  55. {
  56. $collection = Braintree\Dispute::search([
  57. Braintree\DisputeSearch::receivedDate()->between(
  58. "03/03/2014",
  59. "03/05/2014"
  60. )
  61. ]);
  62. $disputes = $this->collectionToArray($collection);
  63. $this->assertEquals(1, count($disputes));
  64. $this->assertEquals($disputes[0]->receivedDate, DateTime::createFromFormat('Ymd His', '20140304 000000'));
  65. }
  66. public function testAdvancedSearch_byDisbursementDateRange_returnsDispute()
  67. {
  68. $collection = Braintree\Dispute::search([
  69. Braintree\DisputeSearch::disbursementDate()->between(
  70. "03/03/2014",
  71. "03/05/2014"
  72. )
  73. ]);
  74. $disputes = $this->collectionToArray($collection);
  75. $this->assertEquals(1, count($disputes));
  76. $this->assertEquals($disputes[0]->statusHistory[0]->effectiveDate, DateTime::createFromFormat('Ymd His', '20140304 000000'));
  77. }
  78. public function testAdvancedSearch_byEffectiveDateRange_returnsDispute()
  79. {
  80. $collection = Braintree\Dispute::search([
  81. Braintree\DisputeSearch::disbursementDate()->between(
  82. "03/03/2014",
  83. "03/05/2014"
  84. )
  85. ]);
  86. $disputes = $this->collectionToArray($collection);
  87. $this->assertEquals(1, count($disputes));
  88. $this->assertEquals($disputes[0]->statusHistory[0]->disbursementDate, DateTime::createFromFormat('Ymd His', '20140305 000000'));
  89. }
  90. private function collectionToArray($collection) {
  91. $array = [];
  92. foreach($collection as $element) {
  93. array_push($array, $element);
  94. }
  95. return $array;
  96. }
  97. }