Subversion Repositories web.creative

Rev

Details | Last modification | View Log

Rev Author Line No. Line
1 mjordaan 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
class PHPUnit_Framework_Constraint_ExceptionMessageRegExp extends PHPUnit_Framework_Constraint
12
{
13
    /**
14
     * @var int
15
     */
16
    protected $expectedMessageRegExp;
17
 
18
    /**
19
     * @param string $expected
20
     */
21
    public function __construct($expected)
22
    {
23
        parent::__construct();
24
        $this->expectedMessageRegExp = $expected;
25
    }
26
 
27
    /**
28
     * Evaluates the constraint for parameter $other. Returns true if the
29
     * constraint is met, false otherwise.
30
     *
31
     * @param Exception $other
32
     *
33
     * @return bool
34
     */
35
    protected function matches($other)
36
    {
37
        $match = PHPUnit_Util_Regex::pregMatchSafe($this->expectedMessageRegExp, $other->getMessage());
38
 
39
        if (false === $match) {
40
            throw new PHPUnit_Framework_Exception(
41
                "Invalid expected exception message regex given: '{$this->expectedMessageRegExp}'"
42
            );
43
        }
44
 
45
        return 1 === $match;
46
    }
47
 
48
    /**
49
     * Returns the description of the failure
50
     *
51
     * The beginning of failure messages is "Failed asserting that" in most
52
     * cases. This method should return the second part of that sentence.
53
     *
54
     * @param mixed $other Evaluated value or object.
55
     *
56
     * @return string
57
     */
58
    protected function failureDescription($other)
59
    {
60
        return sprintf(
61
            "exception message '%s' matches '%s'",
62
            $other->getMessage(),
63
            $this->expectedMessageRegExp
64
        );
65
    }
66
 
67
    /**
68
     * @return string
69
     */
70
    public function toString()
71
    {
72
        return 'exception message matches ';
73
    }
74
}