aboutsummaryrefslogtreecommitdiffziptar.gz
path: root/src/Godosa.Core.Tests/Diagnostics/DebugFlagsTests.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Godosa.Core.Tests/Diagnostics/DebugFlagsTests.cs')
-rw-r--r--src/Godosa.Core.Tests/Diagnostics/DebugFlagsTests.cs59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/Godosa.Core.Tests/Diagnostics/DebugFlagsTests.cs b/src/Godosa.Core.Tests/Diagnostics/DebugFlagsTests.cs
new file mode 100644
index 0000000..c67042e
--- /dev/null
+++ b/src/Godosa.Core.Tests/Diagnostics/DebugFlagsTests.cs
@@ -0,0 +1,59 @@
+using Godosa.Core.Diagnostics;
+using Xunit;
+
+namespace Godosa.Core.Tests.Diagnostics;
+
+public class DebugFlagsTests
+{
+ [Fact]
+ public void Categories_AreCommaSeparated_Trimmed_CaseInsensitive()
+ {
+ var flags = new DebugFlags(" input , AUDIO");
+ Assert.True(flags.On("input"));
+ Assert.True(flags.On("audio"));
+ Assert.False(flags.On("frames"));
+ }
+
+ [Fact]
+ public void All_TurnsOnEveryCategory_ButNotExactSwitches()
+ {
+ var flags = new DebugFlags("all");
+ Assert.True(flags.On("script"));
+ Assert.False(flags.Exact("nohud"));
+ }
+
+ [Fact]
+ public void Exact_MatchesOnlyTheNamedSwitch()
+ {
+ var flags = new DebugFlags("frames,NoHud");
+ Assert.True(flags.Exact("nohud"));
+ Assert.False(flags.Exact("input"));
+ }
+
+ [Fact]
+ public void MissingOrEmpty_TurnsNothingOn()
+ {
+ Assert.False(new DebugFlags(null).On("input"));
+ Assert.False(new DebugFlags(" , ,").On("input"));
+ }
+
+ [Fact]
+ public void EngineDebug_Apply_SetsEachLibCategory()
+ {
+ try
+ {
+ EngineDebug.Apply(new DebugFlags("script"));
+ Assert.True(EngineDebug.Script);
+ Assert.False(EngineDebug.Input);
+ Assert.False(EngineDebug.Audio);
+ EngineDebug.Apply(new DebugFlags("input,audio"));
+ Assert.True(EngineDebug.Input);
+ Assert.True(EngineDebug.Audio);
+ Assert.False(EngineDebug.Script);
+ }
+ finally
+ {
+ EngineDebug.Apply(new DebugFlags(null));
+ }
+ }
+}