PersonTest.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. namespace Faker\Test\Provider\nl_BE;
  3. use Faker\Generator;
  4. use Faker\Provider\nl_BE\Person;
  5. use PHPUnit\Framework\TestCase;
  6. use Datetime;
  7. /**
  8. * @group Person
  9. */
  10. class PersonTest extends TestCase
  11. {
  12. /**
  13. * @var Generator
  14. */
  15. private $faker;
  16. public function setUp()
  17. {
  18. $faker = new Generator();
  19. $faker->addProvider(new Person($faker));
  20. $this->faker = $faker;
  21. }
  22. public function testRrnIsValid()
  23. {
  24. $rrn = $this->faker->rrn();
  25. $this->assertEquals(11, strlen($rrn));
  26. $ctrlNumber = substr($rrn, 9, 2);
  27. $calcCtrl = 97 - (substr($rrn, 0, 9) % 97);
  28. $altcalcCtrl = 97 - ((2 . substr($rrn, 0, 9)) % 97);
  29. $this->assertContains($ctrlNumber, array($calcCtrl, $altcalcCtrl));
  30. $middle = substr($rrn, 6, 3);
  31. $this->assertGreaterThan(1, $middle);
  32. $this->assertLessThan(997, $middle);
  33. }
  34. public function testRrnIsMale()
  35. {
  36. $rrn = $this->faker->rrn('male');
  37. $this->assertEquals(substr($rrn, 6, 3) % 2, 1);
  38. }
  39. public function testRrnIsFemale()
  40. {
  41. $rrn = $this->faker->rrn('female');
  42. $this->assertEquals(substr($rrn, 6, 3) % 2, 0);
  43. }
  44. }