芝麻web文件管理V1.00
编辑当前文件:/home/qrafawbu/myvyralapp.com/bck/vendor/srmklive/paypal/tests/Feature/AdapterFeatureTest.php
client = new PayPalClient($this->getApiCredentials()); parent::setUp(); } /** @test */ public function it_returns_error_if_invalid_credentials_are_used_to_get_access_token() { $this->client = new PayPalClient($this->getMockCredentials()); $response = $this->client->getAccessToken(); $this->assertIsArray($response['error']); $this->assertArrayHasKey('error', $response); } /** @test */ public function it_can_get_access_token() { $this->client->setClient( $this->mock_http_client( $this->mockAccessTokenResponse() ) ); $response = $this->client->getAccessToken(); self::$access_token = $response['access_token']; $this->assertArrayHasKey('access_token', $response); $this->assertNotEmpty($response['access_token']); } /** @test */ public function it_can_create_a_billing_plan() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockCreatePlansResponse() ) ); $expectedParams = $this->createPlanParams(); $response = $this->client->setRequestHeader('PayPal-Request-Id', 'some-request-id')->createPlan($expectedParams); $this->assertNotEmpty($response); $this->assertArrayHasKey('id', $response); } /** @test */ public function it_can_list_billing_plans() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockListPlansResponse() ) ); $response = $this->client->listPlans(); $this->assertNotEmpty($response); $this->assertArrayHasKey('plans', $response); } /** @test */ public function it_can_update_a_billing_plan() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client(false) ); $expectedParams = $this->updatePlanParams(); $response = $this->client->updatePlan('P-7GL4271244454362WXNWU5NQ', $expectedParams); $this->assertEmpty($response); } /** @test */ public function it_can_show_details_for_a_billing_plan() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockGetPlansResponse() ) ); $response = $this->client->showPlanDetails('P-5ML4271244454362WXNWU5NQ'); $this->assertNotEmpty($response); $this->assertArrayHasKey('id', $response); } /** @test */ public function it_can_activate_a_billing_plan() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client(false) ); $response = $this->client->activatePlan('P-7GL4271244454362WXNWU5NQ'); $this->assertEmpty($response); } /** @test */ public function it_can_deactivate_a_billing_plan() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client(false) ); $response = $this->client->deactivatePlan('P-7GL4271244454362WXNWU5NQ'); $this->assertEmpty($response); } /** @test */ public function it_can_update_pricing_for_a_billing_plan() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client(false) ); $expectedParams = $this->updatePlanPricingParams(); $response = $this->client->updatePlanPricing('P-2UF78835G6983425GLSM44MA', $expectedParams); $this->assertEmpty($response); } /** @test */ public function it_can_list_products() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockListCatalogProductsResponse() ) ); $response = $this->client->listProducts(); $this->assertNotEmpty($response); $this->assertArrayHasKey('products', $response); } /** @test */ public function it_can_create_a_product() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockCreateCatalogProductsResponse() ) ); $expectedParams = $this->createProductParams(); $response = $this->client->setRequestHeader('PayPal-Request-Id', 'product-request-'.time())->createProduct($expectedParams); self::$product_id = $response['id']; $this->assertNotEmpty($response); $this->assertArrayHasKey('id', $response); } /** @test */ public function it_can_update_a_product() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client(false) ); $expectedParams = $this->updateProductParams(); $response = $this->client->updateProduct(self::$product_id, $expectedParams); $this->assertEmpty($response); } /** @test */ public function it_can_get_details_for_a_product() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockGetCatalogProductsResponse() ) ); $response = $this->client->showProductDetails(self::$product_id); $this->assertNotEmpty($response); $this->assertArrayHasKey('id', $response); } /** @test */ public function it_can_acknowledge_item_is_returned_for_raised_dispute() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockAcceptDisputesClaimResponse() ) ); $response = $this->client->acknowledgeItemReturned( 'PP-D-4012', 'I have received the item back.', 'ITEM_RECEIVED' ); $this->assertNotEmpty($response); $this->assertArrayHasKey('links', $response); } /** @test */ public function it_can_list_disputes() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockListDisputesResponse() ) ); $response = $this->client->listDisputes(); $this->assertNotEmpty($response); $this->assertArrayHasKey('items', $response); } /** @test */ public function it_can_partially_update_a_dispute() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client(false) ); $expectedParams = $this->updateDisputeParams(); $response = $this->client->updateDispute('PP-D-27803', $expectedParams); $this->assertEmpty($response); } /** @test */ public function it_can_get_details_for_a_dispute() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockGetDisputesResponse() ) ); $response = $this->client->showDisputeDetails('PP-D-4012'); $this->assertNotEmpty($response); $this->assertArrayHasKey('dispute_id', $response); } /** @test */ public function it_can_provide_evidence_for_a_dispute_claim() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockAcceptDisputesClaimResponse() ) ); $mockFiles = [ __DIR__.'/../Mocks/samples/sample.jpg', __DIR__.'/../Mocks/samples/sample.png', __DIR__.'/../Mocks/samples/sample.pdf', ]; $response = $this->client->provideDisputeEvidence( 'PP-D-27803', $mockFiles ); $this->assertNotEmpty($response); $this->assertArrayHasKey('links', $response); } /** @test */ public function it_throws_exception_if_invalid_file_as_evidence_is_provided_for_a_dispute_claim() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockAcceptDisputesClaimResponse() ) ); $mockFiles = [ __DIR__.'/../Mocks/samples/sample.txt', __DIR__.'/../Mocks/samples/sample.pdf', ]; $this->expectException(\Exception::class); $response = $this->client->provideDisputeEvidence( 'PP-D-27803', $mockFiles ); } /** @test */ public function it_throws_exception_if_file_size_as_evidence_exceeds_per_file_limit_for_a_dispute_claim() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockAcceptDisputesClaimResponse() ) ); $file = __DIR__.'/../Mocks/samples/sample2.pdf'; $mockFiles = [$file]; $this->expectException(\Exception::class); $this->client->provideDisputeEvidence( 'PP-D-27803', $mockFiles ); } /** @test */ public function it_throws_exception_if_file_size_as_evidence_exceeds_overall_limit_for_a_dispute_claim() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockAcceptDisputesClaimResponse() ) ); $file = __DIR__.'/../Mocks/samples/sample2.pdf'; $mockFiles = [$file, $file, $file, $file, $file]; $this->expectException(\Exception::class); $this->client->provideDisputeEvidence( 'PP-D-27803', $mockFiles ); } /** @test */ public function it_can_offer_to_resolve_dispute_claim() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockAcceptDisputesClaimResponse() ) ); $response = $this->client->makeOfferToResolveDispute( 'PP-D-27803', 'Offer refund with replacement item.', 5.99, 'REFUND_WITH_REPLACEMENT' ); $this->assertNotEmpty($response); $this->assertArrayHasKey('links', $response); } /** @test */ public function it_can_escalate_dispute_claim() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockAcceptDisputesClaimResponse() ) ); $response = $this->client->escalateDisputeToClaim( 'PP-D-27803', 'Escalating to PayPal claim for resolution.' ); $this->assertNotEmpty($response); $this->assertArrayHasKey('links', $response); } /** @test */ public function it_can_accept_dispute_claim() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockAcceptDisputesClaimResponse() ) ); $response = $this->client->acceptDisputeClaim( 'PP-D-27803', 'Full refund to the customer.' ); $this->assertNotEmpty($response); $this->assertArrayHasKey('links', $response); } /** @test */ public function it_can_accept_dispute_offer_resolution() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockAcceptDisputesClaimResponse() ) ); $response = $this->client->acceptDisputeOfferResolution( 'PP-D-4012', 'I am ok with the refund offered.' ); $this->assertNotEmpty($response); $this->assertArrayHasKey('links', $response); } /** @test */ public function it_can_update_dispute_status() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockAcceptDisputesClaimResponse() ) ); $response = $this->client->updateDisputeStatus( 'PP-D-4012', true ); $this->assertNotEmpty($response); $this->assertArrayHasKey('links', $response); } /** @test */ public function it_can_settle_dispute() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockAcceptDisputesClaimResponse() ) ); $response = $this->client->settleDispute( 'PP-D-4012', true ); $this->assertNotEmpty($response); $this->assertArrayHasKey('links', $response); } /** @test */ public function it_can_decline_dispute_offer_resolution() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockAcceptDisputesClaimResponse() ) ); $response = $this->client->declineDisputeOfferResolution( 'PP-D-4012', 'I am not ok with the refund offered.' ); $this->assertNotEmpty($response); $this->assertArrayHasKey('links', $response); } /** @test */ public function it_can_generate_unique_invoice_number() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockGenerateInvoiceNumberResponse() ) ); $response = $this->client->generateInvoiceNumber(); $this->assertNotEmpty($response); $this->assertArrayHasKey('invoice_number', $response); } /** @test */ public function it_can_create_a_draft_invoice() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockCreateInvoicesResponse() ) ); $expectedParams = $this->createInvoiceParams(); $response = $this->client->createInvoice($expectedParams); $this->assertNotEmpty($response); $this->assertArrayHasKey('id', $response); } /** @test */ public function it_can_list_invoices() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockListInvoicesResponse() ) ); $response = $this->client->listInvoices(); $this->assertArrayHasKey('total_pages', $response); $this->assertArrayHasKey('total_items', $response); } /** @test */ public function it_can_delete_an_invoice() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client(false) ); $response = $this->client->deleteInvoice('INV2-Z56S-5LLA-Q52L-CPZ5'); $this->assertEmpty($response); } /** @test */ public function it_can_update_an_invoice() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockUpdateInvoicesResponse() ) ); $expectedParams = $this->updateInvoiceParams(); $response = $this->client->updateInvoice('INV2-Z56S-5LLA-Q52L-CPZ5', $expectedParams); $this->assertNotEmpty($response); $this->assertArrayHasKey('id', $response); } /** @test */ public function it_can_show_details_for_an_invoice() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockGetInvoicesResponse() ) ); $response = $this->client->showInvoiceDetails('INV2-Z56S-5LLA-Q52L-CPZ5'); $this->assertNotEmpty($response); $this->assertArrayHasKey('id', $response); } /** @test */ public function it_can_cancel_an_invoice() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client(false) ); $expectedParams = $this->cancelInvoiceParams(); $response = $this->client->cancelInvoice( 'INV2-Z56S-5LLA-Q52L-CPZ5', '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', ] ); $this->assertEmpty($response); } /** @test */ public function it_can_generate_qr_code_for_invoice() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockGenerateInvoiceQRCodeResponse() ) ); $response = $this->client->generateQRCodeInvoice('INV2-Z56S-5LLA-Q52L-CPZ5'); $this->assertNotEmpty($response); } /** @test */ public function it_can_register_payment_for_invoice() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockInvoiceRegisterPaymentResponse() ) ); $response = $this->client->registerPaymentInvoice('INV2-Z56S-5LLA-Q52L-CPZ5', '2018-05-01', 'BANK_TRANSFER', 10.00); $this->assertNotEmpty($response); $this->assertArrayHasKey('payment_id', $response); } /** @test */ public function it_can_delete_payment_for_invoice() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client(false) ); $response = $this->client->deleteExternalPaymentInvoice('INV2-Z56S-5LLA-Q52L-CPZ5', 'EXTR-86F38350LX4353815'); $this->assertEmpty($response); } /** @test */ public function it_can_refund_payment_for_invoice() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockInvoiceRefundPaymentResponse() ) ); $response = $this->client->refundInvoice('INV2-Z56S-5LLA-Q52L-CPZ5', '2018-05-01', 'BANK_TRANSFER', 5.00); $this->assertNotEmpty($response); $this->assertArrayHasKey('refund_id', $response); } /** @test */ public function it_can_delete_refund_for_invoice() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client(false) ); $response = $this->client->deleteRefundInvoice('INV2-Z56S-5LLA-Q52L-CPZ5', 'EXTR-2LG703375E477444T'); $this->assertEmpty($response); } /** @test */ public function it_can_send_an_invoice() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client(false) ); $response = $this->client->sendInvoice( 'INV2-Z56S-5LLA-Q52L-CPZ5', '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', ] ); $this->assertEmpty($response); } /** @test */ public function it_can_send_reminder_for_an_invoice() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client(false) ); $response = $this->client->sendInvoiceReminder( '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', ] ); $this->assertEmpty($response); } /** @test */ public function it_can_create_invoice_template() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockCreateInvoiceTemplateResponse() ) ); $expectedParams = $this->mockCreateInvoiceTemplateParams(); $response = $this->client->createInvoiceTemplate($expectedParams); $this->assertNotEmpty($response); $this->assertArrayHasKey('id', $response); } /** @test */ public function it_can_list_invoice_templates() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockListInvoiceTemplateResponse() ) ); $response = $this->client->listInvoiceTemplates(); $this->assertNotEmpty($response); $this->assertArrayHasKey('templates', $response); } /** @test */ public function it_can_delete_an_invoice_template() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client(false) ); $response = $this->client->deleteInvoiceTemplate('TEMP-19V05281TU309413B'); $this->assertEmpty($response); } /** @test */ public function it_can_update_an_invoice_template() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockUpdateInvoiceTemplateResponse() ) ); $expectedParams = $this->mockUpdateInvoiceTemplateParams(); $response = $this->client->updateInvoiceTemplate('TEMP-19V05281TU309413B', $expectedParams); $this->assertNotEmpty($response); $this->assertArrayHasKey('id', $response); } /** @test */ public function it_can_get_details_for_an_invoice_template() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockGetInvoiceTemplateResponse() ) ); $response = $this->client->showInvoiceTemplateDetails('TEMP-19V05281TU309413B'); $this->assertNotEmpty($response); $this->assertArrayHasKey('id', $response); } /** @test */ public function it_can_search_invoices() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockSearchInvoicesResponse() ) ); $response = $this->client->searchInvoices(); $this->assertArrayHasKey('total_pages', $response); $this->assertArrayHasKey('total_items', $response); } /** @test */ public function it_can_search_invoices_with_custom_filters() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockSearchInvoicesResponse() ) ); $response = $this->client ->addInvoiceFilterByRecipientEmail('bill-me@example.com') ->addInvoiceFilterByRecipientFirstName('John') ->addInvoiceFilterByRecipientLastName('Doe') ->addInvoiceFilterByRecipientBusinessName('Acme Inc.') ->addInvoiceFilterByInvoiceNumber('#123') ->addInvoiceFilterByInvoiceStatus(['PAID', 'MARKED_AS_PAID']) ->addInvoiceFilterByReferenceorMemo('deal-ref') ->addInvoiceFilterByCurrencyCode('USD') ->addInvoiceFilterByAmountRange(30, 50) ->addInvoiceFilterByDateRange('2018-06-01', '2018-06-21', 'invoice_date') ->addInvoiceFilterByArchivedStatus(false) ->addInvoiceFilterByFields(['items', 'payments', 'refunds']) ->searchInvoices(); $this->assertArrayHasKey('total_pages', $response); $this->assertArrayHasKey('total_items', $response); $this->assertArrayHasKey('items', $response); } /** @test */ public function it_throws_exception_on_search_invoices_with_invalid_status() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockSearchInvoicesResponse() ) ); $this->expectException(\Exception::class); $response = $this->client ->addInvoiceFilterByInvoiceStatus(['DECLINED']) ->searchInvoices(); } /** @test */ public function it_throws_exception_on_search_invoices_with_invalid_amount_ranges() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockSearchInvoicesResponse() ) ); $filters = $this->invoiceSearchParams(); $this->expectException(\Exception::class); $response = $this->client ->addInvoiceFilterByAmountRange(50, 30) ->searchInvoices(); } /** @test */ public function it_throws_exception_on_search_invoices_with_invalid_date_ranges() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockSearchInvoicesResponse() ) ); $filters = $this->invoiceSearchParams(); $this->expectException(\Exception::class); $response = $this->client ->addInvoiceFilterByDateRange('2018-07-01', '2018-06-21', 'invoice_date') ->searchInvoices(); } /** @test */ public function it_throws_exception_on_search_invoices_with_invalid_date_range_type() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockSearchInvoicesResponse() ) ); $filters = $this->invoiceSearchParams(); $this->expectException(\Exception::class); $response = $this->client ->addInvoiceFilterByDateRange('2018-06-01', '2018-06-21', 'declined_date') ->searchInvoices(); } /** @test */ public function it_can_get_user_profile_details() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockShowProfileInfoResponse() ) ); $response = $this->client->showProfileInfo(); $this->assertArrayHasKey('address', $response); } /** @test */ public function it_can_get_list_users() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mocklistUsersResponse() ) ); $response = $this->client->listUsers(); $this->assertArrayHasKey('Resources', $response); } /** @test */ public function it_can_get_user_details() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mocklistUserResponse() ) ); $user_id = '7XRNGHV24HQL4'; $response = $this->client->showUserDetails($user_id); $this->assertArrayHasKey('userName', $response); } /** @test */ public function it_can_deleta_a_user() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client(false) ); $user_id = '7XRNGHV24HQL4'; $response = $this->client->deleteUser($user_id); $this->assertEmpty($response); } /** @test */ public function it_can_create_orders() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockCreateOrdersResponse() ) ); $filters = $this->createOrderParams(); $response = $this->client->createOrder($filters); $this->assertArrayHasKey('status', $response); $this->assertArrayHasKey('id', $response); $this->assertArrayHasKey('links', $response); } /** @test */ public function it_can_update_orders() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockUpdateOrdersResponse() ) ); $order_id = '5O190127TN364715T'; $filters = $this->updateOrderParams(); $response = $this->client->updateOrder($order_id, $filters); $this->assertNotEmpty($response); } /** @test */ public function it_can_get_order_details() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockOrderDetailsResponse() ) ); $order_id = '5O190127TN364715T'; $response = $this->client->showOrderDetails($order_id); $this->assertArrayHasKey('status', $response); $this->assertArrayHasKey('id', $response); $this->assertArrayHasKey('intent', $response); $this->assertArrayHasKey('payment_source', $response); $this->assertArrayHasKey('purchase_units', $response); $this->assertArrayHasKey('create_time', $response); $this->assertArrayHasKey('links', $response); } /** @test */ public function it_can_authorize_payment_for_an_order() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockOrderPaymentAuthorizedResponse() ) ); $order_id = '5O190127TN364715T'; $response = $this->client->authorizePaymentOrder($order_id); $this->assertArrayHasKey('status', $response); $this->assertArrayHasKey('id', $response); $this->assertArrayHasKey('payer', $response); $this->assertArrayHasKey('purchase_units', $response); $this->assertArrayHasKey('links', $response); } /** @test */ public function it_can_create_partner_referral() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockCreatePartnerReferralsResponse() ) ); $expectedParams = $this->mockCreatePartnerReferralParams(); $response = $this->client->createPartnerReferral($expectedParams); $this->assertArrayHasKey('links', $response); } /** @test */ public function it_can_get_referral_details() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockShowReferralDataResponse() ) ); $partner_referral_id = 'ZjcyODU4ZWYtYTA1OC00ODIwLTk2M2EtOTZkZWQ4NmQwYzI3RU12cE5xa0xMRmk1NWxFSVJIT1JlTFdSbElCbFU1Q3lhdGhESzVQcU9iRT0='; $response = $this->client->showReferralData($partner_referral_id); $this->assertArrayHasKey('partner_referral_id', $response); $this->assertArrayHasKey('referral_data', $response); } /** @test */ public function it_can_list_web_experience_profiles() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockListWebProfilesResponse() ) ); $response = $this->client->listWebExperienceProfiles(); $this->assertNotEmpty($response); $this->assertArrayHasKey('id', collect($response)->first()); } /** @test */ public function it_can_create_web_experience_profile() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockWebProfileResponse() ) ); $expectedParams = $this->mockCreateWebProfileParams(); $response = $this->client->setRequestHeader('PayPal-Request-Id', 'some-request-id')->createWebExperienceProfile($expectedParams); $this->assertNotEmpty($response); $this->assertArrayHasKey('name', $response); } /** @test */ public function it_can_delete_web_experience_profile() { $expectedResponse = ''; $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client($expectedResponse) ); $expectedParams = 'XP-A88A-LYLW-8Y3X-E5ER'; $response = $this->client->deleteWebExperienceProfile($expectedParams); $this->assertEmpty($response); } /** @test */ public function it_can_partially_update_web_experience_profile() { $expectedResponse = ''; $expectedParams = $this->partiallyUpdateWebProfileParams(); $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client($expectedResponse) ); $response = $this->client->patchWebExperienceProfile('XP-A88A-LYLW-8Y3X-E5ER', $expectedParams); $this->assertEmpty($response); } /** @test */ public function it_can_fully_update_web_experience_profile() { $expectedResponse = ''; $expectedParams = $this->updateWebProfileParams(); $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client($expectedResponse) ); $response = $this->client->updateWebExperienceProfile('XP-A88A-LYLW-8Y3X-E5ER', $expectedParams); $this->assertEmpty($response); } /** @test */ public function it_can_get_web_experience_profile_details() { $expectedResponse = $this->mockWebProfileResponse(); $expectedParams = 'XP-A88A-LYLW-8Y3X-E5ER'; $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client($expectedResponse) ); $response = $this->client->showWebExperienceProfileDetails($expectedParams); $this->assertNotEmpty($response); $this->assertArrayHasKey('name', $response); } /** @test */ public function it_can_capture_payment_for_an_order() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockOrderPaymentCapturedResponse() ) ); $order_id = '5O190127TN364715T'; $response = $this->client->capturePaymentOrder($order_id); $this->assertArrayHasKey('status', $response); $this->assertArrayHasKey('id', $response); $this->assertArrayHasKey('payer', $response); $this->assertArrayHasKey('purchase_units', $response); $this->assertArrayHasKey('links', $response); } /** @test */ public function it_can_show_details_for_an_authorized_payment() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockGetAuthorizedPaymentDetailsResponse() ) ); $response = $this->client->showAuthorizedPaymentDetails('0VF52814937998046'); $this->assertNotEmpty($response); $this->assertArrayHasKey('id', $response); } /** @test */ public function it_can_capture_an_authorized_payment() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockCaptureAuthorizedPaymentResponse() ) ); $response = $this->client->captureAuthorizedPayment( '0VF52814937998046', 'INVOICE-123', 10.99, 'Payment is due' ); $this->assertNotEmpty($response); $this->assertArrayHasKey('id', $response); } /** @test */ public function it_can_reauthorize_an_authorized_payment() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockReAuthorizeAuthorizedPaymentResponse() ) ); $response = $this->client->reAuthorizeAuthorizedPayment('0VF52814937998046', 10.99); $this->assertNotEmpty($response); $this->assertArrayHasKey('id', $response); } /** @test */ public function it_can_void_an_authorized_payment() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client(false) ); $response = $this->client->voidAuthorizedPayment('0VF52814937998046'); $this->assertEmpty($response); } /** @test */ public function it_can_show_details_for_a_captured_payment() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockGetCapturedPaymentDetailsResponse() ) ); $response = $this->client->showCapturedPaymentDetails('2GG279541U471931P'); $this->assertNotEmpty($response); $this->assertArrayHasKey('id', $response); } /** @test */ public function it_can_refund_a_captured_payment() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockRefundCapturedPaymentResponse() ) ); $response = $this->client->refundCapturedPayment( '2GG279541U471931P', 'INVOICE-123', 10.99, 'Defective product' ); $this->assertNotEmpty($response); $this->assertArrayHasKey('id', $response); } /** @test */ public function it_can_show_details_for_a_refund() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockGetRefundDetailsResponse() ) ); $response = $this->client->showRefundDetails('1JU08902781691411'); $this->assertNotEmpty($response); $this->assertArrayHasKey('id', $response); } /** @test */ public function it_can_create_batch_payout() { $expectedResponse = $this->mockCreateBatchPayoutResponse(); $expectedParams = $this->mockCreateBatchPayoutParams(); $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client($expectedResponse) ); $response = $this->client->createBatchPayout($expectedParams); $this->assertNotEmpty($response); $this->assertArrayHasKey('batch_header', $response); } /** @test */ public function it_can_show_batch_payout_details() { $expectedResponse = $this->showBatchPayoutResponse(); $expectedParams = 'FYXMPQTX4JC9N'; $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client($expectedResponse) ); $response = $this->client->showBatchPayoutDetails($expectedParams); $this->assertNotEmpty($response); $this->assertArrayHasKey('batch_header', $response); $this->assertArrayHasKey('items', $response); } /** @test */ public function it_can_show_batch_payout_item_details() { $expectedResponse = $this->showBatchPayoutItemResponse(); $expectedParams = '8AELMXH8UB2P8'; $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client($expectedResponse) ); $response = $this->client->showPayoutItemDetails($expectedParams); $this->assertNotEmpty($response); $this->assertArrayHasKey('payout_item_id', $response); $this->assertArrayHasKey('payout_batch_id', $response); $this->assertArrayHasKey('payout_item', $response); } /** @test */ public function it_can_cancel_unclaimed_batch_payout_item() { $expectedResponse = $this->mockCancelUnclaimedBatchItemResponse(); $expectedParams = '8AELMXH8UB2P8'; $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client($expectedResponse) ); $response = $this->client->cancelUnclaimedPayoutItem($expectedParams); $this->assertNotEmpty($response); $this->assertArrayHasKey('payout_item_id', $response); $this->assertArrayHasKey('payout_batch_id', $response); $this->assertArrayHasKey('payout_item', $response); } /** @test */ public function it_can_create_referenced_batch_payout() { $expectedResponse = $this->mockCreateReferencedBatchPayoutResponse(); $expectedParams = $this->mockCreateReferencedBatchPayoutParams(); $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client($expectedResponse) ); $response = $this->client->setRequestHeaders([ 'PayPal-Request-Id' => 'some-request-id', 'PayPal-Partner-Attribution-Id' => 'some-attribution-id', ])->createReferencedBatchPayout($expectedParams); $this->assertNotEmpty($response); $this->assertArrayHasKey('links', $response); } /** @test */ public function it_can_list_items_referenced_in_batch_payout() { $expectedResponse = $this->mockShowReferencedBatchPayoutResponse(); $expectedParams = 'KHbwO28lWlXwi2IlToJ2IYNG4juFv6kpbFx4J9oQ5Hb24RSp96Dk5FudVHd6v4E='; $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client($expectedResponse) ); $response = $this->client->listItemsReferencedInBatchPayout($expectedParams); $this->assertNotEmpty($response); $this->assertArrayHasKey('links', $response); } /** @test */ public function it_can_create_referenced_batch_payout_item() { $expectedResponse = $this->mockCreateReferencedBatchPayoutItemResponse(); $expectedParams = $this->mockCreateReferencedBatchPayoutItemParams(); $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client($expectedResponse) ); $response = $this->client->setRequestHeaders([ 'PayPal-Request-Id' => 'some-request-id', 'PayPal-Partner-Attribution-Id' => 'some-attribution-id', ])->createReferencedBatchPayoutItem($expectedParams); $this->assertNotEmpty($response); $this->assertArrayHasKey('links', $response); } /** @test */ public function it_can_show_referenced_payout_item_details() { $expectedResponse = $this->mockShowReferencedBatchPayoutItemResponse(); $expectedParams = 'CDZEC5MJ8R5HY'; $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client($expectedResponse) ); $response = $this->client->setRequestHeader('PayPal-Partner-Attribution-Id', 'some-attribution-id') ->showReferencedPayoutItemDetails($expectedParams); $this->assertNotEmpty($response); $this->assertArrayHasKey('item_id', $response); $this->assertArrayHasKey('reference_id', $response); } /** @test */ public function it_can_list_transactions() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockListTransactionsResponse() ) ); $filters = [ 'start_date' => Carbon::now()->toIso8601String(), 'end_date' => Carbon::now()->subDays(30)->toIso8601String(), ]; $response = $this->client->listTransactions($filters); $this->assertArrayHasKey('transaction_details', $response); $this->assertGreaterThan(0, sizeof($response['transaction_details'])); } /** @test */ public function it_can_list_account_balances() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockListBalancesResponse() ) ); $date = Carbon::now()->subDays(30)->toIso8601String(); $response = $this->client->listBalances($date); $this->assertNotEmpty($response); } /** @test */ public function it_can_list_account_balances_for_a_different_currency() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockListBalancesResponse() ) ); $date = Carbon::now()->subDays(30)->toIso8601String(); $response = $this->client->listBalances($date, 'EUR'); $this->assertNotEmpty($response); } /** @test */ public function it_can_create_a_subscription() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockCreateSubscriptionResponse() ) ); $expectedParams = $this->mockCreateSubscriptionParams(); $response = $this->client->createSubscription($expectedParams); $this->assertNotEmpty($response); $this->assertArrayHasKey('id', $response); } /** @test */ public function it_can_update_a_subscription() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client(false) ); $expectedParams = $this->mockUpdateSubscriptionParams(); $response = $this->client->updateSubscription('I-BW452GLLEP1G', $expectedParams); $this->assertEmpty($response); } /** @test */ public function it_can_show_details_for_a_subscription() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockGetSubscriptionDetailsResponse() ) ); $response = $this->client->showSubscriptionDetails('I-BW452GLLEP1G'); $this->assertNotEmpty($response); $this->assertArrayHasKey('id', $response); } /** @test */ public function it_can_activate_a_subscription() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client(false) ); $response = $this->client->activateSubscription('I-BW452GLLEP1G', 'Reactivating the subscription'); $this->assertEmpty($response); } /** @test */ public function it_can_cancel_a_subscription() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client(false) ); $response = $this->client->cancelSubscription('I-BW452GLLEP1G', 'Not satisfied with the service'); $this->assertEmpty($response); } /** @test */ public function it_can_suspend_a_subscription() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client(false) ); $response = $this->client->suspendSubscription('I-BW452GLLEP1G', 'Item out of stock'); $this->assertEmpty($response); } /** @test */ public function it_can_capture_payment_for_a_subscription() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client(false) ); $response = $this->client->captureSubscriptionPayment('I-BW452GLLEP1G', 'Charging as the balance reached the limit', 100); $this->assertEmpty($response); } /** @test */ public function it_can_update_quantity_or_product_for_a_subscription() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockUpdateSubscriptionItemsResponse() ) ); $expectedParams = $this->mockUpdateSubscriptionItemsParams(); $response = $this->client->reviseSubscription('I-BW452GLLEP1G', $expectedParams); $this->assertNotEmpty($response); $this->assertArrayHasKey('plan_id', $response); } /** @test */ public function it_can_list_transactions_for_a_subscription() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockListSubscriptionTransactionsResponse() ) ); $response = $this->client->listSubscriptionTransactions('I-BW452GLLEP1G', '2018-01-21T07:50:20.940Z', '2018-08-22T07:50:20.940Z'); $this->assertNotEmpty($response); $this->assertEquals($response, $this->mockListSubscriptionTransactionsResponse()); } /** @test */ public function it_can_list_tracking_details() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockGetTrackingDetailsResponse() ) ); $response = $this->client->listTrackingDetails('8MC585209K746392H-443844607820'); $this->assertNotEmpty($response); $this->assertEquals($response, $this->mockGetTrackingDetailsResponse()); $this->assertArrayHasKey('transaction_id', $response); $this->assertArrayHasKey('tracking_number', $response); } /** @test */ public function it_can_get_tracking_details_for_tracking_id() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockGetTrackingDetailsResponse() ) ); $response = $this->client->showTrackingDetails('8MC585209K746392H-443844607820'); $this->assertNotEmpty($response); $this->assertEquals($response, $this->mockGetTrackingDetailsResponse()); $this->assertArrayHasKey('tracking_number', $response); } /** @test */ public function it_can_update_tracking_details_for_tracking_id() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client(false) ); $response = $this->client->updateTrackingDetails( '8MC585209K746392H-443844607820', $this->mockUpdateTrackingDetailsParams() ); $this->assertEmpty($response); } /** @test */ public function it_can_create_tracking_in_batches() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockCreateTrackinginBatchesResponse() ) ); $expectedParams = $this->mockCreateTrackinginBatchesParams(); $response = $this->client->addBatchTracking($expectedParams); $this->assertNotEmpty($response); $this->assertArrayHasKey('tracker_identifiers', $response); } /** @test */ public function it_can_create_single_tracking_for_single_transaction() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockCreateTrackinginBatchesResponse() ) ); $expectedParams = $this->mockCreateTrackinginBatchesParams(); $response = $this->client->addTracking($expectedParams); $this->assertNotEmpty($response); $this->assertArrayHasKey('tracker_identifiers', $response); } /** @test */ public function it_can_list_web_hooks_event_types() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockListWebHookEventsTypesResponse() ) ); $response = $this->client->listEventTypes(); $this->assertNotEmpty($response); $this->assertArrayHasKey('event_types', $response); } /** @test */ public function it_can_list_web_hooks_events() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockWebHookEventsListResponse() ) ); $response = $this->client->listEvents(); $this->assertNotEmpty($response); $this->assertArrayHasKey('events', $response); } /** @test */ public function it_can_show_details_for_a_web_hooks_event() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockGetWebHookEventResponse() ) ); $response = $this->client->showEventDetails('8PT597110X687430LKGECATA'); $this->assertNotEmpty($response); $this->assertArrayHasKey('id', $response); } /** @test */ public function it_can_resend_notification_for_a_web_hooks_event() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockResendWebHookEventNotificationResponse() ) ); $expectedParams = ['12334456']; $response = $this->client->resendEventNotification('8PT597110X687430LKGECATA', $expectedParams); $this->assertNotEmpty($response); $this->assertArrayHasKey('id', $response); } /** @test */ public function it_can_create_a_web_hook() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockCreateWebHookResponse() ) ); $response = $this->client->createWebHook( 'https://example.com/example_webhook', ['PAYMENT.AUTHORIZATION.CREATED', 'PAYMENT.AUTHORIZATION.VOIDED'] ); $this->assertNotEmpty($response); $this->assertArrayHasKey('event_types', $response); } /** @test */ public function it_can_list_web_hooks() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockListWebHookResponse() ) ); $response = $this->client->listWebHooks(); $this->assertNotEmpty($response); $this->assertArrayHasKey('webhooks', $response); } /** @test */ public function it_can_delete_a_web_hook() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client(false) ); $response = $this->client->deleteWebHook('5GP028458E2496506'); $this->assertEmpty($response); } /** @test */ public function it_can_update_a_web_hook() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockUpdateWebHookResponse() ) ); $expectedParams = $this->mockUpdateWebHookParams(); $response = $this->client->updateWebHook('0EH40505U7160970P', $expectedParams); $this->assertNotEmpty($response); $this->assertArrayHasKey('event_types', $response); } /** @test */ public function it_can_show_details_for_a_web_hook() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockGetWebHookResponse() ) ); $response = $this->client->showWebHookDetails('0EH40505U7160970P'); $this->assertNotEmpty($response); $this->assertArrayHasKey('event_types', $response); } /** @test */ public function it_can_list_events_for_web_hooks() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockListWebHookEventsResponse() ) ); $response = $this->client->listWebHookEvents('0EH40505U7160970P'); $this->assertNotEmpty($response); $this->assertArrayHasKey('event_types', $response); } /** @test */ public function it_can_verify_web_hook_signature() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockVerifyWebHookSignatureResponse() ) ); $expectedParams = $this->mockVerifyWebHookSignatureParams(); $response = $this->client->verifyWebHook($expectedParams); $this->assertNotEmpty($response); $this->assertArrayHasKey('verification_status', $response); } /** @test */ public function it_can_list_payment_methods_source_tokens() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockListPaymentMethodsTokensResponse() ) ); $response = $this->client->setCustomerSource('customer_4029352050') ->listPaymentSourceTokens(); $this->assertNotEmpty($response); $this->assertArrayHasKey('payment_tokens', $response); } /** @test */ public function it_can_show_details_for_payment_method_source_token() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockCreatePaymentMethodsTokenResponse() ) ); $response = $this->client->showPaymentSourceTokenDetails('8kk8451t'); $this->assertNotEmpty($response); $this->assertArrayHasKey('id', $response); $this->assertArrayHasKey('customer', $response); $this->assertArrayHasKey('payment_source', $response); } /** @test */ public function it_can_delete_a_payment_method_source_token() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client(false) ); $response = $this->client->deletePaymentSourceToken('8kk8451t'); $this->assertEmpty($response); } /** @test */ public function it_can_show_details_for_payment_setup_token() { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $this->client->setClient( $this->mock_http_client( $this->mockListPaymentSetupTokenResponse() ) ); $response = $this->client->showPaymentSetupTokenDetails('5C991763VB2781612'); $this->assertNotEmpty($response); $this->assertArrayHasKey('id', $response); $this->assertArrayHasKey('customer', $response); $this->assertArrayHasKey('payment_source', $response); } }