<PackageReference Include="NUnit" Version="4.3.1" />

CollectionItemsEqualConstraint

CollectionItemsEqualConstraint is the abstract base class for all collection constraints that apply some notion of item equality as a part of their operation.
using System; using System.Collections; using System.Collections.Generic; using System.Runtime.CompilerServices; namespace NUnit.Framework.Constraints { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] public abstract class CollectionItemsEqualConstraint : CollectionConstraint { private readonly NUnitEqualityComparer _comparer = new NUnitEqualityComparer(); protected bool IgnoringCase => _comparer.IgnoreCase; protected bool IgnoringWhiteSpace => _comparer.IgnoreWhiteSpace; protected bool UsingExternalComparer => _comparer.ExternalComparers.Count > 0; public CollectionItemsEqualConstraint IgnoreCase { get { _comparer.IgnoreCase = true; return this; } } public CollectionItemsEqualConstraint IgnoreWhiteSpace { get { _comparer.IgnoreWhiteSpace = true; return this; } } protected CollectionItemsEqualConstraint() { } [System.Runtime.CompilerServices.NullableContext(2)] protected CollectionItemsEqualConstraint(object arg) : base(arg) { } public CollectionItemsEqualConstraint Using(IComparer comparer) { _comparer.ExternalComparers.Add(EqualityAdapter.For(comparer)); return this; } public CollectionItemsEqualConstraint Using<[System.Runtime.CompilerServices.Nullable(2)] T>(IComparer<T> comparer) { ((ICollection<EqualityAdapter>)_comparer.ExternalComparers).Add(EqualityAdapter.For(comparer)); return this; } public CollectionItemsEqualConstraint Using<[System.Runtime.CompilerServices.Nullable(2)] T>(Comparison<T> comparison) { ((ICollection<EqualityAdapter>)_comparer.ExternalComparers).Add(EqualityAdapter.For(comparison)); return this; } public CollectionItemsEqualConstraint Using(IEqualityComparer comparer) { _comparer.ExternalComparers.Add(EqualityAdapter.For(comparer)); return this; } public CollectionItemsEqualConstraint Using<[System.Runtime.CompilerServices.Nullable(2)] T>(IEqualityComparer<T> comparer) { ((ICollection<EqualityAdapter>)_comparer.ExternalComparers).Add(EqualityAdapter.For(comparer)); return this; } public CollectionItemsEqualConstraint Using<[System.Runtime.CompilerServices.Nullable(2)] T>(Func<T, T, bool> comparer) { ((ICollection<EqualityAdapter>)_comparer.ExternalComparers).Add(EqualityAdapter.For(comparer)); return this; } internal CollectionItemsEqualConstraint Using(EqualityAdapter adapter) { _comparer.ExternalComparers.Add(adapter); return this; } public CollectionItemsEqualConstraint UsingPropertiesComparer() { _comparer.CompareProperties = true; return this; } [System.Runtime.CompilerServices.NullableContext(2)] protected bool ItemsEqual(object x, object y) { Tolerance tolerance = Tolerance.Default; return _comparer.AreEqual(x, y, ref tolerance); } protected CollectionTally Tally(IEnumerable c) { return new CollectionTally(_comparer, c); } } }