Skip to content

Commit ad3e241

Browse files
alexmgdluc
andauthored
Unit tests for the SensitiveDataLogger (#853)
## Motivation and Context (Why the change? What's the scenario?) Contributing unit tests for the `SensitiveDataLogger` to cover a recently fixed bug and prevent future regression. ## High level description (Approach, Design) N/A - unit tests only --------- Co-authored-by: Devis Lucato <[email protected]>
1 parent dc11bdb commit ad3e241

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
// Copyright (c) Microsoft. All rights reserved.
2+
3+
using Microsoft.KernelMemory.Diagnostics;
4+
5+
namespace Microsoft.KM.Abstractions.UnitTests.Diagnostics;
6+
7+
public sealed class SensitiveDataLoggerTests : IDisposable
8+
{
9+
private const string EnvironmentVariableName = "ASPNETCORE_ENVIRONMENT";
10+
11+
[Fact]
12+
public void ItIsDisabledByDefault()
13+
{
14+
// Assert
15+
Assert.False(SensitiveDataLogger.Enabled);
16+
}
17+
18+
[Theory]
19+
[Trait("Category", "UnitTest")]
20+
[InlineData("development")]
21+
[InlineData("Development")]
22+
public void ItCanBeEnabledInDevelopmentEnvironment(string environment)
23+
{
24+
// Arrange
25+
Assert.False(SensitiveDataLogger.Enabled);
26+
Environment.SetEnvironmentVariable(EnvironmentVariableName, environment);
27+
28+
// Act
29+
SensitiveDataLogger.Enabled = true;
30+
31+
// Assert
32+
Assert.True(SensitiveDataLogger.Enabled);
33+
}
34+
35+
[Theory]
36+
[Trait("Category", "UnitTest")]
37+
[InlineData("staging")]
38+
[InlineData("Staging")]
39+
[InlineData("production")]
40+
[InlineData("Production")]
41+
[InlineData("any")]
42+
public void ItCannotBeEnabledInNonDevelopmentEnvironments(string environment)
43+
{
44+
// Arrange
45+
Assert.False(SensitiveDataLogger.Enabled);
46+
Environment.SetEnvironmentVariable(EnvironmentVariableName, environment);
47+
48+
// Act/Assert
49+
Assert.Throws<InvalidOperationException>(() => SensitiveDataLogger.Enabled = true);
50+
}
51+
52+
[Theory]
53+
[Trait("Category", "UnitTest")]
54+
[InlineData("development")]
55+
[InlineData("Development")]
56+
[InlineData("staging")]
57+
[InlineData("Staging")]
58+
[InlineData("production")]
59+
[InlineData("Production")]
60+
[InlineData("any")]
61+
public void ItCanBeDisabledInAnyEnvironment(string environment)
62+
{
63+
// Arrange
64+
Assert.False(SensitiveDataLogger.Enabled);
65+
Environment.SetEnvironmentVariable(EnvironmentVariableName, environment);
66+
67+
// Act
68+
SensitiveDataLogger.Enabled = false;
69+
70+
// Assert
71+
Assert.False(SensitiveDataLogger.Enabled);
72+
}
73+
74+
public void Dispose()
75+
{
76+
Environment.SetEnvironmentVariable(EnvironmentVariableName, null);
77+
SensitiveDataLogger.Enabled = false;
78+
}
79+
}

0 commit comments

Comments
 (0)