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.

59 lines
1.6 KiB
C#

1 year ago
using System.IO;
using NUnit.Framework;
using UnityEditor;
using UnityEditor.SettingsManagement;
namespace UnityEngine.SettingsManagement.EditorTests
{
public class FileRepositoryTests : SettingsTestBase
{
Settings m_Settings;
FileSettingsRepository m_Repository;
[SetUp]
public void SetUp()
{
m_Settings = new Settings(new [] { m_Repository = new ProjectUserSettings(k_PackageName) } );
}
[TearDown]
public void TearDown()
{
if (File.Exists(m_Repository.path))
File.Delete(m_Repository.path);
}
[Test]
public void CallingSaveMultipleTimes_OnlySavesWhenContentsChange()
{
m_Settings.Set<int, FileSettingsRepository>("save-int", 42);
m_Settings.Save();
var write = File.GetLastWriteTime(m_Repository.path);
// verify that setting was serialized
Assume.That(File.Exists(m_Repository.path));
var readback = new Settings(new [] { new ProjectUserSettings(k_PackageName) } );
Assume.That(readback.Get<int, FileSettingsRepository>("save-int"), Is.EqualTo(42));
// set the same value and save
m_Settings.Set<int, FileSettingsRepository>("save-int", 42);
m_Settings.Save();
// save file should not be touched since nothing change
Assert.That(write, Is.EqualTo(File.GetLastWriteTime(m_Repository.path)));
}
[Test]
public void SaveFileSettingsRepository_WritesFile()
{
m_Settings.Set<int, FileSettingsRepository>("save-int", 42);
m_Settings.Save();
Assume.That(File.Exists(m_Repository.path));
var readback = new Settings(new [] { new ProjectUserSettings(k_PackageName) } );
Assert.That(readback.Get<int, FileSettingsRepository>("save-int"), Is.EqualTo(42));
}
}
}