linux-packaging-mono/mcs/nunit24/NUnitCore/core/NotRunnableTestCase.cs
Jo Shields a575963da9 Imported Upstream version 3.6.0
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
2014-08-13 10:39:27 +01:00

51 lines
1.5 KiB
C#

// ****************************************************************
// This is free software licensed under the NUnit license. You
// may obtain a copy of the license as well as information regarding
// copyright ownership at http://nunit.org/?p=license&r=2.4.
// ****************************************************************
using System;
using System.Reflection;
namespace NUnit.Core
{
/// <summary>
/// Summary description for NotRunnableTestCase.
/// </summary>
public class NotRunnableTestCase : TestCase
{
public NotRunnableTestCase(MethodInfo method, string reason) : base(method.DeclaringType.FullName, method.Name)
{
RunState = RunState.NotRunnable;
IgnoreReason = reason;
}
public NotRunnableTestCase(MethodInfo method) : base(method.DeclaringType.FullName, method.Name)
{
string reason;
if (method.IsAbstract)
reason = "it must not be abstract";
else if (method.IsStatic)
reason = "it must be an instance method";
else if (!method.IsPublic)
reason = "it must be a public method";
else if (method.GetParameters().Length != 0)
reason = "it must not have parameters";
else if (!method.ReturnType.Equals(typeof(void)))
reason = "it must return void";
else
reason = "reason not known";
RunState = RunState.NotRunnable;
IgnoreReason = String.Format("Method {0}'s signature is not correct: {1}.", method.Name, reason);
}
public override void Run(TestCaseResult result)
{
result.Ignore(base.IgnoreReason);
}
}
}