123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- <?php
- namespace Hamcrest\Arrays;
- use Hamcrest\AbstractMatcherTest;
- class IsArrayTest extends AbstractMatcherTest
- {
- protected function createMatcher()
- {
- return IsArray::anArray(array(equalTo('irrelevant')));
- }
- public function testMatchesAnArrayThatMatchesAllTheElementMatchers()
- {
- $this->assertMatches(
- anArray(array(equalTo('a'), equalTo('b'), equalTo('c'))),
- array('a', 'b', 'c'),
- 'should match array with matching elements'
- );
- }
- public function testDoesNotMatchAnArrayWhenElementsDoNotMatch()
- {
- $this->assertDoesNotMatch(
- anArray(array(equalTo('a'), equalTo('b'))),
- array('b', 'c'),
- 'should not match array with different elements'
- );
- }
- public function testDoesNotMatchAnArrayOfDifferentSize()
- {
- $this->assertDoesNotMatch(
- anArray(array(equalTo('a'), equalTo('b'))),
- array('a', 'b', 'c'),
- 'should not match larger array'
- );
- $this->assertDoesNotMatch(
- anArray(array(equalTo('a'), equalTo('b'))),
- array('a'),
- 'should not match smaller array'
- );
- }
- public function testDoesNotMatchNull()
- {
- $this->assertDoesNotMatch(
- anArray(array(equalTo('a'))),
- null,
- 'should not match null'
- );
- }
- public function testHasAReadableDescription()
- {
- $this->assertDescription(
- '["a", "b"]',
- anArray(array(equalTo('a'), equalTo('b')))
- );
- }
- public function testHasAReadableMismatchDescriptionWhenKeysDontMatch()
- {
- $this->assertMismatchDescription(
- 'array keys were [<1>, <2>]',
- anArray(array(equalTo('a'), equalTo('b'))),
- array(1 => 'a', 2 => 'b')
- );
- }
- public function testSupportsMatchesAssociativeArrays()
- {
- $this->assertMatches(
- anArray(array('x'=>equalTo('a'), 'y'=>equalTo('b'), 'z'=>equalTo('c'))),
- array('x'=>'a', 'y'=>'b', 'z'=>'c'),
- 'should match associative array with matching elements'
- );
- }
- public function testDoesNotMatchAnAssociativeArrayWhenKeysDoNotMatch()
- {
- $this->assertDoesNotMatch(
- anArray(array('x'=>equalTo('a'), 'y'=>equalTo('b'))),
- array('x'=>'b', 'z'=>'c'),
- 'should not match array with different keys'
- );
- }
- }
|