IgnoredTestCaseData
The IgnoredTestCaseData class represents a ignored TestCaseData. It adds
the ability to set a date until which the test will be ignored.
using NUnit.Framework.Interfaces;
using NUnit.Framework.Internal.Extensions;
using System;
using System.ComponentModel;
using System.Runtime.CompilerServices;
namespace NUnit.Framework
{
[NullableContext(1)]
[Nullable(0)]
[EditorBrowsable(EditorBrowsableState.Never)]
public sealed class IgnoredTestCaseData : TestCaseData
{
private readonly RunState _prevRunState;
internal IgnoredTestCaseData(TestCaseData data, RunState prevRunState)
: base(Array.Empty<object>())
{
base.Arguments = data.Arguments;
base.ArgDisplayNames = data.ArgDisplayNames;
base.ExpectedResult = data.ExpectedResult;
base.HasExpectedResult = data.HasExpectedResult;
base.OriginalArguments = data.OriginalArguments;
base.Properties = data.Properties;
base.RunState = data.RunState;
base.TestName = data.TestName;
_prevRunState = prevRunState;
}
public TestCaseData Until(DateTimeOffset datetime)
{
if (_prevRunState != 0) {
if (datetime > DateTimeOffset.UtcNow) {
base.RunState = RunState.Ignored;
string reason = (string)base.Properties.Get("_SKIPREASON");
base.Properties.AddIgnoreUntilReason(datetime, reason);
} else
base.RunState = _prevRunState;
base.Properties.Set("IgnoreUntilDate", datetime.ToString("u"));
}
return this;
}
}
}