df60d68ea30e99c11d280c59772980d8ae85c852
[yaffs-website] / vendor / phpunit / phpunit / src / Framework / Constraint / Callback.php
1 <?php
2 /*
3  * This file is part of PHPUnit.
4  *
5  * (c) Sebastian Bergmann <sebastian@phpunit.de>
6  *
7  * For the full copyright and license information, please view the LICENSE
8  * file that was distributed with this source code.
9  */
10
11 /**
12  * Constraint that evaluates against a specified closure.
13  */
14 class PHPUnit_Framework_Constraint_Callback extends PHPUnit_Framework_Constraint
15 {
16     private $callback;
17
18     /**
19      * @param callable $callback
20      *
21      * @throws PHPUnit_Framework_Exception
22      */
23     public function __construct($callback)
24     {
25         if (!is_callable($callback)) {
26             throw PHPUnit_Util_InvalidArgumentHelper::factory(
27                 1,
28                 'callable'
29             );
30         }
31
32         parent::__construct();
33
34         $this->callback = $callback;
35     }
36
37     /**
38      * Evaluates the constraint for parameter $value. Returns true if the
39      * constraint is met, false otherwise.
40      *
41      * @param mixed $other Value or object to evaluate.
42      *
43      * @return bool
44      */
45     protected function matches($other)
46     {
47         return call_user_func($this->callback, $other);
48     }
49
50     /**
51      * Returns a string representation of the constraint.
52      *
53      * @return string
54      */
55     public function toString()
56     {
57         return 'is accepted by specified callback';
58     }
59 }