コード例 #1
0
        public void FailureRetry_Func_Task_T()
        {
            Task <int> taskInt = FailureRetryBuilder.Bind(() => { return(Task.FromResult(33)); }).ExecuteAsync();

            Task.WaitAll(taskInt);
            Assert.AreEqual(taskInt.Result, 33);
        }
コード例 #2
0
        public void FailureRetry_Func_Task_T_result_failure()
        {
            Task <int> taskInt = FailureRetryBuilder.Bind(() => { return(Task.FromResult(33)); })
                                 .ResultFilter(ii => true)
                                 .ExecuteAsync();

            Assert.ThrowsExceptionAsync <RetryFaiureException>(() => taskInt);
        }
コード例 #3
0
        public void FailureRetry_Func_Task_T_exception_failure()
        {
            Task <int> taskInt = FailureRetryBuilder.Bind(() => { this.ThrowEx(); return(Task.FromResult(33)); })
                                 .ResultFilter(ii => true)
                                 .RetryFilter(ex =>
            {
                Console.WriteLine(ex);
                return(true);
            })
                                 .ExecuteAsync();

            Assert.ThrowsExceptionAsync <RetryFaiureException>(() => taskInt);
        }
コード例 #4
0
 public void FailureRetry_Func_T_exception_failure()
 {
     Assert.ThrowsException <RetryFaiureException>(() =>
     {
         FailureRetryBuilder.Bind(() =>
         {
             this.ThrowEx();
         }).RetryFilter(ex =>
         {
             Console.WriteLine(ex.ToString());
             return(true);
         }).Execute();
     });
 }
コード例 #5
0
        public void FailureRetry_Func_Task_T_retry1()
        {
            var        a       = false;
            Task <int> taskInt = FailureRetryBuilder.Bind(() => { return(Task.FromResult(33)); })
                                 .ResultFilter(ii =>
            {
                Console.WriteLine(ii);
                a = !a;
                return(a);
            })
                                 .ExecuteAsync();

            Task.WaitAll(taskInt);
            Assert.AreEqual(taskInt.Result, 33);
        }
コード例 #6
0
        public void FailureRetry_Func_Task_T_exception_success()
        {
            Task <int> taskInt = FailureRetryBuilder.Bind(() => { this.ThrowEx(); return(Task.FromResult(33)); })
                                 .ResultFilter(ii => true)
                                 .RetryFilter(ex =>
            {
                Console.WriteLine(ex);
                return(false);
            })
                                 .ExecuteAsync();

            Task.WaitAll(taskInt);
            Console.WriteLine(taskInt.Result);
            Assert.AreEqual(taskInt.Result, 0);
        }
コード例 #7
0
 public void FailureRetry_void_failure()
 {
     Assert.ThrowsException <RetryFaiureException>(() =>
     {
         FailureRetryBuilder.Bind(() =>
         {
             var x = 0;
             Console.WriteLine(1 / x);
         }).RetryFilter(ex =>
         {
             Console.WriteLine("exception:" + ex.ToString());
             return(true);
         })
         .Execute();
     });
 }
コード例 #8
0
 public void FailureRetry_Func_T_result_failure()
 {
     Assert.ThrowsException <RetryFaiureException>(() =>
     {
         try
         {
             FailureRetryBuilder.Bind(() => { return("aa"); }).ResultFilter(str =>
             {
                 Console.WriteLine("执行结果:" + str);
                 return(true);
             }).Execute();
         }
         catch (Exception e)
         {
             throw;
         }
     });
 }
コード例 #9
0
        public void FailureRetry_Func_T()
        {
            string str = FailureRetryBuilder.Bind(() => { return("aa"); }).Execute();

            Assert.AreEqual(str, "aa");
        }
コード例 #10
0
        public void FailureRetry_Func_Task_exception_success()
        {
            Task task = FailureRetryBuilder.Bind(() => { this.ThrowEx(); return(Task.Delay(99)); }).RetryFilter(ii => false).ExecuteAsync();

            Task.WaitAll(task);
        }
コード例 #11
0
        public void FailureRetry_Func_Task_exception_failure()
        {
            Task task = FailureRetryBuilder.Bind(() => { this.ThrowEx(); return(Task.Delay(99)); }).ExecuteAsync();

            Assert.ThrowsExceptionAsync <RetryFaiureException>(() => task);
        }
コード例 #12
0
        public void FailureRetry_Func_Task()
        {
            Task task = FailureRetryBuilder.Bind(() => { return(Task.Delay(99)); }).ExecuteAsync();

            Task.WaitAll(task);
        }
コード例 #13
0
 public void FailureRetry_void()
 {
     FailureRetryBuilder.Bind(() => { }).Execute();
 }