client = new PayPalClient($this->getApiCredentials()); $this->client->setClient( $this->mock_http_client( $this->mockAccessTokenResponse() ) ); $response = $this->client->getAccessToken(); self::$access_token = $response['access_token']; parent::setUp(); } #[Test] public function it_can_set_payment_experience_context_before_performing_api_call(): void { $this->client->setAccessToken([ 'access_token' => self::$access_token, 'token_type' => 'Bearer', ]); $start_date = Carbon::now()->addDay()->toDateString(); $this->client = $this->client->setReturnAndCancelUrl('https://example.com/paypal-success', 'https://example.com/paypal-cancel') ->setBrandName('Test Brand') ->addProductById('PROD-XYAB12ABSB7868434') ->addBillingPlanById('P-5ML4271244454362WXNWU5NQ'); $this->client->setClient( $this->mock_http_client( $this->mockCreateSubscriptionResponse() ) ); $response = $this->client->setupSubscription('John Doe', 'john@example.com', $start_date); $this->assertNotEmpty($response); $this->assertArrayHasKey('id', $response); $this->assertArrayHasKey('plan_id', $response); } }