diff options
Diffstat (limited to 'Library/PackageCache/com.unity.test-framework@1.1.11/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableSetUpTearDownCommand.cs')
| -rw-r--r-- | Library/PackageCache/com.unity.test-framework@1.1.11/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableSetUpTearDownCommand.cs | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/Library/PackageCache/com.unity.test-framework@1.1.11/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableSetUpTearDownCommand.cs b/Library/PackageCache/com.unity.test-framework@1.1.11/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableSetUpTearDownCommand.cs new file mode 100644 index 0000000..e4010c0 --- /dev/null +++ b/Library/PackageCache/com.unity.test-framework@1.1.11/UnityEngine.TestRunner/NUnitExtensions/Commands/EnumerableSetUpTearDownCommand.cs @@ -0,0 +1,44 @@ +using System;
+using System.Collections;
+using System.Linq;
+using System.Reflection;
+using NUnit.Framework.Internal;
+using NUnit.Framework.Internal.Commands;
+using UnityEngine.TestRunner.NUnitExtensions.Runner;
+
+namespace UnityEngine.TestTools
+{
+ internal class EnumerableSetUpTearDownCommand : BeforeAfterTestCommandBase<MethodInfo>
+ {
+ public EnumerableSetUpTearDownCommand(TestCommand innerCommand)
+ : base(innerCommand, "SetUp", "TearDown")
+ {
+ if (Test.TypeInfo.Type != null)
+ {
+ BeforeActions = GetMethodsWithAttributeFromFixture(Test.TypeInfo.Type, typeof(UnitySetUpAttribute));
+ AfterActions = GetMethodsWithAttributeFromFixture(Test.TypeInfo.Type, typeof(UnityTearDownAttribute)).Reverse().ToArray();
+ }
+ }
+
+ private static MethodInfo[] GetMethodsWithAttributeFromFixture(Type fixtureType, Type setUpType)
+ {
+ MethodInfo[] methodsWithAttribute = Reflect.GetMethodsWithAttribute(fixtureType, setUpType, true);
+ return methodsWithAttribute.Where(x => x.ReturnType == typeof(IEnumerator)).ToArray();
+ }
+
+ protected override IEnumerator InvokeBefore(MethodInfo action, Test test, UnityTestExecutionContext context)
+ {
+ return (IEnumerator)Reflect.InvokeMethod(action, context.TestObject);
+ }
+
+ protected override IEnumerator InvokeAfter(MethodInfo action, Test test, UnityTestExecutionContext context)
+ {
+ return (IEnumerator)Reflect.InvokeMethod(action, context.TestObject);
+ }
+
+ protected override BeforeAfterTestCommandState GetState(UnityTestExecutionContext context)
+ {
+ return context.SetUpTearDownState;
+ }
+ }
+}
|
