2002-12-15 Nick Drochak <ndrochak@gol.com>
[mono.git] / mcs / nunit20 / framework / TestCaseResult.cs
1 #region Copyright (c) 2002, James W. Newkirk, Michael C. Two, Alexei A. Vorontsov, Philip A. Craig
2 /************************************************************************************
3 '
4 ' Copyright © 2002 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov
5 ' Copyright © 2000-2002 Philip A. Craig
6 '
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.
10
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:
14 '
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.
18 '
19 ' Portions Copyright © 2002 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov 
20 ' or Copyright © 2000-2002 Philip A. Craig
21 '
22 ' 2. Altered source versions must be plainly marked as such, and must not be 
23 ' misrepresented as being the original software.
24 '
25 ' 3. This notice may not be removed or altered from any source distribution.
26 '
27 '***********************************************************************************/
28 #endregion
29
30 namespace NUnit.Core
31 {
32         using System;
33         using System.Text;
34
35         /// <summary>
36         /// 
37         /// </summary>
38         //
39         [Serializable]
40         public class TestCaseResult : TestResult
41         {
42                 private string message;
43                 private string stackTrace;
44
45                 public TestCaseResult(TestCase testCase):base(testCase, testCase.FullName)
46                 {
47                         Executed = false;
48                 }
49
50                 public TestCaseResult(string testCaseString) : base(null, testCaseString)
51                 {
52                         Executed = false;
53                 }
54
55                 public void Success() 
56                 { 
57                         Executed = true;
58                         IsFailure = false; 
59                 }
60
61                 public override void NotRun(string reason)
62                 {
63                         Executed = false;
64                         message = reason;
65                 }
66
67                 public void Failure(string message, string stackTrace)
68                 {
69                         Executed = true;
70                         IsFailure = true;
71                         this.message = message;
72                         this.stackTrace = stackTrace;
73                 }
74
75                 public override string Message
76                 {
77                         get { return message; }
78                 }
79
80                 public override string StackTrace
81                 {
82                         get 
83                         { 
84                                 return stackTrace;
85                         }
86                 }
87
88                 public override string ToString()
89                 {
90                         StringBuilder builder = new StringBuilder();
91                         string name = Name;
92                         if ( Test != null )
93                                 name = Test.FullName;
94                         
95                         builder.AppendFormat("{0} : " , name);
96                         if(!IsSuccess)
97                                 builder.Append(message);
98
99                         return builder.ToString();
100                 }
101
102                 public override void Accept(ResultVisitor visitor) 
103                 {
104                         visitor.visit(this);
105                 }
106         }
107 }