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

/*
 Copyright (c) 2009 hamcrest.org
 */
use HamcrestDescription;
use 
HamcrestMatcher;
use 
HamcrestTypeSafeMatcher;
use 
HamcrestUtil;

/**
 * Tests if an array contains values that match one or more Matchers.
 */
class IsCollectionContaining extends TypeSafeMatcher
{

    private 
$_elementMatcher;

    public function 
__construct(Matcher $elementMatcher)
    {
        
parent::__construct(self::TYPE_ARRAY);

        
$this->_elementMatcher $elementMatcher;
    }

    protected function 
matchesSafely($items)
    {
        foreach (
$items as $item) {
            if (
$this->_elementMatcher->matches($item)) {
                return 
true;
            }
        }

        return 
false;
    }

    protected function 
describeMismatchSafely($itemsDescription $mismatchDescription)
    {
        
$mismatchDescription->appendText('was ')->appendValue($items);
    }

    public function 
describeTo(Description $description)
    {
        
$description
                
->appendText('a collection containing ')
                ->
appendDescriptionOf($this->_elementMatcher)
                ;
    }

    
/**
     * Test if the value is an array containing this matcher.
     *
     * Example:
     * <pre>
     * assertThat(array('a', 'b'), hasItem(equalTo('b')));
     * //Convenience defaults to equalTo()
     * assertThat(array('a', 'b'), hasItem('b'));
     * </pre>
     *
     * @factory ...
     */
    
public static function hasItem()
    {
        
$args func_get_args();
        
$firstArg array_shift($args);

        return new 
self(Util::wrapValueWithIsEqual($firstArg));
    }

    
/**
     * Test if the value is an array containing elements that match all of these
     * matchers.
     *
     * Example:
     * <pre>
     * assertThat(array('a', 'b', 'c'), hasItems(equalTo('a'), equalTo('b')));
     * </pre>
     *
     * @factory ...
     */
    
public static function hasItems(/* args... */)
    {
        
$args func_get_args();
        
$matchers = array();

        foreach (
$args as $arg) {
            
$matchers[] = self::hasItem($arg);
        }

        return 
AllOf::allOf($matchers);
    }
}
Онлайн: 3
Реклама