Nav apraksta
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

ManagementTestSetup.cs 5.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. using System;
  2. using System.IO;
  3. using UnityEngine;
  4. using UnityEngine.AdaptivePerformance;
  5. using UnityEditor.AdaptivePerformance.Simulator.Editor;
  6. using UnityEditor.AdaptivePerformance.Editor.Metadata;
  7. namespace UnityEditor.AdaptivePerformance.Editor.Tests
  8. {
  9. public abstract class ManagementTestSetup
  10. {
  11. protected static readonly string[] s_TestGeneralSettings = { "Temp", "Test" };
  12. protected static readonly string[] s_TempSettingsPath = { "Temp", "Test", "Settings" };
  13. static protected bool isInitializingOnStartup = true;
  14. public virtual void ProviderAndSettingsSetup()
  15. {
  16. AssetDatabase.DeleteAsset("Assets/Adaptive Performance");
  17. AssetDatabase.CreateFolder("Assets", "Adaptive Performance");
  18. var testManager = ScriptableObject.CreateInstance<AdaptivePerformanceManagerSettings>();
  19. var adaptivePerformanceGeneralSettings = ScriptableObject.CreateInstance<AdaptivePerformanceGeneralSettings>() as AdaptivePerformanceGeneralSettings;
  20. adaptivePerformanceGeneralSettings.Manager = testManager;
  21. adaptivePerformanceGeneralSettings.m_InitManagerOnStart = isInitializingOnStartup;
  22. var testPathToSettings = GetAssetPathForComponents(s_TempSettingsPath);
  23. testPathToSettings = Path.Combine(testPathToSettings, $"ManualTest_{ typeof(AdaptivePerformanceGeneralSettings).Name}.asset");
  24. if (!string.IsNullOrEmpty(testPathToSettings))
  25. {
  26. AssetDatabase.CreateAsset(adaptivePerformanceGeneralSettings, testPathToSettings);
  27. AssetDatabase.AddObjectToAsset(testManager, adaptivePerformanceGeneralSettings);
  28. AssetDatabase.SaveAssets();
  29. }
  30. var testPathToGeneralSettings = GetAssetPathForComponents(s_TestGeneralSettings);
  31. testPathToGeneralSettings = Path.Combine(testPathToGeneralSettings, $"ManualTest_{typeof(AdaptivePerformanceGeneralSettingsPerBuildTarget).Name}.asset");
  32. var buildTargetSettings = ScriptableObject.CreateInstance<AdaptivePerformanceGeneralSettingsPerBuildTarget>();
  33. buildTargetSettings.SetSettingsForBuildTarget(BuildTargetGroup.Standalone, adaptivePerformanceGeneralSettings);
  34. if (!string.IsNullOrEmpty(testPathToSettings))
  35. {
  36. AssetDatabase.CreateAsset(buildTargetSettings, testPathToGeneralSettings);
  37. AssetDatabase.SaveAssets();
  38. UnityEngine.Object currentSettings;
  39. EditorBuildSettings.TryGetConfigObject(AdaptivePerformanceGeneralSettings.k_SettingsKey, out currentSettings);
  40. EditorBuildSettings.AddConfigObject(AdaptivePerformanceGeneralSettings.k_SettingsKey, buildTargetSettings, true);
  41. }
  42. var testPathToLoader = GetAssetPathForComponents(s_TempSettingsPath);
  43. // Setup Loader
  44. var loader = ScriptableObject.CreateInstance(typeof(SimulatorProviderLoader)) as SimulatorProviderLoader;
  45. AssetDatabase.CreateAsset(loader, Path.Combine(testPathToLoader, $"ManualTest_{typeof(SimulatorProviderLoader).Name}.asset"));
  46. testManager.loaders.Add(loader);
  47. // Setup Settings
  48. var settings = ScriptableObject.CreateInstance(typeof(SimulatorProviderSettings)) as SimulatorProviderSettings;
  49. AssetDatabase.CreateAsset(settings, Path.Combine(testPathToLoader, $"ManualTest_{typeof(SimulatorProviderSettings).Name}.asset"));
  50. //settings.logging = false;
  51. EditorBuildSettings.AddConfigObject(SimulatorProviderConstants.k_SettingsKey, settings, true);
  52. // Due to the Settings menu, we have to manually assigned the Simulator loader in tests.
  53. AdaptivePerformancePackageMetadataStore.AssignLoader(AdaptivePerformanceGeneralSettings.Instance.Manager, typeof(SimulatorProviderLoader).Name, BuildTargetGroup.Standalone);
  54. }
  55. public virtual void ProviderAndSettingsTearDown()
  56. {
  57. var adaptivePerformanceManager = Holder.Instance as AdaptivePerformanceManager;
  58. var adaptivePerformanceGeneralSettings = AdaptivePerformanceGeneralSettings.Instance;
  59. var testManager = adaptivePerformanceGeneralSettings.Manager;
  60. if (testManager.isInitializationComplete)
  61. testManager.DeinitializeLoader();
  62. var loader = testManager.activeLoader;
  63. testManager.loaders.Remove(loader);
  64. EditorBuildSettings.RemoveConfigObject(AdaptivePerformanceGeneralSettings.k_SettingsKey);
  65. UnityEngine.Object.DestroyImmediate(adaptivePerformanceGeneralSettings, true);
  66. UnityEngine.Object.DestroyImmediate(testManager, true);
  67. UnityEngine.Object.DestroyImmediate(loader, true);
  68. UnityEngine.Object.DestroyImmediate(adaptivePerformanceManager, true);
  69. }
  70. public virtual void AssetCleanUp()
  71. {
  72. AssetDatabase.DeleteAsset(Path.Combine("Assets", "Temp"));
  73. AssetDatabase.DeleteAsset("Assets/Adaptive Performance");
  74. }
  75. public static string GetAssetPathForComponents(string[] pathComponents, string root = "Assets")
  76. {
  77. if (pathComponents.Length <= 0)
  78. return null;
  79. string path = root;
  80. foreach (var pc in pathComponents)
  81. {
  82. string subFolder = Path.Combine(path, pc);
  83. bool shouldCreate = true;
  84. foreach (var f in AssetDatabase.GetSubFolders(path))
  85. {
  86. if (String.Compare(Path.GetFullPath(f), Path.GetFullPath(subFolder), true) == 0)
  87. {
  88. shouldCreate = false;
  89. break;
  90. }
  91. }
  92. if (shouldCreate)
  93. AssetDatabase.CreateFolder(path, pc);
  94. path = subFolder;
  95. }
  96. return path;
  97. }
  98. }
  99. }