Я делаю юнит-тест для запроса с датами. Эти даты имеют одинаковые временные метки, и тест не пройден. С разными временными метками тест работает хорошо, но с одинаковыми временными метками тест возвращает результат ошибки.
Код для теста:
[Fact]
public void ShouldHaveValidationSuccessWhenStartDateIsLessOrEqualToFinishDate()
{
//Arrange
var request = new RegisterRequest { FinishDate = DateTimeOffset.UtcNow, StartDate = DateTimeOffset.UtcNow };
var sut = new RegisterRequestValidator();
//Act
var result = sut.TestValidate(request);
//Assert
result.ShouldNotHaveValidationErrorFor(x => x.StartDate);
}
Код для валидатора:
public RegisterRequestValidator()
{
RuleFor(req => req.StartDate).LessThanOrEqualTo(req => req.FinishDate).When(HasStartDate);
}
protected bool HasStartDate(RegisterRequest req) => req.StartDate != null;
Код для RegisterRequest:
public sealed class RegisterRequest : IRequest<OperationResult<IQueryable<EntityViewModel>>>
{
public DateTimeOffset? StartDate { get; set; }
public DateTimeOffset? FinishDate { get; set; }
}
Я получаю ошибку
Message:
FluentValidation.TestHelper.ValidationTestException : Expected no validation errors for property StartDate
----
Validation Errors:
[0]: 'Start Date' must be less than or equal to '07/11/2019 12:50:58 +00:00'.
Почему это происходит?