暫無描述
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

InitOnStartupNotEnabledTests.cs 7.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  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 InitOnStartupNotEnabledTests : ManagementTestSetup
  10. {
  11. [UnitySetUp]
  12. public IEnumerator SetUp()
  13. {
  14. isInitializingOnStartup = false;
  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.IsNull(apGameObject);
  30. var apm = UnityEngine.Object.FindObjectOfType<AdaptivePerformanceManager>();
  31. Assert.IsNull(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. Assert.IsNull(Holder.Instance);
  44. var adaptivePerformanceGeneralSettings = AdaptivePerformanceGeneralSettings.Instance;
  45. Assert.IsFalse(adaptivePerformanceGeneralSettings.IsProviderInitialized);
  46. Assert.IsFalse(adaptivePerformanceGeneralSettings.IsProviderStarted);
  47. Assert.IsFalse(adaptivePerformanceGeneralSettings.Manager.isInitializationComplete);
  48. var originalLoader = adaptivePerformanceGeneralSettings.Manager.activeLoader;
  49. Assert.IsNull(originalLoader);
  50. Holder.Initialize();
  51. yield return null;
  52. Assert.IsNotNull(Holder.Instance);
  53. var originalInstance = Holder.Instance;
  54. // check lifecycle event details
  55. Assert.AreSame(eventInstance, originalInstance);
  56. Assert.IsNotNull(changeType);
  57. Assert.AreEqual(LifecycleChangeType.Created, changeType.Value);
  58. // check game object
  59. apGameObject = GameObject.Find(AdaptivePerformanceManagerSpawner.AdaptivePerformanceManagerObjectName);
  60. Assert.IsNotNull(apGameObject);
  61. apm = UnityEngine.Object.FindObjectOfType<AdaptivePerformanceManager>();
  62. Assert.IsNotNull(apm);
  63. var originalIndexer = Holder.Instance.Indexer;
  64. Assert.IsFalse(Holder.Instance.Active);
  65. Assert.IsNotNull(originalIndexer);
  66. Assert.IsTrue(adaptivePerformanceGeneralSettings.IsProviderInitialized);
  67. Assert.IsFalse(adaptivePerformanceGeneralSettings.IsProviderStarted);
  68. Assert.IsTrue(adaptivePerformanceGeneralSettings.Manager.isInitializationComplete);
  69. originalLoader = adaptivePerformanceGeneralSettings.Manager.activeLoader;
  70. Assert.IsNotNull(originalLoader);
  71. Assert.IsTrue(originalLoader.Initialized);
  72. Assert.IsFalse(originalLoader.Running);
  73. var originalSubsystem = originalLoader.GetDefaultSubsystem() as AdaptivePerformanceSubsystem;
  74. Assert.IsNotNull(originalSubsystem);
  75. Assert.IsTrue(originalSubsystem.Initialized);
  76. Assert.IsFalse(originalSubsystem.running);
  77. Holder.Instance.StartAdaptivePerformance();
  78. yield return null;
  79. var newIndexer = Holder.Instance.Indexer;
  80. Assert.IsTrue(Holder.Instance.Active);
  81. Assert.IsNotNull(newIndexer);
  82. Assert.AreSame(originalIndexer, newIndexer);
  83. Assert.IsTrue(adaptivePerformanceGeneralSettings.IsProviderInitialized);
  84. Assert.IsTrue(adaptivePerformanceGeneralSettings.IsProviderStarted);
  85. Assert.IsTrue(adaptivePerformanceGeneralSettings.Manager.isInitializationComplete);
  86. var newLoader = adaptivePerformanceGeneralSettings.Manager.activeLoader;
  87. Assert.IsNotNull(newLoader);
  88. Assert.AreSame(originalLoader, newLoader);
  89. Assert.IsTrue(newLoader.Initialized);
  90. Assert.IsTrue(newLoader.Running);
  91. var newSubsystem = newLoader.GetDefaultSubsystem() as AdaptivePerformanceSubsystem;
  92. Assert.IsNotNull(newSubsystem);
  93. Assert.AreSame(originalSubsystem, newSubsystem);
  94. Assert.IsTrue(newSubsystem.Initialized);
  95. Assert.IsTrue(newSubsystem.running);
  96. Holder.Instance.StopAdaptivePerformance();
  97. yield return null;
  98. Assert.IsFalse(Holder.Instance.Active);
  99. Assert.IsNotNull(Holder.Instance.Indexer);
  100. Assert.AreSame(originalIndexer, Holder.Instance.Indexer);
  101. Assert.IsTrue(adaptivePerformanceGeneralSettings.IsProviderInitialized);
  102. Assert.IsFalse(adaptivePerformanceGeneralSettings.IsProviderStarted);
  103. Assert.IsTrue(adaptivePerformanceGeneralSettings.Manager.isInitializationComplete);
  104. var activeLoader = adaptivePerformanceGeneralSettings.Manager.activeLoader;
  105. Assert.IsNotNull(activeLoader);
  106. Assert.AreSame(originalLoader, activeLoader);
  107. Assert.IsTrue(activeLoader.Initialized);
  108. Assert.IsFalse(activeLoader.Running);
  109. var subsystem = activeLoader.GetDefaultSubsystem() as AdaptivePerformanceSubsystem;
  110. Assert.IsNotNull(subsystem);
  111. Assert.AreSame(originalSubsystem, subsystem);
  112. Assert.IsTrue(subsystem.Initialized);
  113. Assert.IsFalse(subsystem.running);
  114. var instance = Holder.Instance;
  115. Holder.Deinitialize();
  116. yield return null;
  117. Assert.AreSame(originalInstance, instance);
  118. Assert.IsFalse(instance.Active);
  119. Assert.IsNull(instance.Indexer);
  120. Assert.IsFalse(adaptivePerformanceGeneralSettings.IsProviderInitialized);
  121. Assert.IsFalse(adaptivePerformanceGeneralSettings.IsProviderStarted);
  122. Assert.IsFalse(adaptivePerformanceGeneralSettings.Manager.isInitializationComplete);
  123. Assert.IsNull(adaptivePerformanceGeneralSettings.Manager.activeLoader);
  124. yield return null;
  125. // check previous active loader and subsystem if shut down
  126. Assert.IsFalse(activeLoader.Initialized);
  127. Assert.IsFalse(activeLoader.Running);
  128. Assert.IsFalse(subsystem.Initialized);
  129. Assert.IsFalse(subsystem.running);
  130. yield return null;
  131. // check lifecycle event details
  132. Assert.AreSame(originalInstance, eventInstance);
  133. Assert.IsNotNull(changeType);
  134. Assert.AreEqual(LifecycleChangeType.Destroyed, changeType.Value);
  135. yield return null;
  136. Assert.AreEqual(2, lifecycleEventCount);
  137. }
  138. }
  139. }