public void SeekHappyPath()
        {
            var       fakeReceiver = new FakeKafkaReceiver();
            IReceiver receiver     = new ReceiverDecorator(fakeReceiver);

            var expectedTimestamp = DateTime.UtcNow;

            receiver.Seek(expectedTimestamp);

            var timestamp =
                fakeReceiver.SeekInvocations.Should().ContainSingle()
                .Subject;

            timestamp.Should().Be(expectedTimestamp);

            fakeReceiver.ReplayInvocations.Should().BeEmpty();
        }
        public async Task ReplayExtensionMethodHappyPath()
        {
            var       fakeReceiver = new FakeKafkaReceiver();
            IReceiver receiver     = new ReceiverDecorator(fakeReceiver);

            var expectedStart = DateTime.Now;
            var expectedEnd   = DateTime.UtcNow;
            Func <IReceiverMessage, Task> expectedCallback = message => Task.CompletedTask;

            await receiver.Replay(expectedStart, expectedEnd, expectedCallback);

            var(start, end, callback) =
                fakeReceiver.ReplayInvocations.Should().ContainSingle()
                .Subject;

            start.Should().Be(expectedStart);
            end.Should().Be(expectedEnd);
            callback.Should().BeSameAs(expectedCallback);

            fakeReceiver.SeekInvocations.Should().BeEmpty();
        }