暂无描述
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

InitOnStartupEnabledTests.cs 5.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. using NUnit.Framework;
  2. using System.Collections;
  3. using UnityEngine;
  4. using UnityEngine.TestTools;
  5. using UnityEngine.AdaptivePerformance;
  6. using UnityEngine.AdaptivePerformance.Provider;
  7. namespace UnityEditor.AdaptivePerformance.Editor.Tests
  8. {
  9. public class InitOnStartupEnabledTests : ManagementTestSetup
  10. {
  11. [UnitySetUp]
  12. public IEnumerator SetUp()
  13. {
  14. isInitializingOnStartup = true;
  15. ProviderAndSettingsSetup();
  16. yield return new EnterPlayMode();
  17. }
  18. [UnityTearDown]
  19. public IEnumerator Teardown()
  20. {
  21. ProviderAndSettingsTearDown();
  22. yield return new ExitPlayMode();
  23. AssetCleanUp();
  24. }
  25. [UnityTest]
  26. public IEnumerator Lifecycle_Workflow_Valid()
  27. {
  28. var apGameObject = GameObject.Find(AdaptivePerformanceManagerSpawner.AdaptivePerformanceManagerObjectName);
  29. Assert.IsNotNull(apGameObject);
  30. var apm = UnityEngine.Object.FindObjectOfType<AdaptivePerformanceManager>();
  31. Assert.IsNotNull(apm);
  32. var lifecycleEventCount = 0;
  33. IAdaptivePerformance eventInstance = null;
  34. LifecycleChangeType? changeType = null;
  35. LifecycleEventHandler lifecycleEventHandler =
  36. delegate(IAdaptivePerformance instance, LifecycleChangeType type)
  37. {
  38. eventInstance = instance;
  39. changeType = type;
  40. lifecycleEventCount++;
  41. };
  42. Holder.LifecycleEventHandler += lifecycleEventHandler;
  43. var adaptivePerformanceGeneralSettings = AdaptivePerformanceGeneralSettings.Instance;
  44. var originalInstance = Holder.Instance;
  45. var originalIndexer = Holder.Instance.Indexer;
  46. Assert.IsNotNull(originalInstance);
  47. Assert.IsTrue(Holder.Instance.Active);
  48. Assert.IsNotNull(originalIndexer);
  49. Assert.IsTrue(adaptivePerformanceGeneralSettings.IsProviderInitialized);
  50. Assert.IsTrue(adaptivePerformanceGeneralSettings.IsProviderStarted);
  51. Assert.IsTrue(adaptivePerformanceGeneralSettings.Manager.isInitializationComplete);
  52. var originalLoader = adaptivePerformanceGeneralSettings.Manager.activeLoader;
  53. Assert.IsNotNull(originalLoader);
  54. Assert.IsTrue(originalLoader.Initialized);
  55. Assert.IsTrue(originalLoader.Running);
  56. var originalSubsystem = originalLoader.GetDefaultSubsystem() as AdaptivePerformanceSubsystem;
  57. Assert.IsNotNull(originalSubsystem);
  58. Assert.IsTrue(originalSubsystem.Initialized);
  59. Assert.IsTrue(originalSubsystem.running);
  60. Holder.Instance.StopAdaptivePerformance();
  61. yield return null;
  62. Assert.IsFalse(Holder.Instance.Active);
  63. Assert.IsNotNull(Holder.Instance.Indexer);
  64. Assert.AreSame(originalIndexer, Holder.Instance.Indexer);
  65. Assert.IsTrue(adaptivePerformanceGeneralSettings.IsProviderInitialized);
  66. Assert.IsFalse(adaptivePerformanceGeneralSettings.IsProviderStarted);
  67. Assert.IsTrue(adaptivePerformanceGeneralSettings.Manager.isInitializationComplete);
  68. var activeLoader = adaptivePerformanceGeneralSettings.Manager.activeLoader;
  69. Assert.IsNotNull(activeLoader);
  70. Assert.AreSame(originalLoader, activeLoader);
  71. Assert.IsTrue(activeLoader.Initialized);
  72. Assert.IsFalse(activeLoader.Running);
  73. var subsystem = activeLoader.GetDefaultSubsystem() as AdaptivePerformanceSubsystem;
  74. Assert.IsNotNull(subsystem);
  75. Assert.AreSame(originalSubsystem, subsystem);
  76. Assert.IsTrue(subsystem.Initialized);
  77. Assert.IsFalse(subsystem.running);
  78. var instance = Holder.Instance;
  79. Holder.Deinitialize();
  80. yield return null;
  81. Assert.AreSame(originalInstance, instance);
  82. Assert.IsFalse(instance.Active);
  83. Assert.IsNull(instance.Indexer);
  84. Assert.IsFalse(adaptivePerformanceGeneralSettings.IsProviderInitialized);
  85. Assert.IsFalse(adaptivePerformanceGeneralSettings.IsProviderStarted);
  86. Assert.IsFalse(adaptivePerformanceGeneralSettings.Manager.isInitializationComplete);
  87. Assert.IsNull(adaptivePerformanceGeneralSettings.Manager.activeLoader);
  88. yield return null;
  89. // check previous active loader and subsystem if shut down
  90. Assert.IsFalse(activeLoader.Initialized);
  91. Assert.IsFalse(activeLoader.Running);
  92. Assert.IsFalse(subsystem.Initialized);
  93. Assert.IsFalse(subsystem.running);
  94. yield return null;
  95. // check lifecycle event details
  96. Assert.AreSame(originalInstance, eventInstance);
  97. Assert.IsNotNull(changeType);
  98. Assert.AreEqual(LifecycleChangeType.Destroyed, changeType.Value);
  99. yield return null;
  100. apGameObject = GameObject.Find(AdaptivePerformanceManagerSpawner.AdaptivePerformanceManagerObjectName);
  101. Assert.IsNull(apGameObject);
  102. apm = UnityEngine.Object.FindObjectOfType<AdaptivePerformanceManager>();
  103. Assert.IsNull(apm);
  104. yield return null;
  105. Assert.AreEqual(1, lifecycleEventCount);
  106. }
  107. }
  108. }