131 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			131 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?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'
 | 
						|
                        );
 | 
						|
    }
 | 
						|
}
 |