PersonTest.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace Faker\Test\Provider\es_ES;
  3. use Faker\Generator;
  4. use Faker\Provider\es_ES\Person;
  5. use PHPUnit\Framework\TestCase;
  6. class PersonTest extends TestCase
  7. {
  8. public function setUp()
  9. {
  10. $faker = new Generator();
  11. $faker->seed(1);
  12. $faker->addProvider(new Person($faker));
  13. $this->faker = $faker;
  14. }
  15. public function testDNI()
  16. {
  17. $dni = $this->faker->dni;
  18. $this->assertTrue($this->isValidDNI($dni));
  19. }
  20. // validation taken from http://kiwwito.com/php-function-for-spanish-dni-nie-validation/
  21. public function isValidDNI($string)
  22. {
  23. if (strlen($string) != 9 ||
  24. preg_match('/^[XYZ]?([0-9]{7,8})([A-Z])$/i', $string, $matches) !== 1) {
  25. return false;
  26. }
  27. $map = 'TRWAGMYFPDXBNJZSQVHLCKE';
  28. list(, $number, $letter) = $matches;
  29. return strtoupper($letter) === $map[((int) $number) % 23];
  30. }
  31. public function testLicenceCode()
  32. {
  33. $validLicenceCodes = array('AM', 'A1', 'A2', 'A','B', 'B+E', 'C1', 'C1+E', 'C', 'C+E', 'D1', 'D1+E', 'D', 'D+E');
  34. $this->assertContains($this->faker->licenceCode, $validLicenceCodes);
  35. }
  36. }