View source
<?php
namespace SebastianBergmann\Comparator;
use Exception;
use RuntimeException;
class ExceptionComparatorTest extends \PHPUnit_Framework_TestCase {
private $comparator;
protected function setUp() {
$this->comparator = new ExceptionComparator();
$this->comparator
->setFactory(new Factory());
}
public function acceptsSucceedsProvider() {
return array(
array(
new Exception(),
new Exception(),
),
array(
new RuntimeException(),
new RuntimeException(),
),
array(
new Exception(),
new RuntimeException(),
),
);
}
public function acceptsFailsProvider() {
return array(
array(
new Exception(),
null,
),
array(
null,
new Exception(),
),
array(
null,
null,
),
);
}
public function assertEqualsSucceedsProvider() {
$exception1 = new Exception();
$exception2 = new Exception();
$exception3 = new RunTimeException('Error', 100);
$exception4 = new RunTimeException('Error', 100);
return array(
array(
$exception1,
$exception1,
),
array(
$exception1,
$exception2,
),
array(
$exception3,
$exception3,
),
array(
$exception3,
$exception4,
),
);
}
public function assertEqualsFailsProvider() {
$typeMessage = 'not instance of expected class';
$equalMessage = 'Failed asserting that two objects are equal.';
$exception1 = new Exception('Error', 100);
$exception2 = new Exception('Error', 101);
$exception3 = new Exception('Errors', 101);
$exception4 = new RunTimeException('Error', 100);
$exception5 = new RunTimeException('Error', 101);
return array(
array(
$exception1,
$exception2,
$equalMessage,
),
array(
$exception1,
$exception3,
$equalMessage,
),
array(
$exception1,
$exception4,
$typeMessage,
),
array(
$exception2,
$exception3,
$equalMessage,
),
array(
$exception4,
$exception5,
$equalMessage,
),
);
}
public function testAcceptsSucceeds($expected, $actual) {
$this
->assertTrue($this->comparator
->accepts($expected, $actual));
}
public function testAcceptsFails($expected, $actual) {
$this
->assertFalse($this->comparator
->accepts($expected, $actual));
}
public function testAssertEqualsSucceeds($expected, $actual) {
$exception = null;
try {
$this->comparator
->assertEquals($expected, $actual);
} catch (ComparisonFailure $exception) {
}
$this
->assertNull($exception, 'Unexpected ComparisonFailure');
}
public function testAssertEqualsFails($expected, $actual, $message) {
$this
->setExpectedException('SebastianBergmann\\Comparator\\ComparisonFailure', $message);
$this->comparator
->assertEquals($expected, $actual);
}
}