Пример #1
0
        public async Task Exec_FuncTaskCalls()
        {
            var must = new Must(0, source.Token);
            var res  = await must.Exec(async() =>
            {
                await Task.Delay(1);
                return(Value);
            }, 10);

            Assert.AreEqual(res, Value);
        }
Пример #2
0
        public async Task ExecAttempts_ActionOnError()
        {
            var log        = new List <string>();
            int sleepCount = 2;
            var must       = new Must(0, source.Token);

            must.OnError += e => { log.Add(e.Message); };

            await must.Exec(token =>
            {
                if (step++ < sleepCount)
                {
                    throw new Exception(step.ToString());
                }
            }, 1);

            for (int i = 0; i < sleepCount; i++)
            {
                Assert.AreEqual(log[i], (i + 1).ToString());
            }
        }
Пример #3
0
 public void Exec_FuncToken()
 {
     Assert.Throws <TaskCanceledException>(() =>
     {
         var must = new Must(0, source.Token);
         var t    = must.Exec(token =>
         {
             throw new Exception();
             return(Value);
         });
         Task.Run(() => source.Cancel());
         try
         {
             t.Wait();
         }
         catch (AggregateException e)
         {
             throw (TaskCanceledException)e.InnerException;
         }
     });
 }
Пример #4
0
        public async Task Exec_Action()
        {
            var a          = new MustDo.Must(100);
            var watch      = new Stopwatch();
            int sleep      = 60;
            int sleepCount = 5;
            var must       = new Must(sleep);
            await must.Exec(token =>
            {
                if (!watch.IsRunning)
                {
                    watch.Start();
                }
                if (step++ < sleepCount)
                {
                    throw new Exception();
                }
                watch.Stop();
            });

            Console.WriteLine();
            Assert.IsTrue(watch.ElapsedMilliseconds >= sleep * sleepCount);
        }
Пример #5
0
        public async Task Exec_Func()
        {
            var watch      = new Stopwatch();
            int sleep      = 60;
            int sleepCount = 5;
            int value      = 1;
            var must       = new Must(sleep);
            int res        = await must.Exec(token =>
            {
                if (!watch.IsRunning)
                {
                    watch.Start();
                }
                if (step++ < sleepCount)
                {
                    throw new Exception();
                }
                watch.Stop();
                return(value);
            }, sleep);

            Assert.AreEqual(value, res);
            Assert.IsTrue(watch.ElapsedMilliseconds >= sleep * sleepCount);
        }