MultipleProjectSettings.cs 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. using System.IO;
  2. using NUnit.Framework;
  3. using UnityEditor.SettingsManagement;
  4. namespace UnityEngine.SettingsManagement.EditorTests
  5. {
  6. class MultipleProjectSettings
  7. {
  8. const string k_MultipleSettingFilesPackageName = "com.unity.settings-manager.tests";
  9. const string k_SettingsFileA = "FileA";
  10. const string k_SettingsFileB = "FileB";
  11. [TearDown]
  12. public void Teardown()
  13. {
  14. var expectedPath = PackageSettingsRepository.GetSettingsPath(k_MultipleSettingFilesPackageName);
  15. var expectedPathA = PackageSettingsRepository.GetSettingsPath(k_MultipleSettingFilesPackageName, k_SettingsFileA);
  16. var expectedPathB = PackageSettingsRepository.GetSettingsPath(k_MultipleSettingFilesPackageName, k_SettingsFileB);
  17. if(File.Exists(expectedPath))
  18. File.Delete(expectedPath);
  19. if(File.Exists(expectedPathA))
  20. File.Delete(expectedPathA);
  21. if(File.Exists(expectedPathB))
  22. File.Delete(expectedPathB);
  23. }
  24. [Test]
  25. public void NewSettingsInstance_CreatesUserAndProjectSettings()
  26. {
  27. var expectedPath = PackageSettingsRepository.GetSettingsPath(k_MultipleSettingFilesPackageName);
  28. Assume.That(File.Exists(expectedPath), Is.False);
  29. var settings = new Settings(k_MultipleSettingFilesPackageName);
  30. settings.Save();
  31. Assert.That(File.Exists(expectedPath), Is.True);
  32. }
  33. [Test]
  34. public void NewSettingsInstance_SupportsMultipleProjectRepositories()
  35. {
  36. var expectedPathA = PackageSettingsRepository.GetSettingsPath(k_MultipleSettingFilesPackageName, "FileA");
  37. var expectedPathB = PackageSettingsRepository.GetSettingsPath(k_MultipleSettingFilesPackageName, "FileB");
  38. Assume.That(File.Exists(expectedPathA), Is.False);
  39. Assume.That(File.Exists(expectedPathB), Is.False);
  40. var settings = new Settings(new ISettingsRepository[]
  41. {
  42. new PackageSettingsRepository(k_MultipleSettingFilesPackageName, "FileA"),
  43. new PackageSettingsRepository(k_MultipleSettingFilesPackageName, "FileB")
  44. });
  45. settings.Save();
  46. Assert.That(File.Exists(expectedPathA), Is.True);
  47. Assert.That(File.Exists(expectedPathB), Is.True);
  48. }
  49. [Test]
  50. public void MultipleNamedProjectSettings_StoreSettingsSeparately()
  51. {
  52. var expectedPathA = PackageSettingsRepository.GetSettingsPath(k_MultipleSettingFilesPackageName, "FileA");
  53. var expectedPathB = PackageSettingsRepository.GetSettingsPath(k_MultipleSettingFilesPackageName, "FileB");
  54. Assume.That(File.Exists(expectedPathA), Is.False);
  55. Assume.That(File.Exists(expectedPathB), Is.False);
  56. var settings = new Settings(new ISettingsRepository[]
  57. {
  58. new PackageSettingsRepository(k_MultipleSettingFilesPackageName, "FileA"),
  59. new PackageSettingsRepository(k_MultipleSettingFilesPackageName, "FileB")
  60. });
  61. settings.Set<int>("value_a", 32, "FileA");
  62. settings.Set<int>("value_a", 64, "FileB");
  63. Assert.That(settings.Get<int>("value_a", "FileA"), Is.EqualTo(32));
  64. Assert.That(settings.Get<int>("value_a", "FileB"), Is.EqualTo(64));
  65. }
  66. }
  67. }