< Summary

Information
Class: Program
Assembly: ArturRios.Util.Test.Sut
File(s): D:\Repositories\dotnet-test-util\sut\Program.cs
Line coverage
100%
Covered lines: 26
Uncovered lines: 0
Coverable lines: 26
Total lines: 43
Line coverage: 100%
Branch coverage
83%
Covered branches: 5
Total branches: 6
Branch coverage: 83.3%
Method coverage
100%
Covered methods: 1
Fully covered methods: 0
Total methods: 1
Method coverage: 100%
Full method coverage: 0%

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
<Main>$(...)83.33%66100%

File(s)

D:\Repositories\dotnet-test-util\sut\Program.cs

#LineLine coverage
 1using ArturRios.Output;
 2using ArturRios.Util.WebApi.Security.Records;
 3
 54var builder = WebApplication.CreateBuilder(args);
 5
 56var app = builder.Build();
 7
 8// Valid credentials accepted by the fake authentication route.
 9const string validEmail = "user@test.com";
 10const string validPassword = "password123";
 11const string issuedToken = "test-token";
 12
 13// POST /auth — issues a token for valid credentials, otherwise returns a failed output.
 514app.MapPost("/auth", (Credentials credentials) =>
 315{
 316    if (credentials.Email == validEmail && credentials.Password == validPassword)
 217    {
 218        var authentication = new Authentication(
 219            issuedToken,
 220            true,
 221            DateTime.UtcNow.ToString("o"),
 222            DateTime.UtcNow.AddHours(1).ToString("o"));
 523
 224        return Results.Ok(DataOutput<Authentication>.New.WithData(authentication));
 525    }
 526
 127    return Results.Ok(DataOutput<Authentication>.New.WithError("Invalid credentials"));
 828});
 29
 30// GET /secure — succeeds only when the issued bearer token is present.
 531app.MapGet("/secure", (HttpContext context) =>
 332{
 333    var header = context.Request.Headers.Authorization.ToString();
 534
 335    return header == $"Bearer {issuedToken}"
 336        ? Results.Ok(DataOutput<string>.New.WithData("authorized"))
 337        : Results.Unauthorized();
 838});
 39
 540app.Run();
 41
 42/// <summary>Entry point exposed so tests can host the app with <c>WebApplicationFactory</c>.</summary>
 43public partial class Program;

Methods/Properties

<Main>$(System.String[])