/// <summary> /// </summary> /// <typeparam name="T"></typeparam> /// <param name="check"></param> /// <returns></returns> public static IMembersSelection Considering <T>(this ICheck <T> check) { var checker = ExtensibilityHelper.ExtractChecker(check); var fieldsWrapper = ReflectionWrapper.BuildFromInstance(checker.Value?.GetType() ?? typeof(T), checker.Value, new Criteria(BindingFlags.Instance)); var checkWithConsidering = new CheckWithConsidering(fieldsWrapper, checker.Negated); return(checkWithConsidering); }
/// <summary> /// Checks that the actual actualValue doesn't have all fields equal to the expected actualValue ones. /// </summary> /// <typeparam name="T"> /// Type of the checked actualValue. /// </typeparam> /// <param name="check"> /// The fluent check to be extended. /// </param> /// <param name="expected"> /// The expected actualValue. /// </param> /// <returns> /// A check link. /// </returns> /// <exception cref="FluentCheckException"> /// The actual actualValue has all fields equal to the expected actualValue ones. /// </exception> /// <remarks> /// The comparison is done field by field. /// </remarks> public static ICheckLink <ICheck <T> > HasNotFieldsWithSameValues <T>(this ICheck <T> check, object expected) { var checker = ExtensibilityHelper.ExtractChecker(check); var fieldsWrapper = ReflectionWrapper.BuildFromInstance(typeof(T), checker.Value, new Criteria(BindingFlags.Instance)); var checkWithConsidering = new CheckWithConsidering(fieldsWrapper, checker.Negated).All.Fields; ReflectionWrapperChecks.FieldEqualTest(checkWithConsidering, expected, false); return(ExtensibilityHelper.BuildCheckLink(check)); }