PersonTest.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace Faker\Test\Provider\en_US;
  3. use Faker\Provider\en_US\Person;
  4. use Faker\Generator;
  5. use PHPUnit\Framework\TestCase;
  6. class PersonTest extends TestCase
  7. {
  8. /**
  9. * @var Generator
  10. */
  11. private $faker;
  12. public function setUp()
  13. {
  14. $faker = new Generator();
  15. $faker->addProvider(new Person($faker));
  16. $this->faker = $faker;
  17. }
  18. public function testSsn()
  19. {
  20. for ($i = 0; $i < 100; $i++) {
  21. $number = $this->faker->ssn;
  22. // should be in the format ###-##-####
  23. $this->assertRegExp('/^[0-9]{3}-[0-9]{2}-[0-9]{4}$/', $number);
  24. $parts = explode("-", $number);
  25. // first part must be between 001 and 899, excluding 666
  26. $this->assertNotEquals(666, $parts[0]);
  27. $this->assertGreaterThan(0, $parts[0]);
  28. $this->assertLessThan(900, $parts[0]);
  29. // second part must be between 01 and 99
  30. $this->assertGreaterThan(0, $parts[1]);
  31. $this->assertLessThan(100, $parts[1]);
  32. // the third part must be between 0001 and 9999
  33. $this->assertGreaterThan(0, $parts[2]);
  34. $this->assertLessThan(10000, $parts[2]);
  35. }
  36. }
  37. }