2020-02-29 22:15:49 +00:00
|
|
|
using System.IO;
|
|
|
|
using RecrownedGTK.Persistence;
|
|
|
|
using NUnit.Framework;
|
|
|
|
namespace RecrownedGTK.Test.Persistence {
|
|
|
|
[TestFixture]
|
|
|
|
public class PreferenceManagerTest {
|
|
|
|
Preferences preferences;
|
|
|
|
const string PATH = "../testdir";
|
|
|
|
const string FILENAME = "preferences";
|
|
|
|
[SetUp]
|
|
|
|
public void Setup() {
|
|
|
|
preferences = new Preferences(PATH, FILENAME);
|
|
|
|
}
|
|
|
|
|
|
|
|
[TearDown]
|
|
|
|
public void Teardown() {
|
|
|
|
string filePath = string.Format("{0}/{1}.xml", PATH, FILENAME);
|
|
|
|
if (File.Exists(filePath)) {
|
|
|
|
File.Delete(filePath);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
[TestCase("volume", 8)]
|
|
|
|
[TestCase("volume", 16)]
|
|
|
|
[TestCase("dial", 2)]
|
|
|
|
[TestCase("bloom", true)]
|
|
|
|
[TestCase("bloom", false)]
|
|
|
|
[TestCase("Nope", "yep")]
|
|
|
|
public void SetPreferenceTest(string key, object value) {
|
|
|
|
preferences.SetPreference(key, value.ToString());
|
|
|
|
|
|
|
|
Assert.AreEqual(value.ToString(), preferences.GetStringValue(key));
|
|
|
|
}
|
|
|
|
|
|
|
|
[TestCase("volume")]
|
|
|
|
[TestCase("")]
|
|
|
|
public void GetPreferenceTestNotSet(string key) {
|
|
|
|
Assert.AreEqual("", preferences.GetStringValue(key));
|
|
|
|
}
|
|
|
|
|
|
|
|
[TestCase("val1", true)]
|
|
|
|
[TestCase("val-1", false)]
|
|
|
|
[TestCase("val2", true)]
|
|
|
|
public void DeletePreferenceTest(string toDelete, bool expected) {
|
|
|
|
preferences.SetPreference("val1", "1");
|
|
|
|
preferences.SetPreference("val2", 2);
|
|
|
|
preferences.SetPreference("val3", 3);
|
|
|
|
|
|
|
|
Assert.AreEqual(expected, preferences.DeletePreference(toDelete));
|
|
|
|
}
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
public void SaveTestFileCreation() {
|
|
|
|
preferences.SetPreference("val1", 1);
|
|
|
|
preferences.SetPreference("val2", 2);
|
|
|
|
preferences.SetPreference("val3", 3);
|
|
|
|
|
|
|
|
preferences.Save();
|
|
|
|
|
|
|
|
FileAssert.Exists(string.Format("{0}/{1}.xml", PATH, FILENAME));
|
|
|
|
}
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
public void SaveTestContent() {
|
|
|
|
preferences.SetPreference("val", 1);
|
|
|
|
preferences.Save();
|
2020-02-29 22:20:56 +00:00
|
|
|
string[] expectedLines = File.ReadAllLines("assets/preferences.xml");
|
|
|
|
string expected = null;
|
|
|
|
|
|
|
|
for (int i = 0; i < expectedLines.Length; i++) {
|
|
|
|
if (i != 1) {
|
|
|
|
expected += expectedLines[i];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
string[] actualLines = File.ReadAllLines(string.Format("{0}/{1}.xml", PATH, FILENAME));
|
|
|
|
string actual = null;
|
|
|
|
for (int i = 0; i < expectedLines.Length; i++) {
|
|
|
|
if (i != 1) {
|
|
|
|
actual += actualLines[i];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Assert.AreEqual(expected, actual);
|
2020-02-29 22:15:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
public void LoadTestNoFile() {
|
|
|
|
Assert.IsFalse(preferences.Load());
|
|
|
|
}
|
|
|
|
|
|
|
|
[TestCase("volume", 8)]
|
|
|
|
[TestCase("volume", 16)]
|
|
|
|
[TestCase("dial", 2)]
|
|
|
|
[TestCase("bloom", true)]
|
|
|
|
[TestCase("bloom", false)]
|
|
|
|
[TestCase("Nope", "yep")]
|
|
|
|
[TestCase("precise", 3.42223f)]
|
|
|
|
[TestCase("anotherprecise", 3.14f)]
|
|
|
|
|
|
|
|
public void LoadTestWithFile(string key, object value) {
|
|
|
|
if (value.GetType() == typeof(string)) {
|
|
|
|
preferences.SetPreference(key, (string) value);
|
|
|
|
} else if (value.GetType() == typeof(int)) {
|
|
|
|
preferences.SetPreference(key, (int) value);
|
|
|
|
} else if (value.GetType() == typeof(float)) {
|
|
|
|
preferences.SetPreference(key, (float) value);
|
|
|
|
} else if (value.GetType() == typeof(bool)) {
|
|
|
|
preferences.SetPreference(key, (bool) value);
|
|
|
|
}
|
|
|
|
preferences.Save();
|
|
|
|
|
|
|
|
Preferences secondPreference = new Preferences(PATH, FILENAME);
|
|
|
|
secondPreference.Load();
|
|
|
|
|
|
|
|
if (value.GetType() == typeof(string)) {
|
|
|
|
Assert.AreEqual(value, secondPreference.GetStringValue(key));
|
|
|
|
} else if (value.GetType() == typeof(int)) {
|
|
|
|
Assert.AreEqual(value, secondPreference.GetIntValue(key));
|
|
|
|
} else if (value.GetType() == typeof(float)) {
|
|
|
|
Assert.AreEqual(value, secondPreference.GetFloatValue(key));
|
|
|
|
} else if (value.GetType() == typeof(bool)) {
|
|
|
|
Assert.AreEqual(value, secondPreference.GetBoolValue(key));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|