public void Decorate_TxAction_Rollback_Test() { // Arrange TransactionDecorator target = new TransactionDecorator(); ConnectionDecorator cd = new ConnectionDecorator(); cd.DataSource = new TestDataSource(); FieldInfo cdField = target.GetType().GetField( "_connectionDecorator", BindingFlags.NonPublic | BindingFlags.Instance); cdField.SetValue(target, cd); // Act/Assert TestUtils.ExecuteExcectedException <QuillException>( () => { target.Decorate(connection => { throw new QuillException("TestException"); }); }); // Assert Assert.IsFalse(TestTx.IsCalledCommit); Assert.IsTrue(TestTx.IsCalledDispose); Assert.IsTrue(TestTx.IsCalledRollbacked); }
public void Decorate_TxFunc_Test() { // Arrange const int EXPECTED = 12345; TransactionDecorator target = new TransactionDecorator(); ConnectionDecorator cd = new ConnectionDecorator(); cd.DataSource = new TestDataSource(); FieldInfo cdField = target.GetType().GetField( "_connectionDecorator", BindingFlags.NonPublic | BindingFlags.Instance); cdField.SetValue(target, cd); // Act/Assert var actual = target.Decorate(tx => { Assert.IsNotNull(tx); Assert.AreEqual(ConnectionState.Open, tx.Connection.State); return(EXPECTED); }); // Assert Assert.AreEqual(EXPECTED, actual); Assert.IsTrue(TestTx.IsCalledCommit); Assert.IsTrue(TestTx.IsCalledDispose); Assert.IsFalse(TestTx.IsCalledRollbacked); }