DirectoriesComparer
Comparator for two DirectoryInfos.
using System.IO;
using System.Runtime.CompilerServices;
namespace NUnit.Framework.Constraints.Comparers
{
internal static class DirectoriesComparer
{
[System.Runtime.CompilerServices.NullableContext(1)]
public static EqualMethodResult Equal(object x, object y, ref Tolerance tolerance, ComparisonState state, NUnitEqualityComparer equalityComparer)
{
DirectoryInfo directoryInfo = x as DirectoryInfo;
if (directoryInfo != null) {
DirectoryInfo directoryInfo2 = y as DirectoryInfo;
if (directoryInfo2 != null) {
if (tolerance.HasVariance)
return EqualMethodResult.ToleranceNotSupported;
if (directoryInfo.Attributes != directoryInfo2.Attributes || directoryInfo.CreationTime != directoryInfo2.CreationTime || directoryInfo.LastAccessTime != directoryInfo2.LastAccessTime)
return EqualMethodResult.ComparedNotEqual;
if (!new SamePathConstraint(directoryInfo.FullName).ApplyTo(directoryInfo2.FullName).IsSuccess)
return EqualMethodResult.ComparedNotEqual;
return EqualMethodResult.ComparedEqual;
}
}
return EqualMethodResult.TypesNotSupported;
}
}
}