< Summary - Code Coverage

Information
Class: LittleTown.Core.PlayerZone
Assembly: LittleTown.Core
File(s): /workspace/mcmuzzle/LittleTown/src/LittleTown.Core/Aggregates/PlayerZone/PlayerZone.cs
Tag: 222_1458
Line coverage
100%
Covered lines: 20
Uncovered lines: 0
Coverable lines: 20
Total lines: 59
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
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_Ressources()100%11100%
get_PlayerName()100%11100%
get_Objectives()100%11100%
.ctor()100%11100%
get_ScoreMarker()100%11100%
AddRessources(...)100%22100%
AddObjectives(...)100%11100%
Clone()100%11100%

File(s)

/workspace/mcmuzzle/LittleTown/src/LittleTown.Core/Aggregates/PlayerZone/PlayerZone.cs

#LineLine coverage
 1using LittleTown.Core.Enums;
 2
 3namespace LittleTown.Core;
 4/// <summary> Représente les données propre à un joueur </summary>
 5public class PlayerZone : ICloneable
 6{
 7    /// <summary> Les ressources que possede le joueur </summary>
 1208    public IDictionary<ResourceType, int> Ressources { get; init; } = new Dictionary<ResourceType, int>();
 9
 10    /// <summary> l'id du joueur a cette zone </summary>
 10011    public required string PlayerName { get; init; }
 12
 13    /// <summary> La liste des objectifs que le joueur possede/// </summary>
 1014    public IReadOnlyCollection<Objective> Objectives { get => _objectives.AsReadOnly(); init => _objectives = new List<O
 4415    private List<Objective> _objectives = new List<Objective>();
 16
 17    /// <summary> Le marqueur de score pendant le match </summary>
 818    public int ScoreMarker { get; init; }
 19
 20    /// <summary> Permet d'ajouter d'une type de ressources au stock du joueur </summary>
 21    /// <param name="res">le type de ressources</param>
 22    /// <param name="qte">la quantité non nulle non négative</param>
 23    public void AddRessources(ResourceType res, int qte)
 24    {
 3225        ArgumentOutOfRangeException.ThrowIfLessThan(qte, 1);
 3226        if (Ressources.ContainsKey(res))
 27        {
 228            Ressources[res] += qte;
 29        }
 30        else
 31        {
 3032            Ressources.Add(res, qte);
 33        }
 3034    }
 35
 36    /// <summary>
 37    /// Assigner des objectifs au joueur
 38    /// </summary>
 39    /// <param name="objectives"></param>
 40    public void AddObjectives(ICollection<Objective> objectives)
 41    {
 3042        _objectives.AddRange(objectives);
 3043    }
 44
 45    /// <summary> Cloner ce playerZone </summary>
 46    /// <returns>Une copie de l'objet</returns>
 47    public object Clone()
 48    {
 449        PlayerZone result = new PlayerZone()
 450        {
 451            Ressources = new Dictionary<ResourceType, int>(Ressources),
 452            Objectives = new List<Objective>(Objectives),
 453            ScoreMarker = ScoreMarker,
 454            PlayerName = PlayerName
 455        };
 56
 457        return result;
 58    }
 59}