public void cannot_commit_missing_transactions()
        {
            var sut = new TransactionManager();

            Action actual = () => sut.Commit("abc");

            actual.ShouldThrow<InvalidOperationException>();
        }
        public void transaction_id_should_be_able_to_Be_reused_after_commit()
        {
            var sut = new TransactionManager();
            sut.Begin("abc");
            sut.Commit("abc");

            sut.Begin("abc");

        }
        public void can_commit_existing_transaction()
        {
            var sut = new TransactionManager();
            sut.Begin("abd");

            sut.Commit("abd");

        }
        public void commit_invokes_all_transaction_actions()
        {
            var first = false;
            var second = false;
            var sut = new TransactionManager();
            sut.Begin("abd");
            sut.Enqueue("abd", delegate { first = true; },() => { });
            sut.Enqueue("abd", delegate { second = true; }, () => { });

            sut.Commit("abd");

            first.Should().BeTrue();
            second.Should().BeTrue();
        }