< Summary

Information
Class: Enjoy.Domain.Topics.Entities.Topic
Assembly: Enjoy.Domain
File(s): D:\Dotnet\Propuesta-trabajo\Enjoy Project\EnjoyApp\Enjoy\src\Enjoy.Domain\Topics\Entities\Topic.cs
Line coverage
100%
Covered lines: 24
Uncovered lines: 0
Coverable lines: 24
Total lines: 44
Line coverage: 100%
Branch coverage
100%
Covered branches: 6
Total branches: 6
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
NewId()100%11100%
get_Name()100%11100%
.ctor()100%11100%
.ctor(...)100%11100%
Create(...)100%22100%
ChangeName(...)100%44100%

File(s)

D:\Dotnet\Propuesta-trabajo\Enjoy Project\EnjoyApp\Enjoy\src\Enjoy.Domain\Topics\Entities\Topic.cs

#LineLine coverage
 1using Enjoy.Domain.Shared.Messaging;
 2using Enjoy.Domain.Shared.Primitives;
 3using Enjoy.Domain.Shared.Results;
 4using Enjoy.Domain.Topics.Events;
 5using Enjoy.Domain.Topics.ValueObjects;
 6
 7namespace Enjoy.Domain.Topics.Entities;
 8
 9public sealed class Topic : AggregateRoot
 10{
 911    public static string NewId() => $"topic_{Guid.CreateVersion7()}";
 12
 1413    public TopicName Name { get; private set; }
 14
 315    private Topic() : base() { }
 16
 617    private Topic(string id, TopicName name) : base(id)
 618    {
 619        Name = name;
 620    }
 21
 22    public static Result<Topic> Create(string name)
 823    {
 824        var nameResult = TopicName.Create(name);
 825        if (nameResult.IsFailure)
 226            return Result<Topic>.Failure(nameResult.Errors);
 27
 628        Topic topic = new(NewId(), nameResult.Value);
 629        topic.RaiseDomainEvent(new TopicCreatedDomainEvent(DomainEvent.NewId(), topic.Id));
 630        return Result<Topic>.Success(topic);
 831    }
 32
 33    public Result ChangeName(string name)
 434    {
 435        var nameResult = TopicName.Create(name);
 436        if (nameResult.IsFailure)
 237            return Result.Failure(nameResult.Errors);
 238        if (Name.Value == nameResult.Value.Value)
 139            return Result.Success();
 40
 141        Name = nameResult.Value;
 142        return Result.Success();
 443    }
 44}