Unit testing for the new preference system.
This commit is contained in:
parent
278031ad7d
commit
72d080c04c
110
RecrownedGTK.Tests/Persistence/PreferencesTest.cs
Normal file
110
RecrownedGTK.Tests/Persistence/PreferencesTest.cs
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
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();
|
||||||
|
FileAssert.AreEqual("assets/preferences.xml", string.Format("{0}/{1}.xml", PATH, FILENAME));
|
||||||
|
}
|
||||||
|
|
||||||
|
[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));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
9
RecrownedGTK.Tests/assets/preferences.xml
Normal file
9
RecrownedGTK.Tests/assets/preferences.xml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<PreferencesInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||||
|
<preferences>
|
||||||
|
<PreferenceInfo>
|
||||||
|
<key>val</key>
|
||||||
|
<value>1</value>
|
||||||
|
</PreferenceInfo>
|
||||||
|
</preferences>
|
||||||
|
</PreferencesInfo>
|
Loading…
Reference in New Issue
Block a user