public async Task ShouldBeClosedWhenCommitted() { var protocol = new Mock <IBoltProtocol>(); var mockConn = NewMockedConnection(protocol.Object); var tx = new AsyncTransaction(mockConn.Object, Mock.Of <ITransactionResourceHandler>()); await tx.BeginTransactionAsync(TransactionConfig.Default); await tx.CommitAsync(); tx.IsOpen.Should().BeFalse(); }
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(); mockHandler.Verify(x => x.OnTransactionDisposeAsync(It.IsAny <Bookmark>()), Times.Once); }
public async void ShouldCommitOnSuccess() { 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(); protocol.Verify(x => x.CommitTransactionAsync(It.IsAny <IConnection>(), tx)); mockHandler.Verify(x => x.OnTransactionDisposeAsync(It.IsAny <Bookmark>()), Times.Once); }
public async Task ShouldNotEnqueueMoreMessagesAfterMarkToClosedInCommitAsync() { var protocol = new Mock <IBoltProtocol>(); var mockConn = NewMockedConnection(protocol.Object); var tx = new AsyncTransaction(mockConn.Object); mockConn.Invocations.Clear(); tx.MarkToClose(); await tx.CommitAsync(); protocol.Verify(x => x.CommitTransactionAsync(It.IsAny <IConnection>(), tx), Times.Never); mockConn.Verify(x => x.SyncAsync(), Times.Never); }