public void TooFewArguments()
        {
            var testee = new ArgumentTransitionActionHolder<IBase>(BaseAction);

            Action action = () => { testee.Execute(new object[] { }); };

            action.ShouldThrow<ArgumentException>();
        }
        public void NonMatchingType()
        {
            var testee = new ArgumentTransitionActionHolder<IBase>(BaseAction);

            Action action = () => { testee.Execute(3); };

            action.ShouldThrow<ArgumentException>();
        }
        public void DerivedType()
        {
            var testee = new ArgumentTransitionActionHolder<IBase>(BaseAction);

            testee.Execute(A.Fake<IDerived>());
        }
 public void MatchingType()
 {
     var testee = new ArgumentTransitionActionHolder<IBase>(BaseAction);
     
     testee.Execute(A.Fake<IBase>());
 }