Пример #1
0
 /**
  * Test that creditCard() returns true if the value is a valid CC number.
  */
 public function testCreditCard()
 {
     // American express
     $this->assertTrue(Validate::creditCard('377147515754475', Validate::AMERICAN_EXPRESS));
     $this->assertTrue(Validate::creditCard('375239372816422', Validate::AMERICAN_EXPRESS));
     // Bankcard
     $this->assertTrue(Validate::creditCard('5602248780118788', Validate::BANKCARD));
     $this->assertTrue(Validate::creditCard('5610631567676765', Validate::BANKCARD));
     // Diners club 14
     $this->assertTrue(Validate::creditCard('30158334709185', Validate::DINERS_CLUB));
     $this->assertTrue(Validate::creditCard('30195413721186', Validate::DINERS_CLUB));
     $this->assertTrue(Validate::creditCard('5577265786122391', Validate::DINERS_CLUB));
     $this->assertTrue(Validate::creditCard('5534061404676989', Validate::DINERS_CLUB));
     // Discover
     $this->assertTrue(Validate::creditCard('6509735979634270', Validate::DISCOVER));
     $this->assertTrue(Validate::creditCard('6011422366775856', Validate::DISCOVER));
     // enRoute
     $this->assertTrue(Validate::creditCard('214945833739665', Validate::ENROUTE));
     $this->assertTrue(Validate::creditCard('214982692491187', Validate::ENROUTE));
     // JCB
     $this->assertTrue(Validate::creditCard('180031358949367', Validate::JCB));
     $this->assertTrue(Validate::creditCard('180033802147846', Validate::JCB));
     $this->assertTrue(Validate::creditCard('3158671691305165', Validate::JCB));
     $this->assertTrue(Validate::creditCard('3528523028771093', Validate::JCB));
     // Maestro
     $this->assertTrue(Validate::creditCard('5020412965470224', Validate::MAESTRO));
     $this->assertTrue(Validate::creditCard('5020129740944022', Validate::MAESTRO));
     // Mastercard
     $this->assertTrue(Validate::creditCard('5538725892618432', Validate::MASTERCARD));
     $this->assertTrue(Validate::creditCard('5119543573129778', Validate::MASTERCARD));
     // Solo
     $this->assertTrue(Validate::creditCard('6334768185398134', Validate::SOLO_DEBIT));
     $this->assertTrue(Validate::creditCard('633487484858610484', Validate::SOLO_DEBIT));
     $this->assertTrue(Validate::creditCard('6767838565218340113', Validate::SOLO_DEBIT));
     // Switch
     $this->assertTrue(Validate::creditCard('4936295218139423', Validate::SWITCH_DEBIT));
     $this->assertTrue(Validate::creditCard('493691609704348548', Validate::SWITCH_DEBIT));
     $this->assertTrue(Validate::creditCard('4936510653566569547', Validate::SWITCH_DEBIT));
     // Visa
     $this->assertTrue(Validate::creditCard('4916933155767', Validate::VISA));
     $this->assertTrue(Validate::creditCard('4024007159672', Validate::VISA));
     $this->assertTrue(Validate::creditCard('4481007485188614', Validate::VISA));
     $this->assertTrue(Validate::creditCard('4716533372139623', Validate::VISA));
     // Visa electron
     $this->assertTrue(Validate::creditCard('4175005028142917', Validate::VISA_ELECTRON));
     // Voyager
     $this->assertTrue(Validate::creditCard('869934523596112', Validate::VOYAGER));
     $this->assertTrue(Validate::creditCard('869958670174621', Validate::VOYAGER));
     // Test multiple
     $this->assertTrue(Validate::creditCard('375239372816422', array(Validate::AMERICAN_EXPRESS, Validate::VISA)));
     // = amex
     $this->assertFalse(Validate::creditCard('869934523596112', array(Validate::AMERICAN_EXPRESS, Validate::VISA)));
     // = voyager
     // Test length
     $this->assertFalse(Validate::creditCard('2346533', Validate::MASTERCARD));
     // Test exception
     try {
         $this->assertTrue(Validate::creditCard('6334768185398134', 'fakeCard'));
         $this->assertTrue(false);
     } catch (Exception $e) {
         $this->assertTrue(true);
     }
 }