示例#1
0
 public void SetUp()
 {
     _factoryMock        = Substitute.For <IComparersFactory>();
     _parentComparerMock = Substitute.ForPartsOf <BaseComparer>(new ComparisonSettings(), null, _factoryMock);
     _comparer           =
         Substitute.ForPartsOf <AbstractComparer>(new ComparisonSettings(), _parentComparerMock, _factoryMock);
 }
示例#2
0
 protected AbstractComparer(ComparisonSettings settings, BaseComparer parentComparer, IComparersFactory factory)
     : base(settings, parentComparer, factory)
 {
 }
 public EnumerablesComparer(ComparisonSettings settings, BaseComparer parentComparer, IComparersFactory factory)
     : base(settings, parentComparer, factory)
 {
 }
示例#4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Comparer" /> class.
 /// </summary>
 /// <param name="settings">Comparison Settings.</param>
 /// <param name="parentComparer">Parent Comparer. Is used to copy DefaultValueComparer and Overrides. Null by default.</param>
 /// <param name="factory">Factory to create comparers in case of some members of the objects will need it.</param>
 public Comparer(ComparisonSettings settings = null, BaseComparer parentComparer = null, IComparersFactory factory = null) : base(settings, parentComparer, factory)
 {
 }
 public HashSetsComparer(ComparisonSettings settings, BaseComparer parentComparer, IComparersFactory factory)
     : base(settings, parentComparer, factory)
 {
 }
 public EnumerablesComparer(ComparisonSettings settings, BaseComparer parentComparer, IComparersFactory factory)
     : base(settings, parentComparer, factory)
 {
     _comparer = Factory.GetObjectsComparer <T>(Settings, this);
 }
 public HashSetsComparer(ComparisonSettings settings, BaseComparer parentComparer, IComparersFactory factory)
     : base(settings, parentComparer, factory)
 {
     _comparer = new Comparer <T>(Settings, this);
 }
 public MultidimensionalArrayComparer(ComparisonSettings settings, BaseComparer parentComparer, IComparersFactory factory)
     : base(settings, parentComparer, factory)
 {
     _comparer = Factory.GetObjectsComparer <T>(Settings, this);
 }
示例#9
0
 public MultidimensionalArraysComparer(ComparisonSettings settings, BaseComparer parentComparer,
                                       IComparersFactory factory)
     : base(settings, parentComparer, factory)
 {
 }
示例#10
0
 protected BaseComparer(ComparisonSettings settings, BaseComparer parentComparer, IComparersFactory factory)
 {
     Factory              = factory ?? new ComparersFactory();
     Settings             = settings ?? new ComparisonSettings();
     DefaultValueComparer = new DefaultValueComparer();
     if (parentComparer != null)
     {
         DefaultValueComparer = parentComparer.DefaultValueComparer;
         OverridesCollection.Merge(parentComparer.OverridesCollection);
     }
 }
 public ExpandoObjectComparer(ComparisonSettings settings, BaseComparer parentComparer, IComparersFactory factory)
     : base(settings, parentComparer, factory)
 {
 }
示例#12
0
 public CustomFormulaItemsComparer(ComparisonSettings settings, BaseComparer parentComparer, IComparersFactory factory) : base(settings, parentComparer, factory)
 {
 }
示例#13
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Comparer{T}" /> class.
        /// </summary>
        /// <param name="settings">Comparison Settings.</param>
        /// <param name="parentComparer">Parent Comparer. Is used to copy DefaultValueComparer and Overrides. Null by default.</param>
        /// <param name="factory">Factory to create comparers in case of some members of the objects will need it.</param>
        public Comparer(ComparisonSettings settings = null, BaseComparer parentComparer = null, IComparersFactory factory = null)
            : base(settings, parentComparer, factory)
        {
            var properties = typeof(T).GetTypeInfo().GetProperties().Where(p =>
                                                                           p.CanRead &&
                                                                           p.GetGetMethod(true).IsPublic &&
                                                                           p.GetGetMethod(true).GetParameters().Length == 0 &&
                                                                           !p.GetGetMethod(true).IsStatic).ToList();
            var fields = typeof(T).GetTypeInfo().GetFields().Where(f =>
                                                                   f.IsPublic && !f.IsStatic).ToList();

            _members = properties.Union(fields.Cast <MemberInfo>()).ToList();
            _conditionalComparers = new List <IComparerWithCondition>
            {
                new MultidimensionalArraysComparer(Settings, this, Factory),
                new ExpandoObjectComparer(Settings, this, Factory),
                new DynamicObjectComparer(Settings, this, Factory),
                new CompilerGeneratedObjectComparer(Settings, this, Factory),
                new GenericEnumerablesComparer(Settings, this, Factory),
                new EnumerablesComparer(Settings, this, Factory),
            };
        }
示例#14
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Comparer{T}" /> class.
        /// </summary>
        /// <param name="settings">Comparison Settings.</param>
        /// <param name="parentComparer">Parent Comparer. Is used to copy DefaultValueComparer and Overrides. Null by default.</param>
        /// <param name="factory">Factory to create comparers in case of some members of the objects will need it.</param>
        public Comparer(ComparisonSettings settings = null, BaseComparer parentComparer = null, IComparersFactory factory = null)
            : base(settings, parentComparer, factory)
        {
            var properties = GetProperties(typeof(T), new List <Type>());
            var fields     = typeof(T).GetTypeInfo().GetFields().Where(f =>
                                                                       f.IsPublic && !f.IsStatic).ToList();

            _members = properties.Union(fields.Cast <MemberInfo>()).ToList();
            _conditionalComparers = new List <IComparerWithCondition>
            {
                new MultidimensionalArraysComparer(Settings, this, Factory),
                new ExpandoObjectComparer(Settings, this, Factory),
                new DynamicObjectComparer(Settings, this, Factory),
                new CompilerGeneratedObjectComparer(Settings, this, Factory),
                new HashSetsComparer(Settings, this, Factory),
                new GenericEnumerablesComparer(Settings, this, Factory),
                new EnumerablesComparer(Settings, this, Factory),
                new TypesComparer(Settings, this, Factory)
            };

            // Additional value comparers
            AddComparerOverride <StringBuilder>(new ToStringComparer <StringBuilder>());
            AddComparerOverride <Uri>(new UriComparer());
        }
示例#15
0
 public CompilerGeneratedObjectComparer(ComparisonSettings settings, BaseComparer parentComparer, IComparersFactory factory)
     : base(settings, parentComparer, factory)
 {
 }