public async Task ExecuteAsync_does_not_call_Commit_if_existing_transaction() { var sqlGenerator = new Mock<IUpdateSqlGenerator>().Object; var mockModificationCommandBatch = new Mock<ModificationCommandBatch>(sqlGenerator); mockModificationCommandBatch.Setup(m => m.ModificationCommands.Count).Returns(1); var mockRelationalConnection = new Mock<IRelationalConnection>(); var transactionMock = new Mock<IRelationalTransaction>(); mockRelationalConnection.Setup(m => m.Transaction).Returns(transactionMock.Object); var cancellationToken = new CancellationTokenSource().Token; var relationalTypeMapper = new ConcreteTypeMapper(); var batchExecutor = new BatchExecutorForTest(relationalTypeMapper); await batchExecutor.ExecuteAsync(new[] { mockModificationCommandBatch.Object }, mockRelationalConnection.Object, cancellationToken); mockRelationalConnection.Verify(rc => rc.OpenAsync(cancellationToken)); mockRelationalConnection.Verify(rc => rc.Close()); mockRelationalConnection.Verify(rc => rc.BeginTransaction(), Times.Never); transactionMock.Verify(t => t.Commit(), Times.Never); mockModificationCommandBatch.Verify(mcb => mcb.ExecuteAsync( It.IsAny<IRelationalTransaction>(), relationalTypeMapper, It.IsAny<DbContext>(), null, cancellationToken)); }
public async Task ExecuteAsync_does_not_call_Commit_if_existing_transaction() { var sqlGenerator = new Mock <IUpdateSqlGenerator>().Object; var mockModificationCommandBatch = new Mock <ModificationCommandBatch>(sqlGenerator); mockModificationCommandBatch.Setup(m => m.ModificationCommands.Count).Returns(1); var mockRelationalConnection = new Mock <IRelationalConnection>(); var transactionMock = new Mock <IRelationalTransaction>(); mockRelationalConnection.Setup(m => m.Transaction).Returns(transactionMock.Object); var cancellationToken = new CancellationTokenSource().Token; var relationalTypeMapper = new ConcreteTypeMapper(); var batchExecutor = new BatchExecutorForTest(relationalTypeMapper); await batchExecutor.ExecuteAsync(new[] { mockModificationCommandBatch.Object }, mockRelationalConnection.Object, cancellationToken); mockRelationalConnection.Verify(rc => rc.OpenAsync(cancellationToken)); mockRelationalConnection.Verify(rc => rc.Close()); mockRelationalConnection.Verify(rc => rc.BeginTransaction(), Times.Never); transactionMock.Verify(t => t.Commit(), Times.Never); mockModificationCommandBatch.Verify(mcb => mcb.ExecuteAsync( It.IsAny <IRelationalTransaction>(), relationalTypeMapper, It.IsAny <DbContext>(), null, cancellationToken)); }