Added tests for Country model
This commit is contained in:
parent
851925b2d6
commit
07913c02f4
|
@ -30,9 +30,9 @@ class Country
|
||||||
return isset($this->raw[$field]) ? $this->raw[$field] : Array();
|
return isset($this->raw[$field]) ? $this->raw[$field] : Array();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __get ($var)
|
public function __get ($attr)
|
||||||
{
|
{
|
||||||
if ($var != "instance" && isset($this->$var)) return $this->$var;
|
if ($attr != "instance" && isset($this->$attr)) return $this->$attr;
|
||||||
|
|
||||||
throw new \RuntimeException("Unknown attribute: $attr");
|
throw new \RuntimeException("Unknown attribute: $attr");
|
||||||
}
|
}
|
||||||
|
|
130
tests/GeoIP2/Test/Model/CountryTest.php
Normal file
130
tests/GeoIP2/Test/Model/CountryTest.php
Normal file
|
@ -0,0 +1,130 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace GeoIP2\Test\Webservice;
|
||||||
|
|
||||||
|
use GeoIP2\Model\Country;
|
||||||
|
|
||||||
|
class CountryTest extends \PHPUnit_Framework_TestCase
|
||||||
|
{
|
||||||
|
|
||||||
|
private $raw = array(
|
||||||
|
'continent' => array(
|
||||||
|
'continent_code' => 'NA',
|
||||||
|
'geoname_id' => 42,
|
||||||
|
'names' => array( 'en' => 'North America' ),
|
||||||
|
),
|
||||||
|
'country' => array(
|
||||||
|
'geoname_id' => 1,
|
||||||
|
'iso_code' => 'US',
|
||||||
|
'names' => array( 'en' => 'United States of America' ),
|
||||||
|
),
|
||||||
|
'registered_country' => array(
|
||||||
|
'geoname_id' => 2,
|
||||||
|
'iso_code' => 'CA',
|
||||||
|
'names' => array( 'en' => 'Canada' ),
|
||||||
|
),
|
||||||
|
'traits' => array(
|
||||||
|
'ip_address' => '1.2.3.4',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
private $model;
|
||||||
|
|
||||||
|
public function setUp () {
|
||||||
|
$this->model = new Country($this->raw, ['en']);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testObjects () {
|
||||||
|
$this->assertInstanceOf('GeoIP2\Model\Country', $this->model,
|
||||||
|
'minimal GeoIP2::Model::Country object');
|
||||||
|
$this->assertInstanceOf('GeoIP2\Record\Continent', $this->model->continent);
|
||||||
|
$this->assertInstanceOf('GeoIP2\Record\Country', $this->model->country);
|
||||||
|
$this->assertInstanceOf('GeoIP2\Record\Country', $this->model->registeredCountry);
|
||||||
|
$this->assertInstanceOf('GeoIP2\Record\RepresentedCountry',
|
||||||
|
$this->model->representedCountry);
|
||||||
|
$this->assertInstanceOf('GeoIP2\Record\Traits', $this->model->traits);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testValues() {
|
||||||
|
|
||||||
|
$this->assertEquals(42, $this->model->continent->geonameId,
|
||||||
|
'continent geoname_id is 42');
|
||||||
|
|
||||||
|
$this->assertEquals('NA', $this->model->continent->continentCode,
|
||||||
|
'continent continent_code is NA');
|
||||||
|
|
||||||
|
$this->assertEquals(array( 'en' => 'North America' ),
|
||||||
|
$this->model->continent->names,
|
||||||
|
'continent names');
|
||||||
|
|
||||||
|
$this->assertEquals(
|
||||||
|
'North America',
|
||||||
|
$this->model->continent->name,
|
||||||
|
'continent name is North America');
|
||||||
|
|
||||||
|
$this->assertEquals(
|
||||||
|
1,
|
||||||
|
$this->model->country->geonameId,
|
||||||
|
'country geoname_id is 1'
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assertEquals(
|
||||||
|
'US',
|
||||||
|
$this->model->country->isoCode,
|
||||||
|
'country iso_code is US'
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assertEquals(
|
||||||
|
array( 'en' => 'United States of America' ),
|
||||||
|
$this->model->country->names,
|
||||||
|
'country names'
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assertEquals(
|
||||||
|
$this->model->country->name,
|
||||||
|
'United States of America',
|
||||||
|
'country name is United States of America'
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assertEquals(
|
||||||
|
null,
|
||||||
|
$this->model->country->confidence,
|
||||||
|
'country confidence is undef'
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assertEquals(2, $this->model->registeredCountry->geonameId,
|
||||||
|
'registered_country geoname_id is 2'
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assertEquals('CA',
|
||||||
|
$this->model->registeredCountry->isoCode,
|
||||||
|
'registered_country iso_code is CA'
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assertEquals(
|
||||||
|
array( 'en' => 'Canada' ),
|
||||||
|
$this->model->registeredCountry->names,
|
||||||
|
'registered_country names'
|
||||||
|
);
|
||||||
|
|
||||||
|
$this->assertEquals(
|
||||||
|
'Canada',
|
||||||
|
$this->model->registeredCountry->name,
|
||||||
|
'registered_country name is Canada'
|
||||||
|
);
|
||||||
|
|
||||||
|
foreach (array( 'isAnonymousProxy', 'isSatelliteProvider' ) as $meth) {
|
||||||
|
|
||||||
|
$this->assertEquals(0, $this->model->traits->$meth,
|
||||||
|
"traits $meth returns 0 by default"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->assertEquals(
|
||||||
|
$this->raw,
|
||||||
|
$this->model->raw,
|
||||||
|
'raw method returns raw input'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user