A game framework written with osu! in mind.
at master 100 lines 4.1 kB view raw
1// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence. 2// See the LICENCE file in the repository root for full licence text. 3 4using System; 5using System.Collections.Generic; 6using NUnit.Framework; 7using osu.Framework.Configuration; 8using osu.Framework.Testing; 9 10namespace osu.Framework.Tests.Configuration 11{ 12 [TestFixture] 13 public class FrameworkConfigManagerTest 14 { 15 [Test] 16 public void TestDefault() 17 { 18 using (var storage = new TemporaryNativeStorage(new Guid().ToString())) 19 { 20 using (var configManager = new FrameworkConfigManager(storage)) 21 { 22 var bindable = configManager.GetBindable<string>(FrameworkSetting.Locale); 23 24 Assert.AreEqual(string.Empty, bindable.Value); 25 Assert.AreEqual(string.Empty, bindable.Default); 26 Assert.IsTrue(bindable.IsDefault); 27 } 28 } 29 } 30 31 [Test] 32 public void TestSaveLoad() 33 { 34 const double test_volume = 0.65; 35 36 using (var storage = new TemporaryNativeStorage(new Guid().ToString())) 37 { 38 using (var configManager = new FrameworkConfigManager(storage)) 39 { 40 var bindable = configManager.GetBindable<double>(FrameworkSetting.VolumeMusic); 41 42 Assert.AreEqual(bindable.Default, bindable.Value); 43 Assert.IsTrue(bindable.IsDefault); 44 45 bindable.Value = test_volume; 46 Assert.AreEqual(test_volume, bindable.Value); 47 } 48 49 using (var configManager = new FrameworkConfigManager(storage)) 50 { 51 var bindable = configManager.GetBindable<double>(FrameworkSetting.VolumeMusic); 52 53 Assert.IsFalse(bindable.IsDefault); 54 Assert.AreEqual(test_volume, bindable.Value); 55 } 56 } 57 } 58 59 [Test] 60 public void TestDefaultOverrides() 61 { 62 const string test_locale = "override test"; 63 64 using (var storage = new TemporaryNativeStorage(new Guid().ToString())) 65 { 66 using (var configManager = new FrameworkConfigManager(storage, new Dictionary<FrameworkSetting, object> { { FrameworkSetting.Locale, test_locale } })) 67 { 68 var bindable = configManager.GetBindable<string>(FrameworkSetting.Locale); 69 Assert.AreEqual(test_locale, bindable.Value); 70 Assert.AreEqual(test_locale, bindable.Default); 71 Assert.IsTrue(bindable.IsDefault); 72 73 bindable.Value = string.Empty; 74 Assert.IsFalse(bindable.IsDefault); 75 } 76 77 // ensure correct after save 78 using (var configManager = new FrameworkConfigManager(storage, new Dictionary<FrameworkSetting, object> { { FrameworkSetting.Locale, test_locale } })) 79 { 80 var bindable = configManager.GetBindable<string>(FrameworkSetting.Locale); 81 Assert.AreEqual(test_locale, bindable.Default); 82 Assert.AreEqual(string.Empty, bindable.Value); 83 Assert.IsFalse(bindable.IsDefault); 84 85 bindable.Value = test_locale; 86 Assert.IsTrue(bindable.IsDefault); 87 } 88 89 // ensure correct after save with default 90 using (var configManager = new FrameworkConfigManager(storage, new Dictionary<FrameworkSetting, object> { { FrameworkSetting.Locale, test_locale } })) 91 { 92 var bindable = configManager.GetBindable<string>(FrameworkSetting.Locale); 93 Assert.AreEqual(test_locale, bindable.Value); 94 Assert.AreEqual(test_locale, bindable.Default); 95 Assert.IsTrue(bindable.IsDefault); 96 } 97 } 98 } 99 } 100}