Skip to content

Commit 6f32cb4

Browse files
committed
Add tests
1 parent 3176770 commit 6f32cb4

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed

test/Serilog.Extensions.Hosting.Tests/DiagnosticContextTests.cs

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,13 @@ public void SetIsSafeWhenNoContextIsActive()
1818
dc.Set(Some.String("name"), Some.Int32());
1919
}
2020

21+
[Fact]
22+
public void SetExceptionIsSafeWhenNoContextIsActive()
23+
{
24+
var dc = new DiagnosticContext(Some.Logger());
25+
dc.SetException(new Exception("test"));
26+
}
27+
2128
[Fact]
2229
public async Task PropertiesAreCollectedInAnActiveContext()
2330
{
@@ -39,6 +46,48 @@ public async Task PropertiesAreCollectedInAnActiveContext()
3946
Assert.False(collector.TryComplete(out _));
4047
}
4148

49+
[Fact]
50+
public void ExceptionIsCollectedInAnActiveContext()
51+
{
52+
var dc = new DiagnosticContext(Some.Logger());
53+
var collector = dc.BeginCollection();
54+
55+
var setException = new Exception("before collect");
56+
dc.SetException(setException);
57+
58+
Assert.True(collector.TryComplete(out _, out var collectedException));
59+
Assert.Same(setException, collectedException);
60+
}
61+
62+
[Fact]
63+
public void ExceptionIsNotCollectedAfterTryComplete()
64+
{
65+
var dc = new DiagnosticContext(Some.Logger());
66+
var collector = dc.BeginCollection();
67+
collector.TryComplete(out _, out _);
68+
dc.SetException(new Exception(Some.String("after collect")));
69+
70+
var tryComplete2 = collector.TryComplete(out _, out var collectedException2);
71+
72+
Assert.False(tryComplete2);
73+
Assert.Null(collectedException2);
74+
}
75+
76+
[Fact]
77+
public void ExceptionIsNotCollectedAfterDispose()
78+
{
79+
var dc = new DiagnosticContext(Some.Logger());
80+
var collector = dc.BeginCollection();
81+
collector.Dispose();
82+
83+
dc.SetException(new Exception("after dispose"));
84+
85+
var tryComplete = collector.TryComplete(out _, out var collectedException);
86+
87+
Assert.True(tryComplete);
88+
Assert.Null(collectedException);
89+
}
90+
4291
[Fact]
4392
public void ExistingPropertiesCanBeUpdated()
4493
{
@@ -53,5 +102,18 @@ public void ExistingPropertiesCanBeUpdated()
53102
var scalar = Assert.IsType<ScalarValue>(prop.Value);
54103
Assert.Equal(20, scalar.Value);
55104
}
105+
106+
[Fact]
107+
public void ExistingExceptionCanBeUpdated()
108+
{
109+
var dc = new DiagnosticContext(Some.Logger());
110+
var collector = dc.BeginCollection();
111+
112+
dc.SetException(new Exception("ex1"));
113+
dc.SetException(new Exception("ex2"));
114+
115+
Assert.True(collector.TryComplete(out _, out var collectedException));
116+
Assert.Equal("ex2", collectedException.Message);
117+
}
56118
}
57119
}

0 commit comments

Comments
 (0)