/wp-content/plugins/woocommerce-gateway-paypal-powered-by-braintree/braintree_sdk/tests/integration/CreditCardVerificationAdvancedSearchTest.php

https://gitlab.com/hunt9310/ras · PHP · 259 lines · 223 code · 36 blank · 0 comment · 0 complexity · 1b741a14706c14fe27b6383f37989ea8 MD5 · raw file

  1. <?php
  2. namespace Test\Integration;
  3. require_once dirname(__DIR__) . '/Setup.php';
  4. use Test;
  5. use Test\Setup;
  6. use Braintree;
  7. class CreditCardVerificationAdvancedSearchTest extends Setup
  8. {
  9. public function test_searchOnTextFields()
  10. {
  11. $searchCriteria = [
  12. 'creditCardCardholderName' => 'Tim Toole',
  13. 'creditCardExpirationDate' => '05/2010',
  14. 'creditCardNumber' => Braintree\Test\CreditCardNumbers::$failsSandboxVerification['Visa'],
  15. 'billingAddressDetailsPostalCode' => '90210',
  16. ];
  17. $result = Braintree\Customer::create([
  18. 'creditCard' => [
  19. 'cardholderName' => $searchCriteria['creditCardCardholderName'],
  20. 'number' => $searchCriteria['creditCardNumber'],
  21. 'expirationDate' => $searchCriteria['creditCardExpirationDate'],
  22. 'billingAddress' => [
  23. 'postalCode' => $searchCriteria['billingAddressDetailsPostalCode']
  24. ],
  25. 'options' => ['verifyCard' => true],
  26. ],
  27. ]);
  28. $verification = $result->creditCardVerification;
  29. $query = [Braintree\CreditCardVerificationSearch::id()->is($verification->id)];
  30. foreach ($searchCriteria AS $criterion => $value) {
  31. $query[] = Braintree\CreditCardVerificationSearch::$criterion()->is($value);
  32. }
  33. $collection = Braintree\CreditCardVerification::search($query);
  34. $this->assertEquals(1, $collection->maximumCount());
  35. $this->assertEquals($result->creditCardVerification->id, $collection->firstItem()->id);
  36. foreach ($searchCriteria AS $criterion => $value) {
  37. $collection = Braintree\CreditCardVerification::search([
  38. Braintree\CreditCardVerificationSearch::$criterion()->is($value),
  39. Braintree\CreditCardVerificationSearch::id()->is($result->creditCardVerification->id)
  40. ]);
  41. $this->assertEquals(1, $collection->maximumCount());
  42. $this->assertEquals($result->creditCardVerification->id, $collection->firstItem()->id);
  43. $collection = Braintree\CreditCardVerification::search([
  44. Braintree\CreditCardVerificationSearch::$criterion()->is('invalid_attribute'),
  45. Braintree\CreditCardVerificationSearch::id()->is($result->creditCardVerification->id)
  46. ]);
  47. $this->assertEquals(0, $collection->maximumCount());
  48. }
  49. }
  50. public function test_searchOnSuccessfulCustomerAndPaymentFields()
  51. {
  52. $customerId = uniqid();
  53. $searchCriteria = [
  54. 'customerId' => $customerId,
  55. 'customerEmail' => $customerId . 'sandworm@example.com',
  56. 'paymentMethodToken' => $customerId . 'token',
  57. ];
  58. $result = Braintree\Customer::create([
  59. 'id' => $customerId,
  60. 'email' => $searchCriteria['customerEmail'],
  61. 'creditCard' => [
  62. 'token' => $searchCriteria['paymentMethodToken'],
  63. 'number' => Braintree\Test\CreditCardNumbers::$visa,
  64. 'expirationDate' => '05/2017',
  65. 'options' => ['verifyCard' => true]
  66. ]
  67. ]);
  68. $customer = $result->customer;
  69. $query = [];
  70. foreach ($searchCriteria AS $criterion => $value) {
  71. $query[] = Braintree\CreditCardVerificationSearch::$criterion()->is($value);
  72. }
  73. $collection = Braintree\CreditCardVerification::search($query);
  74. $this->assertEquals(1, $collection->maximumCount());
  75. foreach ($searchCriteria AS $criterion => $value) {
  76. $collection = Braintree\CreditCardVerification::search([
  77. Braintree\CreditCardVerificationSearch::$criterion()->is($value),
  78. ]);
  79. $this->assertEquals(1, $collection->maximumCount());
  80. $collection = Braintree\CreditCardVerification::search([
  81. Braintree\CreditCardVerificationSearch::$criterion()->is('invalid_attribute'),
  82. ]);
  83. $this->assertEquals(0, $collection->maximumCount());
  84. }
  85. }
  86. public function testGateway_searchEmpty()
  87. {
  88. $query = [];
  89. $query[] = Braintree\CreditCardVerificationSearch::creditCardCardholderName()->is('Not Found');
  90. $gateway = new Braintree\Gateway([
  91. 'environment' => 'development',
  92. 'merchantId' => 'integration_merchant_id',
  93. 'publicKey' => 'integration_public_key',
  94. 'privateKey' => 'integration_private_key'
  95. ]);
  96. $collection = $gateway->creditCardVerification()->search($query);
  97. $this->assertEquals(0, $collection->maximumCount());
  98. }
  99. public function test_createdAt()
  100. {
  101. $result = Braintree\Customer::create([
  102. 'creditCard' => [
  103. 'cardholderName' => 'Joe Smith',
  104. 'number' => '4000111111111115',
  105. 'expirationDate' => '12/2016',
  106. 'options' => ['verifyCard' => true],
  107. ],
  108. ]);
  109. $verification = $result->creditCardVerification;
  110. $past = clone $verification->createdAt;
  111. $past->modify('-1 hour');
  112. $future = clone $verification->createdAt;
  113. $future->modify('+1 hour');
  114. $collection = Braintree\CreditCardVerification::search([
  115. Braintree\CreditCardVerificationSearch::id()->is($verification->id),
  116. Braintree\CreditCardVerificationSearch::createdAt()->between($past, $future)
  117. ]);
  118. $this->assertEquals(1, $collection->maximumCount());
  119. $this->assertEquals($verification->id, $collection->firstItem()->id);
  120. $collection = Braintree\CreditCardVerification::search([
  121. Braintree\CreditCardVerificationSearch::id()->is($verification->id),
  122. Braintree\CreditCardVerificationSearch::createdAt()->lessThanOrEqualTo($future)
  123. ]);
  124. $this->assertEquals(1, $collection->maximumCount());
  125. $this->assertEquals($verification->id, $collection->firstItem()->id);
  126. $collection = Braintree\CreditCardVerification::search([
  127. Braintree\CreditCardVerificationSearch::id()->is($verification->id),
  128. Braintree\CreditCardVerificationSearch::createdAt()->greaterThanOrEqualTo($past)
  129. ]);
  130. $this->assertEquals(1, $collection->maximumCount());
  131. $this->assertEquals($verification->id, $collection->firstItem()->id);
  132. }
  133. public function test_multipleValueNode_ids()
  134. {
  135. $result = Braintree\Customer::create([
  136. 'creditCard' => [
  137. 'cardholderName' => 'Joe Smith',
  138. 'number' => '4000111111111115',
  139. 'expirationDate' => '12/2016',
  140. 'options' => ['verifyCard' => true],
  141. ],
  142. ]);
  143. $creditCardVerification = $result->creditCardVerification;
  144. $collection = Braintree\CreditCardVerification::search([
  145. Braintree\CreditCardVerificationSearch::ids()->is($creditCardVerification->id)
  146. ]);
  147. $this->assertEquals(1, $collection->maximumCount());
  148. $this->assertEquals($creditCardVerification->id, $collection->firstItem()->id);
  149. $collection = Braintree\CreditCardVerification::search([
  150. Braintree\CreditCardVerificationSearch::ids()->in(
  151. [$creditCardVerification->id,'1234']
  152. )
  153. ]);
  154. $this->assertEquals(1, $collection->maximumCount());
  155. $this->assertEquals($creditCardVerification->id, $collection->firstItem()->id);
  156. $collection = Braintree\CreditCardVerification::search([
  157. Braintree\CreditCardVerificationSearch::ids()->is('1234')
  158. ]);
  159. $this->assertEquals(0, $collection->maximumCount());
  160. }
  161. public function test_multipleValueNode_creditCardType()
  162. {
  163. $result = Braintree\Customer::create([
  164. 'creditCard' => [
  165. 'cardholderName' => 'Joe Smith',
  166. 'number' => '4000111111111115',
  167. 'expirationDate' => '12/2016',
  168. 'options' => ['verifyCard' => true],
  169. ],
  170. ]);
  171. $creditCardVerification = $result->creditCardVerification;
  172. $collection = Braintree\CreditCardVerification::search([
  173. Braintree\CreditCardVerificationSearch::id()->is($creditCardVerification->id),
  174. Braintree\CreditCardVerificationSearch::creditCardCardType()->is($creditCardVerification->creditCard['cardType'])
  175. ]);
  176. $this->assertEquals(1, $collection->maximumCount());
  177. $this->assertEquals($creditCardVerification->id, $collection->firstItem()->id);
  178. $collection = Braintree\CreditCardVerification::search([
  179. Braintree\CreditCardVerificationSearch::id()->is($creditCardVerification->id),
  180. Braintree\CreditCardVerificationSearch::creditCardCardType()->in(
  181. [$creditCardVerification->creditCard['cardType'], Braintree\CreditCard::CHINA_UNION_PAY]
  182. )
  183. ]);
  184. $this->assertEquals(1, $collection->maximumCount());
  185. $this->assertEquals($creditCardVerification->id, $collection->firstItem()->id);
  186. $collection = Braintree\CreditCardVerification::search([
  187. Braintree\CreditCardVerificationSearch::id()->is($creditCardVerification->id),
  188. Braintree\CreditCardVerificationSearch::creditCardCardType()->is(Braintree\CreditCard::CHINA_UNION_PAY)
  189. ]);
  190. $this->assertEquals(0, $collection->maximumCount());
  191. }
  192. public function test_multipleValueNode_status()
  193. {
  194. $result = Braintree\Customer::create([
  195. 'creditCard' => [
  196. 'cardholderName' => 'Joe Smith',
  197. 'number' => '4000111111111115',
  198. 'expirationDate' => '12/2016',
  199. 'options' => ['verifyCard' => true],
  200. ],
  201. ]);
  202. $creditCardVerification = $result->creditCardVerification;
  203. $collection = Braintree\CreditCardVerification::search([
  204. Braintree\CreditCardVerificationSearch::id()->is($creditCardVerification->id),
  205. Braintree\CreditCardVerificationSearch::status()->is($creditCardVerification->status)
  206. ]);
  207. $this->assertEquals(1, $collection->maximumCount());
  208. $this->assertEquals($creditCardVerification->id, $collection->firstItem()->id);
  209. $collection = Braintree\CreditCardVerification::search([
  210. Braintree\CreditCardVerificationSearch::id()->is($creditCardVerification->id),
  211. Braintree\CreditCardVerificationSearch::status()->in(
  212. [$creditCardVerification->status, Braintree\Result\CreditCardVerification::VERIFIED]
  213. )
  214. ]);
  215. $this->assertEquals(1, $collection->maximumCount());
  216. $this->assertEquals($creditCardVerification->id, $collection->firstItem()->id);
  217. $collection = Braintree\CreditCardVerification::search([
  218. Braintree\CreditCardVerificationSearch::id()->is($creditCardVerification->id),
  219. Braintree\CreditCardVerificationSearch::status()->is(Braintree\Result\CreditCardVerification::VERIFIED)
  220. ]);
  221. $this->assertEquals(0, $collection->maximumCount());
  222. }
  223. }