🆙 Add cms i using 🆙

This commit is contained in:
Remco
2025-11-25 22:42:56 +01:00
parent 94704e0925
commit d44196149e
35591 changed files with 3601123 additions and 0 deletions
@@ -0,0 +1,129 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Adapter;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class BillingPlansTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_create_a_billing_plan(): void
{
$expectedResponse = $this->mockCreatePlansResponse();
$expectedParams = $this->createPlanParams();
$expectedMethod = 'createPlan';
$additionalMethod = 'setRequestHeader';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true, $additionalMethod);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$mockClient->{$additionalMethod}('PayPal-Request-Id', 'some-request-id');
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}($expectedParams, 'some-request-id'));
}
#[Test]
public function it_can_list_billing_plans(): void
{
$expectedResponse = $this->mockListPlansResponse();
$expectedMethod = 'listPlans';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}(1, 2, true));
}
#[Test]
public function it_can_update_a_billing_plan(): void
{
$expectedResponse = '';
$expectedParams = $this->updatePlanParams();
$expectedMethod = 'updatePlan';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('P-7GL4271244454362WXNWU5NQ', $expectedParams));
}
#[Test]
public function it_can_show_details_for_a_billing_plan(): void
{
$expectedResponse = $this->mockGetPlansResponse();
$expectedMethod = 'showPlanDetails';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('P-7GL4271244454362WXNWU5NQ'));
}
#[Test]
public function it_can_activate_a_billing_plan(): void
{
$expectedResponse = '';
$expectedMethod = 'activatePlan';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('P-7GL4271244454362WXNWU5NQ'));
}
#[Test]
public function it_can_deactivate_a_billing_plan(): void
{
$expectedResponse = '';
$expectedMethod = 'deactivatePlan';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('P-7GL4271244454362WXNWU5NQ'));
}
#[Test]
public function it_can_update_pricing_for_a_billing_plan(): void
{
$expectedResponse = '';
$expectedParams = $this->updatePlanPricingParams();
$expectedMethod = 'updatePlanPricing';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('P-2UF78835G6983425GLSM44MA', $expectedParams));
}
}
@@ -0,0 +1,82 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Adapter;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class CatalogProductsTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_create_a_product(): void
{
$expectedResponse = $this->mockCreateCatalogProductsResponse();
$expectedParams = $this->createProductParams();
$expectedMethod = 'createProduct';
$additionalMethod = 'setRequestHeader';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true, $additionalMethod);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$mockClient->{$additionalMethod}('PayPal-Request-Id', 'some-request-id');
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}($expectedParams));
}
#[Test]
public function it_can_list_products(): void
{
$expectedResponse = $this->mockListCatalogProductsResponse();
$expectedMethod = 'listProducts';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}());
}
#[Test]
public function it_can_update_a_product(): void
{
$expectedResponse = '';
$expectedParams = $this->updateProductParams();
$expectedMethod = 'updateProduct';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('72255d4849af8ed6e0df1173', $expectedParams));
}
#[Test]
public function it_can_get_details_for_a_product(): void
{
$expectedResponse = $this->mockGetCatalogProductsResponse();
$expectedMethod = 'showProductDetails';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('72255d4849af8ed6e0df1173'));
}
}
@@ -0,0 +1,59 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Adapter;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class DisputeActionsTest extends TestCase
{
use MockClientClasses;
use MockResponsePayloads;
#[Test]
public function it_can_accept_dispute_claim(): void
{
$expectedResponse = $this->mockAcceptDisputesClaimResponse();
$expectedMethod = 'acceptDisputeClaim';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('PP-D-27803', 'Full refund to the customer.'));
}
#[Test]
public function it_can_accept_dispute_offer_resolution(): void
{
$expectedResponse = $this->mockAcceptDisputesOfferResolutionResponse();
$expectedMethod = 'acceptDisputeOfferResolution';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('PP-000-000-651-454', 'I am ok with the refund offered.'));
}
#[Test]
public function it_can_acknowledge_item_is_returned_for_raised_dispute(): void
{
$expectedResponse = $this->mockAcknowledgeItemReturnedResponse();
$expectedMethod = 'acknowledgeItemReturned';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('PP-000-000-651-454', 'I have received the item back.', 'ITEM_RECEIVED'));
}
}
@@ -0,0 +1,63 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Adapter;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class DisputesTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_list_disputes(): void
{
$expectedResponse = $this->mockListDisputesResponse();
$expectedMethod = 'listDisputes';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}());
}
#[Test]
public function it_can_partially_update_a_dispute(): void
{
$expectedResponse = '';
$expectedParams = $this->updateDisputeParams();
$expectedMethod = 'updateDispute';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('PP-D-27803', $expectedParams));
}
#[Test]
public function it_can_get_details_for_a_dispute(): void
{
$expectedResponse = $this->mockGetDisputesResponse();
$expectedMethod = 'showDisputeDetails';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('PP-D-4012'));
}
}
@@ -0,0 +1,31 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Adapter;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class IdentityTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_get_user_profile_details(): void
{
$expectedResponse = $this->mockShowProfileInfoResponse();
$expectedMethod = 'showProfileInfo';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}());
}
}
@@ -0,0 +1,49 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Adapter;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class InvoicesSearchTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_search_invoices(): void
{
$expectedResponse = $this->mockSearchInvoicesResponse();
$expectedMethod = 'searchInvoices';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}(1, 1, true));
}
#[Test]
public function it_can_search_invoices_with_custom_filters(): void
{
$expectedResponse = $this->mockSearchInvoicesResponse();
$expectedMethod = 'searchInvoices';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->addInvoiceFilterByRecipientEmail('bill-me@example.com')
->addInvoiceFilterByCurrencyCode('USD')
->addInvoiceFilterByAmountRange(30, 50)
->{$expectedMethod}(1, 1, true));
}
}
@@ -0,0 +1,95 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Adapter;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class InvoicesTemplatesTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_create_invoice_template(): void
{
$expectedResponse = $this->mockCreateInvoiceTemplateResponse();
$expectedParams = $this->mockCreateInvoiceTemplateParams();
$expectedMethod = 'createInvoiceTemplate';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}($expectedParams));
}
#[Test]
public function it_can_list_invoice_templates(): void
{
$expectedResponse = $this->mockListInvoiceTemplateResponse();
$expectedMethod = 'listInvoiceTemplates';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}());
}
#[Test]
public function it_can_delete_an_invoice_template(): void
{
$expectedResponse = '';
$expectedMethod = 'deleteInvoiceTemplate';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('TEMP-19V05281TU309413B'));
}
#[Test]
public function it_can_update_an_invoice_template(): void
{
$expectedResponse = $this->mockUpdateInvoiceTemplateResponse();
$expectedParams = $this->mockUpdateInvoiceTemplateParams();
$expectedMethod = 'updateInvoiceTemplate';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('TEMP-19V05281TU309413B', $expectedParams));
}
#[Test]
public function it_can_get_details_for_an_invoice_template(): void
{
$expectedResponse = $this->mockGetInvoiceTemplateResponse();
$expectedMethod = 'showInvoiceTemplateDetails';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('TEMP-19V05281TU309413B'));
}
}
@@ -0,0 +1,262 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Adapter;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class InvoicesTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_generate_unique_invoice_number(): void
{
$expectedResponse = $this->mockGenerateInvoiceNumberResponse();
$expectedMethod = 'generateInvoiceNumber';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}());
}
#[Test]
public function it_can_create_a_draft_invoice(): void
{
$expectedResponse = $this->mockCreateInvoicesResponse();
$expectedParams = $this->createInvoiceParams();
$expectedMethod = 'createInvoice';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}($expectedParams));
}
#[Test]
public function it_can_list_current_invoices(): void
{
$expectedResponse = $this->mockListInvoicesResponse();
$expectedMethod = 'listInvoices';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}());
}
#[Test]
public function it_can_delete_an_invoice(): void
{
$expectedResponse = '';
$expectedMethod = 'deleteInvoice';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('INV2-Z56S-5LLA-Q52L-CPZ5'));
}
#[Test]
public function it_can_update_an_invoice(): void
{
$expectedResponse = $this->mockUpdateInvoicesResponse();
$expectedParams = $this->updateInvoiceParams();
$expectedMethod = 'updateInvoice';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('INV2-Z56S-5LLA-Q52L-CPZ5', $expectedParams));
}
#[Test]
public function it_can_show_details_for_an_invoice(): void
{
$expectedResponse = $this->mockGetInvoicesResponse();
$expectedMethod = 'showInvoiceDetails';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('INV2-Z56S-5LLA-Q52L-CPZ5'));
}
#[Test]
public function it_can_cancel_an_invoice(): void
{
$expectedResponse = '';
$expectedParams = $this->cancelInvoiceParams();
$expectedMethod = 'cancelInvoice';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}(
'INV2-Z56S-5LLA-Q52L-CPZ5',
'Reminder: Payment due for the invoice #ABC-123',
'Please pay before the due date to avoid incurring late payment charges which will be adjusted in the next bill generated.',
true,
true,
[
'customer-a@example.com',
'customer@example.com',
]
));
}
#[Test]
public function it_can_generate_qr_code_for_invoice(): void
{
$expectedResponse = $this->mockGenerateInvoiceQRCodeResponse();
$expectedMethod = 'generateQRCodeInvoice';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('INV2-Z56S-5LLA-Q52L-CPZ5', 400, 400));
}
#[Test]
public function it_can_register_payment_for_invoice(): void
{
$expectedResponse = $this->mockInvoiceRegisterPaymentResponse();
$expectedMethod = 'registerPaymentInvoice';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('INV2-Z56S-5LLA-Q52L-CPZ5', '2018-05-01', 'BANK_TRANSFER', 10.00));
}
#[Test]
public function it_can_delete_payment_for_invoice(): void
{
$expectedResponse = '';
$expectedMethod = 'deleteExternalPaymentInvoice';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('INV2-Z56S-5LLA-Q52L-CPZ5', 'EXTR-86F38350LX4353815'));
}
#[Test]
public function it_can_refund_payment_for_invoice(): void
{
$expectedResponse = $this->mockInvoiceRefundPaymentResponse();
$expectedMethod = 'refundInvoice';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('INV2-Z56S-5LLA-Q52L-CPZ5', '2018-05-01', 'BANK_TRANSFER', 5.00));
}
#[Test]
public function it_can_delete_refund_for_invoice(): void
{
$expectedResponse = '';
$expectedMethod = 'deleteRefundInvoice';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('INV2-Z56S-5LLA-Q52L-CPZ5', 'EXTR-2LG703375E477444T'));
}
#[Test]
public function it_can_send_an_invoice(): void
{
$expectedResponse = '';
$expectedMethod = 'sendInvoice';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}(
'INV2-Z56S-5LLA-Q52L-CPZ5',
'Reminder: Payment due for the invoice #ABC-123',
'Please pay before the due date to avoid incurring late payment charges which will be adjusted in the next bill generated.',
true,
true,
[
'customer-a@example.com',
'customer@example.com',
]
));
}
#[Test]
public function it_can_send_reminder_for_an_invoice(): void
{
$expectedResponse = '';
$expectedMethod = 'sendInvoiceReminder';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}(
'INV2-Z56S-5LLA-Q52L-CPZ5',
'Reminder: Payment due for the invoice #ABC-123',
'Please pay before the due date to avoid incurring late payment charges which will be adjusted in the next bill generated.',
true,
true,
[
'customer-a@example.com',
'customer@example.com',
]
));
}
}
@@ -0,0 +1,50 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Adapter;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class OrdersTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_create_an_order(): void
{
$expectedResponse = $this->mockCreateOrdersResponse();
$expectedParams = $this->createOrderParams();
$expectedMethod = 'createOrder';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}($expectedParams));
}
#[Test]
public function it_can_update_an_order(): void
{
$expectedResponse = '';
$expectedParams = $this->updateOrderParams();
$expectedMethod = 'updateOrder';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('5O190127TN364715T', $expectedParams));
}
}
@@ -0,0 +1,50 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Adapter;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class PartnerReferralsTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_create_partner_referral(): void
{
$expectedResponse = $this->mockCreatePartnerReferralsResponse();
$expectedParams = $this->mockCreatePartnerReferralParams();
$expectedMethod = 'createPartnerReferral';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}($expectedParams));
}
#[Test]
public function it_can_get_referral_details(): void
{
$expectedResponse = $this->mockShowReferralDataResponse();
$expectedParams = 'ZjcyODU4ZWYtYTA1OC00ODIwLTk2M2EtOTZkZWQ4NmQwYzI3RU12cE5xa0xMRmk1NWxFSVJIT1JlTFdSbElCbFU1Q3lhdGhESzVQcU9iRT0=';
$expectedMethod = 'showReferralData';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}($expectedParams));
}
}
@@ -0,0 +1,79 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Adapter;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class PaymentAuthorizationsTest extends TestCase
{
use MockClientClasses;
use MockResponsePayloads;
#[Test]
public function it_can_show_details_for_an_authorized_payment(): void
{
$expectedResponse = $this->mockGetAuthorizedPaymentDetailsResponse();
$expectedMethod = 'showAuthorizedPaymentDetails';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('0VF52814937998046'));
}
#[Test]
public function it_can_capture_an_authorized_payment(): void
{
$expectedResponse = $this->mockCaptureAuthorizedPaymentResponse();
$expectedMethod = 'captureAuthorizedPayment';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}(
'0VF52814937998046',
'INVOICE-123',
10.99,
'Payment is due'
));
}
#[Test]
public function it_can_reauthorize_an_authorized_payment(): void
{
$expectedResponse = $this->mockReAuthorizeAuthorizedPaymentResponse();
$expectedMethod = 'reAuthorizeAuthorizedPayment';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('0VF52814937998046', 10.99));
}
#[Test]
public function it_can_void_an_authorized_payment(): void
{
$expectedResponse = '';
$expectedMethod = 'voidAuthorizedPayment';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('0VF52814937998046'));
}
}
@@ -0,0 +1,49 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Adapter;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class PaymentCapturesTest extends TestCase
{
use MockClientClasses;
use MockResponsePayloads;
#[Test]
public function it_can_show_details_for_a_captured_payment(): void
{
$expectedResponse = $this->mockGetCapturedPaymentDetailsResponse();
$expectedMethod = 'showCapturedPaymentDetails';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('2GG279541U471931P'));
}
#[Test]
public function it_can_refund_a_captured_payment(): void
{
$expectedResponse = $this->mockRefundCapturedPaymentResponse();
$expectedMethod = 'refundCapturedPayment';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}(
'2GG279541U471931P',
'INVOICE-123',
10.99,
'Defective product'
));
}
}
@@ -0,0 +1,118 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Adapter;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class PaymentExperienceWebProfilesTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_list_web_experience_profiles(): void
{
$expectedResponse = $this->mockListWebProfilesResponse();
$expectedMethod = 'listWebExperienceProfiles';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}());
}
#[Test]
public function it_can_create_web_experience_profile(): void
{
$expectedResponse = $this->mockWebProfileResponse();
$expectedParams = $this->mockCreateWebProfileParams();
$expectedMethod = 'createWebExperienceProfile';
$additionalMethod = 'setRequestHeader';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true, $additionalMethod);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$mockClient->{$additionalMethod}('PayPal-Request-Id', 'some-request-id');
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}($expectedParams));
}
#[Test]
public function it_can_delete_web_experience_profile(): void
{
$expectedResponse = '';
$expectedParams = 'XP-A88A-LYLW-8Y3X-E5ER';
$expectedMethod = 'deleteWebExperienceProfile';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}($expectedParams));
}
#[Test]
public function it_can_partially_update_web_experience_profile(): void
{
$expectedResponse = '';
$expectedParams = $this->partiallyUpdateWebProfileParams();
$expectedMethod = 'patchWebExperienceProfile';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('XP-A88A-LYLW-8Y3X-E5ER', $expectedParams));
}
#[Test]
public function it_can_fully_update_web_experience_profile(): void
{
$expectedResponse = '';
$expectedParams = $this->updateWebProfileParams();
$expectedMethod = 'updateWebExperienceProfile';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('XP-A88A-LYLW-8Y3X-E5ER', $expectedParams));
}
#[Test]
public function it_can_get_web_experience_profile_details(): void
{
$expectedResponse = $this->mockWebProfileResponse();
$expectedParams = 'XP-A88A-LYLW-8Y3X-E5ER';
$expectedMethod = 'showWebExperienceProfileDetails';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}($expectedParams));
}
}
@@ -0,0 +1,29 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Adapter;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class PaymentRefundsTest extends TestCase
{
use MockClientClasses;
use MockResponsePayloads;
#[Test]
public function it_can_show_details_for_a_refund(): void
{
$expectedResponse = $this->mockGetRefundDetailsResponse();
$expectedMethod = 'showRefundDetails';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('1JU08902781691411'));
}
}
@@ -0,0 +1,84 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Adapter;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class PayoutsTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_create_batch_payout(): void
{
$expectedResponse = $this->mockCreateBatchPayoutResponse();
$expectedParams = $this->mockCreateBatchPayoutParams();
$expectedMethod = 'createBatchPayout';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}($expectedParams));
}
#[Test]
public function it_can_show_batch_payout_details(): void
{
$expectedResponse = $this->showBatchPayoutResponse();
$expectedParams = 'FYXMPQTX4JC9N';
$expectedMethod = 'showBatchPayoutDetails';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}($expectedParams));
}
#[Test]
public function it_can_show_batch_payout_item_details(): void
{
$expectedResponse = $this->showBatchPayoutItemResponse();
$expectedParams = '8AELMXH8UB2P8';
$expectedMethod = 'showPayoutItemDetails';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}($expectedParams));
}
#[Test]
public function it_can_cancel_unclaimed_batch_payout_item(): void
{
$expectedResponse = $this->mockCancelUnclaimedBatchItemResponse();
$expectedParams = '8AELMXH8UB2P8';
$expectedMethod = 'cancelUnclaimedPayoutItem';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}($expectedParams));
}
}
@@ -0,0 +1,96 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Adapter;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class ReferencedPayoutsTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_create_referenced_batch_payout(): void
{
$expectedResponse = $this->mockCreateReferencedBatchPayoutResponse();
$expectedParams = $this->mockCreateReferencedBatchPayoutParams();
$expectedMethod = 'createReferencedBatchPayout';
$additionalMethod = 'setRequestHeaders';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true, $additionalMethod);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$mockClient->{$additionalMethod}([
'PayPal-Request-Id' => 'some-request-id',
'PayPal-Partner-Attribution-Id' => 'some-attribution-id',
]);
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}($expectedParams));
}
#[Test]
public function it_can_list_items_referenced_in_batch_payout(): void
{
$expectedResponse = $this->mockShowReferencedBatchPayoutResponse();
$expectedParams = 'KHbwO28lWlXwi2IlToJ2IYNG4juFv6kpbFx4J9oQ5Hb24RSp96Dk5FudVHd6v4E=';
$expectedMethod = 'listItemsReferencedInBatchPayout';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}($expectedParams));
}
#[Test]
public function it_can_create_referenced_batch_payout_item(): void
{
$expectedResponse = $this->mockCreateReferencedBatchPayoutItemResponse();
$expectedParams = $this->mockCreateReferencedBatchPayoutItemParams();
$expectedMethod = 'createReferencedBatchPayoutItem';
$additionalMethod = 'setRequestHeaders';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true, $additionalMethod);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$mockClient->{$additionalMethod}([
'PayPal-Request-Id' => 'some-request-id',
'PayPal-Partner-Attribution-Id' => 'some-attribution-id',
]);
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}($expectedParams));
}
#[Test]
public function it_can_show_referenced_payout_item_details(): void
{
$expectedResponse = $this->mockShowReferencedBatchPayoutItemResponse();
$expectedParams = 'CDZEC5MJ8R5HY';
$expectedMethod = 'showReferencedPayoutItemDetails';
$additionalMethod = 'setRequestHeader';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true, $additionalMethod);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$mockClient->{$additionalMethod}('PayPal-Partner-Attribution-Id', 'some-attribution-id');
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}($expectedParams));
}
}
@@ -0,0 +1,50 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Adapter;
use Carbon\Carbon;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class ReportingTest extends TestCase
{
use MockClientClasses;
use MockResponsePayloads;
#[Test]
public function it_can_list_transactions(): void
{
$expectedResponse = $this->mockListTransactionsResponse();
$expectedMethod = 'listTransactions';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$filters = [
'start_date' => Carbon::now()->toIso8601String(),
'end_date' => Carbon::now()->subDays(30)->toIso8601String(),
];
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}($filters));
}
#[Test]
public function it_can_list_balances(): void
{
$expectedResponse = $this->mockListBalancesResponse();
$expectedMethod = 'listBalances';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('2016-10-15T06:07:00-0700'));
}
}
@@ -0,0 +1,157 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Adapter;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class SubscriptionsTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_create_a_subscription(): void
{
$expectedResponse = $this->mockCreateSubscriptionResponse();
$expectedParams = $this->mockCreateSubscriptionParams();
$expectedMethod = 'createSubscription';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}($expectedParams));
}
#[Test]
public function it_can_update_a_subscription(): void
{
$expectedResponse = '';
$expectedParams = $this->mockUpdateSubscriptionParams();
$expectedMethod = 'updateSubscription';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('I-BW452GLLEP1G', $expectedParams));
}
#[Test]
public function it_can_show_details_for_a_subscription(): void
{
$expectedResponse = $this->mockGetSubscriptionDetailsResponse();
$expectedMethod = 'showSubscriptionDetails';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('I-BW452GLLEP1G'));
}
#[Test]
public function it_can_activate_a_subscription(): void
{
$expectedResponse = '';
$expectedMethod = 'activateSubscription';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('I-BW452GLLEP1G', 'Reactivating the subscription'));
}
#[Test]
public function it_can_cancel_a_subscription(): void
{
$expectedResponse = '';
$expectedMethod = 'cancelSubscription';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('I-BW452GLLEP1G', 'Not satisfied with the service'));
}
#[Test]
public function it_can_suspend_a_subscription(): void
{
$expectedResponse = '';
$expectedMethod = 'suspendSubscription';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('I-BW452GLLEP1G', 'Item out of stock'));
}
#[Test]
public function it_can_capture_payment_for_a_subscription(): void
{
$expectedResponse = '';
$expectedMethod = 'captureSubscriptionPayment';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('I-BW452GLLEP1G', 'Charging as the balance reached the limit', 100));
}
#[Test]
public function it_can_update_quantity_or_product_for_a_subscription(): void
{
$expectedResponse = $this->mockUpdateSubscriptionItemsResponse();
$expectedParams = $this->mockUpdateSubscriptionItemsParams();
$expectedMethod = 'reviseSubscription';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('I-BW452GLLEP1G', $expectedParams));
}
#[Test]
public function it_can_list_transactions_for_a_subscription(): void
{
$expectedResponse = $this->mockListSubscriptionTransactionsResponse();
$expectedMethod = 'listSubscriptionTransactions';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('I-BW452GLLEP1G', '2018-01-21T07:50:20.940Z', '2018-08-22T07:50:20.940Z'));
}
}
@@ -0,0 +1,69 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Adapter;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class TrackersTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_get_tracking_details_for_tracking_id(): void
{
$expectedResponse = $this->mockGetTrackingDetailsResponse();
$expectedParams = '8MC585209K746392H-443844607820';
$expectedMethod = 'showTrackingDetails';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}($expectedParams));
}
#[Test]
public function it_can_update_tracking_details_for_tracking_id(): void
{
$expectedResponse = '';
$expectedData = $this->mockUpdateTrackingDetailsParams();
$expectedParams = '8MC585209K746392H-443844607820';
$expectedMethod = 'updateTrackingDetails';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}($expectedParams, $expectedData));
}
#[Test]
public function it_can_create_tracking_in_batches(): void
{
$expectedResponse = $this->mockCreateTrackinginBatchesResponse();
$expectedParams = $this->mockCreateTrackinginBatchesParams();
$expectedMethod = 'addBatchTracking';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}($expectedParams));
}
}
@@ -0,0 +1,76 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Adapter;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class WebHooksEventsTest extends TestCase
{
use MockClientClasses;
use MockResponsePayloads;
#[Test]
public function it_can_list_web_hooks_event_types(): void
{
$expectedResponse = $this->mockListWebHookEventsTypesResponse();
$expectedMethod = 'listEventTypes';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}());
}
#[Test]
public function it_can_list_web_hooks_events(): void
{
$expectedResponse = $this->mockWebHookEventsListResponse();
$expectedMethod = 'listEvents';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}());
}
#[Test]
public function it_can_show_details_for_a_web_hooks_event(): void
{
$expectedResponse = $this->mockGetWebHookEventResponse();
$expectedMethod = 'showEventDetails';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('8PT597110X687430LKGECATA'));
}
#[Test]
public function it_can_resend_notification_for_a_web_hooks_event(): void
{
$expectedResponse = $this->mockResendWebHookEventNotificationResponse();
$expectedParams = ['12334456'];
$expectedMethod = 'resendEventNotification';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('8PT597110X687430LKGECATA', $expectedParams));
}
}
@@ -0,0 +1,111 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Adapter;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class WebHooksTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_create_a_web_hook(): void
{
$expectedResponse = $this->mockCreateWebHookResponse();
$expectedMethod = 'createWebHook';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}(
'https://example.com/example_webhook',
['PAYMENT.AUTHORIZATION.CREATED', 'PAYMENT.AUTHORIZATION.VOIDED']
));
}
#[Test]
public function it_can_list_web_hooks(): void
{
$expectedResponse = $this->mockListWebHookResponse();
$expectedMethod = 'listWebHooks';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}());
}
#[Test]
public function it_can_delete_a_web_hook(): void
{
$expectedResponse = '';
$expectedMethod = 'deleteWebHook';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('5GP028458E2496506'));
}
#[Test]
public function it_can_update_a_web_hook(): void
{
$expectedResponse = $this->mockUpdateWebHookResponse();
$expectedParams = $this->mockUpdateWebHookParams();
$expectedMethod = 'updateWebHook';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('0EH40505U7160970P', $expectedParams));
}
#[Test]
public function it_can_show_details_for_a_web_hook(): void
{
$expectedResponse = $this->mockGetWebHookResponse();
$expectedMethod = 'showWebHookDetails';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('0EH40505U7160970P'));
}
#[Test]
public function it_can_list_web_hooks_events(): void
{
$expectedResponse = $this->mockListWebHookEventsResponse();
$expectedMethod = 'listWebHookEvents';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}('0EH40505U7160970P'));
}
}
@@ -0,0 +1,33 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Adapter;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class WebHooksVerificationTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_verify_web_hook_signature(): void
{
$expectedResponse = $this->mockVerifyWebHookSignatureResponse();
$expectedParams = $this->mockVerifyWebHookSignatureParams();
$expectedMethod = 'verifyWebHook';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, true);
$mockClient->setApiCredentials($this->getMockCredentials());
$mockClient->getAccessToken();
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}($expectedParams));
}
}
@@ -0,0 +1,83 @@
<?php
namespace Srmklive\PayPal\Tests\Unit;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Services\PayPal as PayPalClient;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class AdapterTest extends TestCase
{
use MockClientClasses;
use MockResponsePayloads;
#[Test]
public function it_can_be_instantiated(): void
{
$client = new PayPalClient($this->getMockCredentials());
$this->assertInstanceOf(PayPalClient::class, $client);
}
#[Test]
public function it_throws_exception_if_invalid_credentials_are_provided(): void
{
$this->expectException(\RuntimeException::class);
$client = new PayPalClient();
}
#[Test]
public function it_throws_exception_if_invalid_mode_is_provided(): void
{
$this->expectException(\RuntimeException::class);
// $this->expectErrorMessage('Invalid configuration provided. Please provide valid configuration for PayPal API. You can also refer to the documentation at https://srmklive.github.io/laravel-paypal/docs.html to setup correct configuration.');
$credentials = $this->getMockCredentials();
$credentials['mode'] = '';
$client = new PayPalClient($credentials);
}
#[Test]
public function it_throws_exception_if_empty_credentials_are_provided(): void
{
$this->expectException(\RuntimeException::class);
// $this->expectErrorMessage('Invalid configuration provided. Please provide valid configuration for PayPal API. You can also refer to the documentation at https://srmklive.github.io/laravel-paypal/docs.html to setup correct configuration.');
$credentials = $this->getMockCredentials();
$credentials['sandbox'] = [];
$client = new PayPalClient($credentials);
}
#[Test]
public function it_throws_exception_if_credentials_items_are_not_provided(): void
{
$item = 'client_id';
$this->expectException(\RuntimeException::class);
// $this->expectErrorMessage("{$item} missing from the provided configuration. Please add your application {$item}.");
$credentials = $this->getMockCredentials();
$credentials['sandbox'][$item] = '';
$client = new PayPalClient($credentials);
}
#[Test]
public function it_can_get_access_token(): void
{
$expectedResponse = $this->mockAccessTokenResponse();
$expectedMethod = 'getAccessToken';
$mockClient = $this->mock_client($expectedResponse, $expectedMethod, false);
$mockClient->setApiCredentials($this->getMockCredentials());
$this->assertEquals($expectedResponse, $mockClient->{$expectedMethod}());
}
}
@@ -0,0 +1,153 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Client;
use GuzzleHttp\Utils;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class BillingPlansTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_create_a_billing_plan(): void
{
$expectedResponse = $this->mockCreatePlansResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/billing/plans';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->createPlanParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_list_billing_plans(): void
{
$expectedResponse = $this->mockListPlansResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/billing/plans?product_id=PROD-XXCD1234QWER65782&page_size=2&page=1&total_required=true';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_update_a_billing_plan(): void
{
$expectedResponse = '';
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/billing/plans/P-7GL4271244454362WXNWU5NQ';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->updatePlanParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'patch');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->patch($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_show_details_for_a_billing_plan(): void
{
$expectedResponse = $this->mockGetPlansResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/billing/plans/P-5ML4271244454362WXNWU5NQ';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_activate_a_billing_plan(): void
{
$expectedResponse = '';
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/billing/plans/P-7GL4271244454362WXNWU5NQ/activate';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_deactivate_a_billing_plan(): void
{
$expectedResponse = '';
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/billing/plans/P-7GL4271244454362WXNWU5NQ/deactivate';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_update_pricing_for_a_billing_plan(): void
{
$expectedResponse = '';
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/billing/plans/P-2UF78835G6983425GLSM44MA/update-pricing-schemes';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->updatePlanPricingParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
}
@@ -0,0 +1,95 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Client;
use GuzzleHttp\Utils;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class CatalogProductsTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_create_a_product(): void
{
$expectedResponse = $this->mockCreateCatalogProductsResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/catalogs/products';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->createProductParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_list_products(): void
{
$expectedResponse = $this->mockListCatalogProductsResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/catalogs/products?page=1&page_size=2&total_required=true';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_update_a_product(): void
{
$expectedResponse = '';
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/catalogs/products/72255d4849af8ed6e0df1173';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->updateProductParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'patch');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->patch($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_get_details_for_a_product(): void
{
$expectedResponse = $this->mockGetCatalogProductsResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/catalogs/products/72255d4849af8ed6e0df1173';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
}
@@ -0,0 +1,77 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Client;
use GuzzleHttp\Utils;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class DisputeActionsTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_accept_dispute_claim(): void
{
$expectedResponse = $this->mockAcceptDisputesClaimResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/customer/disputes/PP-D-27803/accept-claim';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->acceptDisputeClaimParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_accept_dispute_offer_resolution(): void
{
$expectedResponse = $this->mockAcceptDisputesOfferResolutionResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/customer/disputes/PP-000-000-651-454/accept-offer';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->acceptDisputeResolutionParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_acknowledge_item_is_returned_for_raised_dispute(): void
{
$expectedResponse = $this->mockAcknowledgeItemReturnedResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/customer/disputes/PP-000-000-651-454/acknowledge-return-item';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->acknowledgeItemReturnedParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
}
@@ -0,0 +1,75 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Client;
use GuzzleHttp\Utils;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class DisputesTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_list_disputes(): void
{
$expectedResponse = $this->mockListDisputesResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/customer/disputes/';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_partially_update_a_dispute(): void
{
$expectedResponse = '';
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/customer/disputes/PP-D-27803';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->updateDisputeParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'patch');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->patch($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_get_details_for_a_dispute(): void
{
$expectedResponse = $this->mockGetDisputesResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/customer/disputes/PP-D-4012';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
}
@@ -0,0 +1,36 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Client;
use GuzzleHttp\Utils;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class IdentityTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_user_profile_details(): void
{
$expectedResponse = $this->mockShowProfileInfoResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/identity/oauth2/userinfo?schema=paypalv1.1';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
}
@@ -0,0 +1,37 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Client;
use GuzzleHttp\Utils;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class InvoicesSearchTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_search_invoices(): void
{
$expectedResponse = $this->mockSearchInvoicesResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/invoicing/search-invoices?page=1&page_size=1&total_required=true';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->invoiceSearchParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
}
@@ -0,0 +1,114 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Client;
use GuzzleHttp\Utils;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class InvoicesTemplatesTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_create_invoice_template(): void
{
$expectedResponse = $this->mockCreateInvoiceTemplateResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/invoicing/templates';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->mockCreateInvoiceTemplateParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_list_invoice_templates(): void
{
$expectedResponse = $this->mockListInvoiceTemplateResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/invoicing/templates';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_delete_an_invoice_template(): void
{
$expectedResponse = '';
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/invoicing/templates/TEMP-19V05281TU309413B';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'delete');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->delete($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_update_an_invoice_template(): void
{
$expectedResponse = $this->mockUpdateInvoiceTemplateResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/invoicing/templates/TEMP-19V05281TU309413B';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->mockUpdateInvoiceTemplateParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'put');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->put($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_get_details_for_an_invoice_template(): void
{
$expectedResponse = $this->mockGetInvoiceTemplateResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/invoicing/templates/TEMP-19V05281TU309413B';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
}
@@ -0,0 +1,291 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Client;
use GuzzleHttp\Utils;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class InvoicesTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_generate_unique_invoice_number(): void
{
$expectedResponse = $this->mockGenerateInvoiceNumberResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/invoicing/generate-next-invoice-number';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_create_a_draft_invoice(): void
{
$expectedResponse = $this->mockCreateInvoicesResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/invoicing/invoices';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->createInvoiceParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_list_current_invoices(): void
{
$expectedResponse = $this->mockListInvoicesResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/invoicing/invoices?total_required=true';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_delete_an_invoice(): void
{
$expectedResponse = '';
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/invoicing/invoices/INV2-Z56S-5LLA-Q52L-CPZ5';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'delete');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->delete($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_update_an_invoice(): void
{
$expectedResponse = $this->mockUpdateInvoicesResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/invoicing/invoices/INV2-Z56S-5LLA-Q52L-CPZ5';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->updateInvoiceParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'put');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->put($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_show_details_for_an_invoice(): void
{
$expectedResponse = $this->mockGetInvoicesResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/invoicing/invoices/INV2-Z56S-5LLA-Q52L-CPZ5';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_cancel_an_invoice(): void
{
$expectedResponse = '';
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/invoicing/invoices/INV2-Z56S-5LLA-Q52L-CPZ5/cancel';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->cancelInvoiceParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_generate_qr_code_for_invoice(): void
{
$expectedResponse = $this->mockGenerateInvoiceNumberResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/invoicing/invoices/INV2-Z56S-5LLA-Q52L-CPZ5/generate-qr-code';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->generateQRCodeInvoiceParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_register_payment_for_invoice(): void
{
$expectedResponse = $this->mockInvoiceRegisterPaymentResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/invoicing/invoices/INV2-Z56S-5LLA-Q52L-CPZ5/payments';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->registerInvoicePaymentParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_delete_payment_for_invoice(): void
{
$expectedResponse = '';
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/invoicing/invoices/INV2-Z56S-5LLA-Q52L-CPZ5/payments/EXTR-86F38350LX4353815';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'delete');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->delete($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_refund_payment_for_invoice(): void
{
$expectedResponse = $this->mockInvoiceRefundPaymentResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/invoicing/invoices/INV2-Z56S-5LLA-Q52L-CPZ5/refunds';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->refundInvoicePaymentParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_delete_refund_for_invoice(): void
{
$expectedResponse = '';
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/invoicing/invoices/INV2-333R-YUQL-YNNN-D7WF/refunds/EXTR-2LG703375E477444T';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'delete');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->delete($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_send_an_invoice(): void
{
$expectedResponse = '';
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/invoicing/invoices/INV2-EHNV-LJ5S-A7DZ-V6NJ/send';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->sendInvoiceParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_send_reminder_for_an_invoice(): void
{
$expectedResponse = '';
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/invoicing/invoices/INV2-Z56S-5LLA-Q52L-CPZ5/remind';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->sendInvoiceReminderParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
}
@@ -0,0 +1,37 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Client;
use GuzzleHttp\Utils;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class OrdersTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_create_an_order(): void
{
$expectedResponse = $this->mockCreateOrdersResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/checkout/orders';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->createOrderParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
}
@@ -0,0 +1,56 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Client;
use GuzzleHttp\Utils;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class PartnerReferralsTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_create_partner_referral(): void
{
$expectedResponse = $this->mockCreatePartnerReferralsResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/customer/partner-referrals';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->mockCreatePartnerReferralParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_get_referral_details(): void
{
$expectedResponse = $this->mockShowReferralDataResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/customer/partner-referrals/ZjcyODU4ZWYtYTA1OC00ODIwLTk2M2EtOTZkZWQ4NmQwYzI3RU12cE5xa0xMRmk1NWxFSVJIT1JlTFdSbElCbFU1Q3lhdGhESzVQcU9iRT0=';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
}
@@ -0,0 +1,95 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Client;
use GuzzleHttp\Utils;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class PaymentAuthorizationsTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_show_details_for_an_authorized_payment(): void
{
$expectedResponse = $this->mockGetAuthorizedPaymentDetailsResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/payments/authorizations/0VF52814937998046';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_capture_an_authorized_payment(): void
{
$expectedResponse = $this->mockCaptureAuthorizedPaymentResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/payments/authorizations/0VF52814937998046/capture';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->mockCaptureAuthorizedPaymentParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_reauthorize_an_authorized_payment(): void
{
$expectedResponse = $this->mockReAuthorizeAuthorizedPaymentResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/payments/authorizations/0VF52814937998046/reauthorize';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->mockReAuthorizeAuthorizedPaymentParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_void_an_authorized_payment(): void
{
$expectedResponse = '';
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/payments/authorizations/0VF52814937998046/void';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
}
@@ -0,0 +1,56 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Client;
use GuzzleHttp\Utils;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class PaymentCapturesTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_show_details_for_a_captured_payment(): void
{
$expectedResponse = $this->mockGetCapturedPaymentDetailsResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/payments/captures/2GG279541U471931P';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_refund_a_captured_payment(): void
{
$expectedResponse = $this->mockRefundCapturedPaymentResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/payments/captures/2GG279541U471931P/refund';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->mockRefundCapturedPaymentParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
}
@@ -0,0 +1,135 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Client;
use GuzzleHttp\Utils;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class PaymentExperienceWebProfilesTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_list_web_experience_profiles(): void
{
$expectedResponse = $this->mockListWebProfilesResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/payment-experience/web-profiles';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_create_web_experience_profile(): void
{
$expectedResponse = $this->mockWebProfileResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/payment-experience/web-profiles';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
'PayPal-Request-Id' => 'some-request-id',
],
'json' => $this->mockCreateWebProfileParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_delete_web_experience_profile(): void
{
$expectedResponse = '';
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/payment-experience/web-profiles/XP-A88A-LYLW-8Y3X-E5ER';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'delete');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->delete($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_partially_update_web_experience_profile(): void
{
$expectedResponse = '';
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/payment-experience/web-profiles/XP-A88A-LYLW-8Y3X-E5ER';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->partiallyUpdateWebProfileParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'patch');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->patch($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_fully_update_web_experience_profile(): void
{
$expectedResponse = '';
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/payment-experience/web-profiles/XP-A88A-LYLW-8Y3X-E5ER';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->updateWebProfileParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'patch');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->patch($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_get_web_experience_profile_details(): void
{
$expectedResponse = $this->mockWebProfileResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/payment-experience/web-profiles/XP-A88A-LYLW-8Y3X-E5ER';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
}
@@ -0,0 +1,34 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Client;
use GuzzleHttp\Utils;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class PaymentRefundsTest extends TestCase
{
use MockClientClasses;
use MockResponsePayloads;
#[Test]
public function it_can_show_details_for_a_refund(): void
{
$expectedResponse = $this->mockGetRefundDetailsResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v2/payments/refunds/1JU08902781691411';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
}
@@ -0,0 +1,94 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Client;
use GuzzleHttp\Utils;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class PayoutsTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_create_batch_payout(): void
{
$expectedResponse = $this->mockCreateBatchPayoutResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/payments/payouts';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->mockCreateBatchPayoutParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_show_batch_payout_details(): void
{
$expectedResponse = $this->showBatchPayoutResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/payments/payouts/FYXMPQTX4JC9N';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_show_batch_payout_item_details(): void
{
$expectedResponse = $this->showBatchPayoutItemResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/payments/payouts-item/8AELMXH8UB2P8';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_cancel_unclaimed_batch_payout_item(): void
{
$expectedResponse = $this->mockCancelUnclaimedBatchItemResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/payments/payouts-item/8AELMXH8UB2P8/cancel';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
}
@@ -0,0 +1,102 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Client;
use GuzzleHttp\Utils;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class ReferencedPayoutsTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_create_referenced_batch_payout(): void
{
$expectedResponse = $this->mockCreateReferencedBatchPayoutResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/payments/referenced-payouts';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
'PayPal-Request-Id' => 'some-request-id',
'PayPal-Partner-Attribution-Id' => 'some-attribution-id',
],
'json' => $this->mockCreateReferencedBatchPayoutParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_list_items_referenced_in_batch_payout(): void
{
$expectedResponse = $this->mockShowReferencedBatchPayoutResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/payments/referenced-payouts/KHbwO28lWlXwi2IlToJ2IYNG4juFv6kpbFx4J9oQ5Hb24RSp96Dk5FudVHd6v4E=';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_create_referenced_batch_payout_item(): void
{
$expectedResponse = $this->mockCreateReferencedBatchPayoutItemResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/payments/referenced-payouts-items';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
'PayPal-Request-Id' => 'some-request-id',
'PayPal-Partner-Attribution-Id' => 'some-attribution-id',
],
'json' => $this->mockCreateReferencedBatchPayoutItemParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_show_referenced_payout_item_details(): void
{
$expectedResponse = $this->mockShowReferencedBatchPayoutItemResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/payments/referenced-payouts-items/CDZEC5MJ8R5HY';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
'PayPal-Request-Id' => 'some-request-id',
'PayPal-Partner-Attribution-Id' => 'some-attribution-id',
],
'json' => $this->mockCreateReferencedBatchPayoutItemParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
}
@@ -0,0 +1,56 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Client;
use GuzzleHttp\Utils;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class ReportingTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_list_transactions(): void
{
$expectedResponse = $this->mockListTransactionsResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/reporting/transactions?start_date=2014-07-01T00:00:00-0700&end_date=2014-07-30T23:59:59-0700&transaction_id=5TY05013RG002845M&fields=all&page_size=100&page=1';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$mockResponse = $mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody();
$this->assertArrayHasKey('transaction_details', Utils::jsonDecode($mockResponse, true));
}
#[Test]
public function it_can_list_balances(): void
{
$expectedResponse = $this->mockListBalancesResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/reporting/balances?currency_code=USD&as_of_time=2016-10-15T06:07:00-0700';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
}
@@ -0,0 +1,195 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Client;
use GuzzleHttp\Utils;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class SubscriptionsTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_create_a_subscription(): void
{
$expectedResponse = $this->mockCreateSubscriptionResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/billing/subscriptions';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->mockCreateSubscriptionParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_update_a_subscription(): void
{
$expectedResponse = '';
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/billing/subscriptions/I-BW452GLLEP1G';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->mockUpdateSubscriptionParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'patch');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->patch($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_show_details_for_a_subscription(): void
{
$expectedResponse = $this->mockGetSubscriptionDetailsResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/billing/subscriptions/I-BW452GLLEP1G';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_activate_a_subscription(): void
{
$expectedResponse = '';
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/billing/subscriptions/I-BW452GLLEP1G/activate';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->mockActivateSubscriptionParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_cancel_a_subscription(): void
{
$expectedResponse = '';
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/billing/subscriptions/I-BW452GLLEP1G/cancel';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->mockCancelSubscriptionParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_suspend_a_subscription(): void
{
$expectedResponse = '';
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/billing/subscriptions/I-BW452GLLEP1G/suspend';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->mockSuspendSubscriptionParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_capture_payment_for_a_subscription(): void
{
$expectedResponse = '';
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/billing/subscriptions/I-BW452GLLEP1G/capture';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->mockCaptureSubscriptionPaymentParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_update_quantity_or_product_for_a_subscription(): void
{
$expectedResponse = $this->mockUpdateSubscriptionItemsResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/billing/subscriptions/I-BW452GLLEP1G/revise';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->mockUpdateSubscriptionItemsParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_list_transactions_for_a_subscription(): void
{
$expectedResponse = $this->mockListSubscriptionTransactionsResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/billing/subscriptions/I-BW452GLLEP1G/transactions?start_time=2018-01-21T07:50:20.940Z&end_time=2018-08-21T07:50:20.940Z';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
}
@@ -0,0 +1,76 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Client;
use GuzzleHttp\Utils;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class TrackersTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_get_tracking_details_for_tracking_id(): void
{
$expectedResponse = $this->mockGetTrackingDetailsResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/shipping/trackers/8MC585209K746392H-443844607820';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_update_tracking_details_for_tracking_id(): void
{
$expectedResponse = '';
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/shipping/trackers/8MC585209K746392H-443844607820';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->mockUpdateTrackingDetailsParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'put');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->put($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_create_tracking_in_batches(): void
{
$expectedResponse = $this->mockCreateTrackinginBatchesResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/shipping/trackers-batch';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->mockCreateTrackinginBatchesParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
}
@@ -0,0 +1,94 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Client;
use GuzzleHttp\Utils;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class WebHooksEventsTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_list_web_hooks_event_types(): void
{
$expectedResponse = $this->mockListWebHookEventsTypesResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/notifications/webhooks-event-types';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_list_web_hooks_events(): void
{
$expectedResponse = $this->mockWebHookEventsListResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/notifications/webhooks-events';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_show_details_for_a_web_hooks_event(): void
{
$expectedResponse = $this->mockGetWebHookEventResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/notifications/webhooks-events/8PT597110X687430LKGECATA';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_resend_notification_for_a_web_hooks_event(): void
{
$expectedResponse = $this->mockResendWebHookEventNotificationResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/notifications/webhooks-events/8PT597110X687430LKGECATA/resend';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->mockResendWebHookEventNotificationParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
}
@@ -0,0 +1,133 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Client;
use GuzzleHttp\Utils;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class WebHooksTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_create_a_web_hook(): void
{
$expectedResponse = $this->mockCreateWebHookResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/notifications/webhooks';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->mockCreateWebHookParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_list_web_hooks(): void
{
$expectedResponse = $this->mockListWebHookResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/notifications/webhooks';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_delete_a_web_hook(): void
{
$expectedResponse = '';
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/notifications/webhooks/5GP028458E2496506';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'delete');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->delete($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_update_a_web_hook(): void
{
$expectedResponse = $this->mockUpdateWebHookResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/notifications/webhooks/0EH40505U7160970P';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->mockUpdateWebHookParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'patch');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->patch($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_show_details_for_a_web_hook(): void
{
$expectedResponse = $this->mockGetWebHookResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/notifications/webhooks/0EH40505U7160970P';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
#[Test]
public function it_can_list_web_hooks_events(): void
{
$expectedResponse = $this->mockListWebHookEventsResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/notifications/webhooks/0EH40505U7160970P';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'get');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->get($expectedEndpoint, $expectedParams)->getBody(), true));
}
}
@@ -0,0 +1,37 @@
<?php
namespace Srmklive\PayPal\Tests\Unit\Client;
use GuzzleHttp\Utils;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockRequestPayloads;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class WebHooksVerificationTest extends TestCase
{
use MockClientClasses;
use MockRequestPayloads;
use MockResponsePayloads;
#[Test]
public function it_can_verify_web_hook_signature(): void
{
$expectedResponse = $this->mockVerifyWebHookSignatureResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/notifications/webhooks-event-types';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
'Authorization' => 'Bearer some-token',
],
'json' => $this->mockVerifyWebHookSignatureParams(),
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams, 'post');
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
}
@@ -0,0 +1,42 @@
<?php
namespace Srmklive\PayPal\Tests\Unit;
use GuzzleHttp\Client as HttpClient;
use GuzzleHttp\Utils;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\TestCase;
use Srmklive\PayPal\Tests\MockClientClasses;
use Srmklive\PayPal\Tests\MockResponsePayloads;
class ClientTest extends TestCase
{
use MockClientClasses;
use MockResponsePayloads;
#[Test]
public function it_can_be_instantiated(): void
{
$client = new HttpClient();
$this->assertInstanceOf(HttpClient::class, $client);
}
#[Test]
public function it_can_get_access_token(): void
{
$expectedResponse = $this->mockAccessTokenResponse();
$expectedEndpoint = 'https://api-m.sandbox.paypal.com/v1/oauth2/token?grant_type=client_credentials';
$expectedParams = [
'headers' => [
'Accept' => 'application/json',
'Accept-Language' => 'en_US',
],
'auth' => ['username', 'password'],
];
$mockHttpClient = $this->mock_http_request(Utils::jsonEncode($expectedResponse), $expectedEndpoint, $expectedParams);
$this->assertEquals($expectedResponse, Utils::jsonDecode($mockHttpClient->post($expectedEndpoint, $expectedParams)->getBody(), true));
}
}