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

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

/**
 * Matches if an array contains the specified key.
 */
class IsArrayContainingKey extends TypeSafeMatcher
{

    private 
$_keyMatcher;

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

        
$this->_keyMatcher $keyMatcher;
    }

    protected function 
matchesSafely($array)
    {
        foreach (
$array as $key => $element) {
            if (
$this->_keyMatcher->matches($key)) {
                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 with key ')
                 ->
appendDescriptionOf($this->_keyMatcher)
                 ;
    }

    
/**
     * Evaluates to true if any key in an array matches the given matcher.
     *
     * @param mixed $key as a {@link HamcrestMatcher} or a value.
     *
     * @return HamcrestArraysIsArrayContainingKey
     * @factory hasKey
     */
    
public static function hasKeyInArray($key)
    {
        return new 
self(Util::wrapValueWithIsEqual($key));
    }
}
Онлайн: 0
Реклама