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

/*
 Copyright (c) 2009 hamcrest.org
 */

use HamcrestBaseMatcher;
use 
HamcrestDescription;
use 
HamcrestMatcher;

class 
CombinableMatcher extends BaseMatcher
{

    private 
$_matcher;

    public function 
__construct(Matcher $matcher)
    {
        
$this->_matcher $matcher;
    }

    public function 
matches($item)
    {
        return 
$this->_matcher->matches($item);
    }

    public function 
describeTo(Description $description)
    {
        
$description->appendDescriptionOf($this->_matcher);
    }

    
/** Diversion from Hamcrest-Java... Logical "and" not permitted */
    
public function andAlso(Matcher $other)
    {
        return new 
self(new AllOf($this->_templatedListWith($other)));
    }

    
/** Diversion from Hamcrest-Java... Logical "or" not permitted */
    
public function orElse(Matcher $other)
    {
        return new 
self(new AnyOf($this->_templatedListWith($other)));
    }

    
/**
     * This is useful for fluently combining matchers that must both pass.
     * For example:
     * <pre>
     *   assertThat($string, both(containsString("a"))->andAlso(containsString("b")));
     * </pre>
     *
     * @factory
     */
    
public static function both(Matcher $matcher)
    {
        return new 
self($matcher);
    }

    
/**
     * This is useful for fluently combining matchers where either may pass,
     * for example:
     * <pre>
     *   assertThat($string, either(containsString("a"))->orElse(containsString("b")));
     * </pre>
     *
     * @factory
     */
    
public static function either(Matcher $matcher)
    {
        return new 
self($matcher);
    }

    
// -- Private Methods

    
private function _templatedListWith(Matcher $other)
    {
        return array(
$this->_matcher$other);
    }
}
Онлайн: 0
Реклама