示例#1
0
        public static void IfCollectionsAreNotEquivalent <T>(
            [CanBeNull, AssertionCondition(AssertionConditionType.IS_NOT_NULL)] IEnumerable <T> collection1,
            [CanBeNull, AssertionCondition(AssertionConditionType.IS_NOT_NULL)] IEnumerable <T> collection2,
            [NotNull] string message,
            [NotNull] params object[] args)
        {
            Fail.RequiresMessage(message, args);
            Fail.IfArgumentNull(collection1, nameof(collection1));
            Fail.IfArgumentNull(collection2, nameof(collection2));

            IEnumerable <T> list1 = collection1 as IList <T> ?? collection1.ToList();
            IEnumerable <T> list2 = collection2 as IList <T> ?? collection2.ToList();

            int collection1Count = list1.Count();
            int collection2Count = list2.Count();

            if (collection1Count != collection2Count)
            {
                throw Fail.Because(message, args);
            }

            bool areEquivalent = list1.Intersect(list2)
                                 .Count() == collection1Count;

            Fail.IfFalse(areEquivalent, message, args);
        }
示例#2
0
        public static void IfNotEqual <TExpected, TActual>([CanBeNull] TExpected expected, [CanBeNull] TActual actual, [NotNull] string message, [NotNull] params object[] args)
        {
            Fail.RequiresMessage(message, args);

            if (object.Equals(expected, actual) == false)
            {
                throw Fail.Because(message, args);
            }
        }
        public static void IfNullOrNotCastable <T>(
            [CanBeNull][NoEnumeration] object value,
            [NotNull] string message,
            [NotNull] params object[] args)
        {
            Fail.RequiresMessage(message, args);

            Fail.IfNull(value, message, args);
            Fail.IfNotCastable(value, typeof(T), message, args);
        }
        public static void IfNotNull <T>([CanBeNull][NoEnumeration] T value, [NotNull] string message, [NotNull] params object[] args)
        {
            // TODO:mace (from:mace on:17-11-2016) This method should be splitted to 5 generic methods to prevent unnecesesary memory allocation
            Fail.RequiresMessage(message, args);

            if (value != null)
            {
                throw Fail.Because(message, args);
            }
        }
        public static void IfNull <T>(
            [CanBeNull][AssertionCondition(AssertionConditionType.IS_NOT_NULL)] T value,
            [NotNull] string message)
        {
            Fail.RequiresMessage(message);

            if (value == null)
            {
                throw Fail.Because(message);
            }
        }
        public static void IfFalse(
            [AssertionCondition(AssertionConditionType.IS_FALSE)] bool value,
            [NotNull] string message)
        {
            Fail.RequiresMessage(message);

            if (value == false)
            {
                throw Fail.Because(message);
            }
        }
示例#7
0
        public static void IfEqual <TExpected, TActual>([CanBeNull] TExpected unexpected,
                                                        [CanBeNull] TActual actual,
                                                        [NotNull] string message)
        {
            Fail.RequiresMessage(message);

            if (object.Equals(unexpected, actual))
            {
                throw Fail.Because(message);
            }
        }
        public static void IfTrue <TArgument1>(
            [AssertionCondition(AssertionConditionType.IS_TRUE)] bool value,
            [NotNull] string message,
            [CanBeNull] TArgument1 arg1)
        {
            Fail.RequiresMessage(message);

            if (value)
            {
                throw Fail.Because(message, arg1);
            }
        }
        public static void IfTrue(
            [AssertionCondition(AssertionConditionType.IS_TRUE)] bool value,
            [NotNull] string message,
            [NotNull] params object[] args)
        {
            Fail.RequiresMessage(message, args);

            if (value)
            {
                throw Fail.Because(message, args);
            }
        }
        public static void IfNull <T, TArgument1, TArgument2>(
            [CanBeNull][AssertionCondition(AssertionConditionType.IS_NOT_NULL)] T value,
            [NotNull] string message,
            [CanBeNull] TArgument1 arg1,
            [CanBeNull] TArgument2 arg2)
        {
            Fail.RequiresMessage(message);

            if (value == null)
            {
                throw Fail.Because(message, arg1, arg2);
            }
        }
        public static void IfFalse <TArgument1, TArgument2>(
            [AssertionCondition(AssertionConditionType.IS_FALSE)] bool value,
            [NotNull] string message,
            [CanBeNull] TArgument1 arg1,
            [CanBeNull] TArgument2 arg2)
        {
            Fail.RequiresMessage(message);

            if (value == false)
            {
                throw Fail.Because(message, arg1, arg2);
            }
        }
