public void AddMemberOfEnumValidationPredicate_WhenTEnumIsEnumeration()
        {
            // Arrange.
            ValidatableArgument <CustomEnum> argument =
                new ValidatableArgument <CustomEnum>("argument", CustomEnum.Value1);

            // Act.
            argument.IsMemberOfEnum();

            // Assert.
            Assert.AreEqual(1, argument.ValidationPredicates.Count());
            Assert.IsInstanceOfType(argument.ValidationPredicates.First(), typeof(MemberOfEnumValidationPredicate <CustomEnum>));
        }
        public void ThrowArgumentException_WhenTEnumIsNotEnumeration()
        {
            // Arrange.
            ValidatableArgument <CustomIConvertibleStruct> argument =
                new ValidatableArgument <CustomIConvertibleStruct>("argument", default(CustomIConvertibleStruct));

            // Act & Assert.
            Ensure.ArgumentExceptionIsThrown(
                () =>
            {
                argument.IsMemberOfEnum();
            }, "TEnum");
        }
        public void AddMemberOfEnumValidationPredicate_WhenTEnumIsEnumeration()
        {
            // Arrange.
            ValidatableArgument<CustomEnum> argument =
                new ValidatableArgument<CustomEnum>("argument", CustomEnum.Value1);

            // Act.
            argument.IsMemberOfEnum();

            // Assert.
            Assert.AreEqual(1, argument.ValidationPredicates.Count());
            Assert.IsInstanceOfType(argument.ValidationPredicates.First(), typeof(MemberOfEnumValidationPredicate<CustomEnum>));
        }
        public void ThrowArgumentException_WhenTEnumIsNotEnumeration()
        {
            // Arrange.
            ValidatableArgument<CustomIConvertibleStruct> argument =
                new ValidatableArgument<CustomIConvertibleStruct>("argument", default(CustomIConvertibleStruct));

            // Act & Assert.
            Ensure.ArgumentExceptionIsThrown(
                () =>
                {
                    argument.IsMemberOfEnum();
                }, "TEnum");
        }
        public void RunInExpectedTime()
        {
            // Arrange.
            ValidatableArgument <CustomEnum> argument =
                new ValidatableArgument <CustomEnum>("argument", CustomEnum.Value1);

            // Act & Assert.
            Ensure.ActionRunsInExpectedTime(
                () =>
            {
                argument.IsMemberOfEnum();
            },
                PerformanceConstants.ValidationPredicateExecutionCount,
                PerformanceConstants.ValidationPredicateTotalExecutionExpectedTime);
        }
        public void RunInExpectedTime()
        {
            // Arrange.
            ValidatableArgument<CustomEnum> argument =
                new ValidatableArgument<CustomEnum>("argument", CustomEnum.Value1);

            // Act & Assert.
            Ensure.ActionRunsInExpectedTime(
                () =>
                {
                    argument.IsMemberOfEnum();
                },
                PerformanceConstants.ValidationPredicateExecutionCount,
                PerformanceConstants.ValidationPredicateTotalExecutionExpectedTime);
        }