public void ThrowsException_WhenTryingToHandleNullAsCommand()
        {
            var handler = new Func <ValueCommand, Task>(cmd => Task.CompletedTask);

            var testee = new CommandSubscription <ValueCommand>(handler);

            Func <Task> func = () => testee.HandleAsync(null);

            func.ShouldThrow <ArgumentNullException>();
        }
        public async Task ShouldHandleCommand()
        {
            const int Value = 42;

            var expectedValue = 0;
            var valueCommand  = new ValueCommand(Value);

            var handler = new Func <ValueCommand, Task>(cmd =>
            {
                expectedValue = cmd.Value;
                return(Task.CompletedTask);
            });

            var testee = new CommandSubscription <ValueCommand>(handler);

            await testee.HandleAsync(valueCommand).ConfigureAwait(false);

            expectedValue.Should().Be(Value);
        }