예제 #1
0
        public void Should_complete_the_rescue_vane()
        {
            var fail = new TestFail();
            var middle = new Test();

            var success = new TestSuccess();

            Vane<TestSubject> vane = VaneFactory.New(() => fail, x =>
                {
                    x.Rescue(() => success, r => { });
                    x.Feather(() => middle);
                });

            vane.Execute(_testSubject);

            Assert.IsTrue(middle.AssignCalled);
            Assert.IsTrue(middle.ExecuteCalled);
            Assert.IsTrue(middle.CompensateCalled);

            Assert.IsTrue(success.AssignCalled);

            Assert.IsTrue(fail.AssignCalled);
            Assert.IsTrue(fail.ExecuteCalled);
            Assert.IsTrue(fail.CompensateCalled);
        }
예제 #2
0
        public void Should_create_the_plan_for_success()
        {
            var success = new TestSuccess();

            Vane<TestSubject> vane = VaneFactory.Connect(success);
            vane.Execute(_testSubject);

            Assert.IsTrue(success.AssignCalled);
        }
예제 #3
0
        public void Should_execute_both_vanes()
        {
            var success = new TestSuccess();
            var log = new Test();
            Vane<TestSubject> vane = VaneFactory.Connect(success, log);

            vane.Execute(_testSubject);

            Assert.IsTrue(success.AssignCalled);

            Assert.IsTrue(log.AssignCalled);
            Assert.IsTrue(log.ExecuteCalled);
            Assert.IsFalse(log.CompensateCalled);
        }
예제 #4
0
        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);
        }
예제 #5
0
        public void Should_execute_three_vanes()
        {
            var success = new TestSuccess();
            var log = new TestVane();
            var log2 = new TestVane();
            Vane<TestSubject> vane = Vane.Connect(success, log, log2);

            vane.Execute(_testSubject);

            Assert.IsTrue(success.AssignCalled);

            Assert.IsTrue(log.AssignCalled);
            Assert.IsTrue(log.ExecuteCalled);
            Assert.IsFalse(log.CompensateCalled);

            Assert.IsTrue(log2.AssignCalled);
            Assert.IsTrue(log2.ExecuteCalled);
            Assert.IsFalse(log2.CompensateCalled);
        }
예제 #6
0
		public override void Visit (TestSuccess node)
		{
			;
		}
 public override void Visit(TestSuccess node)
 {
     ;
 }