@@ -16,6 +16,22 @@ private static ITestResult RunDataTestCase(string methodName)
16
16
return TestBuilder . RunTestCase ( typeof ( UnexpectedExceptionFixture ) , methodName ) ;
17
17
}
18
18
19
+ [ Test ]
20
+ public void FailRecordsException ( )
21
+ {
22
+ string expectedMessage =
23
+ "System.Exception : Thrown Exception" ;
24
+
25
+ ITestResult result = RunDataTestCase ( nameof ( UnexpectedExceptionFixture . ThrowsException ) ) ;
26
+
27
+ Assert . Multiple ( ( ) =>
28
+ {
29
+ Assert . That ( result . ResultState , Is . EqualTo ( ResultState . Error ) ) ;
30
+ Assert . That ( result . Message , Is . EqualTo ( expectedMessage ) ) ;
31
+ Assert . That ( result . StackTrace , Does . Contain ( nameof ( UnexpectedExceptionFixture . ThrowsException ) ) ) ;
32
+ } ) ;
33
+ }
34
+
19
35
[ Test ]
20
36
public void FailRecordsInnerException ( )
21
37
{
@@ -28,6 +44,7 @@ public void FailRecordsInnerException()
28
44
{
29
45
Assert . That ( result . ResultState , Is . EqualTo ( ResultState . Error ) ) ;
30
46
Assert . That ( result . Message , Is . EqualTo ( expectedMessage ) ) ;
47
+ Assert . That ( result . StackTrace , Does . Contain ( nameof ( UnexpectedExceptionFixture . ThrowsWithInnerException ) ) ) ;
31
48
} ) ;
32
49
}
33
50
@@ -45,6 +62,7 @@ public void FailRecordsNestedInnerException()
45
62
{
46
63
Assert . That ( result . ResultState , Is . EqualTo ( ResultState . Error ) ) ;
47
64
Assert . That ( result . Message , Is . EqualTo ( expectedMessage ) ) ;
65
+ Assert . That ( result . StackTrace , Does . Contain ( nameof ( UnexpectedExceptionFixture . ThrowsWithNestedInnerException ) ) ) ;
48
66
} ) ;
49
67
}
50
68
@@ -63,6 +81,7 @@ public void FailRecordsInnerExceptionsAsPartOfAggregateException()
63
81
Assert . That ( result . ResultState , Is . EqualTo ( ResultState . Error ) ) ;
64
82
Assert . That ( result . Message , Does . StartWith ( expectedStartOfMessage ) ) ;
65
83
Assert . That ( result . Message , Does . EndWith ( expectedEndOfMessage ) ) ;
84
+ Assert . That ( result . StackTrace , Does . Contain ( nameof ( UnexpectedExceptionFixture . ThrowsWithAggregateException ) ) ) ;
66
85
} ) ;
67
86
}
68
87
@@ -81,6 +100,7 @@ public void FailRecordsNestedInnerExceptionAsPartOfAggregateException()
81
100
Assert . That ( result . ResultState , Is . EqualTo ( ResultState . Error ) ) ;
82
101
Assert . That ( result . Message , Does . StartWith ( expectedStartOfMessage ) ) ;
83
102
Assert . That ( result . Message , Does . EndWith ( expectedEndOfMessage ) ) ;
103
+ Assert . That ( result . StackTrace , Does . Contain ( nameof ( UnexpectedExceptionFixture . ThrowsWithAggregateExceptionContainingNestedInnerException ) ) ) ;
84
104
} ) ;
85
105
}
86
106
@@ -106,6 +126,25 @@ public void CustomExceptionIsHandled()
106
126
{
107
127
Assert . That ( result . ResultState , Is . EqualTo ( ResultState . Error ) ) ;
108
128
Assert . That ( result . Message , Is . EqualTo ( "NUnit.TestData.UnexpectedExceptionFixture.CustomException : message" ) ) ;
129
+ Assert . That ( result . StackTrace , Does . Contain ( nameof ( UnexpectedExceptionFixture . ThrowsCustomException ) ) ) ;
130
+ } ) ;
131
+ }
132
+
133
+ [ Test ]
134
+ public void TargetInvocationExceptionInUserCodeIsPassedThrough ( )
135
+ {
136
+ string expectedStartOfMessage = "System.Reflection.TargetInvocationException" ;
137
+ string expectedEndOfMessage = " ----> System.Exception : Thrown Exception" ;
138
+
139
+ ITestResult result = RunDataTestCase ( nameof ( UnexpectedExceptionFixture . ThrowsTargetInvocationException ) ) ;
140
+
141
+ Assert . Multiple ( ( ) =>
142
+ {
143
+ Assert . That ( result . ResultState , Is . EqualTo ( ResultState . Error ) ) ;
144
+ Assert . That ( result . Message , Does . StartWith ( expectedStartOfMessage ) ) ;
145
+ Assert . That ( result . Message , Does . EndWith ( expectedEndOfMessage ) ) ;
146
+ Assert . That ( result . StackTrace , Does . Contain ( nameof ( UnexpectedExceptionFixture . ThrowsTargetInvocationException ) ) ) ;
147
+ Assert . That ( result . StackTrace , Does . Contain ( nameof ( UnexpectedExceptionFixture . ThrowsException ) ) ) ;
109
148
} ) ;
110
149
}
111
150
0 commit comments