forked from VerifyTests/Verify
-
Notifications
You must be signed in to change notification settings - Fork 0
/
JsonAppenderTests.cs
71 lines (52 loc) · 1.43 KB
/
JsonAppenderTests.cs
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
[UsesVerify]
public class JsonAppenderTests : IDisposable
{
static AsyncLocal<bool> isInThisTest = new();
[ModuleInitializer]
public static void Initialize()
{
#region RegisterJsonAppender
VerifierSettings.RegisterJsonAppender(
context =>
{
if (ShouldInclude(context))
{
return new ToAppend("theData", "theValue");
}
return null;
});
#endregion
}
// ReSharper disable once UnusedParameter.Local
static bool ShouldInclude(IReadOnlyDictionary<string, object> context) =>
isInThisTest.Value;
public JsonAppenderTests() =>
isInThisTest.Value = true;
public void Dispose() =>
isInThisTest.Value = false;
#region JsonAppender
[Fact]
public Task WithJsonAppender() =>
Verify("TheValue");
#endregion
#region JsonLocalAppender
[Fact]
public Task WithLocalJsonAppender() =>
Verify("TheValue")
.AppendValue("name", "value");
#endregion
[Fact]
public Task NullText() =>
Verify((string) null!);
[Fact]
public Task Anon() =>
Verify(new {foo = "bar"});
#region JsonAppenderStream
[Fact]
public Task Stream() =>
Verify(IoHelpers.OpenRead("sample.txt"));
#endregion
[Fact]
public Task File() =>
VerifyFile("sample.txt");
}