public void Instantiation()
        {
            MethodGenericArgumentsCountCriteria criteria = new MethodGenericArgumentsCountCriteria();

            Assert.AreEqual(0, criteria.ExpectedGenericArgumentCount);
            criteria = new MethodGenericArgumentsCountCriteria(10);
            Assert.AreEqual(10, criteria.ExpectedGenericArgumentCount);
        }
        public void IsSatisfied()
        {
            MethodGenericArgumentsCountCriteria criteria = new MethodGenericArgumentsCountCriteria();
            MethodInfo method = GetType().GetMethod("NoGenericArgument", BindingFlags.Public | BindingFlags.Instance);

            Assert.IsTrue(criteria.IsSatisfied(method));

            criteria = new MethodGenericArgumentsCountCriteria(1);
            method   = GetType().GetMethod("OneGenericArgument", BindingFlags.Public | BindingFlags.Instance);
            Assert.IsTrue(criteria.IsSatisfied(method));

            criteria = new MethodGenericArgumentsCountCriteria(2);
            method   = GetType().GetMethod("TwoGenericArguments", BindingFlags.Public | BindingFlags.Instance);
            Assert.IsTrue(criteria.IsSatisfied(method));
        }
        public void IsNotSatisfiedWithNull()
        {
            MethodGenericArgumentsCountCriteria criteria = new MethodGenericArgumentsCountCriteria();

            Assert.IsFalse(criteria.IsSatisfied(null));
        }
        public void BailsWhenExpectedGenericArgumentCountSetToLessThanZero()
        {
            MethodGenericArgumentsCountCriteria criteria = new MethodGenericArgumentsCountCriteria();

            Assert.Throws <ArgumentOutOfRangeException>(() => criteria.ExpectedGenericArgumentCount = -12);
        }