Files
2026-03-13 09:11:35 -05:00

31 lines
1015 B
C#

using FluentAssertions;
using FluentAssertions.Equivalency;
namespace LCU.API.Internal.DocumentLibTest;
public static class DateTimeComparison
{
public static IEquivalencyStep Truncated { get; } = new TruncatedDateTimeStep();
public static DateTime Truncate(this DateTime date) => date.AddTicks(-(date.Ticks % 10000));
private class TruncatedDateTimeStep : IEquivalencyStep
{
public EquivalencyResult Handle
(
Comparands comparands,
IEquivalencyValidationContext context,
IEquivalencyValidator nestedValidator
)
{
if (comparands.Subject is not DateTime subject || comparands.Expectation is not DateTime expectation)
return EquivalencyResult.ContinueWithNext;
subject.Truncate()
.Should()
.Be(expectation.Truncate(), context.Reason.FormattedMessage, context.Reason.Arguments);
return EquivalencyResult.AssertionCompleted;
}
}
}