1<?php
2class ExceptionStackTest extends PHPUnit_Framework_TestCase
3{
4    public function testPrintingChildException()
5    {
6        try {
7            $this->assertEquals([1], [2], 'message');
8        } catch (PHPUnit_Framework_ExpectationFailedException $e) {
9            $message = $e->getMessage() . $e->getComparisonFailure()->getDiff();
10            throw new PHPUnit_Framework_Exception("Child exception\n$message", 101, $e);
11        }
12    }
13
14    public function testNestedExceptions()
15    {
16        $exceptionThree = new Exception('Three');
17        $exceptionTwo   = new InvalidArgumentException('Two', 0, $exceptionThree);
18        $exceptionOne   = new Exception('One', 0, $exceptionTwo);
19        throw $exceptionOne;
20    }
21}
22