public void Retry_5_times() { //arrange var job = Helper.GetFakeJob(null, JobStatus.CompletedWithError); Retry <IFakeJob> retryJob = new Retry <IFakeJob>(job.Object, 5, TimeSpan.FromMilliseconds(1)); //act var rslt = retryJob.Doable(); //assert Assert.True(retryJob.Times == 5); Assert.True(retryJob.Interval.Milliseconds == 1); Assert.True(rslt.Status == JobStatus.CompletedWithError); job.Verify(j => j.Doable(), Times.Exactly(5)); Assert.All(retryJob.RetryResults, r => r.Status.ToString().Equals(JobStatus.CompletedWithError.ToString())); }
public void Retry_success_very_first_time() { //arrange var job = Helper.GetFakeJob(); Retry <IFakeJob> retryJob = new Retry <IFakeJob>(job.Object, 5, TimeSpan.FromMilliseconds(1)); //act var rslt = retryJob.Doable(); //assert Assert.True(retryJob.Times == 5); Assert.True(retryJob.Interval.Milliseconds == 1); Assert.True(rslt.Status == JobStatus.Completed); job.Verify(j => j.Doable(), Times.Once()); Assert.True(retryJob.RetryResults.Count == 1); Assert.True(retryJob.RetryResults.FirstOrDefault().Status == JobStatus.Completed); }
public void Retry_10_times_with_successful_validation() { //arrange var job = Helper.GetFakeJob(null, JobStatus.CompletedWithError); Func <IJobContext, ValidationResult> validate = (ctx) => { return(ValidationResult.Valid); }; Retry <IFakeJob> retryJob = new Retry <IFakeJob>(job.Object, 10, TimeSpan.FromMilliseconds(1), validate); //act var rslt = retryJob.Doable(); //assert Assert.True(retryJob.Times == 10); Assert.True(retryJob.Interval.Milliseconds == 1); Assert.True(rslt.Status == JobStatus.CompletedWithError); job.Verify(j => j.Doable(), Times.Exactly(10)); Assert.All(retryJob.RetryResults, r => r.Status.ToString().Equals(JobStatus.CompletedWithError.ToString())); }