| File: Redaction\NullRedactorTest.cs | Web Access |
| Project: src\test\Libraries\Microsoft.Extensions.Compliance.Abstractions.Tests\Microsoft.Extensions.Compliance.Abstractions.Tests.csproj (Microsoft.Extensions.Compliance.Abstractions.Tests) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using Microsoft.Extensions.Compliance.Classification; using Xunit; namespace Microsoft.Extensions.Compliance.Redaction.Test; public static class NullRedactorTest { [Fact] public static void NullRedactor_When_Given_Empty_String_Returns_Empty_String() { var r = NullRedactor.Instance; var emptyStringRedacted = r.Redact(string.Empty); Assert.Equal(string.Empty, emptyStringRedacted); string? s = null; emptyStringRedacted = r.Redact(s); Assert.Equal(string.Empty, emptyStringRedacted); } [Fact] public static void NullRedactor_When_Given_Empty_Buffer_Returns_0_Chars_Written() { var r = NullRedactor.Instance; Span<char> input = stackalloc char[0]; var c = new char[1]; var charsWritten = r.Redact(input, c); Assert.Equal(0, charsWritten); Assert.Equal('\0', c[0]); } [Fact] public static void NullRedactor_Handles_BufferTooSmall() { var r = NullRedactor.Instance; Assert.Throws<ArgumentException>(() => r.Redact("ABCD".AsSpan(), new char[1].AsSpan())); } [Fact] public static void NullRedactorProvider_Returns_Always_NullRedactor() { var dc1 = new DataClassification("TAX", "1"); var dc2 = new DataClassification("TAX", "2"); var dc3 = new DataClassification("TAX", "4"); var rp = NullRedactorProvider.Instance; var redactor1 = NullRedactor.Instance; var redactor2 = rp.GetRedactor(dc1); var redactor3 = rp.GetRedactor(dc2); var redactor4 = rp.GetRedactor(dc3); Assert.Equal(redactor1, redactor2); Assert.Equal(redactor1, redactor3); Assert.Equal(redactor1, redactor4); Assert.IsAssignableFrom<NullRedactor>(redactor1); } }