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
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 '***********************************************************************************/
33 using System
.Diagnostics
;
34 using System
.Reflection
;
37 /// Summary description for ExpectedExceptionTestCase.
39 public class ExpectedExceptionTestCase
: TemplateTestCase
41 private Type expectedException
;
42 private string expectedMessage
;
44 public ExpectedExceptionTestCase(Type fixtureType
, MethodInfo method
) : base(fixtureType
, method
)
49 public ExpectedExceptionTestCase(object fixture
, MethodInfo method
) : base(fixture
, 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
);
81 else if (exception
is Framework
.AssertionException
)
83 RecordException(exception
,testResult
);
87 string message
= "Expected: " + expectedException
.Name
+ " but was " + exception
.GetType().Name
;
88 testResult
.Failure(message
, exception
.StackTrace
);
94 protected override internal void ProcessNoException(TestCaseResult testResult
)
96 testResult
.Failure(expectedException
.Name
+ " was expected", null);