< Summary

Information
Class: ProjectTemplate.Infrastructure.Data.PersistenceStringCanonicalizer
Assembly: ProjectTemplate.Infrastructure
File(s): /home/runner/work/NetCoreApplicationTemplate/NetCoreApplicationTemplate/src/ProjectTemplate.Infrastructure/Data/PersistenceStringCanonicalizer.cs
Line coverage
88%
Covered lines: 8
Uncovered lines: 1
Coverable lines: 9
Total lines: 33
Line coverage: 88.8%
Branch coverage
83%
Covered branches: 5
Total branches: 6
Branch coverage: 83.3%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
Canonicalize(...)83.33%6688.88%

File(s)

/home/runner/work/NetCoreApplicationTemplate/NetCoreApplicationTemplate/src/ProjectTemplate.Infrastructure/Data/PersistenceStringCanonicalizer.cs

#LineLine coverage
 1using System.Net;
 2using System.Text;
 3
 4namespace ProjectTemplate.Infrastructure.Data;
 5
 6internal static class PersistenceStringCanonicalizer
 7{
 8    private const int _maxDecodePasses = 4;
 9
 10    internal static string Canonicalize(string value)
 11    {
 29412        if (string.IsNullOrEmpty(value))
 13        {
 5614            return value;
 15        }
 16
 23817        string current = value.Normalize(NormalizationForm.FormC);
 18
 53619        for (int pass = 0; pass < _maxDecodePasses; pass++)
 20        {
 26821            string decoded = WebUtility.HtmlDecode(current);
 22
 26823            if (string.Equals(decoded, current, StringComparison.Ordinal))
 24            {
 23825                return current;
 26            }
 27
 3028            current = decoded.Normalize(NormalizationForm.FormC);
 29        }
 30
 031        return current;
 32    }
 33}

Methods/Properties

Canonicalize(System.String)