< Summary - Heimdall API

Information
Class: ArturRios.Heimdall.Query.Input.Validation.ListAuditLogQueryValidator
Assembly: ArturRios.Heimdall.Query
File(s): /home/runner/work/heimdall-api/heimdall-api/src/Application/ArturRios.Heimdall.Query/Input/Validation/ListAuditLogQueryValidator.cs
Line coverage
100%
Covered lines: 9
Uncovered lines: 0
Coverable lines: 9
Total lines: 26
Line coverage: 100%
Branch coverage
100%
Covered branches: 4
Total branches: 4
Branch coverage: 100%
Method coverage
100%
Covered methods: 1
Fully covered methods: 1
Total methods: 1
Method coverage: 100%
Full method coverage: 100%

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor()100%44100%

File(s)

/home/runner/work/heimdall-api/heimdall-api/src/Application/ArturRios.Heimdall.Query/Input/Validation/ListAuditLogQueryValidator.cs

#LineLine coverage
 1using ArturRios.Heimdall.Shared.Messages;
 2using ArturRios.Heimdall.Shared.Time;
 3using FluentValidation;
 4
 5namespace ArturRios.Heimdall.Query.Input.Validation;
 6
 7/// <summary>Input validation for <see cref="ListAuditLogQuery" /> (UC-48 AF-48a, NFR-10).</summary>
 8public class ListAuditLogQueryValidator : PaginatedQueryValidator<ListAuditLogQuery>
 9{
 10    /// <summary>Matches <c>AuditLog.Action</c>'s <c>[MaxLength]</c>: a longer filter could never match a row.</summary>
 11    private const int MaxActionLength = 200;
 12
 3813    public ListAuditLogQueryValidator()
 14    {
 15        // Compared as UTC on both sides, so an offset-less bound and a "Z" bound compare as the
 16        // handler will filter with them.
 3817        RuleFor(query => query.To)
 3818            .Must((query, to) =>
 3819                to is null || query.From is null || UtcInstant.Of(to.Value) >= UtcInstant.Of(query.From.Value))
 3820            .WithMessage(AuditMessages.InvalidDateRange);
 21
 3822        RuleFor(query => query.Action)
 3823            .MaximumLength(MaxActionLength)
 3824            .WithMessage(PaginationMessages.FilterTooLong);
 3825    }
 26}

Methods/Properties

.ctor()