Ejemplo n.º 1
0
 /**
  * Test that the allowed card types option is working properly
  *
  * @param array      $allowedCardTypes
  * @param string     $cardNumber
  * @param bool       $isValid
  */
 public function testAllowedCardTypes()
 {
     $validVisa = "4111111111111111";
     $validMastercard = "5555555555554444";
     $validAmex = "340000000000009";
     $validator = new CreditCard();
     // Test Allowed VISA only
     $validator->setAllowedCardTypes(CreditCard::VISA);
     $this->assertEquals(true, $validator->validate($validVisa), "Visa card should validate okay");
     $this->assertEquals(false, $validator->validate($validMastercard), "Mastercard is not in allowed card types");
     $this->assertEquals(false, $validator->validate($validAmex), "Amex is not in allowed card types");
     // Test Allowed Mastercard Only
     $validator->setAllowedCardTypes(CreditCard::MASTERCARD);
     $this->assertEquals(false, $validator->validate($validVisa), "Visa card is not in allowed card types");
     $this->assertEquals(true, $validator->validate($validMastercard), "Mastercard should validate okay");
     $this->assertEquals(false, $validator->validate($validAmex), "Amex is not in allowed card types");
     // Test Allowed Amex Only
     $validator->setAllowedCardTypes(CreditCard::AMERICAN_EXPRESS);
     $this->assertEquals(false, $validator->validate($validVisa), "Visa card is not in allowed card types");
     $this->assertEquals(false, $validator->validate($validMastercard), "Mastercard is not in allowed card types");
     $this->assertEquals(true, $validator->validate($validAmex), "Amex should validate okay");
     // Test Visa and Mastercard using bit operations
     $validator->setAllowedCardTypes(CreditCard::VISA | CreditCard::MASTERCARD);
     $this->assertEquals(true, $validator->validate($validVisa), "Visa should validate okay");
     $this->assertEquals(true, $validator->validate($validMastercard), "Mastercard should validate okay");
     $this->assertEquals(false, $validator->validate($validAmex), "Amex is not in allowed card types");
     // Test Mastercard and Amex using an array
     $validator->setAllowedCardTypes(array(CreditCard::MASTERCARD, CreditCard::AMERICAN_EXPRESS));
     $this->assertEquals(false, $validator->validate($validVisa), "Visa is not in allowed card type");
     $this->assertEquals(true, $validator->validate($validMastercard), "Mastercard should validate okay");
     $this->assertEquals(true, $validator->validate($validAmex), "Amex should validate okay");
     // Check ALL
     $validator->setAllowedCardTypes(CreditCard::ALL);
     $this->assertEquals(true, $validator->validate($validVisa), "Visa should validate okay");
     $this->assertEquals(true, $validator->validate($validMastercard), "Mastercard should validate okay");
     $this->assertEquals(true, $validator->validate($validAmex), "Amex should validate okay");
 }