ReferencedPayoutsTest.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. namespace Srmklive\PayPal\Tests\Unit\Client;
  3. use GuzzleHttp\Utils;
  4. use PHPUnit\Framework\Attributes\Test;
  5. use PHPUnit\Framework\TestCase;
  6. use Srmklive\PayPal\Tests\MockClientClasses;
  7. use Srmklive\PayPal\Tests\MockRequestPayloads;
  8. use Srmklive\PayPal\Tests\MockResponsePayloads;
  9. class ReferencedPayoutsTest extends TestCase
  10. {
  11. use MockClientClasses;
  12. use MockRequestPayloads;
  13. use MockResponsePayloads;
  14. #[Test]
  15. public function it_can_create_referenced_batch_payout(): void
  16. {
  17. $expectedResponse = $this->mockCreateReferencedBatchPayoutResponse();
  18. $expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/payments/referenced-payouts';
  19. $expectedParams = [
  20. 'headers' => [
  21. 'Accept' => 'application/json',
  22. 'Accept-Language' => 'en_US',
  23. 'Authorization' => 'Bearer some-token',
  24. 'PayPal-Request-Id' => 'some-request-id',
  25. 'PayPal-Partner-Attribution-Id' => 'some-attribution-id',
  26. ],
  27. 'json' => $this->mockCreateReferencedBatchPayoutParams(),
  28. ];
  29. $mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
  30. $this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
  31. }
  32. #[Test]
  33. public function it_can_list_items_referenced_in_batch_payout(): void
  34. {
  35. $expectedResponse = $this->mockShowReferencedBatchPayoutResponse();
  36. $expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/payments/referenced-payouts/KHbwO28lWlXwi2IlToJ2IYNG4juFv6kpbFx4J9oQ5Hb24RSp96Dk5FudVHd6v4E=';
  37. $expectedParams = [
  38. 'headers' => [
  39. 'Accept' => 'application/json',
  40. 'Accept-Language' => 'en_US',
  41. 'Authorization' => 'Bearer some-token',
  42. ],
  43. ];
  44. $mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
  45. $this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
  46. }
  47. #[Test]
  48. public function it_can_create_referenced_batch_payout_item(): void
  49. {
  50. $expectedResponse = $this->mockCreateReferencedBatchPayoutItemResponse();
  51. $expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/payments/referenced-payouts-items';
  52. $expectedParams = [
  53. 'headers' => [
  54. 'Accept' => 'application/json',
  55. 'Accept-Language' => 'en_US',
  56. 'Authorization' => 'Bearer some-token',
  57. 'PayPal-Request-Id' => 'some-request-id',
  58. 'PayPal-Partner-Attribution-Id' => 'some-attribution-id',
  59. ],
  60. 'json' => $this->mockCreateReferencedBatchPayoutItemParams(),
  61. ];
  62. $mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
  63. $this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
  64. }
  65. #[Test]
  66. public function it_can_show_referenced_payout_item_details(): void
  67. {
  68. $expectedResponse = $this->mockShowReferencedBatchPayoutItemResponse();
  69. $expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/payments/referenced-payouts-items/CDZEC5MJ8R5HY';
  70. $expectedParams = [
  71. 'headers' => [
  72. 'Accept' => 'application/json',
  73. 'Accept-Language' => 'en_US',
  74. 'Authorization' => 'Bearer some-token',
  75. 'PayPal-Request-Id' => 'some-request-id',
  76. 'PayPal-Partner-Attribution-Id' => 'some-attribution-id',
  77. ],
  78. 'json' => $this->mockCreateReferencedBatchPayoutItemParams(),
  79. ];
  80. $mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
  81. $this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
  82. }
  83. }