Open Journal Systems  3.3.0
vendor/omnipay/paypal/tests/Message/RestAuthorizeRequestTest.php
1 <?php
2 
3 namespace Omnipay\PayPal\Message;
4 
6 use Omnipay\Tests\TestCase;
7 
8 class RestAuthorizeRequestTest extends TestCase
9 {
13  private $request;
14 
15  public function setUp()
16  {
17  parent::setUp();
18 
19  $this->request = new RestAuthorizeRequest($this->getHttpClient(), $this->getHttpRequest());
20  $this->request->initialize(
21  array(
22  'amount' => '10.00',
23  'currency' => 'USD',
24  'returnUrl' => 'https://www.example.com/return',
25  'cancelUrl' => 'https://www.example.com/cancel',
26  )
27  );
28  }
29 
30  public function testGetDataWithoutCard()
31  {
32  $this->request->setTransactionId('abc123');
33  $this->request->setDescription('Sheep');
34 
35  $data = $this->request->getData();
36 
37  $this->assertSame('authorize', $data['intent']);
38  $this->assertSame('paypal', $data['payer']['payment_method']);
39  $this->assertSame('10.00', $data['transactions'][0]['amount']['total']);
40  $this->assertSame('USD', $data['transactions'][0]['amount']['currency']);
41  $this->assertSame('abc123 : Sheep', $data['transactions'][0]['description']);
42 
43  // Funding instruments must not be set, otherwise paypal API will give error 500.
44  $this->assertArrayNotHasKey('funding_instruments', $data['payer']);
45 
46  $this->assertSame('https://www.example.com/return', $data['redirect_urls']['return_url']);
47  $this->assertSame('https://www.example.com/cancel', $data['redirect_urls']['cancel_url']);
48  }
49 
50  public function testGetDataWithCard()
51  {
52  $card = new CreditCard($this->getValidCard());
53  $card->setStartMonth(1);
54  $card->setStartYear(2000);
55 
56  $this->request->setCard($card);
57  $this->request->setTransactionId('abc123');
58  $this->request->setDescription('Sheep');
59  $this->request->setClientIp('127.0.0.1');
60 
61  $data = $this->request->getData();
62 
63  $this->assertSame('authorize', $data['intent']);
64  $this->assertSame('credit_card', $data['payer']['payment_method']);
65  $this->assertSame('10.00', $data['transactions'][0]['amount']['total']);
66  $this->assertSame('USD', $data['transactions'][0]['amount']['currency']);
67  $this->assertSame('abc123 : Sheep', $data['transactions'][0]['description']);
68 
69  $this->assertSame($card->getNumber(), $data['payer']['funding_instruments'][0]['credit_card']['number']);
70  $this->assertSame($card->getBrand(), $data['payer']['funding_instruments'][0]['credit_card']['type']);
71  $this->assertSame($card->getExpiryMonth(), $data['payer']['funding_instruments'][0]['credit_card']['expire_month']);
72  $this->assertSame($card->getExpiryYear(), $data['payer']['funding_instruments'][0]['credit_card']['expire_year']);
73  $this->assertSame($card->getCvv(), $data['payer']['funding_instruments'][0]['credit_card']['cvv2']);
74 
75  $this->assertSame($card->getFirstName(), $data['payer']['funding_instruments'][0]['credit_card']['first_name']);
76  $this->assertSame($card->getLastName(), $data['payer']['funding_instruments'][0]['credit_card']['last_name']);
77  $this->assertSame($card->getAddress1(), $data['payer']['funding_instruments'][0]['credit_card']['billing_address']['line1']);
78  $this->assertSame($card->getAddress2(), $data['payer']['funding_instruments'][0]['credit_card']['billing_address']['line2']);
79  $this->assertSame($card->getCity(), $data['payer']['funding_instruments'][0]['credit_card']['billing_address']['city']);
80  $this->assertSame($card->getState(), $data['payer']['funding_instruments'][0]['credit_card']['billing_address']['state']);
81  $this->assertSame($card->getPostcode(), $data['payer']['funding_instruments'][0]['credit_card']['billing_address']['postal_code']);
82  $this->assertSame($card->getCountry(), $data['payer']['funding_instruments'][0]['credit_card']['billing_address']['country_code']);
83  }
84 
85  public function testGetDataWithItems()
86  {
87  $this->request->setAmount('50.00');
88  $this->request->setCurrency('USD');
89  $this->request->setItems(array(
90  array('name' => 'Floppy Disk', 'description' => 'MS-DOS', 'quantity' => 2, 'price' => 10),
91  array('name' => 'CD-ROM', 'description' => 'Windows 95', 'quantity' => 1, 'price' => 40),
92  ));
93 
94  $data = $this->request->getData();
95  $transactionData = $data['transactions'][0];
96 
97  $this->assertSame('Floppy Disk', $transactionData['item_list']['items'][0]['name']);
98  $this->assertSame('MS-DOS', $transactionData['item_list']['items'][0]['description']);
99  $this->assertSame(2, $transactionData['item_list']['items'][0]['quantity']);
100  $this->assertSame('10.00', $transactionData['item_list']['items'][0]['price']);
101 
102  $this->assertSame('CD-ROM', $transactionData['item_list']['items'][1]['name']);
103  $this->assertSame('Windows 95', $transactionData['item_list']['items'][1]['description']);
104  $this->assertSame(1, $transactionData['item_list']['items'][1]['quantity']);
105  $this->assertSame('40.00', $transactionData['item_list']['items'][1]['price']);
106 
107  $this->assertSame('50.00', $transactionData['amount']['total']);
108  $this->assertSame('USD', $transactionData['amount']['currency']);
109  }
110 
111  public function testDescription()
112  {
113  $this->request->setTransactionId('');
114  $this->request->setDescription('');
115  $this->assertEmpty($this->request->getDescription());
116 
117  $this->request->setTransactionId('');
118  $this->request->setDescription('Sheep');
119  $this->assertEquals('Sheep', $this->request->getDescription());
120 
121  $this->request->setTransactionId('abc123');
122  $this->request->setDescription('');
123  $this->assertEquals('abc123', $this->request->getDescription());
124 
125  $this->request->setTransactionId('abc123');
126  $this->request->setDescription('Sheep');
127  $this->assertEquals('abc123 : Sheep', $this->request->getDescription());
128  }
129 }
Omnipay\PayPal\Message\RestAuthorizeRequestTest\testGetDataWithItems
testGetDataWithItems()
Definition: vendor/omnipay/paypal/tests/Message/RestAuthorizeRequestTest.php:88
Omnipay\PayPal\Message\RestAuthorizeRequestTest\testGetDataWithoutCard
testGetDataWithoutCard()
Definition: vendor/omnipay/paypal/tests/Message/RestAuthorizeRequestTest.php:33
Omnipay\PayPal\Message\RestAuthorizeRequestTest\setUp
setUp()
Definition: vendor/omnipay/paypal/tests/Message/RestAuthorizeRequestTest.php:18
Omnipay\PayPal\Message\RestAuthorizeRequestTest\testGetDataWithCard
testGetDataWithCard()
Definition: vendor/omnipay/paypal/tests/Message/RestAuthorizeRequestTest.php:53
Omnipay\Common\CreditCard
Definition: lib/vendor/omnipay/common/src/Omnipay/Common/CreditCard.php:94
Omnipay\PayPal\Message\RestAuthorizeRequest
Definition: lib/vendor/omnipay/paypal/src/Message/RestAuthorizeRequest.php:216
Omnipay\PayPal\Message
Definition: lib/vendor/omnipay/paypal/src/Message/AbstractRequest.php:6
Omnipay\PayPal\Message\RestAuthorizeRequestTest\testDescription
testDescription()
Definition: vendor/omnipay/paypal/tests/Message/RestAuthorizeRequestTest.php:114