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_Exception extends PHPUnit_Framework_Constraint
12
{
13
    /**
14
     * @var string
15
     */
16
    protected $className;
17
 
18
    /**
19
     * @param string $className
20
     */
21
    public function __construct($className)
22
    {
23
        parent::__construct();
24
        $this->className = $className;
25
    }
26
 
27
    /**
28
     * Evaluates the constraint for parameter $other. Returns true if the
29
     * constraint is met, false otherwise.
30
     *
31
     * @param mixed $other Value or object to evaluate.
32
     *
33
     * @return bool
34
     */
35
    protected function matches($other)
36
    {
37
        return $other instanceof $this->className;
38
    }
39
 
40
    /**
41
     * Returns the description of the failure
42
     *
43
     * The beginning of failure messages is "Failed asserting that" in most
44
     * cases. This method should return the second part of that sentence.
45
     *
46
     * @param mixed $other Evaluated value or object.
47
     *
48
     * @return string
49
     */
50
    protected function failureDescription($other)
51
    {
52
        if ($other !== null) {
53
            $message = '';
54
            if ($other instanceof Exception || $other instanceof Throwable) {
55
                $message = '. Message was: "' . $other->getMessage() . '" at'
56
                        . "\n" . PHPUnit_Util_Filter::getFilteredStacktrace($other);
57
            }
58
 
59
            return sprintf(
60
                'exception of type "%s" matches expected exception "%s"%s',
61
                get_class($other),
62
                $this->className,
63
                $message
64
            );
65
        }
66
 
67
        return sprintf(
68
            'exception of type "%s" is thrown',
69
            $this->className
70
        );
71
    }
72
 
73
    /**
74
     * Returns a string representation of the constraint.
75
     *
76
     * @return string
77
     */
78
    public function toString()
79
    {
80
        return sprintf(
81
            'exception of type "%s"',
82
            $this->className
83
        );
84
    }
85
}