public static IDeepEqualityComparer SetupComparer(IDeepEqualityComparer comparer, Func <object, object, DeepComparisonOptions, bool> comparisonFunction, out Mock <IObjectCache> mockObjectCache, out Mock <ICircularReferenceMonitor> mockCircularRefMonitor) { var mockComparisonService = new Mock <IDeepComparisonService>(); mockComparisonService.Setup( m => m.AreDeepEqual(It.IsAny <object>(), It.IsAny <object>(), It.IsAny <DeepComparisonOptions>())) .Returns(comparisonFunction); var mockPropertyCache = new Mock <IPropertyCache>(); mockPropertyCache.Setup(m => m.GetPropertyInfos(It.IsAny <Type>(), It.IsAny <PropertyComparison>())) .Returns((Type type, PropertyComparison _) => type.GetProperties()); mockObjectCache = new Mock <IObjectCache>(); mockCircularRefMonitor = new Mock <ICircularReferenceMonitor>(); comparer.SetConfiguration(new ComparerConfiguration() { DeepComparisonService = mockComparisonService.Object, PropertyCache = mockPropertyCache.Object, CircularReferenceMonitor = mockCircularRefMonitor.Object, ObjectCache = mockObjectCache.Object }); return(comparer); }
private static bool TryGetComparer(IEnumerable <IDeepEqualityComparer> comparers, Type type, out IDeepEqualityComparer comparer) { comparer = comparers.FirstOrDefault(deepEqualityComparer => deepEqualityComparer.CanCompare(type)); return(comparer != null); }
public static IDeepEqualityComparer SetupComparer(IDeepEqualityComparer comparer, Func <object, object, DeepComparisonOptions, bool> comparisonFunction) { return(SetupComparer(comparer, comparisonFunction, out _, out _)); }