Skip to content

Commit

Permalink
Merge pull request #838 from buddylindsey/modify_key_assertions
Browse files Browse the repository at this point in the history
Modify AssertHasKey and AssertHasNotKey to work with null value
  • Loading branch information
nateabele committed Mar 5, 2013
2 parents bc12382 + aecc424 commit dc9fd97
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 2 deletions.
16 changes: 14 additions & 2 deletions test/Unit.php
Expand Up @@ -1170,7 +1170,13 @@ public function assertNotCount($expected, $array, $message = '{:message}') {
* @return bool
*/
public function assertArrayHasKey($key, $array, $message = '{:message}') {
return $this->assert(isset($array[$key]), $message, array(
if (is_object($array) && $array instanceof \ArrayAccess) {
$result = isset($array[$key]);
} else {
$result = array_key_exists($key, $array);
}

return $this->assert($result, $message, array(
'expected' => $key,
'result' => $array
));
Expand All @@ -1193,7 +1199,13 @@ public function assertArrayHasKey($key, $array, $message = '{:message}') {
* @return bool
*/
public function assertArrayNotHasKey($key, $array, $message = '{:message}') {
return $this->assert(!isset($array[$key]), $message, array(
if (is_object($array) && $array instanceof \ArrayAccess) {
$result = isset($array[$key]);
} else {
$result = array_key_exists($key, $array);
}

return $this->assert(!$result, $message, array(
'expected' => $key,
'result' => $array
));
Expand Down
9 changes: 9 additions & 0 deletions tests/cases/test/UnitTest.php
Expand Up @@ -757,6 +757,15 @@ public function testArrayHasKeyFalse() {
), $result['data']);
}

public function testArrayHasKeyValueNull() {
$this->assertTrue($this->test->assertArrayHasKey('bar', array('bar' => null)));

$results = $this->test->results();
$result = array_pop($results);

$this->assertEqual('pass', $result['result']);
}

public function testArrayNotHasKeyTrue() {
$this->assertTrue($this->test->assertArrayNotHasKey('foo', array('bar' => 'baz')));

Expand Down

0 comments on commit dc9fd97

Please sign in to comment.