blob: e2ac744781975ffdcc42e81b9c2c3e92cd0a9b03 (
plain)
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
|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
using System.IO;
public class GenException<T> : Exception
{
}
public interface IGen
{
bool ExceptionTest();
}
public class Gen<T> : IGen
{
public bool ExceptionTest()
{
try
{
Console.WriteLine("in try");
throw new GenException<T>();
}
catch (GenException<T> exp)
{
Console.WriteLine("in catch: " + exp.Message);
return true;
}
}
}
public class Test
{
private static TestUtil.TestLog testLog;
static Test()
{
// Create test writer object to hold expected output
StringWriter expectedOut = new StringWriter();
// Write expected output to string writer object
Exception[] expList = new Exception[] {
new GenException<int>(),
new GenException<double>(),
new GenException<string>(),
new GenException<object>(),
new GenException<Exception>()
};
for (int i = 0; i < expList.Length; i++)
{
expectedOut.WriteLine("in try");
expectedOut.WriteLine("in catch: " + expList[i].Message);
expectedOut.WriteLine("{0}", true);
}
// Create and initialize test log object
testLog = new TestUtil.TestLog(expectedOut);
}
public static int Main()
{
//Start recording
testLog.StartRecording();
// create test list
IGen[] genList = new IGen[] {
new Gen<int>(),
new Gen<double>(),
new Gen<string>(),
new Gen<object>(),
new Gen<Exception>()
};
// run test
for (int i = 0; i < genList.Length; i++)
{
Console.WriteLine(genList[i].ExceptionTest());
}
// stop recoding
testLog.StopRecording();
return testLog.VerifyOutput();
}
}
|