< Summary

Information
Class: Enjoy.Domain.Shared.Extensions.StringExtensions
Assembly: Enjoy.Domain
File(s): D:\Dotnet\Propuesta-trabajo\Enjoy Project\EnjoyApp\Enjoy\src\Enjoy.Domain\Shared\Extensions\StringExtensions.cs
Line coverage
100%
Covered lines: 41
Uncovered lines: 0
Coverable lines: 41
Total lines: 104
Line coverage: 100%
Branch coverage
100%
Covered branches: 16
Total branches: 16
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
SplitByWhitespace(...)100%22100%
Capitalize(...)100%44100%
ReplaceWhitespace(...)100%22100%
CapitalizeWords(...)100%44100%
GetValueOrDefault(...)100%22100%
NormalizeWhitespace(...)100%22100%

File(s)

D:\Dotnet\Propuesta-trabajo\Enjoy Project\EnjoyApp\Enjoy\src\Enjoy.Domain\Shared\Extensions\StringExtensions.cs

#LineLine coverage
 1using System.Text.RegularExpressions;
 2
 3namespace Enjoy.Domain.Shared.Extensions;
 4
 5/// <summary>
 6/// Contiene métodos de extensión para la clase <see cref="string"/>.
 7/// </summary>
 8public static class StringExtensions
 9{
 10    /// <summary>
 11    /// Divide una cadena utilizando cualquier tipo de espacio en blanco (espacios, tabulaciones, saltos de línea) como 
 12    /// </summary>
 13    /// <param name="input">La cadena de entrada a dividir.</param>
 14    /// <returns>Un array de subcadenas.</returns>
 15    public static string[] SplitByWhitespace(this string input)
 9616    {
 9617        if (string.IsNullOrEmpty(input))
 218        {
 219            return [];
 20        }
 21
 9422        string pattern = @"\s+";
 9423        var regex = new Regex(pattern);
 9424        return regex.Split(input);
 9625    }
 26
 27    /// <summary>
 28    /// Pone la primera letra de la cadena en mayúscula y el resto en minúsculas.
 29    /// </summary>
 30    /// <param name="input">La cadena de entrada.</param>
 31    /// <returns>La cadena con la primera letra en mayúscula y el resto en minúsculas.</returns>
 32    public static string Capitalize(this string input)
 10333    {
 10334        if (string.IsNullOrWhiteSpace(input))
 335        {
 336            return input;
 37        }
 38
 10039        if (input.Length == 1)
 540            return input.ToUpperInvariant();
 41
 9542        return char.ToUpperInvariant(input[0]) + input[1..].ToLowerInvariant();
 10343    }
 44
 45    /// <summary>
 46    /// Reemplaza cualquier tipo de espacio en blanco (espacios, tabulaciones, saltos de línea) en una cadena con el val
 47    /// </summary>
 48    /// <param name="input">La cadena de entrada.</param>
 49    /// <param name="replacement">El valor con el que se reemplazarán los espacios en blanco.</param>
 50    /// <returns>La cadena modificada.</returns>
 51    public static string ReplaceWhitespace(this string input, string replacement)
 452    {
 453        if (string.IsNullOrEmpty(input))
 254        {
 255            return input;
 56        }
 57
 258        string pattern = @"\s+";
 259        var regex = new Regex(pattern);
 260        return regex.Replace(input, replacement);
 461    }
 62
 63    /// <summary>
 64    /// Pone la primera letra de cada palabra en mayúscula y el resto en minúsculas.
 65    /// </summary>
 66    /// <param name="input">La cadena de entrada.</param>
 67    /// <returns>La cadena con cada palabra capitalizada.</returns>
 68    public static string CapitalizeWords(this string input)
 9369    {
 9370        if (string.IsNullOrWhiteSpace(input))
 371        {
 372            return input;
 73        }
 74
 9075        var words = input.SplitByWhitespace();
 37276        for (int i = 0; i < words.Length; i++)
 9677        {
 9678            words[i] = words[i].Capitalize();
 9679        }
 80
 9081        return string.Join(" ", words);
 9382    }
 83
 84    /// <summary>
 85    /// Devuelve un valor predeterminado si la cadena de entrada es null o está vacía; de lo contrario, devuelve la cade
 86    /// </summary>
 87    /// <param name="input">La cadena de entrada.</param>
 88    /// <param name="defaultValue">El valor predeterminado que se devolverá si la cadena de entrada es null o está vacía
 89    /// <returns>La cadena de entrada o el valor predeterminado si la cadena de entrada es null o está vacía.</returns>
 390    public static string GetValueOrDefault(this string input, string defaultValue) => string.IsNullOrEmpty(input) ? defa
 91
 92    /// <summary>
 93    /// Elimina los espacios en blanco al inicio y al final, y colapsa cualquier secuencia de espacios internos a un úni
 94    /// </summary>
 95    /// <param name="input">La cadena de entrada.</param>
 96    /// <returns>La cadena normalizada.</returns>
 97    public static string NormalizeWhitespace(this string input)
 4498    {
 4499        if (string.IsNullOrEmpty(input))
 2100            return input;
 101
 42102        return Regex.Replace(input.Trim(), @"\s+", " ");
 44103    }
 104}