Example #1
0
        public void When_task_completes_fast_it_should_succeed()
        {
            //-----------------------------------------------------------------------------------------------------------
            // Arrange
            //-----------------------------------------------------------------------------------------------------------
            var timer       = new FakeClock();
            var taskFactory = new TaskCompletionSource <int>();

            //-----------------------------------------------------------------------------------------------------------
            // Act
            //-----------------------------------------------------------------------------------------------------------
            Action action = () =>
            {
                Func <Task <int> > func = () => taskFactory.Task;

                func.Should(timer).CompleteWithin(100.Milliseconds())
                .Which.Should().Be(42);
            };

            taskFactory.SetResult(42);
            timer.CompletesBeforeTimeout();

            //-----------------------------------------------------------------------------------------------------------
            // Assert
            //-----------------------------------------------------------------------------------------------------------
            action.Should().NotThrow();
        }
        public void When_no_exception_should_be_thrown_for_async_func_after_wait_time_but_it_was_it_should_throw()
        {
            // Arrange
            var waitTime     = 2.Seconds();
            var pollInterval = 10.Milliseconds();

            var clock = new FakeClock();
            var timer = clock.StartTimer();

            clock.Delay(waitTime);
            clock.CompletesBeforeTimeout();

            Func <Task> throwLongerThanWaitTime = async() =>
            {
                if (timer.Elapsed <= waitTime.Multiply(1.5))
                {
                    throw new ArgumentException("An exception was forced");
                }

                await Task.Delay(0);
            };

            // Act
            Func <Task> action = () => throwLongerThanWaitTime.Should(clock)
                                 .NotThrowAfterAsync(waitTime, pollInterval, "we passed valid arguments");

            // Assert
            action.Should().Throw <XunitException>()
            .WithMessage("Did not expect any exceptions after 2s because we passed valid arguments*");
        }
Example #3
0
        public void When_task_completes_fast_async_it_should_succeed()
        {
            // Arrange
            var timer       = new FakeClock();
            var taskFactory = new TaskCompletionSource <bool>();

            // Act
            Func <Task> action = () => taskFactory.Awaiting(t => (Task)t.Task).Should(timer).CompleteWithinAsync(100.Milliseconds());

            taskFactory.SetResult(true);
            timer.CompletesBeforeTimeout();

            // Assert
            action.Should().NotThrow();
        }