예제 #1
0
        public async Task Queued_initialization_command_is_executed_on_to_first_submission()
        {
            var receivedCommands = new List <IKernelCommand>();

            var kernel = new FakeKernel
            {
                Handle = (command, context) =>
                {
                    receivedCommands.Add(command);
                    return(Task.CompletedTask);
                }
            };

            using var events = kernel.KernelEvents.ToSubscribedList();

            kernel.DeferCommand(new SubmitCode("one"));
            kernel.DeferCommand(new SubmitCode("two"));

            await kernel.SendAsync(new SubmitCode("three"));

            var x = receivedCommands
                    .Select(c => c is SubmitCode submitCode ? submitCode.Code : c.ToString())
                    .Should()
                    .BeEquivalentSequenceTo("one", "two", "three");
        }
예제 #2
0
        public void Deferred_initialization_command_is_not_executed_prior_to_first_submission()
        {
            var receivedCommands = new List <IKernelCommand>();

            using var kernel = new FakeKernel
                  {
                      Handle = (command, context) =>
                      {
                          receivedCommands.Add(command);
                          return(Task.CompletedTask);
                      }
                  };

            kernel.DeferCommand(new SubmitCode("hello"));
            kernel.DeferCommand(new SubmitCode("world!"));

            receivedCommands.Should().BeEmpty();
        }