internal static void ConfigureOrderingRules <TActual>(
     EquivalencyAssertionOptions <TActual> actualOptions,
     IEquivalencyAssertionOptions subConfigOptions)
 {
     foreach (IOrderingRule orderingRule in subConfigOptions.OrderingRules)
     {
         ((IEquivalencyAssertionOptions)actualOptions).OrderingRules.Add(
             new CollectionMemberOrderingRuleDecorator(orderingRule));
     }
 }
 internal static void ConfigureAssertionRules <TActual>(
     EquivalencyAssertionOptions <TActual> actualOptions,
     IEquivalencyAssertionOptions subConfigOptions)
 {
     //Reverse order because Using prepends
     foreach (var assertionRule in subConfigOptions.AssertionRules.Reverse())
     {
         actualOptions.Using(new CollectionMemberAssertionRuleDecorator(assertionRule));
     }
 }
 private static void ConfigureAssertionRules <TActual>(
     EquivalencyAssertionOptions <TActual> actualOptions,
     IEquivalencyAssertionOptions subConfigOptions)
 {
     // Reverse order because Using prepends
     foreach (var equivalencyStep in subConfigOptions.UserEquivalencySteps.Reverse())
     {
         actualOptions.Using(new CollectionMemberAssertionRuleDecorator(equivalencyStep));
     }
 }
        internal static void ConfigureMatchingRules <TActual>(
            EquivalencyAssertionOptions <TActual> actualOptions,
            IEquivalencyAssertionOptions subConfigOptions)
        {
            if (subConfigOptions.MatchingRules.Any())
            {
                actualOptions.WithoutMatchingRules();
            }

            //Reverse order because Using prepends
            foreach (var matchingRule in subConfigOptions.MatchingRules.Reverse())
            {
                actualOptions.Using(new CollectionMemberMatchingRuleDecorator(matchingRule));
            }
        }
        /// <summary>
        /// This converts the configuration provided provided by `ShouldAllBeEquivalentTo`
        /// so that it is usable by `ShouldBeEquivalentTo`
        /// </summary>
        internal static EquivalencyAssertionOptions <TSubject> ForCollectionMemberType <T, TSubject>(this
                                                                                                     EquivalencyAssertionOptions <TSubject> optionsToConfigure,
                                                                                                     Func <EquivalencyAssertionOptions <T>, EquivalencyAssertionOptions <T> > subConfig)
        {
            var options = EquivalencyAssertionOptions <T> .Empty();

            options = subConfig(options);

            ConfigureOrderingRules(optionsToConfigure, options);
            ConfigureMatchingRules(optionsToConfigure, options);
            ConfigureSelectionRules(optionsToConfigure, options);
            ConfigureAssertionRules(optionsToConfigure, options);

            return(optionsToConfigure);
        }
        /// <summary>
        /// This converts the configuration provided provided by `ShouldAllBeEquivalentTo`
        /// so that it is usable by `ShouldBeEquivalentTo`
        /// </summary>
        public static EquivalencyAssertionOptions <TSubject> ForCollectionMemberType <T, TSubject>(
            EquivalencyAssertionOptions <TSubject> optionsToConfigure,
            Func <EquivalencyAssertionOptions <T>, EquivalencyAssertionOptions <T> > subConfig)
        {
            EquivalencyAssertionOptions <T> options = EquivalencyAssertionOptions <T> .Default();

            options = subConfig(options);

            ConfigureOrderingRules(optionsToConfigure, options);
            ConfigureMatchingRules(optionsToConfigure, options);
            ConfigureSelectionRules(optionsToConfigure, options);
            ConfigureAssertionRules(optionsToConfigure, options);

            return(optionsToConfigure);
        }
        private static void ConfigureSelectionRules <TActual>(
            EquivalencyAssertionOptions <TActual> actualOptions,
            IEquivalencyAssertionOptions subConfigOptions)
        {
            var opts = subConfigOptions;

            if (opts.SelectionRules.Any())
            {
                actualOptions.WithoutSelectionRules();
            }

            foreach (var selectionRule in opts.SelectionRules)
            {
                actualOptions.Using(new CollectionMemberSelectionRuleDecorator(selectionRule));
            }
        }
        internal static void ConfigureSelectionRules <TActual>(
            EquivalencyAssertionOptions <TActual> actualOptions,
            IEquivalencyAssertionOptions subConfigOptions)
        {
            var opts = subConfigOptions;

            if (opts.SelectionRules.Any())
            {
                actualOptions.WithoutSelectionRules();
            }

            //Reverse order because Using prepends
            foreach (var selectionRule in opts.SelectionRules.Reverse())
            {
                actualOptions.Using(new CollectionMemberSelectionRuleDecorator(selectionRule));
            }
        }
예제 #9
0
 public Restriction(EquivalencyAssertionOptions <TSubject> options, Action <IAssertionContext <TProperty> > action)
 {
     this.options = options;
     this.action  = action;
 }
예제 #10
0
 internal NestedExclusionOptionBuilder(EquivalencyAssertionOptions <TExpectation> capturedAssertionOptions,
                                       ExcludeMemberByPathSelectionRule currentPathSelectionRule)
 {
     this.capturedAssertionOptions = capturedAssertionOptions;
     this.currentPathSelectionRule = currentPathSelectionRule;
 }