public void TaskFromStateServer_TaskFromCanceled_NoErrors()
        {
            var logger = Substitute.For <ILogger>();
            var state  = new TaskFromStateServer.State(wb =>
            {
                wb.Release();
                return(Task.FromCanceled(new CancellationToken(true)));
            });

            using (var waitBlock = new WaitBlock())
            {
                var waitBlockLocal = new[] { waitBlock };

                using (var context = ApplicationContext.Create(application => application
                                                               .ConfigureForUnitTest()
                                                               .WithWaitBlock(waitBlockLocal[0])
                                                               .UseLiteServer(liteServer => liteServer
                                                                              .AddServer <TaskFromStateServer>())
                                                               .Services(services => services
                                                                         .Advanced(advanced => advanced
                                                                                   .Register(kernel => logger)
                                                                                   .Register(kernel => state)))))
                {
                    context.Execute(nameof(LiteServerHost));
                }
            }
        }
        public void TaskFromStateServer_ThrowsBeforeCreatingTask_EnsureIsLogged()
        {
            var exception = new InvalidOperationException("Some message");

            var logger = Substitute.For <ILogger>();
            var state  = new TaskFromStateServer.State(wb =>
            {
                wb.Release();
                throw exception;
            });

            using (var waitBlock = new WaitBlock())
            {
                var waitBlockLocal = new[] { waitBlock };

                using (var context = ApplicationContext.Create(application => application
                                                               .ConfigureForUnitTest()
                                                               .WithWaitBlock(waitBlockLocal[0])
                                                               .UseLiteServer(liteServer => liteServer
                                                                              .AddServer <TaskFromStateServer>())
                                                               .Services(services => services
                                                                         .Advanced(advanced => advanced
                                                                                   .Register(kernel => logger)
                                                                                   .Register(kernel => state)))))
                {
                    context.Execute(nameof(LiteServerHost));
                }
            }

            logger.Received(1).LogError(Arg.Is(exception));
        }