Файл: src/vendor/fzaninotto/faker/test/Faker/Provider/PaymentTest.php
Строк: 56
<?php
namespace FakerTestProvider;
use FakerCalculatorLuhn;
use FakerGenerator;
use FakerProviderBase as BaseProvider;
use FakerProviderDateTime as DateTimeProvider;
use FakerProviderPayment as PaymentProvider;
use FakerProviderPerson as PersonProvider;
class PaymentTest extends PHPUnit_Framework_TestCase
{
private $faker;
public function setUp()
{
$faker = new Generator();
$faker->addProvider(new BaseProvider($faker));
$faker->addProvider(new DateTimeProvider($faker));
$faker->addProvider(new PersonProvider($faker));
$faker->addProvider(new PaymentProvider($faker));
$this->faker = $faker;
}
public function testCreditCardTypeReturnsValidVendorName()
{
$this->assertTrue(in_array($this->faker->creditCardType, array('Visa', 'MasterCard', 'American Express', 'Discover Card')));
}
public function creditCardNumberProvider()
{
return array(
array('Discover Card', '/^6011d{12}$/'),
array('Visa', '/^4d{12,15}$/'),
array('MasterCard', '/^5[1-5]d{14}$/')
);
}
/**
* @dataProvider creditCardNumberProvider
*/
public function testCreditCardNumberReturnsValidCreditCardNumber($type, $regexp)
{
$cardNumber = $this->faker->creditCardNumber($type);
$this->assertRegExp($regexp, $cardNumber);
$this->assertTrue(Luhn::isValid($cardNumber));
}
public function testCreditCardNumberCanFormatOutput()
{
$this->assertRegExp('/^6011-d{4}-d{4}-d{4}$/', $this->faker->creditCardNumber('Discover Card', true));
}
public function testCreditCardExpirationDateReturnsValidDateByDefault()
{
$expirationDate = $this->faker->creditCardExpirationDate;
$this->assertTrue(intval($expirationDate->format('U')) > strtotime('now'));
$this->assertTrue(intval($expirationDate->format('U')) < strtotime('+36 months'));
}
public function testRandomCard()
{
$cardDetails = $this->faker->creditCardDetails;
$this->assertEquals(count($cardDetails), 4);
$this->assertEquals(array('type', 'number', 'name', 'expirationDate'), array_keys($cardDetails));
}
}