5 use Omnipay\Tests\TestCase;
12 public function setUp()
16 $this->card->setFirstName(
'Example');
17 $this->card->setLastName(
'Customer');
18 $this->card->setExpiryMonth(
'4');
19 $this->card->setExpiryYear(gmdate(
'Y')+2);
20 $this->card->setCvv(
'123');
25 $card =
new CreditCard(array(
'name' =>
'Test Customer'));
26 $this->assertSame(
'Test Customer', $card->getName());
32 $card->initialize(array(
'name' =>
'Test Customer'));
33 $this->assertSame(
'Test Customer', $card->getName());
39 'name' =>
'Example Customer',
45 $parameters = $card->getParameters();
46 $this->assertSame(
'Example', $parameters[
'billingFirstName']);
47 $this->assertSame(
'Customer', $parameters[
'billingLastName']);
48 $this->assertSame(
'1234', $parameters[
'number']);
49 $this->assertSame(6, $parameters[
'expiryMonth']);
50 $this->assertSame(2016, $parameters[
'expiryYear']);
55 $this->card->validate();
64 $this->card->setNumber(
null);
65 $this->card->validate();
74 $this->card->setExpiryMonth(
null);
75 $this->card->validate();
84 $this->card->setExpiryYear(
null);
85 $this->card->validate();
94 $this->card->setExpiryYear(gmdate(
'Y')-1);
95 $this->card->validate();
104 $this->card->setNumber(
'4111111111111110');
105 $this->card->validate();
110 $brands = $this->card->getSupportedBrands();
111 $this->assertInternalType(
'array', $brands);
117 $this->card->addSupportedBrand(
'omniexpress',
'/^9\d{12}(\d{3})?$/');
118 $this->assertArrayHasKey(
'omniexpress', $this->card->getSupportedBrands());
123 $this->card->addSupportedBrand(
'omniexpress',
'/^9\d{12}(\d{3})?$/');
124 $this->assertArrayHasKey(
'omniexpress', $this->card->getSupportedBrands());
125 $this->card->setNumber(
'9111111111111110');
126 $this->card->validate();
127 $this->assertEquals(
'omniexpress', $this->card->getBrand());
132 $this->assertTrue($this->card->addSupportedBrand(
'omniexpress',
'/^9\d{12}(\d{3})?$/'));
133 $this->assertArrayHasKey(
'omniexpress', $this->card->getSupportedBrands());
134 $this->assertFalse($this->card->addSupportedBrand(
'omniexpress',
'/^9\d{12}(\d{3})?$/'));
139 $this->card->setTitle(
'Mr.');
140 $this->assertEquals(
'Mr.', $this->card->getTitle());
145 $this->card->setFirstName(
'Bob');
146 $this->assertEquals(
'Bob', $this->card->getFirstName());
151 $this->card->setLastName(
'Smith');
152 $this->assertEquals(
'Smith', $this->card->getLastName());
157 $this->card->setFirstName(
'Bob');
158 $this->card->setLastName(
'Smith');
159 $this->assertEquals(
'Bob Smith', $this->card->getName());
164 $this->card->setName(
'Bob Smith');
165 $this->assertEquals(
'Bob', $this->card->getFirstName());
166 $this->assertEquals(
'Smith', $this->card->getLastName());
171 $this->card->setName(
'Bob');
172 $this->assertEquals(
'Bob', $this->card->getFirstName());
173 $this->assertEquals(
'', $this->card->getLastName());
178 $this->card->setName(
'Bob John Smith');
179 $this->assertEquals(
'Bob', $this->card->getFirstName());
180 $this->assertEquals(
'John Smith', $this->card->getLastName());
185 $this->card->setNumber(
'4000000000000000');
186 $this->assertEquals(
'4000000000000000', $this->card->getNumber());
191 $this->card->setNumber(
'4000 0000 00b00 0000');
192 $this->assertEquals(
'4000000000000000', $this->card->getNumber());
197 $this->card->setNumber(
null);
198 $this->assertNull($this->card->getNumberLastFour());
203 $this->card->setNumber(
'4000000000001234');
204 $this->assertSame(
'1234', $this->card->getNumberLastFour());
209 $this->card->setNumber(
'4000 0000 0000 12x34');
210 $this->assertSame(
'1234', $this->card->getNumberLastFour());
215 $this->card->setNumber(
'4000000000001234');
217 $this->assertSame(
'XXXXXXXXXXXX1234', $this->card->getNumberMasked());
222 $this->card->setNumber(
'4000 0000 0000 12x34');
224 $this->assertSame(
'XXXXXXXXXXXX1234', $this->card->getNumberMasked());
230 $this->assertNull($card->getBrand());
235 $card =
new CreditCard(array(
'number' =>
'4242424242424242'));
241 $card =
new CreditCard(array(
'number' =>
'5555555555554444'));
243 $card =
new CreditCard(array(
'number' =>
'2230000010000006'));
245 $card =
new CreditCard(array(
'number' =>
'6771890000000008'));
251 $card =
new CreditCard(array(
'number' =>
'378282246310005'));
257 $card =
new CreditCard(array(
'number' =>
'6011111111111117'));
263 $card =
new CreditCard(array(
'number' =>
'30569309025904'));
269 $card =
new CreditCard(array(
'number' =>
'3530111333300000'));
275 $this->card->setExpiryMonth(9);
276 $this->assertSame(9, $this->card->getExpiryMonth());
281 $this->card->setExpiryMonth(
'09');
282 $this->assertSame(9, $this->card->getExpiryMonth());
287 $this->card->setExpiryYear(2012);
288 $this->assertSame(2012, $this->card->getExpiryYear());
293 $this->card->setExpiryYear(
'12');
294 $this->assertSame(2012, $this->card->getExpiryYear());
299 $this->assertSame($this->card, $this->card->setExpiryMonth(
'09'));
300 $this->assertSame($this->card, $this->card->setExpiryYear(
'2012'));
301 $this->assertSame(
'092012', $this->card->getExpiryDate(
'mY'));
306 $this->card->setStartMonth(9);
307 $this->assertSame(9, $this->card->getStartMonth());
312 $this->card->setStartMonth(
'09');
313 $this->assertSame(9, $this->card->getStartMonth());
318 $this->card->setStartYear(2012);
319 $this->assertSame(2012, $this->card->getStartYear());
324 $this->card->setStartYear(
'12');
325 $this->assertSame(2012, $this->card->getStartYear());
330 $this->card->setStartMonth(
'11');
331 $this->card->setStartYear(
'2012');
332 $this->assertEquals(
'112012', $this->card->getStartDate(
'mY'));
337 $this->card->setCvv(
'456');
338 $this->assertEquals(
'456', $this->card->getCvv());
343 $this->card->setTracks(
'%B4242424242424242^SMITH/JOHN ^1520126100000000000000444000000?;4242424242424242=15201269999944401?');
344 $this->assertSame(
'%B4242424242424242^SMITH/JOHN ^1520126100000000000000444000000?;4242424242424242=15201269999944401?', $this->card->getTracks());
349 $this->card->setTracks(
'%B4242424242424242^SMITH/JOHN ^1520126100000000000000444000000?;4242424242424242=15201269999944401?');
350 $actual = $this->card->getTrack1();
351 $this->assertEquals(
'%B4242424242424242^SMITH/JOHN ^1520126100000000000000444000000?', $actual);
356 $this->card->setTracks(
'%B4242424242424242^SMITH/JOHN ^1520126100000000000000444000000?;4242424242424242=15201269999944401?');
357 $actual = $this->card->getTrack2();
358 $this->assertEquals(
';4242424242424242=15201269999944401?', $actual);
363 $this->card->setIssueNumber(
'12');
364 $this->assertSame(
'12', $this->card->getIssueNumber());
369 $this->card->setBillingTitle(
'Mrs.');
370 $this->assertEquals(
'Mrs.', $this->card->getBillingTitle());
371 $this->assertEquals(
'Mrs.', $this->card->getTitle());
376 $this->card->setBillingFirstName(
'Bob');
377 $this->assertEquals(
'Bob', $this->card->getBillingFirstName());
378 $this->assertEquals(
'Bob', $this->card->getFirstName());
383 $this->card->setBillingLastName(
'Smith');
384 $this->assertEquals(
'Smith', $this->card->getBillingLastName());
385 $this->assertEquals(
'Smith', $this->card->getLastName());
390 $this->card->setBillingFirstName(
'Bob');
391 $this->card->setBillingLastName(
'Smith');
392 $this->assertEquals(
'Bob Smith', $this->card->getBillingName());
394 $this->card->setBillingName(
'John Foo');
395 $this->assertEquals(
'John', $this->card->getBillingFirstName());
396 $this->assertEquals(
'Foo', $this->card->getBillingLastName());
401 $this->card->setBillingCompany(
'SuperSoft');
402 $this->assertEquals(
'SuperSoft', $this->card->getBillingCompany());
403 $this->assertEquals(
'SuperSoft', $this->card->getCompany());
408 $this->card->setBillingAddress1(
'31 Spooner St');
409 $this->assertEquals(
'31 Spooner St', $this->card->getBillingAddress1());
410 $this->assertEquals(
'31 Spooner St', $this->card->getAddress1());
415 $this->card->setBillingAddress2(
'Suburb');
416 $this->assertEquals(
'Suburb', $this->card->getBillingAddress2());
417 $this->assertEquals(
'Suburb', $this->card->getAddress2());
422 $this->card->setBillingCity(
'Quahog');
423 $this->assertEquals(
'Quahog', $this->card->getBillingCity());
424 $this->assertEquals(
'Quahog', $this->card->getCity());
429 $this->card->setBillingPostcode(
'12345');
430 $this->assertEquals(
'12345', $this->card->getBillingPostcode());
431 $this->assertEquals(
'12345', $this->card->getPostcode());
436 $this->card->setBillingState(
'RI');
437 $this->assertEquals(
'RI', $this->card->getBillingState());
438 $this->assertEquals(
'RI', $this->card->getState());
443 $this->card->setBillingCountry(
'US');
444 $this->assertEquals(
'US', $this->card->getBillingCountry());
445 $this->assertEquals(
'US', $this->card->getCountry());
450 $this->card->setBillingPhone(
'12345');
451 $this->assertSame(
'12345', $this->card->getBillingPhone());
452 $this->assertSame(
'12345', $this->card->getPhone());
457 $this->card->setBillingPhoneExtension(
'001');
458 $this->assertSame(
'001', $this->card->getBillingPhoneExtension());
459 $this->assertSame(
'001', $this->card->getPhoneExtension());
464 $this->card->setBillingFax(
'54321');
465 $this->assertSame(
'54321', $this->card->getBillingFax());
466 $this->assertSame(
'54321', $this->card->getFax());
471 $this->card->setShippingTitle(
'Dr.');
472 $this->assertEquals(
'Dr.', $this->card->getShippingTitle());
477 $this->card->setShippingFirstName(
'James');
478 $this->assertEquals(
'James', $this->card->getShippingFirstName());
483 $this->card->setShippingLastName(
'Doctor');
484 $this->assertEquals(
'Doctor', $this->card->getShippingLastName());
489 $this->card->setShippingFirstName(
'Bob');
490 $this->card->setShippingLastName(
'Smith');
491 $this->assertEquals(
'Bob Smith', $this->card->getShippingName());
493 $this->card->setShippingName(
'John Foo');
494 $this->assertEquals(
'John', $this->card->getShippingFirstName());
495 $this->assertEquals(
'Foo', $this->card->getShippingLastName());
500 $this->card->setShippingCompany(
'SuperSoft');
501 $this->assertEquals(
'SuperSoft', $this->card->getShippingCompany());
506 $this->card->setShippingAddress1(
'31 Spooner St');
507 $this->assertEquals(
'31 Spooner St', $this->card->getShippingAddress1());
512 $this->card->setShippingAddress2(
'Suburb');
513 $this->assertEquals(
'Suburb', $this->card->getShippingAddress2());
518 $this->card->setShippingCity(
'Quahog');
519 $this->assertEquals(
'Quahog', $this->card->getShippingCity());
524 $this->card->setShippingPostcode(
'12345');
525 $this->assertEquals(
'12345', $this->card->getShippingPostcode());
530 $this->card->setShippingState(
'RI');
531 $this->assertEquals(
'RI', $this->card->getShippingState());
536 $this->card->setShippingCountry(
'US');
537 $this->assertEquals(
'US', $this->card->getShippingCountry());
542 $this->card->setShippingPhone(
'12345');
543 $this->assertEquals(
'12345', $this->card->getShippingPhone());
548 $this->card->setShippingPhoneExtension(
'001');
549 $this->assertEquals(
'001', $this->card->getShippingPhoneExtension());
554 $this->card->setShippingFax(
'54321');
555 $this->assertEquals(
'54321', $this->card->getShippingFax());
560 $this->card->setCompany(
'FooBar');
561 $this->assertEquals(
'FooBar', $this->card->getCompany());
562 $this->assertEquals(
'FooBar', $this->card->getBillingCompany());
563 $this->assertEquals(
'FooBar', $this->card->getShippingCompany());
568 $this->card->setAddress1(
'31 Spooner St');
569 $this->assertEquals(
'31 Spooner St', $this->card->getAddress1());
570 $this->assertEquals(
'31 Spooner St', $this->card->getBillingAddress1());
571 $this->assertEquals(
'31 Spooner St', $this->card->getShippingAddress1());
576 $this->card->setAddress2(
'Suburb');
577 $this->assertEquals(
'Suburb', $this->card->getAddress2());
578 $this->assertEquals(
'Suburb', $this->card->getBillingAddress2());
579 $this->assertEquals(
'Suburb', $this->card->getShippingAddress2());
584 $this->card->setCity(
'Quahog');
585 $this->assertEquals(
'Quahog', $this->card->getCity());
586 $this->assertEquals(
'Quahog', $this->card->getBillingCity());
587 $this->assertEquals(
'Quahog', $this->card->getShippingCity());
592 $this->card->setPostcode(
'12345');
593 $this->assertEquals(
'12345', $this->card->getPostcode());
594 $this->assertEquals(
'12345', $this->card->getBillingPostcode());
595 $this->assertEquals(
'12345', $this->card->getShippingPostcode());
600 $this->card->setState(
'RI');
601 $this->assertEquals(
'RI', $this->card->getState());
602 $this->assertEquals(
'RI', $this->card->getBillingState());
603 $this->assertEquals(
'RI', $this->card->getShippingState());
608 $this->card->setCountry(
'US');
609 $this->assertEquals(
'US', $this->card->getCountry());
610 $this->assertEquals(
'US', $this->card->getBillingCountry());
611 $this->assertEquals(
'US', $this->card->getShippingCountry());
616 $this->card->setPhone(
'12345');
617 $this->assertEquals(
'12345', $this->card->getPhone());
618 $this->assertEquals(
'12345', $this->card->getBillingPhone());
619 $this->assertEquals(
'12345', $this->card->getShippingPhone());
624 $this->card->setPhoneExtension(
'001');
625 $this->assertEquals(
'001', $this->card->getPhoneExtension());
626 $this->assertEquals(
'001', $this->card->getBillingPhoneExtension());
627 $this->assertEquals(
'001', $this->card->getShippingPhoneExtension());
632 $this->card->setFax(
'54321');
633 $this->assertEquals(
'54321', $this->card->getFax());
634 $this->assertEquals(
'54321', $this->card->getBillingFax());
635 $this->assertEquals(
'54321', $this->card->getShippingFax());
640 $this->card->setEmail(
'adrian@example.com');
641 $this->assertEquals(
'adrian@example.com', $this->card->getEmail());
646 $this->card->setBirthday(
'01-02-2000');
647 $this->assertEquals(
'2000-02-01', $this->card->getBirthday());
648 $this->assertEquals(
'01/02/2000', $this->card->getBirthday(
'd/m/Y'));
653 $this->card->setBirthday(
'');
654 $this->assertNull($this->card->getBirthday());
659 $this->card->setGender(
'female');
660 $this->assertEquals(
'female', $this->card->getGender());
669 $this->card->setNumber(
'43');
670 $this->card->validate();
679 $this->card->setNumber(
'4440');
680 $this->card->validate();