< Summary

Information
Class: Elsa.Workflows.Management.Services.DefaultFileNameSanitizer
Assembly: Elsa.Workflows.Management
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Workflows.Management/Services/DefaultFileNameSanitizer.cs
Line coverage
100%
Covered lines: 15
Uncovered lines: 0
Coverable lines: 15
Total lines: 33
Line coverage: 100%
Branch coverage
100%
Covered branches: 14
Total branches: 14
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.cctor()100%11100%
Sanitize(...)100%88100%
IsInvalidFileNameCharacter(...)100%66100%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Workflows.Management/Services/DefaultFileNameSanitizer.cs

#LineLine coverage
 1namespace Elsa.Workflows.Management.Services;
 2
 3/// <inheritdoc />
 4public class DefaultFileNameSanitizer : IFileNameSanitizer
 5{
 26    private static readonly char[] InvalidFileNameCharacters = Path.GetInvalidFileNameChars();
 7
 8    /// <inheritdoc />
 9    public string Sanitize(string value)
 10    {
 109611        for (var i = 0; i < value.Length; i++)
 12        {
 53813            if (!IsInvalidFileNameCharacter(value[i]))
 14                continue;
 15
 416            return string.Create(value.Length, (value, i), static (buffer, state) =>
 417            {
 418                state.value.AsSpan(0, state.i).CopyTo(buffer);
 419
 14220                for (var j = state.i; j < state.value.Length; j++)
 421                {
 6722                    var character = state.value[j];
 6723                    buffer[j] = IsInvalidFileNameCharacter(character) ? '-' : character;
 424                }
 825            });
 26        }
 27
 1028        return value;
 29    }
 30
 60531    private static bool IsInvalidFileNameCharacter(char character) => character is '/' or '\\' || Array.IndexOf(InvalidF
 32}
 33