< Summary

Information
Class: Enjoy.Domain.Topics.ValueObjects.TopicName
Assembly: Enjoy.Domain
File(s): D:\Dotnet\Propuesta-trabajo\Enjoy Project\EnjoyApp\Enjoy\src\Enjoy.Domain\Topics\ValueObjects\TopicName.cs
Line coverage
100%
Covered lines: 17
Uncovered lines: 0
Coverable lines: 17
Total lines: 36
Line coverage: 100%
Branch coverage
100%
Covered branches: 8
Total branches: 8
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Value()100%11100%
.ctor(...)100%11100%
Create(...)100%88100%
ToString()100%11100%
op_Implicit(...)100%11100%

File(s)

D:\Dotnet\Propuesta-trabajo\Enjoy Project\EnjoyApp\Enjoy\src\Enjoy.Domain\Topics\ValueObjects\TopicName.cs

#LineLine coverage
 1using Enjoy.Domain.Shared.Errors;
 2using Enjoy.Domain.Shared.Extensions;
 3using Enjoy.Domain.Shared.Results;
 4
 5namespace Enjoy.Domain.Topics.ValueObjects;
 6
 7public readonly record struct TopicName
 8{
 129    public string Value { get; }
 10
 11    public const int MinLength = 2;
 12    public const int MaxLength = 100;
 13
 1314    private TopicName(string value) => Value = value;
 15
 16    public static Result<TopicName> Create(string? value)
 2217    {
 2218        if (string.IsNullOrWhiteSpace(value))
 619            return Result<TopicName>.Failure(Error.TopicName.IsNullOrEmpty);
 20
 1621        var normalized = value.Trim().CapitalizeWords();
 1622        List<Error> errors = [];
 1623        if (normalized.Length < MinLength)
 224            errors.Add(Error.TopicName.TooShort(MinLength));
 1625        if (normalized.Length > MaxLength)
 126            errors.Add(Error.TopicName.TooLong(MaxLength));
 27
 1628        return errors.IsEmpty()
 1629            ? Result<TopicName>.Success(new TopicName(normalized))
 1630            : Result<TopicName>.Failure(errors);
 2231    }
 32
 133    public override string ToString() => Value;
 34
 135    public static implicit operator string(TopicName name) => name.Value;
 36}