芝麻web文件管理V1.00
编辑当前文件:/home/qrafawbu/reginaeigbe.com/folder/admin/tmp/vendor/omnipay/paypal/tests/ExpressGatewayTest.php
gateway = new ExpressGateway($this->getHttpClient(), $this->getHttpRequest()); $this->options = array( 'amount' => '10.00', 'returnUrl' => 'https://www.example.com/return', 'cancelUrl' => 'https://www.example.com/cancel', ); $this->voidOptions = array( 'transactionReference' => 'ASDFASDFASDF', ); } public function testAuthorizeSuccess() { $this->setMockHttpResponse('ExpressPurchaseSuccess.txt'); $response = $this->gateway->authorize($this->options)->send(); $this->assertInstanceOf('\Omnipay\PayPal\Message\ExpressAuthorizeResponse', $response); $this->assertFalse($response->isPending()); $this->assertFalse($response->isSuccessful()); $this->assertTrue($response->isRedirect()); $this->assertEquals('https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&useraction=commit&token=EC-42721413K79637829', $response->getRedirectUrl()); } public function testAuthorizeFailure() { $this->setMockHttpResponse('ExpressPurchaseFailure.txt'); $response = $this->gateway->authorize($this->options)->send(); $this->assertFalse($response->isPending()); $this->assertFalse($response->isSuccessful()); $this->assertFalse($response->isRedirect()); $this->assertNull($response->getTransactionReference()); $this->assertSame('This transaction cannot be processed. The amount to be charged is zero.', $response->getMessage()); } public function testPurchaseSuccess() { $this->setMockHttpResponse('ExpressPurchaseSuccess.txt'); $response = $this->gateway->purchase($this->options)->send(); $this->assertInstanceOf('\Omnipay\PayPal\Message\ExpressAuthorizeResponse', $response); $this->assertFalse($response->isPending()); $this->assertFalse($response->isSuccessful()); $this->assertTrue($response->isRedirect()); $this->assertEquals('https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&useraction=commit&token=EC-42721413K79637829', $response->getRedirectUrl()); } public function testPurchaseFailure() { $this->setMockHttpResponse('ExpressPurchaseFailure.txt'); $response = $this->gateway->purchase($this->options)->send(); $this->assertFalse($response->isPending()); $this->assertFalse($response->isSuccessful()); $this->assertFalse($response->isRedirect()); $this->assertNull($response->getTransactionReference()); $this->assertSame('This transaction cannot be processed. The amount to be charged is zero.', $response->getMessage()); } public function testOrderSuccess() { $this->setMockHttpResponse('ExpressOrderSuccess.txt'); $response = $this->gateway->order($this->options)->send(); $this->assertInstanceOf('\Omnipay\PayPal\Message\ExpressAuthorizeResponse', $response); $this->assertFalse($response->isPending()); $this->assertFalse($response->isSuccessful()); $this->assertTrue($response->isRedirect()); $this->assertEquals('https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&useraction=commit&token=EC-42721413K79637829', $response->getRedirectUrl()); } public function testOrderFailure() { $this->setMockHttpResponse('ExpressOrderFailure.txt'); $response = $this->gateway->order($this->options)->send(); $this->assertFalse($response->isPending()); $this->assertFalse($response->isSuccessful()); $this->assertFalse($response->isRedirect()); $this->assertNull($response->getTransactionReference()); $this->assertSame('This transaction cannot be processed. The amount to be charged is zero.', $response->getMessage()); } public function testVoidSuccess() { $this->setMockHttpResponse('ExpressVoidSuccess.txt'); $response = $this->gateway->void($this->voidOptions)->send(); $this->assertInstanceOf('\Omnipay\PayPal\Message\Response', $response); $this->assertTrue($response->isSuccessful()); $this->assertFalse($response->isRedirect()); $this->assertEquals('ASDFASDFASDF', $response->getTransactionReference()); } public function testVoidFailure() { $this->setMockHttpResponse('ExpressVoidFailure.txt'); $response = $this->gateway->void($this->voidOptions)->send(); $this->assertInstanceOf('\Omnipay\PayPal\Message\Response', $response); $this->assertFalse($response->isSuccessful()); } public function testFetchCheckout() { $options = array('token' => 'abc123'); $request = $this->gateway->fetchCheckout($options); $this->assertInstanceOf('\Omnipay\PayPal\Message\ExpressFetchCheckoutRequest', $request); $this->assertSame('abc123', $request->getToken()); } public function testCompletePurchaseFailureRedirect() { $this->setMockHttpResponse('ExpressCompletePurchaseFailureRedirect.txt'); $response = $this->gateway->completePurchase($this->options)->send(); $this->assertFalse($response->isPending()); $this->assertFalse($response->isSuccessful()); $this->assertTrue($response->isRedirect()); $this->assertEquals('ASDFASDFASDF', $response->getTransactionReference()); $this->assertSame('This transaction couldn\'t be completed. Please redirect your customer to PayPal.', $response->getMessage()); } public function testCompletePurchaseHttpOptions() { $this->setMockHttpResponse('ExpressPurchaseSuccess.txt'); $this->getHttpRequest()->query->replace(array( 'token' => 'GET_TOKEN', 'PayerID' => 'GET_PAYERID', )); $response = $this->gateway->completePurchase(array( 'amount' => '10.00', 'currency' => 'EUR', ))->send(); $httpRequests = $this->getMockedRequests(); $httpRequest = $httpRequests[0]; parse_str((string)$httpRequest->getBody(), $postData); $this->assertSame('GET_TOKEN', $postData['TOKEN']); $this->assertSame('GET_PAYERID', $postData['PAYERID']); } public function testCompletePurchaseCustomOptions() { $this->setMockHttpResponse('ExpressPurchaseSuccess.txt'); // Those values should not be used if custom token or payerid are passed $this->getHttpRequest()->query->replace(array( 'token' => 'GET_TOKEN', 'PayerID' => 'GET_PAYERID', )); $response = $this->gateway->completePurchase(array( 'amount' => '10.00', 'currency' => 'EUR', 'token' => 'CUSTOM_TOKEN', 'payerid' => 'CUSTOM_PAYERID', ))->send(); $httpRequests = $this->getMockedRequests(); $httpRequest = $httpRequests[0]; parse_str((string)$httpRequest->getBody(), $postData); $this->assertSame('CUSTOM_TOKEN', $postData['TOKEN']); $this->assertSame('CUSTOM_PAYERID', $postData['PAYERID']); } public function testTransactionSearch() { $transactionSearch = $this->gateway->transactionSearch(array( 'startDate' => '2015-01-01', 'endDate' => '2015-12-31', )); $this->assertInstanceOf('\Omnipay\PayPal\Message\ExpressTransactionSearchRequest', $transactionSearch); $this->assertInstanceOf('\DateTime', $transactionSearch->getStartDate()); $this->assertInstanceOf('\DateTime', $transactionSearch->getEndDate()); } }