//
// Ximian.Mono.Tests.StackTraceTest.cs
//
// Author:
// Alexander Klyubin (klyubin@aqris.com)
//
// (C) 2001
//
using System;
using System.Diagnostics;
using System.Reflection;
using NUnit.Framework;
namespace MonoTests.System.Diagnostics {
public class StackTraceTest {
private StackTraceTest() {}
public static ITest Suite
{
get
{
TestSuite suite = new TestSuite();
suite.AddTest(StackTraceTest1.Suite);
return suite;
}
}
///
/// Tests the case where StackTrace is created for specified
/// stack frame.
///
private class StackTraceTest1 : TestCase {
public StackTraceTest1(string name) : base(name) {}
private StackTrace trace;
private StackFrame frame;
internal static ITest Suite
{
get
{
return new TestSuite(typeof(StackTraceTest1));
}
}
protected override void SetUp() {
frame = new StackFrame("dir/someFile",
13,
45);
trace = new StackTrace(frame);
}
protected override void TearDown() {
trace = null;
}
///
/// Tests whether getting number of frames works.
///
public void TestFrameCount() {
AssertEquals("Frame count",
1,
trace.FrameCount);
}
///
/// Tests whether getting frames by index which is out of
/// range works.
///
public void TestGetFrameOutOfRange() {
Assert("Frame with index -1 == null",
(trace.GetFrame(-1) == null));
Assert("Frame with index -129 = null",
(trace.GetFrame(-129) == null));
Assert("Frame with index 1 = null",
(trace.GetFrame(1) == null));
Assert("Frame with index 145 = null",
(trace.GetFrame(145) == null));
}
///
/// Tests whether getting frames by index works.
///
public void TestGetFrame() {
AssertEquals("Frame with index 0",
frame,
trace.GetFrame(0));
}
}
}
}