示例#12
0
        public static void IfCollectionContains <T>(
            [CanBeNull, AssertionCondition(AssertionConditionType.IS_NOT_NULL)] IEnumerable <T> collection,
            [NotNull] Func <T, bool> func,
            [NotNull] string message,
            [NotNull] params object[] args)
        {
            Fail.RequiresMessage(message, args);

            Fail.IfArgumentNull(collection, nameof(collection));
            T element = collection.FirstOrDefault(func);

            Fail.IfNotNull(element, message, args);
        }
        public static void IfWhitespace(
            [CanBeNull, AssertionCondition(AssertionConditionType.IS_NOT_NULL)] string value,
            [NotNull] string message,
            [NotNull] params object[] args)
        {
            Fail.RequiresMessage(message, args);

            Fail.IfNull(value, message, args);

            if (string.IsNullOrWhiteSpace(value))
            {
                throw Fail.Because(message, args);
            }
        }
        public static T FailIfNull <T>(
            [CanBeNull][AssertionCondition(AssertionConditionType.IS_NOT_NULL)][NoEnumeration] this T value,
            [NotNull] string message,
            [NotNull] params object[] args)
        {
            Fail.RequiresMessage(message, args);

            if (value == null)
            {
                throw Fail.Because(message, args);
            }

            return(value);
        }
示例#15
0
        public static void IfEqual <TExpected, TActual, TArgument1, TArgument2, TArgument3>([CanBeNull] TExpected unexpected,
                                                                                            [CanBeNull] TActual actual,
                                                                                            [NotNull] string message,
                                                                                            [CanBeNull] TArgument1 arg1,
                                                                                            [CanBeNull] TArgument2 arg2,
                                                                                            [CanBeNull] TArgument3 arg3)
        {
            Fail.RequiresMessage(message);

            if (object.Equals(unexpected, actual))
            {
                throw Fail.Because(message, arg1, arg2, arg3);
            }
        }
        public static void IfEmpty(
            [CanBeNull, AssertionCondition(AssertionConditionType.IS_NOT_NULL)] string value,
            [NotNull] string message,
            [NotNull] params object[] args)
        {
            Fail.RequiresMessage(message, args);

            Fail.IfNull(value, message, args);

            if (value.Length == 0)
            {
                throw Fail.Because(message, args);
            }
        }
        public static void IfNotCastable([CanBeNull][NoEnumeration] object value, [NotNull] Type expectedType, [NotNull] string message, [NotNull] params object[] args)
        {
            Fail.RequiresType(expectedType);
            Fail.RequiresMessage(message, args);

            if (value == null)
            {
                return;
            }

            if (expectedType.IsInstanceOfType(value) == false)
            {
                throw Fail.Because(message, args);
            }
        }
示例#18
0
        public static DesignByContractViolationException Because([NotNull][System.Diagnostics.CodeAnalysis.NotNull] string message)
        {
            Fail.RequiresMessage(message);

            return(new DesignByContractViolationException(message));
        }
示例#19
0
        public static void IfEmpty(Guid value, [NotNull] string message, [NotNull] params object[] args)
        {
            Fail.RequiresMessage(message, args);

            Fail.IfEqual(Guid.Empty, value, message, args);
        }
示例#20
0
        public static DesignByContractViolationException Because([NotNull] string message)
        {
            Fail.RequiresMessage(message);

            return(new DesignByContractViolationException(message));
        }