-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLocaleTest.php
110 lines (85 loc) · 3.12 KB
/
LocaleTest.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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
<?php
namespace Tests;
class LocaleTest extends TestCase
{
protected $locale;
protected function setUp(): void
{
parent::setUp();
$this->locale = $this->app->make('geo.locale');
}
public function test_it_load_countries()
{
$countries = $this->locale->countries();
$this->assertNotCount(0, $countries);
foreach ($countries as $code => $name) {
$this->assertSame($name, $this->locale->country($code));
}
}
public function test_it_does_not_contains_pseudo_locales()
{
$countries = $this->locale->countries();
$this->assertNotEmpty($countries);
// Issue introduced in umpirsky/country-list version 2.0.5
$this->assertArrayNotHasKey('XA', $countries);
$this->assertArrayNotHasKey('XB', $countries);
}
public function test_it_filters_reserved_country_codes()
{
// https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Exceptional_reservations
$reserved = ['CP', 'EU', 'EZ', 'FX', 'SU', 'UK', 'UN'];
foreach ($reserved as $code) {
$this->assertNull($this->locale->country($code));
}
}
public function test_it_load_languages()
{
$languages = $this->locale->languages();
$this->assertNotCount(0, $languages);
foreach ($languages as $code => $name) {
$this->assertSame($name, $this->locale->language($code));
}
}
public function test_it_load_currencies()
{
$currencies = $this->locale->currencies();
$this->assertNotCount(0, $currencies);
foreach ($currencies as $code => $name) {
$this->assertSame($name, $this->locale->currency($code));
}
}
public function test_it_resolve_country_locale()
{
$this->assertSame('fr_FR', $this->locale->countryLocale('FR'));
$this->assertSame('en_US', $this->locale->countryLocale('US'));
}
public function test_it_resolve_country_language()
{
$this->assertSame('fr', $this->locale->countryLanguage('FR'));
$this->assertSame('en', $this->locale->countryLanguage('US'));
}
public function test_it_resolve_country_currency()
{
$this->assertSame('EUR', $this->locale->countryCurrency('FR'));
$this->assertSame('USD', $this->locale->countryCurrency('US'));
}
public function test_it_resolve_all_countries_locales()
{
$countries = $this->locale->countries();
foreach ($countries as $countryCode => $country) {
$locale = $this->locale->countryLocale($countryCode);
$this->assertNotNull($locale, sprintf('"%s" locale is null', $countryCode));
}
}
public function test_it_resolve_all_countries_currencies_except_antartica()
{
$countries = $this->locale->countries();
foreach ($countries as $countryCode => $country) {
if ($countryCode === 'AQ') {
continue;
}
$currency = $this->locale->countryCurrency($countryCode);
$this->assertNotNull($currency, sprintf('"%s" currency is null', $countryCode));
}
}
}