Merge pull request #31 from maxmind/dave/boolean-false-not-null
Return false instead of null for non-true boolean attributes
This commit is contained in:
commit
3142e44b3e
|
@ -9,6 +9,8 @@ CHANGELOG
|
|||
* Added support for the GeoIP2 Anonymous IP database. The
|
||||
`GeoIP2\Database\Reader` class now has an `anonymousIp` method which returns
|
||||
a `GeoIP2\Model\AnonymousIp` object.
|
||||
* Boolean attributes like those in the `GeoIP2\Record\Traits` class now return
|
||||
`false` insteadof `null` when they were not true.
|
||||
|
||||
2.0.0 (2014-09-22)
|
||||
------------------
|
||||
|
|
|
@ -23,7 +23,15 @@ abstract class AbstractModel implements \JsonSerializable
|
|||
*/
|
||||
protected function get($field)
|
||||
{
|
||||
return isset($this->raw[$field]) ? $this->raw[$field] : null;
|
||||
if (isset($this->raw[$field])) {
|
||||
return $this->raw[$field];
|
||||
} else {
|
||||
if (preg_match('/^is_/', $field)) {
|
||||
return false;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -25,7 +25,11 @@ abstract class AbstractRecord implements \JsonSerializable
|
|||
if ($this->__isset($attr)) {
|
||||
return $this->record[$key];
|
||||
} elseif ($this->validAttribute($attr)) {
|
||||
if (preg_match('/^is_/', $key)) {
|
||||
return false;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
} else {
|
||||
throw new \RuntimeException("Unknown attribute: $attr");
|
||||
}
|
||||
|
|
|
@ -96,9 +96,9 @@ class ReaderTest extends \PHPUnit_Framework_TestCase
|
|||
$record = $reader->anonymousIp($ipAddress);
|
||||
$this->assertSame(true, $record->isAnonymous);
|
||||
$this->assertSame(true, $record->isAnonymousVpn);
|
||||
$this->assertSame(null, $record->isHostingProvider);
|
||||
$this->assertSame(null, $record->isPublicProxy);
|
||||
$this->assertSame(null, $record->isTorExitNode);
|
||||
$this->assertSame(false, $record->isHostingProvider);
|
||||
$this->assertSame(false, $record->isPublicProxy);
|
||||
$this->assertSame(false, $record->isTorExitNode);
|
||||
$this->assertEquals($ipAddress, $record->ipAddress);
|
||||
$reader->close();
|
||||
}
|
||||
|
|
|
@ -62,7 +62,7 @@ class InsightsTest extends \PHPUnit_Framework_TestCase
|
|||
'autonomous_system_organization' => 'AS Organization',
|
||||
'domain' => 'example.com',
|
||||
'ip_address' => '1.2.3.4',
|
||||
'is_satellite_provider' => 1,
|
||||
'is_satellite_provider' => true,
|
||||
'isp' => 'Comcast',
|
||||
'organization' => 'Blorg',
|
||||
'user_type' => 'college',
|
||||
|
@ -130,6 +130,18 @@ class InsightsTest extends \PHPUnit_Framework_TestCase
|
|||
'$model->traits'
|
||||
);
|
||||
|
||||
$this->assertSame(
|
||||
true,
|
||||
$model->traits->isSatelliteProvider,
|
||||
'$model->traits->isSatelliteProvider is true'
|
||||
);
|
||||
|
||||
$this->assertSame(
|
||||
false,
|
||||
$model->traits->isAnonymousProxy,
|
||||
'$model->traits->isAnonymousProxy is false'
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
22,
|
||||
$model->maxmind->queriesRemaining,
|
||||
|
|
Loading…
Reference in New Issue
Block a user