-
Notifications
You must be signed in to change notification settings - Fork 36
/
Copy pathExceptionExtensionsTests.cs
111 lines (95 loc) · 2.47 KB
/
ExceptionExtensionsTests.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
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
using System;
using System.Reflection;
#if NET45_OR_GREATER || TARGETS_NETCOREAPP
using System.Threading.Tasks;
using System.IO;
#endif
using NUnit.Framework;
// ReSharper disable MethodSupportsCancellation
#pragma warning disable AsyncifyInvocation // Use Task Async
namespace CodeJam
{
[TestFixture]
public class ExceptionExtensionsTests
{
[Test]
public void InternalExceptionTest()
{
var ex = new Exception("123", new ApplicationException());
var text = ex.ToDiagnosticString();
Assert.That(
text,
Contains
.Substring("--------------------------------------")
.And
.Contains("Exception: System.ApplicationException"));
}
[Test]
public void FusionLogTest()
{
try
{
Assembly.Load(new AssemblyName("CodeJamJamJam.dll"));
}
catch (Exception ex)
{
var text = ex.ToDiagnosticString();
Assert.That(
text,
Contains.Substring("CodeJamJamJam"));
}
}
[Test]
public void AggregateExceptionTest()
{
var ex = new AggregateException("000", new Exception("123"), new Exception("456"));
var text = ex.ToDiagnosticString();
Assert.That(text, Contains.Substring("000").And.Contains("123").And.Contains("456"));
}
#if NET45_OR_GREATER || TARGETS_NETCOREAPP
private static async Task<string> GetTextAsync(Exception ex)
{
// ReSharper disable once UseAwaitUsing
using var writer = new StringWriter();
await ex.ToDiagnosticStringAsync(writer).ConfigureAwait(false);
await writer.FlushAsync().ConfigureAwait(false);
var text = writer.ToString();
return text;
}
[Test]
public async Task InternalExceptionTestAsync()
{
var ex = new Exception("123", new ApplicationException());
var text = await GetTextAsync(ex).ConfigureAwait(false);
Assert.That(
text,
Contains
.Substring("--------------------------------------")
.And
.Contains("Exception: System.ApplicationException"));
}
[Test]
public async Task FusionLogTestAsync()
{
try
{
Assembly.Load(new AssemblyName("CodeJamJamJam.dll"));
}
catch (Exception ex)
{
var text = await GetTextAsync(ex).ConfigureAwait(false);
Assert.That(
text,
Contains.Substring("CodeJamJamJam"));
}
}
[Test]
public void AggregateExceptionTestAsync()
{
var ex = new AggregateException("000", new Exception("123"), new Exception("456"));
var text = GetTextAsync(ex).Result;
Assert.That(text, Contains.Substring("000").And.Contains("123").And.Contains("456"));
}
#endif
}
}