public async Task ShouldNotEnqueueMoreMessagesAfterMarkToClosed()
            {
                var protocol = new Mock <IBoltProtocol>();
                var mockConn = NewMockedConnection(protocol.Object);
                var tx       = new AsyncTransaction(mockConn.Object);

                mockConn.Invocations.Clear();

                tx.MarkToClose();
                await tx.CloseAsync();

                protocol.Verify(x => x.RollbackTransactionAsync(It.IsAny <IConnection>()), Times.Never);
                mockConn.Verify(x => x.SyncAsync(), Times.Never);
            }
            public async Task ShouldNotDisposeIfAlreadyClosed()
            {
                var protocol    = new Mock <IBoltProtocol>();
                var mockConn    = NewMockedConnection(protocol.Object);
                var mockHandler = new Mock <ITransactionResourceHandler>();
                var tx          = new AsyncTransaction(mockConn.Object, mockHandler.Object);

                mockConn.Invocations.Clear();
                await tx.CommitAsync();

                await tx.CloseAsync();

                mockHandler.Verify(x => x.OnTransactionDisposeAsync(It.IsAny <Bookmark>()), Times.Once);
            }