Exemple #1
0
 public async void WaitValueDocTest()
 {
     {
         var v = new WaitValue <int>(0);
         _ = Task.Run(async() =>
         {
             await Task.Delay(TimeSpan.FromMilliseconds(100));
             v.Value = 1;
         });
         if (await v.WaitValueAsync(1, TimeSpan.FromSeconds(1)) is var result && result)
         {
             Debug.WriteLine("Value Changed to 1");
         }
Exemple #2
0
        public async void WaitValueTest()
        {
            var v = new WaitValue <DayOfWeek>(DayOfWeek.Sunday);

            _ = Task.Run(async() =>
            {
                foreach (var dayOfWeek in fluent.Enum.Values <DayOfWeek>())
                {
                    await Task.Delay(TimeSpan.FromMilliseconds(100));
                    v.Value = dayOfWeek;
                }
            });
            Assert.True(await v.WaitValueAsync(DayOfWeek.Monday, TimeSpan.FromSeconds(1)));
            Assert.True(await v.WaitValueAsync(DayOfWeek.Monday, DayOfWeek.Tuesday, TimeSpan.FromSeconds(1)));
            Assert.True(await v.WaitValueAsync(DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, TimeSpan.FromSeconds(1)));
            Assert.True(await v.WaitValueAsync(DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, TimeSpan.FromSeconds(1)));
            Assert.True(await v.WaitValueAsync(DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday, TimeSpan.FromSeconds(1)));
            Assert.True(await v.WaitValueAsync(fluent.Enum.Values <DayOfWeek>().ToArray(), TimeSpan.FromSeconds(1)));
        }
Exemple #3
0
        public async void FlowExtensionsTest()
        {
            var v = new WaitValue <DayOfWeek>(DayOfWeek.Monday);

            _ = Task.Run(async() =>
            {
                await Task.Delay(TimeSpan.FromMilliseconds(100));
                v.Value = DayOfWeek.Friday;
            });
            await v.WaitValuesAsync(fluent.@params(DayOfWeek.Monday, DayOfWeek.Friday));

            v.Value = DayOfWeek.Sunday;
            _       = Task.Run(async() =>
            {
                await Task.Delay(TimeSpan.FromMilliseconds(100));
                v.Value = DayOfWeek.Friday;
            });
            await v.WaitValueAsync(fluent.@params(DayOfWeek.Monday, DayOfWeek.Friday));
        }
Exemple #4
0
        public async void WaitValuesTest()
        {
            for (var index = 0; index < 6; index++)
            {
                var v = new WaitValue <DayOfWeek>(DayOfWeek.Sunday);
                _ = Task.Run(async() =>
                {
                    await Task.Delay(TimeSpan.FromMilliseconds(100));
                    foreach (var dayOfWeek in fluent.Enum.Values <DayOfWeek>())
                    {
                        v.Value = dayOfWeek;
                    }
                });
                switch (index)
                {
                case 0:
                    Assert.True(await v.WaitValuesAsync(DayOfWeek.Monday, TimeSpan.FromSeconds(1)));
                    break;

                case 1:
                    Assert.True(await v.WaitValuesAsync(DayOfWeek.Monday, DayOfWeek.Tuesday, TimeSpan.FromSeconds(1)));
                    break;

                case 2:
                    Assert.True(await v.WaitValuesAsync(DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, TimeSpan.FromSeconds(1)));
                    break;

                case 3:
                    Assert.True(await v.WaitValuesAsync(DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, TimeSpan.FromSeconds(1)));
                    break;

                case 4:
                    Assert.True(await v.WaitValuesAsync(DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday, TimeSpan.FromSeconds(1)));
                    break;

                case 5:
                    Assert.True(await v.WaitValuesAsync(fluent.Enum.Values <DayOfWeek>().ToArray(), TimeSpan.FromSeconds(1)));
                    break;
                }
            }
        }