describe('StubbornEventHandler', function ($test) { it('->retry()', function ($test) { $stubborn = new Stubborn(); $result = $stubborn->retries(5)->resultHandler(function ($stubborn) { $stubborn->retry(); })->run(function () { return array(1, 6, 9); }); expect($stubborn->totalTries())->to->be(6); expect($result)->to->be(array(1, 6, 9)); }); it('->stop()', function ($test) { $stubborn = new Stubborn(); $result = $stubborn->resultHandler(function ($stubborn) { if ($stubborn->retries() == 1) { $stubborn->stop(); } $stubborn->retry(); })->retries(2)->run(function () { return 5; }); expect($stubborn->totalTries())->to->be(2); expect($result)->to->be(5); }); it('->staticBackoff()', function ($test) { $stubborn = new Stubborn(); $result = $stubborn->resultHandler(function ($stubborn) { if ($stubborn->retries() < $stubborn->maxRetries()) { $stubborn->staticBackoff(1); } })->retries(2)->run(function () {