public void WhenTransactionExists_AndTransactionHandlerUsed_AndTransactionRollback_ShouldInvokeHandler() { // arrange var sut = Create(); TransactionStatus? transactionStatus = null; // act using (TransactionScopes.ReadCommitted()) { sut.OnTransactionCompleted( e => transactionStatus = e.Transaction.TransactionInformation.Status); } // assert Expect(transactionStatus).To.Equal(TransactionStatus.Aborted); }
public void ShouldNotThrowIfAvailable() { // Arrange var names = GetRandomArray <string>(5); var cache = new NoCache(); var executor = new CommandExecutor( new QueryExecutor(cache), cache ); var result = new List <int>(); Expect(TimeSpan.Zero.Ticks) .To.Equal(0, () => $"WTF: expected TimeSpan.Zero to be zero, but it's {TimeSpan.Zero}"); // Act using (var scope = TransactionScopes.ReadCommitted(TransactionScopeOption.RequiresNew ) ) { Expect(() => { result.AddRange(executor.Execute(new CreatePeople(names))); }).Not.To.Throw(); scope.Complete(); } // Assert Expect(result).Not.To.Be.Empty(); Expect(result).To.Contain.Exactly(names.Length).Items(); var queryExecutor = new QueryExecutor(cache); result.ForEach(id => { var inDb = queryExecutor.Execute(new FindPersonById(id)); Expect(names).To.Contain(inDb.Name); }); }