< Summary

Information
Class: MyNet.Text.Sanitization.FileNameTextSanitizer
Assembly: MyNet.Text
File(s): https://raw.githubusercontent.com/sandre58/MyNet/85372080fe102cd9ee155ceab49ae000e7f66103/src/MyNet.Text/Sanitization/FileNameTextSanitizer.cs
Tag: 323_28699572109
Line coverage
88%
Covered lines: 8
Uncovered lines: 1
Coverable lines: 9
Total lines: 41
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
.cctor()100%22100%
Apply(...)75%4487.5%

File(s)

https://raw.githubusercontent.com/sandre58/MyNet/85372080fe102cd9ee155ceab49ae000e7f66103/src/MyNet.Text/Sanitization/FileNameTextSanitizer.cs

#LineLine coverage
 1// -----------------------------------------------------------------------
 2// <copyright file="FileNameTextSanitizer.cs" company="Stéphane ANDRE">
 3// Copyright (c) Stéphane ANDRE. All rights reserved.
 4// </copyright>
 5// -----------------------------------------------------------------------
 6
 7using System;
 8using System.Collections.Generic;
 9using System.Globalization;
 10using System.IO;
 11using System.Linq;
 12using System.Text;
 13
 14namespace MyNet.Text.Sanitization;
 15
 16/// <summary>
 17/// Sanitizes text so it can be used as a file name.
 18/// </summary>
 19public sealed class FileNameTextSanitizer : ITextSanitizerTransform
 20{
 321    private static readonly HashSet<char> InvalidCharacters = [.. Path.GetInvalidFileNameChars()];
 22
 23    /// <inheritdoc/>
 24    public string Apply(string input, CultureInfo culture)
 25    {
 1226        ArgumentNullException.ThrowIfNull(input);
 927        ArgumentNullException.ThrowIfNull(culture);
 28
 929        if (input.Length == 0)
 030            return input;
 31
 932        var sb = new StringBuilder(input.Length);
 23433        foreach (var ch in input.Where(ch => !InvalidCharacters.Contains(ch)))
 34        {
 10835            sb.Append(ch);
 36        }
 37
 938        return sb.ToString().Trim();
 39    }
 40}
 41