1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
<?php
namespace Guzzle\Tests\Common\Exception;
use Guzzle\Common\Exception\ExceptionCollection;
class ExceptionCollectionTest extends \Guzzle\Tests\GuzzleTestCase
{
private function getExceptions()
{
return array(
new \Exception('Test'),
new \Exception('Testing')
);
}
public function testAggregatesExceptions()
{
$e = new ExceptionCollection();
$exceptions = $this->getExceptions();
$e->add($exceptions[0]);
$e->add($exceptions[1]);
$this->assertContains("(Exception) ./tests/Guzzle/Tests/Common/Exception/ExceptionCollectionTest.php line ", $e->getMessage());
$this->assertContains(" Test\n\n #0 ./", $e->getMessage());
$this->assertSame($exceptions[0], $e->getFirst());
}
public function testCanSetExceptions()
{
$ex = new \Exception('foo');
$e = new ExceptionCollection();
$e->setExceptions(array($ex));
$this->assertSame($ex, $e->getFirst());
}
public function testActsAsArray()
{
$e = new ExceptionCollection();
$exceptions = $this->getExceptions();
$e->add($exceptions[0]);
$e->add($exceptions[1]);
$this->assertEquals(2, count($e));
$this->assertEquals($exceptions, $e->getIterator()->getArrayCopy());
}
public function testCanAddSelf()
{
$e1 = new ExceptionCollection();
$e1->add(new \Exception("Test"));
$e2 = new ExceptionCollection('Meta description!');
$e2->add(new \Exception("Test 2"));
$e3 = new ExceptionCollection();
$e3->add(new \Exception('Baz'));
$e2->add($e3);
$e1->add($e2);
$message = $e1->getMessage();
$this->assertContains("(Exception) ./tests/Guzzle/Tests/Common/Exception/ExceptionCollectionTest.php line ", $message);
$this->assertContains("\n Test\n\n #0 ", $message);
$this->assertContains("\n\n(Guzzle\\Common\\Exception\\ExceptionCollection) ./tests/Guzzle/Tests/Common/Exception/ExceptionCollectionTest.php line ", $message);
$this->assertContains("\n\n Meta description!\n\n", $message);
$this->assertContains(" (Exception) ./tests/Guzzle/Tests/Common/Exception/ExceptionCollectionTest.php line ", $message);
$this->assertContains("\n Test 2\n\n #0 ", $message);
$this->assertContains(" (Exception) ./tests/Guzzle/Tests/Common/Exception/ExceptionCollectionTest.php line ", $message);
$this->assertContains(" Baz\n\n #0", $message);
}
}
|