forked from Astrotomic/phpunit-assertions
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPhoneNumberAssertionsTest.php
85 lines (79 loc) · 3.6 KB
/
PhoneNumberAssertionsTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
namespace Astrotomic\PhpunitAssertions\Tests;
use Astrotomic\PhpunitAssertions\PhoneNumberAssertions;
final class PhoneNumberAssertionsTest extends TestCase
{
/**
* @test
* @dataProvider thousandTimes
*/
public static function it_can_validate_e164(): void
{
PhoneNumberAssertions::assertE164(preg_replace('/([^\d+])/', '', self::randomPhoneNumber()['number']));
}
/**
* @test
* @dataProvider thousandTimes
*/
public static function it_can_validate_phone_number(): void
{
PhoneNumberAssertions::assertValid(self::randomPhoneNumber()['number']);
}
/**
* @test
* @dataProvider thousandTimes
*/
public static function it_can_validate_phone_number_for_region(): void
{
$number = self::randomPhoneNumber();
PhoneNumberAssertions::assertValidForRegion($number['number'], $number['code']);
}
protected static function randomPhoneNumber(): array
{
return self::randomElement([
// https://shaun.net/resources/test-phone-numbers/
['number' => '+61 2 9192 0995', 'code' => 'AU'],
['number' => '+64 9 887 6986', 'code' => 'NZ'],
['number' => '+61 1800 801 920', 'code' => 'AU'],
['number' => '+44 20 8759 9036', 'code' => 'GB'],
['number' => '+1 800 444 4444', 'code' => 'US'],
['number' => '+1 213 621 0002', 'code' => 'US'],
['number' => '+1 914 232 9901', 'code' => 'US'],
// https://howtophoneto.com/test/
['number' => '+61 2 91011948', 'code' => 'AU'],
['number' => '+61 02 8335 4600', 'code' => 'AU'],
['number' => '+61 2 8229 4333', 'code' => 'AU'],
['number' => '+61 3 8641 9083', 'code' => 'AU'],
['number' => '+61 3 9683 9999', 'code' => 'AU'],
['number' => '+61 (02) 9293 9262', 'code' => 'AU'],
['number' => '(+61 2) 9293 9270', 'code' => 'AU'],
['number' => '+61 1300 368999', 'code' => 'AU'],
['number' => '+61 03 9640 0999', 'code' => 'AU'],
['number' => '+64 (9) 379-0861', 'code' => 'NZ'],
['number' => '+64-9-977-2232', 'code' => 'NZ'],
['number' => '+64 9 977 2237', 'code' => 'NZ'],
['number' => '+64 4 924 2424', 'code' => 'NZ'],
['number' => '+64 4 470 3142', 'code' => 'NZ'],
['number' => '+64 4 473 11 33', 'code' => 'NZ'],
['number' => '+64 4 915 6666', 'code' => 'NZ'],
['number' => '+64 0508 500 499', 'code' => 'NZ'],
['number' => '+672 3 22147', 'code' => 'NF'],
['number' => '+675 327 3396', 'code' => 'PG'],
['number' => '(+675) 320 1212', 'code' => 'PG'],
['number' => '(+675) 322 0888', 'code' => 'PG'],
// https://www.zamic.com/page/5d916f06cb9ed42094
['number' => '+1 628 246 2222', 'code' => 'US'],
['number' => '+1 202 762 1401', 'code' => 'US'],
// https://www.placetel.de/ratgeber/testrufnummer
['number' => '+49 89 721010 99701', 'code' => 'DE'],
['number' => '+49 89 721010 99702', 'code' => 'DE'],
['number' => '+49 89 721010 99703', 'code' => 'DE'],
// https://www.smartphonevergleich.de/telefonpaul/
['number' => '+49 30-58583772', 'code' => 'DE'],
['number' => '+49 176-34636276', 'code' => 'DE'],
// https://servicenummern.telekom.de/weitere-informationen/zeitansage/
['number' => '+49 180 4 100 100', 'code' => 'DE'],
['number' => '+49 800 330 0800', 'code' => 'DE'],
]);
}
}