(DISTFILES): Comment out a few missing files.
[mono-project.git] / mcs / nunit20 / core / ExpectedExceptionTestCase.cs
blob5caf077166ea60ccc87a4123bb953f1e06a4bdba
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.Diagnostics;
34 using System.Reflection;
36 /// <summary>
37 /// Summary description for ExpectedExceptionTestCase.
38 /// </summary>
39 public class ExpectedExceptionTestCase : TemplateTestCase
41 private Type expectedException;
42 private string expectedMessage;
44 public ExpectedExceptionTestCase(Type fixtureType, MethodInfo method) : base(fixtureType, method)
46 Initialize( method );
49 public ExpectedExceptionTestCase(object fixture, MethodInfo method) : base(fixture, method)
51 Initialize( method );
54 private void Initialize( MethodInfo method )
56 NUnit.Framework.ExpectedExceptionAttribute attribute =
57 Reflect.GetExpectedExceptionAttribute( method );
59 if ( attribute == null )
60 throw new InvalidTestFixtureException( "ExpectedExceptionAttribute not found" );
62 this.expectedException = attribute.ExceptionType;
63 this.expectedMessage = attribute.ExpectedMessage;
66 protected override internal void ProcessException(Exception exception, TestCaseResult testResult)
68 if (expectedException.Equals(exception.GetType()))
70 if (expectedMessage != null && !expectedMessage.Equals(exception.Message))
72 string message = string.Format("Expected exception to have message: \"{0}\" but received message \"{1}\"",
73 expectedMessage, exception.Message);
74 testResult.Failure(message, exception.StackTrace);
76 else
78 testResult.Success();
81 else if (exception is Framework.AssertionException)
83 RecordException(exception,testResult);
85 else
87 string message = "Expected: " + expectedException.Name + " but was " + exception.GetType().Name;
88 testResult.Failure(message, exception.StackTrace);
91 return;
94 protected override internal void ProcessNoException(TestCaseResult testResult)
96 testResult.Failure(expectedException.Name + " was expected", null);