aboutsummaryrefslogtreecommitdiffziptar.gz
path: root/src/Godosa.Core.Tests/Diagnostics/DebugFlagsTests.cs
blob: c67042e22b576e2febdb1bd6758b83dcb324507b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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));
        }
    }
}