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

/**
 * Tests for the presence of both a key and value inside an array.
 */
use HamcrestDescription;
use 
HamcrestMatcher;
use 
HamcrestTypeSafeMatcher;
use 
HamcrestUtil;

/**
 * @namespace
 */

class IsArrayContainingKeyValuePair extends TypeSafeMatcher
{

    private 
$_keyMatcher;
    private 
$_valueMatcher;

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

        
$this->_keyMatcher $keyMatcher;
        
$this->_valueMatcher $valueMatcher;
    }

    protected function 
matchesSafely($array)
    {
        foreach (
$array as $key => $value) {
            if (
$this->_keyMatcher->matches($key) && $this->_valueMatcher->matches($value)) {
                return 
true;
            }
        }

        return 
false;
    }

    protected function 
describeMismatchSafely($arrayDescription $mismatchDescription)
    {
        
//Not using appendValueList() so that keys can be shown
        
$mismatchDescription->appendText('array was ')
                                                ->
appendText('[')
                                                ;
        
$loop false;
        foreach (
$array as $key => $value) {
            if (
$loop) {
                
$mismatchDescription->appendText(', ');
            }
            
$mismatchDescription->appendValue($key)->appendText(' => ')->appendValue($value);
            
$loop true;
        }
        
$mismatchDescription->appendText(']');
    }

    public function 
describeTo(Description $description)
    {
        
$description->appendText('array containing [')
                                ->
appendDescriptionOf($this->_keyMatcher)
                                ->
appendText(' => ')
                                ->
appendDescriptionOf($this->_valueMatcher)
                                ->
appendText(']')
                                ;
    }

    
/**
     * Test if an array has both an key and value in parity with each other.
     *
     * @factory hasEntry
     */
    
public static function hasKeyValuePair($key$value)
    {
        return new 
self(
            
Util::wrapValueWithIsEqual($key),
            
Util::wrapValueWithIsEqual($value)
        );
    }
}
Онлайн: 0
Реклама