public void Should_execute_both_vanes() { var success = new TestSuccess(); var log = new TestVane(); Vane<TestSubject> vane = Vane.Connect(success, log); vane.Execute(_testSubject); Assert.IsTrue(success.AssignCalled); Assert.IsTrue(log.AssignCalled); Assert.IsTrue(log.ExecuteCalled); Assert.IsFalse(log.CompensateCalled); }
public void Should_execute_and_compensate_on_fail() { var fail = new TestFail(); var log = new TestVane(); Vane<TestSubject> vane = Vane.Connect(fail, log); var exception = Assert.Throws<AgendaExecutionException>(() => vane.Execute(_testSubject)); Assert.AreEqual(0, exception.InnerExceptionCount); Assert.IsTrue(fail.AssignCalled); Assert.IsTrue(fail.ExecuteCalled); Assert.IsFalse(fail.CompensateCalled); Assert.IsTrue(log.AssignCalled); Assert.IsTrue(log.ExecuteCalled); Assert.IsTrue(log.CompensateCalled); }
public void Should_complete_the_rescue_vane() { var success = new TestSuccess(); var fail = new TestFail(); var middle = new TestVane(); var rescue = new Rescue<TestSubject>(success); Vane<TestSubject> vane = Vane.Connect(fail, rescue, middle); Assert.IsTrue(vane.Execute(_testSubject)); Assert.IsTrue(fail.AssignCalled); Assert.IsTrue(fail.ExecuteCalled); Assert.IsFalse(fail.CompensateCalled); Assert.IsTrue(middle.AssignCalled); Assert.IsTrue(middle.ExecuteCalled); Assert.IsTrue(middle.CompensateCalled); Assert.IsTrue(success.AssignCalled); }