You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.6 KiB
62 lines
1.6 KiB
<?php
|
|
namespace Hamcrest\Arrays;
|
|
|
|
use Hamcrest\AbstractMatcherTest;
|
|
|
|
class IsArrayContainingKeyTest extends AbstractMatcherTest
|
|
{
|
|
|
|
protected function createMatcher()
|
|
{
|
|
return IsArrayContainingKey::hasKeyInArray('irrelevant');
|
|
}
|
|
|
|
public function testMatchesSingleElementArrayContainingKey()
|
|
{
|
|
$array = array('a'=>1);
|
|
|
|
$this->assertMatches(hasKey('a'), $array, 'Matches single key');
|
|
}
|
|
|
|
public function testMatchesArrayContainingKey()
|
|
{
|
|
$array = array('a'=>1, 'b'=>2, 'c'=>3);
|
|
|
|
$this->assertMatches(hasKey('a'), $array, 'Matches a');
|
|
$this->assertMatches(hasKey('c'), $array, 'Matches c');
|
|
}
|
|
|
|
public function testMatchesArrayContainingKeyWithIntegerKeys()
|
|
{
|
|
$array = array(1=>'A', 2=>'B');
|
|
|
|
assertThat($array, hasKey(1));
|
|
}
|
|
|
|
public function testMatchesArrayContainingKeyWithNumberKeys()
|
|
{
|
|
$array = array(1=>'A', 2=>'B');
|
|
|
|
assertThat($array, hasKey(1));
|
|
|
|
// very ugly version!
|
|
assertThat($array, IsArrayContainingKey::hasKeyInArray(2));
|
|
}
|
|
|
|
public function testHasReadableDescription()
|
|
{
|
|
$this->assertDescription('array with key "a"', hasKey('a'));
|
|
}
|
|
|
|
public function testDoesNotMatchEmptyArray()
|
|
{
|
|
$this->assertMismatchDescription('array was []', hasKey('Foo'), array());
|
|
}
|
|
|
|
public function testDoesNotMatchArrayMissingKey()
|
|
{
|
|
$array = array('a'=>1, 'b'=>2, 'c'=>3);
|
|
|
|
$this->assertMismatchDescription('array was ["a" => <1>, "b" => <2>, "c" => <3>]', hasKey('d'), $array);
|
|
}
|
|
}
|