31 lines
1015 B
C#
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;
|
|
}
|
|
}
|
|
} |