Constructive description here
This commit is contained in:
+95
@@ -0,0 +1,95 @@
|
||||
<?php
|
||||
|
||||
namespace Faker\Test\Provider\ro_RO;
|
||||
|
||||
use Faker\Generator;
|
||||
use Faker\Provider\DateTime;
|
||||
use Faker\Provider\ro_RO\Person;
|
||||
|
||||
class PersonTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
const TEST_CNP_REGEX = '/^([1-9])([0-9]{2}(?:0[1-9]|1[012])(?:0[1-9]|[12][0-9]|3[01]))(0[1-9]|[123][0-9]|4[0-6]|5[12])([0-9]{3})([0-9])$/';
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
$faker = new Generator();
|
||||
$faker->seed(1);
|
||||
$faker->addProvider(new DateTime($faker));
|
||||
$faker->addProvider(new Person($faker));
|
||||
$this->faker = $faker;
|
||||
}
|
||||
|
||||
public function testCnpReturnsValidCnp()
|
||||
{
|
||||
$cnp = $this->faker->cnp;
|
||||
$this->assertTrue($this->isValidCnp($cnp));
|
||||
}
|
||||
|
||||
public function testCnpReturnsMaleCnp()
|
||||
{
|
||||
$cnp = $this->faker->cnp('m');
|
||||
$this->assertRegExp('/^[1357]\d{12}$/', $cnp);
|
||||
}
|
||||
|
||||
public function testCnpReturnsFemaleCnp()
|
||||
{
|
||||
$cnp = $this->faker->cnp('f');
|
||||
$this->assertRegExp('/^[2468]\d{12}$/', $cnp);
|
||||
}
|
||||
|
||||
public function testCnpReturns1800sCnp()
|
||||
{
|
||||
$cnp = $this->faker->cnp(null, 1800);
|
||||
$this->assertRegExp('/^[34]\d{12}$/', $cnp);
|
||||
}
|
||||
|
||||
public function testCnpReturns1900sCnp()
|
||||
{
|
||||
$cnp = $this->faker->cnp(null, 1900);
|
||||
$this->assertRegExp('/^[12]\d{12}$/', $cnp);
|
||||
}
|
||||
|
||||
public function testCnpReturns2000sCnp()
|
||||
{
|
||||
$cnp = $this->faker->cnp(null, 2000);
|
||||
$this->assertRegExp('/^[56]\d{12}$/', $cnp);
|
||||
}
|
||||
|
||||
public function testCnpReturnsBrasovCnp()
|
||||
{
|
||||
$cnp = $this->faker->cnp(null, null, 'BV');
|
||||
$this->assertRegExp('/^\d{7}08\d{4}$/', $cnp);
|
||||
}
|
||||
|
||||
public function testCnpReturns2000sClujFemaleCnp()
|
||||
{
|
||||
$cnp = $this->faker->cnp('f', 2000, 'CJ');
|
||||
$this->assertRegExp('/^6\d{6}12\d{4}$/', $cnp);
|
||||
}
|
||||
|
||||
protected function isValidCnp($cnp)
|
||||
{
|
||||
if (
|
||||
is_string($cnp)
|
||||
&& (bool) preg_match(static::TEST_CNP_REGEX, $cnp)
|
||||
&& checkdate(substr($cnp, 3, 2), substr($cnp, 5, 2), substr($cnp, 1, 2))
|
||||
){
|
||||
$checkNumber = 279146358279;
|
||||
|
||||
$checksum = 0;
|
||||
foreach (range(0, 11) as $digit) {
|
||||
$checksum += substr($cnp, $digit, 1) * substr($checkNumber, $digit, 1);
|
||||
}
|
||||
$checksum = $checksum % 11;
|
||||
|
||||
if (
|
||||
($checksum < 10 && $checksum == substr($cnp, -1))
|
||||
|| ($checksum == 10 && substr($cnp, -1) == 1)
|
||||
){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace Faker\Test\Provider\ro_RO;
|
||||
|
||||
use Faker\Generator;
|
||||
use Faker\Provider\ro_RO\PhoneNumber;
|
||||
|
||||
class PhoneNumberTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function setUp()
|
||||
{
|
||||
$faker = new Generator();
|
||||
$faker->addProvider(new PhoneNumber($faker));
|
||||
$this->faker = $faker;
|
||||
}
|
||||
|
||||
public function testPhoneNumberReturnsNormalPhoneNumber()
|
||||
{
|
||||
$this->assertRegExp('/^0(?:[23][13-7]|7\d)\d{7}$/', $this->faker->phoneNumber());
|
||||
}
|
||||
|
||||
public function testTollFreePhoneNumberReturnsTollFreePhoneNumber()
|
||||
{
|
||||
$this->assertRegExp('/^08(?:0[1267]|70)\d{6}$/', $this->faker->tollFreePhoneNumber());
|
||||
}
|
||||
|
||||
public function testPremiumRatePhoneNumberReturnsPremiumRatePhoneNumber()
|
||||
{
|
||||
$this->assertRegExp('/^090[036]\d{6}$/', $this->faker->premiumRatePhoneNumber());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user