< Summary

Information
Class: MRA.Infrastructure.Enums.EnumExtensions
Assembly: MRA.Infrastructure
File(s): D:\a\MiguelRomerART\MiguelRomerART\MRA.Infrastructure\Enums\EnumExtensions.cs
Line coverage
85%
Covered lines: 12
Uncovered lines: 2
Coverable lines: 14
Total lines: 39
Line coverage: 85.7%
Branch coverage
50%
Covered branches: 5
Total branches: 10
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
GetDescription(...)50%6680%
GetDefaultValue()50%22100%
ToEnum(...)50%2266.66%

File(s)

D:\a\MiguelRomerART\MiguelRomerART\MRA.Infrastructure\Enums\EnumExtensions.cs

#LineLine coverage
 1using System.ComponentModel;
 2using System.Reflection;
 3
 4namespace MRA.Infrastructure.Enums;
 5
 6public static class EnumExtensions
 7{
 8    public static string GetDescription<TEnum>(this TEnum enumValue) where TEnum : Enum
 9    {
 510        FieldInfo field = enumValue.GetType().GetField(enumValue.ToString());
 511        if (field != null)
 12        {
 513            DescriptionAttribute attribute = field.GetCustomAttribute<DescriptionAttribute>();
 514            return attribute?.Description ?? enumValue.ToString();
 15        }
 16
 017        return enumValue.ToString();
 18    }
 19
 20    public static TEnum GetDefaultValue<TEnum>() where TEnum : Enum
 21    {
 22        // Buscar el atributo DefaultEnumValue
 43823        var attribute = typeof(TEnum)
 43824            .GetCustomAttributes(typeof(DefaultEnumValueAttribute), false)
 43825            .FirstOrDefault() as DefaultEnumValueAttribute;
 26
 43827        return attribute != null
 43828            ? (TEnum)attribute.DefaultValue
 43829            : default(TEnum); // Si no hay atributo, usar default
 30    }
 31    public static TEnum ToEnum<TEnum>(this int value) where TEnum : struct, Enum
 32    {
 1733        if (Enum.IsDefined(typeof(TEnum), value))
 34        {
 1735            return (TEnum)Enum.ToObject(typeof(TEnum), value);
 36        }
 037        throw new ArgumentException($"Value '{value}' is not defined for enum type '{typeof(TEnum).Name}'.");
 38    }
 39}