Вход Регистрация
Файл: src/vendor/hamcrest/hamcrest-php/tests/Hamcrest/Core/IsCollectionContainingTest.php
Строк: 77
<?php
namespace HamcrestCore;

class 
IsCollectionContainingTest extends HamcrestAbstractMatcherTest
{

    protected function 
createMatcher()
    {
        return 
HamcrestCoreIsCollectionContaining::hasItem(equalTo('irrelevant'));
    }

    public function 
testMatchesACollectionThatContainsAnElementMatchingTheGivenMatcher()
    {
        
$itemMatcher = hasItem(equalTo('a'));

        
$this->assertMatches(
            
$itemMatcher,
            array(
'a', 'b', 'c'),
            
"should match list that contains 'a'"
        
);
    }

    public function 
testDoesNotMatchCollectionThatDoesntContainAnElementMatchingTheGivenMatcher()
    {
        
$matcher1 = hasItem(equalTo('a'));
        
$this->assertDoesNotMatch(
            
$matcher1,
            array(
'b', 'c'),
            
"should not match list that doesn't contain 'a'"
        
);

        
$matcher2 = hasItem(equalTo('a'));
        
$this->assertDoesNotMatch(
            
$matcher2,
            array(),
            
'should not match the empty list'
        
);
    }

    public function 
testDoesNotMatchNull()
    {
        
$this->assertDoesNotMatch(
            
hasItem(equalTo('a')),
            
null,
            
'should not match null'
        
);
    }

    public function 
testHasAReadableDescription()
    {
        
$this->assertDescription('a collection containing "a"', hasItem(equalTo('a')));
    }

    public function 
testMatchesAllItemsInCollection()
    {
        
$matcher1 = hasItems(equalTo('a'), equalTo('b'), equalTo('c'));
        
$this->assertMatches(
            
$matcher1,
            array(
'a', 'b', 'c'),
            
'should match list containing all items'
        
);

        
$matcher2 = hasItems('a', 'b', 'c');
        
$this->assertMatches(
            
$matcher2,
            array(
'a', 'b', 'c'),
            
'should match list containing all items (without matchers)'
        
);

        
$matcher3 = hasItems(equalTo('a'), equalTo('b'), equalTo('c'));
        
$this->assertMatches(
            
$matcher3,
            array(
'c', 'b', 'a'),
            
'should match list containing all items in any order'
        
);

        
$matcher4 = hasItems(equalTo('a'), equalTo('b'), equalTo('c'));
        
$this->assertMatches(
            
$matcher4,
            array(
'e', 'c', 'b', 'a', 'd'),
            
'should match list containing all items plus others'
        
);

        
$matcher5 = hasItems(equalTo('a'), equalTo('b'), equalTo('c'));
        
$this->assertDoesNotMatch(
            
$matcher5,
            array(
'e', 'c', 'b', 'd'), // 'a' missing
            
'should not match list unless it contains all items'
        
);
    }
}
Онлайн: 1
Реклама