1
// ***********************************************************************
2
// Copyright (c) 2007 Charlie Poole
4
// Permission is hereby granted, free of charge, to any person obtaining
5
// a copy of this software and associated documentation files (the
6
// "Software"), to deal in the Software without restriction, including
7
// without limitation the rights to use, copy, modify, merge, publish,
8
// distribute, sublicense, and/or sell copies of the Software, and to
9
// permit persons to whom the Software is furnished to do so, subject to
10
// the following conditions:
12
// The above copyright notice and this permission notice shall be
13
// included in all copies or substantial portions of the Software.
15
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
// ***********************************************************************
25
using NUnit.Framework.Api;
26
using NUnit.Framework.Internal;
28
using NUnit.TestUtilities;
30
namespace NUnit.Framework.Tests
33
/// Tests for MaxTime decoration.
36
public class MaxTimeTests
39
public void MaxTimeNotExceeded()
43
// TODO: We need a way to simulate the clock reliably
45
public void MaxTimeExceeded()
47
ITestResult suiteResult = TestBuilder.RunTestFixture(typeof(MaxTimeFixture));
48
Assert.AreEqual(ResultState.Failure, suiteResult.ResultState);
49
TestResult result = (TestResult)suiteResult.Children[0];
50
Assert.That(result.Message, Contains.Substring("exceeds maximum of 1ms"));
54
[ExpectedException(typeof(AssertionException), ExpectedMessage = "Intentional Failure")]
55
public void FailureReport()
57
Assert.Fail("Intentional Failure");
61
public void FailureReportHasPriorityOverMaxTime()
63
ITestResult result = TestBuilder.RunTestFixture(typeof(MaxTimeFixtureWithFailure));
64
Assert.AreEqual(ResultState.Failure, result.ResultState);
65
result = (TestResult)result.Children[0];
66
Assert.AreEqual(ResultState.Failure, result.ResultState);
67
Assert.That(result.Message, Is.EqualTo("Intentional Failure"));
70
[Test, MaxTime(1000), ExpectedException]
71
public void ErrorReport()
73
throw new Exception();
77
public void ErrorReportHasPriorityOverMaxTime()
79
ITestResult result = TestBuilder.RunTestFixture(typeof(MaxTimeFixtureWithError));
80
Assert.AreEqual(ResultState.Failure, result.ResultState);
81
result = (ITestResult)result.Children[0];
82
Assert.AreEqual(ResultState.Error, result.ResultState);
83
Assert.That(result.Message, Contains.Substring("Exception message"));