1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
<?php
namespace Faker\Test\Provider\sv_SE;
use Faker\Calculator\Luhn;
use Faker\Provider\sv_SE\Person;
use Faker\Test\TestCase;
/**
* @group legacy
*/
final class PersonTest extends TestCase
{
public function provideSeedAndExpectedReturn()
{
return [
[1, '720727', '720727-5798'],
[2, '710414', '710414-5664'],
[3, '591012', '591012-4519'],
[4, '180307', '180307-0356'],
[5, '820904', '820904-7748'],
];
}
/**
* @dataProvider provideSeedAndExpectedReturn
*/
public function testPersonalIdentityNumberUsesBirthDateIfProvided($seed, $birthdate, $expected)
{
$faker = $this->faker;
$faker->seed($seed);
$pin = $faker->personalIdentityNumber(\DateTime::createFromFormat('ymd', $birthdate));
self::assertEquals($expected, $pin);
}
public function testPersonalIdentityNumberGeneratesLuhnCompliantNumbers()
{
$pin = str_replace('-', '', $this->faker->personalIdentityNumber());
self::assertTrue(Luhn::isValid($pin));
}
public function testPersonalIdentityNumberGeneratesOddValuesForMales()
{
$pin = $this->faker->personalIdentityNumber(null, 'male');
self::assertEquals(1, $pin[9] % 2);
}
public function testPersonalIdentityNumberGeneratesEvenValuesForFemales()
{
$pin = $this->faker->personalIdentityNumber(null, 'female');
self::assertEquals(0, $pin[9] % 2);
}
public function testBirthNumberNot000()
{
$faker = $this->faker;
$faker->seed(97270);
$pin = $this->faker->personalIdentityNumber();
self::assertNotEquals('000', substr($pin, 7, 3));
}
public function testBirthNumberGeneratesEvenValuesForFemales()
{
$faker = $this->faker;
$faker->seed(372920);
$pin = $this->faker->personalIdentityNumber(null, 'female');
self::assertNotEquals('000', substr($pin, 7, 3));
}
protected function getProviders(): iterable
{
yield new Person($this->faker);
}
}
|