ZoneTest   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 96
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 4
eloc 58
c 2
b 0
f 0
dl 0
loc 96
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A testGetCountriesList() 0 16 1
A testGetRegionCodesArray() 0 25 1
A testGetCountriesArray() 0 24 1
A testGetRegionsCount() 0 21 1
1
<?php
2
3
namespace SilverCommerce\GeoZones\Tests;
4
5
use LogicException;
6
use SilverStripe\Dev\SapphireTest;
7
use SilverCommerce\GeoZones\Model\Zone;
8
use SilverCommerce\GeoZones\Helpers\GeoZonesHelper;
9
10
class ZoneTest extends SapphireTest
11
{
12
    protected static $fixture_file = 'GeoZoneData.yml';
13
14
    public function testGetCountriesArray()
15
    {
16
        /** @var Zone */
17
        $zone = $this->objFromFixture(Zone::class, 'uk');
18
        $countries = $zone->getCountriesArray();
19
        $this->assertIsArray($countries);
20
        $this->assertCount(1, $countries);
21
        $this->assertEquals('GB', $countries[0]);
22
23
        /** @var Zone */
24
        $zone = $this->objFromFixture(Zone::class, 'uk_fr');
25
        $countries = $zone->getCountriesArray();
26
        $this->assertIsArray($countries);
27
        $this->assertCount(2, $countries);
28
        $this->assertEquals('GB', $countries[0]);
29
        $this->assertEquals('FR', $countries[1]);
30
31
        /** @var Zone */
32
        $zone = $this->objFromFixture(Zone::class, 'eu');
33
        $countries = $zone->getCountriesArray();
34
        $this->assertIsArray($countries);
35
        $this->assertCount(4, $countries);
36
        $this->assertEquals('FR', $countries[0]);
37
        $this->assertEquals('IT', $countries[3]);
38
    }
39
40
    public function testGetCountriesList()
41
    {
42
        /** @var Zone */
43
        $zone = $this->objFromFixture(Zone::class, 'uk_fr');
44
        $countries = $zone->getCountriesList();
45
        $this->assertEquals('GB,FR', $countries);
46
47
        /** @var Zone */
48
        $zone = $this->objFromFixture(Zone::class, 'eu');
49
        $countries = $zone->getCountriesList();
50
        $this->assertEquals('FR,DE,ES,IT', $countries);
51
52
        /** @var Zone */
53
        $zone = $this->objFromFixture(Zone::class, 'us');
54
        $countries = $zone->getCountriesList();
55
        $this->assertEquals('US', $countries);
56
    }
57
58
    public function testGetRegionCodesArray()
59
    {
60
        /** @var Zone */
61
        $zone = $this->objFromFixture(Zone::class, 'uk');
62
        $regions = $zone->getRegionCodesArray();
63
        $this->assertIsArray($regions);
64
        $this->assertCount(13, $regions);
65
        $this->assertEquals('EDH', $regions[0]);
66
        $this->assertEquals('MAN', $regions[12]);
67
68
        /** @var Zone */
69
        $zone = $this->objFromFixture(Zone::class, 'fr');
70
        $regions = $zone->getRegionCodesArray();
71
        $this->assertIsArray($regions);
72
        $this->assertCount(14, $regions);
73
        $this->assertEquals('01', $regions[0]);
74
        $this->assertEquals('LRE', $regions[13]);
75
76
        /** @var Zone */
77
        $zone = $this->objFromFixture(Zone::class, 'eu');
78
        $regions = $zone->getRegionCodesArray();
79
        $this->assertIsArray($regions);
80
        $this->assertCount(340, $regions);
81
        $this->assertEquals('BB', $regions[0]);
82
        $this->assertEquals('VV', $regions[339]);
83
    }
84
85
    public function testGetRegionsCount()
86
    {
87
        /** @var Zone */
88
        $zone = $this->objFromFixture(Zone::class, 'uk');
89
        $regions = $zone->getRegionsCount();
90
        $this->assertEquals(13, $regions);
91
92
        /** @var Zone */
93
        $zone = $this->objFromFixture(Zone::class, 'fr');
94
        $regions = $zone->getRegionsCount();
95
        $this->assertEquals(14, $regions);
96
97
        /** @var Zone */
98
        $zone = $this->objFromFixture(Zone::class, 'uk_fr');
99
        $regions = $zone->getRegionsCount();
100
        $this->assertEquals(349, $regions);
101
102
        /** @var Zone */
103
        $zone = $this->objFromFixture(Zone::class, 'eu');
104
        $regions = $zone->getRegionsCount();
105
        $this->assertEquals(340, $regions);
106
    }
107
}
108