Beispiel #1
0
        public void WhenChainingTypedTasksWithThenShouldChain()
        {
            // Arrange
            var stringBuilder = new StringBuilder();
            var s             = new TaskImmediateScheduler();

            // Act
            Task.Factory.StartNew(() => stringBuilder.Append("Hello"), s)
            .Then(sb => sb.Append(" "), s)
            .Then(sb => sb.Append("World"), s);

            // Assert
            Assert.That(stringBuilder.ToString(), Is.EqualTo("Hello World"));
        }
Beispiel #2
0
        public void WhenChainingTypedTasksWithExceptionShouldCatch()
        {
            // Arrange
            var stringBuilder = new StringBuilder();
            var s             = new TaskImmediateScheduler();

            // Act
            Task.Factory.StartNew(() => stringBuilder.Append("Hello"), s)
            .Then(sb =>
            {
                throw new Exception(" Exception!");
            }, s)
            .Then <StringBuilder>(sb => sb.Append("World"), s)
            .Catch(ex => stringBuilder.Append(ex.Flatten().InnerExceptions.First().Message), s);

            // Assert
            Assert.That(stringBuilder.ToString(), Is.EqualTo("Hello Exception!"));
        }
Beispiel #3
0
        public void WhenChainingTypedTasksWithReturnValueAndExceptionShouldCatch()
        {
            // Arrange
            var stringBuilder = new StringBuilder();
            var s             = new TaskImmediateScheduler();

            // Act
            Task.Factory.StartNew(() => stringBuilder.Append("Hello"), s)
            .Then(sb =>
            {
                throw new Exception(" Exception!");
            }, s)
            // ReSharper disable once RedundantTypeArgumentsOfMethod
            .Then <StringBuilder, StringBuilder>(sb =>
            {
                // ReSharper disable once ConvertToLambdaExpression
                return(sb.Append("World"));
            }, s)
            .Catch(ex => stringBuilder.Append(ex.Flatten().InnerExceptions.First().Message), s);

            // Assert
            Assert.That(stringBuilder.ToString(), Is.EqualTo("Hello Exception!"));
        }