-
-
Notifications
You must be signed in to change notification settings - Fork 59
Expand file tree
/
Copy pathSentryUnityOptionsExtensionsTests.cs
More file actions
132 lines (99 loc) · 3.42 KB
/
SentryUnityOptionsExtensionsTests.cs
File metadata and controls
132 lines (99 loc) · 3.42 KB
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
using NUnit.Framework;
using Sentry.Unity.Tests.Stubs;
namespace Sentry.Unity.Tests;
public class SentryUnityOptionsExtensionsTests
{
private class Fixture
{
public TestApplication TestApplication { get; set; } = new();
public bool Enabled { get; set; } = true;
public string Dsn { get; set; } = "http://test.com";
public bool CaptureInEditor { get; set; } = true;
public bool Debug { get; set; } = true;
public SentryUnityOptions GetSut() => new()
{
Enabled = Enabled,
Dsn = Dsn,
CaptureInEditor = CaptureInEditor,
Debug = Debug,
};
}
private Fixture _fixture = new();
[SetUp]
public void SetUp() => _fixture = new Fixture();
[Test]
public void Validate_OptionsDisabled_ReturnsFalse()
{
_fixture.Enabled = false;
var options = _fixture.GetSut();
var isValid = options.IsValid();
Assert.IsFalse(isValid);
}
[Test]
public void Validate_DsnEmpty_ReturnsFalse()
{
_fixture.Dsn = string.Empty;
var options = _fixture.GetSut();
var isValid = options.IsValid();
Assert.IsFalse(isValid);
}
[Test]
public void ShouldInitializeSdk_CorrectlyConfiguredForEditor_ReturnsTrue()
{
var options = _fixture.GetSut();
var shouldInitialize = options.ShouldInitializeSdk(_fixture.TestApplication);
Assert.IsTrue(shouldInitialize);
}
[Test]
public void ShouldInitializeSdk_OptionsNull_ReturnsFalse()
{
_fixture.TestApplication = new TestApplication(false);
SentryUnityOptions? options = null;
var shouldInitialize = options.ShouldInitializeSdk(_fixture.TestApplication);
Assert.IsFalse(shouldInitialize);
}
[Test]
public void ShouldInitializeSdk_CorrectlyConfigured_ReturnsTrue()
{
_fixture.TestApplication = new TestApplication(false);
var options = _fixture.GetSut();
var shouldInitialize = options.ShouldInitializeSdk(_fixture.TestApplication);
Assert.IsTrue(shouldInitialize);
}
[Test]
public void ShouldInitializeSdk_NotCaptureInEditorAndApplicationIsEditor_ReturnsFalse()
{
_fixture.CaptureInEditor = false;
var options = _fixture.GetSut();
var shouldInitialize = options.ShouldInitializeSdk(_fixture.TestApplication);
Assert.IsFalse(shouldInitialize);
}
[Test]
public void SetupLogging_DebugAndNoDiagnosticLogger_SetsUnityLogger()
{
var options = _fixture.GetSut();
Assert.IsNull(options.DiagnosticLogger); // Sanity check
options.SetupUnityLogging();
Assert.IsInstanceOf<UnityLogger>(options.DiagnosticLogger);
}
[Test]
public void SetupLogging_DebugFalse_DiagnosticLoggerIsNull()
{
_fixture.Debug = false;
var options = _fixture.GetSut();
options.DiagnosticLogger = new UnityLogger(options);
options.SetupUnityLogging();
Assert.IsNull(options.DiagnosticLogger);
}
[Test]
[TestCase(true)]
[TestCase(false)]
public void SetupLogging_DiagnosticLoggerSet_LeavesOrRemovesDiagnosticLogger(bool debug)
{
_fixture.Debug = debug;
var options = _fixture.GetSut();
options.DiagnosticLogger = new UnityLogger(options);
options.SetupUnityLogging();
Assert.AreEqual(debug, options.DiagnosticLogger is not null);
}
}