**** Merged from MCS ****
[mono-project.git] / mcs / nunit20 / core / TestCase.cs
blob177d0bd5756823caf2b312e6a28fb54c515234e9
1 #region Copyright (c) 2002-2003, James W. Newkirk, Michael C. Two, Alexei A. Vorontsov, Charlie Poole, Philip A. Craig
2 /************************************************************************************
4 ' Copyright © 2002-2003 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov, Charlie Poole
5 ' Copyright © 2000-2003 Philip A. Craig
7 ' This software is provided 'as-is', without any express or implied warranty. In no
8 ' event will the authors be held liable for any damages arising from the use of this
9 ' software.
11 ' Permission is granted to anyone to use this software for any purpose, including
12 ' commercial applications, and to alter it and redistribute it freely, subject to the
13 ' following restrictions:
15 ' 1. The origin of this software must not be misrepresented; you must not claim that
16 ' you wrote the original software. If you use this software in a product, an
17 ' acknowledgment (see the following) in the product documentation is required.
19 ' Portions Copyright © 2003 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov, Charlie Poole
20 ' or Copyright © 2000-2003 Philip A. Craig
22 ' 2. Altered source versions must be plainly marked as such, and must not be
23 ' misrepresented as being the original software.
25 ' 3. This notice may not be removed or altered from any source distribution.
27 '***********************************************************************************/
28 #endregion
30 namespace NUnit.Core
32 using System;
33 using System.Collections;
34 using System.Reflection;
36 /// <summary>
37 /// Summary description for TestCase.
38 /// </summary>
39 public abstract class TestCase : Test
41 public TestCase( string path, string name ) : base( path, name ) { }
43 public override int CountTestCases()
45 return 1;
48 public override int CountTestCases(IFilter filter)
50 if (Filter(filter))
51 return 1;
53 return 0;
56 public override TestResult Run(EventListener listener, IFilter filter)
58 return Run( listener ); // Ignore filter for now
61 public override TestResult Run( EventListener listener )
63 TestCaseResult testResult = new TestCaseResult(this);
65 listener.TestStarted(this);
66 long startTime = DateTime.Now.Ticks;
68 Run( testResult );
70 testResult.AssertCount = NUnit.Framework.Assert.Counter;
72 long stopTime = DateTime.Now.Ticks;
73 double time = ((double)(stopTime - startTime)) / (double)TimeSpan.TicksPerSecond;
74 testResult.Time = time;
76 listener.TestFinished(testResult);
77 return testResult;
80 public override bool IsSuite
82 get { return false; }
85 public override bool IsFixture
87 get { return false; }
90 public override bool IsTestCase
92 get { return true; }
95 public override ArrayList Tests
97 get { return null; }
100 public override bool Filter(IFilter filter)
102 return filter.Pass(this);
105 public abstract void Run(TestCaseResult result);