Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
namespace Hamcrest\Arrays;
3
 
4
/*
5
 Copyright (c) 2009 hamcrest.org
6
 */
7
use Hamcrest\Description;
8
use Hamcrest\Matcher;
9
use Hamcrest\TypeSafeMatcher;
10
use Hamcrest\Util;
11
 
12
/**
13
 * Matches if an array contains an item satisfying a nested matcher.
14
 */
15
class IsArrayContaining extends TypeSafeMatcher
16
{
17
 
18
    private $_elementMatcher;
19
 
20
    public function __construct(Matcher $elementMatcher)
21
    {
22
        parent::__construct(self::TYPE_ARRAY);
23
 
24
        $this->_elementMatcher = $elementMatcher;
25
    }
26
 
27
    protected function matchesSafely($array)
28
    {
29
        foreach ($array as $element) {
30
            if ($this->_elementMatcher->matches($element)) {
31
                return true;
32
            }
33
        }
34
 
35
        return false;
36
    }
37
 
38
    protected function describeMismatchSafely($array, Description $mismatchDescription)
39
    {
40
        $mismatchDescription->appendText('was ')->appendValue($array);
41
    }
42
 
43
    public function describeTo(Description $description)
44
    {
45
        $description
46
                 ->appendText('an array containing ')
47
                 ->appendDescriptionOf($this->_elementMatcher)
48
        ;
49
    }
50
 
51
    /**
52
     * Evaluates to true if any item in an array satisfies the given matcher.
53
     *
54
     * @param mixed $item as a {@link Hamcrest\Matcher} or a value.
55
     *
56
     * @return \Hamcrest\Arrays\IsArrayContaining
57
     * @factory hasValue
58
     */
59
    public static function hasItemInArray($item)
60
    {
61
        return new self(Util::wrapValueWithIsEqual($item));
62
    }
63
}