< Summary

Information
Class: Enjoy.Domain.Jokes.ValueObjects.JokeText
Assembly: Enjoy.Domain
File(s): D:\Dotnet\Propuesta-trabajo\Enjoy Project\EnjoyApp\Enjoy\src\Enjoy.Domain\Jokes\ValueObjects\JokeText.cs
Line coverage
100%
Covered lines: 12
Uncovered lines: 0
Coverable lines: 12
Total lines: 30
Line coverage: 100%
Branch coverage
100%
Covered branches: 4
Total branches: 4
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%44100%
ToString()100%11100%
op_Implicit(...)100%11100%

File(s)

D:\Dotnet\Propuesta-trabajo\Enjoy Project\EnjoyApp\Enjoy\src\Enjoy.Domain\Jokes\ValueObjects\JokeText.cs

#LineLine coverage
 1using Enjoy.Domain.Shared.Errors;
 2using Enjoy.Domain.Shared.Extensions;
 3using Enjoy.Domain.Shared.Results;
 4
 5namespace Enjoy.Domain.Jokes.ValueObjects;
 6
 7public readonly record struct JokeText
 8{
 129    public string Value { get; }
 10
 11    public const int MaxLength = 2000;
 12
 3713    private JokeText(string value) => Value = value;
 14
 15    public static Result<JokeText> Create(string? value)
 4516    {
 4517        if (string.IsNullOrWhiteSpace(value))
 718            return Result<JokeText>.Failure(Error.JokeText.IsNullOrEmpty);
 19
 3820        var normalized = value.NormalizeWhitespace();
 3821        if (normalized.Length > MaxLength)
 122            return Result<JokeText>.Failure(Error.JokeText.TooLong(MaxLength));
 23
 3724        return Result<JokeText>.Success(new JokeText(normalized));
 4525    }
 26
 127    public override string ToString() => Value;
 28
 129    public static implicit operator string(JokeText text) => text.Value;
 30}