$actualException = new Exception();
$expectedException = new Exception();
$actual = function () use($actualException) {
throw $actualException;
};
ToThrow::match($actual, $expectedException, 0);
$actual = ToThrow::description();
expect($actual['description'])->toBe('throw a compatible exception.');
expect($actual['data']['actual'])->toBe($actualException);
expect($actual['data']['expected'])->toBe($expectedException);
});
it("returns the description message when actual doesn't throw any exception", function () {
$exception = new Exception();
ToThrow::match(function () {
}, $exception, 0);
$actual = ToThrow::description();
expect($actual['description'])->toBe('throw a compatible exception.');
expect($actual['data']['actual'])->toBe(null);
expect($actual['data']['expected'])->toBe($exception);
});
it("returns the description message when the expected value is a string", function () {
ToThrow::match(function () {
}, 'Expected exception message', 0);
$actual = ToThrow::description();
expect($actual['description'])->toBe('throw a compatible exception.');
expect($actual['data']['actual'])->toBe(null);
expect($actual['data']['expected'])->toBeAnInstanceOf('Kahlan\\Matcher\\AnyException');
expect($actual['data']['expected']->getMessage())->toBe('Expected exception message');
});
});
});