<PackageReference Include="NUnit" Version="4.5.0" />

TestCaseParameters

The TestCaseParameters class encapsulates method arguments and other selected parameters needed for constructing a parameterized test case.
using NUnit.Framework.Interfaces; using System; using System.Reflection; using System.Runtime.CompilerServices; namespace NUnit.Framework.Internal { public class TestCaseParameters : TestParameters, ITestCaseData, ITestData, IApplyToTest { [System.Runtime.CompilerServices.Nullable(2)] private object _expectedResult; [System.Runtime.CompilerServices.Nullable(2)] public object ExpectedResult { [System.Runtime.CompilerServices.NullableContext(2)] get { return _expectedResult; } [System.Runtime.CompilerServices.NullableContext(2)] set { _expectedResult = value; HasExpectedResult = true; } } public bool HasExpectedResult { get; set; } [System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] [field: System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] public Type[] TypeArgs { [return: System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] get; [param: System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] set; } public TestCaseParameters() { } [System.Runtime.CompilerServices.NullableContext(1)] public TestCaseParameters(Exception exception) : base(exception) { } public TestCaseParameters([System.Runtime.CompilerServices.Nullable(new byte[] { 1, 2 })] object[] args) : base(args) { } [System.Runtime.CompilerServices.NullableContext(1)] public TestCaseParameters(ITestCaseData data) : base(data) { if (data.HasExpectedResult) ExpectedResult = data.ExpectedResult; } [System.Runtime.CompilerServices.NullableContext(1)] public TestCaseParameters(TestCaseParameters data) : base(data) { if (data.HasExpectedResult) ExpectedResult = data.ExpectedResult; TypeArgs = data.TypeArgs; } [System.Runtime.CompilerServices.NullableContext(1)] internal void AdjustArgumentsForMethod(IMethodInfo method) { ParameterInfo[] parameters = method.MethodInfo.GetParameters(); int num = parameters.Length; int num2 = base.Arguments.Length; if (HasExpectedResult && ParamAttributeTypeConversions.TryConvert(ExpectedResult, method.ReturnType.Type, out object convertedValue)) ExpectedResult = convertedValue; if (parameters.Length != 0) { base.Arguments = Reflect.PopulateOptionalArgsAndParamsArray(method.MethodInfo, TypeArgs, base.Arguments, parameters); num2 = num; } if (num == 1 && parameters[0].ParameterType == typeof(object[]) && (num2 > 1 || (num2 == 1 && base.Arguments[0]?.GetType() != typeof(object[])))) base.Arguments = new object[1] { base.Arguments }; if (num2 == num) { for (int i = 0; i < base.Arguments.Length; i++) { object value = base.Arguments[i]; Type parameterType = parameters[i].ParameterType; if (ParamAttributeTypeConversions.TryConvert(value, parameterType, out object convertedValue2)) base.Arguments[i] = convertedValue2; } } } } }