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); }
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); } }
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); } }
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); }
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); } }
public static DesignByContractViolationException Because([NotNull][System.Diagnostics.CodeAnalysis.NotNull] string message) { Fail.RequiresMessage(message); return(new DesignByContractViolationException(message)); }
public static void IfEmpty(Guid value, [NotNull] string message, [NotNull] params object[] args) { Fail.RequiresMessage(message, args); Fail.IfEqual(Guid.Empty, value, message, args); }
public static DesignByContractViolationException Because([NotNull] string message) { Fail.RequiresMessage(message); return(new DesignByContractViolationException(message)); }