public async Task GivenASequenceWhenAnExceptionOccursThenTheExceptionIsThrownAsync()
        {
            var reconciler = new TestableSynchronousReconciliationOrchestrator();

            _ = await Assert.ThrowsAsync <NotImplementedException>(
                () => reconciler.ReconcileAsync());
        }
        public async Task GivenASequenceThenTheReconcilerIsInvokedWithTheSequenceAsync()
        {
            bool wasInvoked = false;
            var  expected   = new Mock <IEventSequence>();

            var reconciler = new TestableSynchronousReconciliationOrchestrator(reconciler: actual =>
            {
                wasInvoked = true;

                Assert.Equal(expected.Object, actual);
            });

            await reconciler.ReconcileAsync(target : expected.Object);

            Assert.True(wasInvoked);
        }