public void IsSatisfiedWithParamsParameters()
        {
            MethodParametersCriteria criteria = new MethodParametersCriteria(new Type[] { typeof(int), typeof(string[]) });
            MethodInfo method = GetType().GetMethod("ParamsParameters");

            Assert.IsTrue(criteria.IsSatisfied(method), "Was not satisified with a method that takes a parameter array ('params') as a parameter.");
        }
        public void IsSatisfiedWithNoParametersByDefault()
        {
            MethodParametersCriteria criteria = new MethodParametersCriteria();
            MethodInfo method = GetType().GetMethod("Foo");

            Assert.IsTrue(criteria.IsSatisfied(method), "Was not satisified with a method that takes no parameters by default.");
        }
        public void IsNotSatisfiedWhenOnlyFinalParamMatches()
        {
            MethodParametersCriteria criteria = new MethodParametersCriteria(
                new Type[] { typeof(object), typeof(object), typeof(TestObject) });
            MethodInfo method = GetType().GetMethod("BoJangles");

            Assert.IsFalse(criteria.IsSatisfied(method), "Was satisified with a method that only matches on the final parameter.");
        }
        public void IsNotSatisfiedIsPolymorphic()
        {
            // i.e. derived types satisfy the criteria if a base type or interface is
            // specified as one of the parameter types
            MethodParametersCriteria criteria
                = new MethodParametersCriteria(new Type [] { typeof(TestObject) });
            MethodInfo method = GetType().GetMethod("Diddly");

            Assert.IsFalse(criteria.IsSatisfied(method), "Was not satisified with a method that takes a base class as a parameter.");
        }
        public void IsSatisfied()
        {
            MethodParametersCriteria criteria = new MethodParametersCriteria(
                new Type [] { typeof(string), typeof(DBNull), typeof(TestObject) });
            MethodInfo method = GetType().GetMethod("BoJangles");

            Assert.IsTrue(criteria.IsSatisfied(method), "Was not satisified with a method that takes a whole buncha parameters.");

            method = GetType().GetMethod("BadBobbyBoJangles");
            Assert.IsFalse(criteria.IsSatisfied(method), "Was satisified with a (bad) method that takes a whole buncha parameters.");
        }
        public void IsNotSatisfiedWithNull()
        {
            MethodParametersCriteria criteria = new MethodParametersCriteria();

            Assert.IsFalse(criteria.IsSatisfied(null), "Was satisified with null.");
        }