Beispiel #1
0
        public void IsAsync()
        {
            IMethodInvocation methodInvocation = null;

            Should.Throw <ArgumentNullException>(() => methodInvocation.IsAsync());
            methodInvocation = Substitute.For <IMethodInvocation>();
            methodInvocation.Configure().Method.Returns(((Func <Task <int> >)(() => Task.FromResult(1))).Method);
            Should.NotThrow(() => methodInvocation.IsAsync()).ShouldBeTrue();
            methodInvocation.Configure().Method.Returns(((Func <int>)(() => 1)).Method);
            methodInvocation.Configure().ReturnValue.Returns(Task.FromResult(1));
            Should.NotThrow(() => methodInvocation.IsAsync()).ShouldBeTrue();
            methodInvocation.Configure().ReturnValue.Returns(1);
            Should.NotThrow(() => methodInvocation.IsAsync()).ShouldBeFalse();
            methodInvocation.Configure().ReturnValue.Returns(Task.CompletedTask);
            Should.NotThrow(() => methodInvocation.IsAsync()).ShouldBeTrue();
            methodInvocation.Configure().ReturnValue.Returns(new ValueTask <int>(1));
            Should.NotThrow(() => methodInvocation.IsAsync()).ShouldBeTrue();
            methodInvocation.Configure().ReturnValue.Returns(new ValueTask());
            Should.NotThrow(() => methodInvocation.IsAsync()).ShouldBeTrue();
        }