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

86 lines
2.6 KiB
C#

using System.IO;
using NUnit.Framework;
using UnityEditor.SettingsManagement;
namespace UnityEngine.SettingsManagement.EditorTests
{
class MultipleProjectSettings : SettingsTestBase
{
const string k_SettingsFileA = "FileA";
const string k_SettingsFileB = "FileB";
[TearDown]
public void Teardown()
{
var expectedPath = PackageSettingsRepository.GetSettingsPath(k_PackageName);
var expectedPathA = PackageSettingsRepository.GetSettingsPath(k_PackageName, k_SettingsFileA);
var expectedPathB = PackageSettingsRepository.GetSettingsPath(k_PackageName, k_SettingsFileB);
if(File.Exists(expectedPath))
File.Delete(expectedPath);
if(File.Exists(expectedPathA))
File.Delete(expectedPathA);
if(File.Exists(expectedPathB))
File.Delete(expectedPathB);
}
[Test]
public void NewSettingsInstance_CreatesUserAndProjectSettings()
{
var expectedPath = PackageSettingsRepository.GetSettingsPath(k_PackageName);
Assume.That(File.Exists(expectedPath), Is.False);
var settings = new Settings(k_PackageName);
settings.Save();
Assert.That(File.Exists(expectedPath), Is.True);
}
[Test]
public void NewSettingsInstance_SupportsMultipleProjectRepositories()
{
var expectedPathA = PackageSettingsRepository.GetSettingsPath(k_PackageName, "FileA");
var expectedPathB = PackageSettingsRepository.GetSettingsPath(k_PackageName, "FileB");
Assume.That(File.Exists(expectedPathA), Is.False);
Assume.That(File.Exists(expectedPathB), Is.False);
var settings = new Settings(new ISettingsRepository[]
{
new PackageSettingsRepository(k_PackageName, "FileA"),
new PackageSettingsRepository(k_PackageName, "FileB")
});
settings.Save();
Assert.That(File.Exists(expectedPathA), Is.True);
Assert.That(File.Exists(expectedPathB), Is.True);
}
[Test]
public void MultipleNamedProjectSettings_StoreSettingsSeparately()
{
var expectedPathA = PackageSettingsRepository.GetSettingsPath(k_PackageName, "FileA");
var expectedPathB = PackageSettingsRepository.GetSettingsPath(k_PackageName, "FileB");
Assume.That(File.Exists(expectedPathA), Is.False);
Assume.That(File.Exists(expectedPathB), Is.False);
var settings = new Settings(new ISettingsRepository[]
{
new PackageSettingsRepository(k_PackageName, "FileA"),
new PackageSettingsRepository(k_PackageName, "FileB")
});
settings.Set<int>("value_a", 32, "FileA");
settings.Set<int>("value_a", 64, "FileB");
Assert.That(settings.Get<int>("value_a", "FileA"), Is.EqualTo(32));
Assert.That(settings.Get<int>("value_a", "FileB"), Is.EqualTo(64));
}
}
}