public EnrichWithTimestampCommandMiddlewareTests()
        {
            A.CallTo(() => clock.GetCurrentInstant())
            .Returns(SystemClock.Instance.GetCurrentInstant().WithoutMs());

            sut = new EnrichWithTimestampCommandMiddleware(clock);
        }
        public async Task Should_do_nothing_for_normal_command()
        {
            var sut = new EnrichWithTimestampCommandMiddleware(clock);

            await sut.HandleAsync(new CommandContext(A.Dummy <ICommand>()));

            A.CallTo(() => clock.GetCurrentInstant()).MustNotHaveHappened();
        }
        public async Task Should_set_timestamp_for_timestamp_command()
        {
            var utc = Instant.FromUnixTimeSeconds(1000);
            var sut = new EnrichWithTimestampCommandMiddleware(clock);

            A.CallTo(() => clock.GetCurrentInstant())
            .Returns(utc);

            var command = new MyCommand();

            await sut.HandleAsync(new CommandContext(command));

            Assert.Equal(utc, command.Timestamp);
        }