expect($actual['data'])->toBe(['actual' => 'time()', 'actual called times' => 0, 'expected to be called' => 'time()']);
});
it("returns the description message for not received call the specified number of times", function () {
$mon = new Mon();
$matcher = new ToBeCalled('time');
$matcher->times(2);
$matcher->resolve(['instance' => $matcher, 'data' => ['actual' => 'time', 'logs' => []]]);
$actual = $matcher->description();
expect($actual['description'])->toBe('be called the expected times.');
expect($actual['data'])->toBe(['actual' => 'time()', 'actual called times' => 0, 'expected to be called' => 'time()', 'expected called times' => 2]);
});
it("returns the description message for wrong passed arguments", function () {
$mon = new Mon();
$matcher = new ToBeCalled('time');
$matcher->with('Hello World!');
$mon->time();
$matcher->resolve(['instance' => $matcher, 'data' => ['actual' => 'time', 'logs' => []]]);
$actual = $matcher->description();
expect($actual['description'])->toBe('be called with expected parameters.');
expect($actual['data'])->toBe(['actual' => 'time()', 'actual called times' => 1, 'actual called parameters list' => [[]], 'expected to be called' => 'time()', 'expected parameters' => ['Hello World!']]);
});
});
describe("->ordered()", function () {
it("throw an exception when trying to play with core instance", function () {
expect(function () {
$matcher = new ToBeCalled('a');
$matcher->order;
})->toThrow(new Exception("Unsupported attribute `order` only `ordered` is available."));
});
});
});