1: <?php
2: /**
3: * Mockery
4: *
5: * LICENSE
6: *
7: * This source file is subject to the new BSD license that is bundled
8: * with this package in the file LICENSE.txt.
9: * It is also available through the world-wide-web at this URL:
10: * http://github.com/padraic/mockery/blob/master/LICENSE
11: * If you did not receive a copy of the license and are unable to
12: * obtain it through the world-wide-web, please send an email
13: * to padraic@php.net so we can send you a copy immediately.
14: *
15: * @category Mockery
16: * @package Mockery
17: * @copyright Copyright (c) 2010-2014 Pádraic Brady (http://blog.astrumfutura.com)
18: * @license http://github.com/padraic/mockery/blob/master/LICENSE New BSD License
19: */
20:
21: namespace Mockery\Matcher;
22:
23: class Contains extends MatcherAbstract
24: {
25:
26: /**
27: * Check if the actual value matches the expected.
28: *
29: * @param mixed $actual
30: * @return bool
31: */
32: public function match(&$actual)
33: {
34: $values = array_values($actual);
35: foreach ($this->_expected as $exp) {
36: $match = false;
37: foreach ($values as $val) {
38: if ($exp === $val || $exp == $val) {
39: $match = true;
40: break;
41: }
42: }
43: if ($match === false) {
44: return false;
45: }
46: }
47: return true;
48: }
49:
50: /**
51: * Return a string representation of this Matcher
52: *
53: * @return string
54: */
55: public function __toString()
56: {
57: $return = '<Contains[';
58: $elements = array();
59: foreach ($this->_expected as $v) {
60: $elements[] = (string) $v;
61: }
62: $return .= implode(', ', $elements) . ']>';
63: return $return;
64: }
65:
66: }
67: