PhoneNumberTest.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace Faker\Test\Provider\en_SG;
  3. use Faker\Factory;
  4. use Faker\Provider\en_SG\PhoneNumber;
  5. use PHPUnit\Framework\TestCase;
  6. class PhoneNumberTest extends TestCase
  7. {
  8. private $faker;
  9. public function setUp()
  10. {
  11. $this->faker = Factory::create('en_SG');
  12. $this->faker->seed(1);
  13. $this->faker->addProvider(new PhoneNumber($this->faker));
  14. }
  15. // http://en.wikipedia.org/wiki/Telephone_numbers_in_Singapore#Numbering_plan
  16. // y means 0 to 8 only
  17. // x means 0 to 9
  18. public function testMobilePhoneNumberStartWith9Returns9yxxxxxx()
  19. {
  20. $startsWith9 = false;
  21. while (!$startsWith9) {
  22. $mobileNumber = $this->faker->mobileNumber();
  23. $startsWith9 = preg_match('/^(\+65|65)?\s*9/', $mobileNumber);
  24. }
  25. $this->assertRegExp('/^(\+65|65)?\s*9\s*[0-8]{3}\s*\d{4}$/', $mobileNumber);
  26. }
  27. // http://en.wikipedia.org/wiki/Telephone_numbers_in_Singapore#Numbering_plan
  28. // z means 1 to 9 only
  29. // x means 0 to 9
  30. public function testMobilePhoneNumberStartWith7Or8Returns7Or8zxxxxxx()
  31. {
  32. $startsWith7Or8 = false;
  33. while (!$startsWith7Or8) {
  34. $mobileNumber = $this->faker->mobileNumber();
  35. $startsWith7Or8 = preg_match('/^(\+65|65)?\s*[7-8]/', $mobileNumber);
  36. }
  37. $this->assertRegExp('/^(\+65|65)?\s*[7-8]\s*[1-9]{3}\s*\d{4}$/', $mobileNumber);
  38. }
  39. }