示例#1
0
        public async Task middleware_yielding_same_thread()
        {
            var didItYield = await InvokeUntil <CodeMiddleware>(
                new YieldBefore <CodeMiddleware>(),
                new CodeMiddleware(() => Resumed = true));

            didItYield.ShouldBeTrue();
            Resumed.ShouldBeFalse();

            await Resume <CodeMiddleware>();

            Resumed.ShouldBeTrue();
        }
示例#2
0
        public async Task middleware_yielding_before_code_on_other_thread()
        {
            var didItYield = await InvokeUntil <OtherThreadMiddleware>(
                new YieldBefore <OtherThreadMiddleware>(),
                new OtherThreadMiddleware(),
                new CodeMiddleware(() => Resumed = true)
                );


            didItYield.ShouldBeTrue();
            Resumed.ShouldBeFalse();

            await Resume <OtherThreadMiddleware>();

            Resumed.ShouldBeTrue();
        }
示例#3
0
        public async Task not_yielding_different_thread()
        {
            var didItYield = await InvokeUntil <CodeMiddleware>(
                new OtherThreadMiddleware(),
                new BypassingCodeMiddleware(),
                new YieldBefore <CodeMiddleware>(),
                new CodeMiddleware(() => Resumed = true)
                );


            didItYield.ShouldBeFalse();
            Resumed.ShouldBeFalse();

            await Resume <CodeMiddleware>();

            Resumed.ShouldBeFalse();
        }