SettingsScopeTests.cs 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using Xunit;
  2. using Terminal.Gui;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using static Terminal.Gui.ConfigurationManager;
  9. namespace Terminal.Gui.ConfigurationTests {
  10. public class SettingsScopeTests {
  11. [Fact]
  12. public void GetHardCodedDefaults_ShouldSetProperties ()
  13. {
  14. ConfigurationManager.Reset ();
  15. Assert.Equal (3, ((Dictionary<string, ThemeScope>)ConfigurationManager.Settings ["Themes"].PropertyValue).Count);
  16. ConfigurationManager.GetHardCodedDefaults ();
  17. Assert.NotEmpty (ConfigurationManager.Themes);
  18. Assert.Equal ("Default", ConfigurationManager.Themes.Theme);
  19. Assert.True (ConfigurationManager.Settings ["Application.QuitKey"].PropertyValue is Key);
  20. Assert.True (ConfigurationManager.Settings ["Application.AlternateForwardKey"].PropertyValue is Key);
  21. Assert.True (ConfigurationManager.Settings ["Application.AlternateBackwardKey"].PropertyValue is Key);
  22. Assert.True (ConfigurationManager.Settings ["Application.IsMouseDisabled"].PropertyValue is bool);
  23. Assert.True (ConfigurationManager.Settings ["Theme"].PropertyValue is string);
  24. Assert.Equal ("Default", ConfigurationManager.Settings ["Theme"].PropertyValue as string);
  25. Assert.True (ConfigurationManager.Settings ["Themes"].PropertyValue is Dictionary<string, ThemeScope>);
  26. Assert.Single (((Dictionary<string, ThemeScope>)ConfigurationManager.Settings ["Themes"].PropertyValue));
  27. }
  28. [Fact, AutoInitShutdown]
  29. public void Apply_ShouldApplyProperties ()
  30. {
  31. // arrange
  32. Assert.Equal (Key.Q | Key.CtrlMask, (Key)ConfigurationManager.Settings ["Application.QuitKey"].PropertyValue);
  33. Assert.Equal (Key.PageDown | Key.CtrlMask, (Key)ConfigurationManager.Settings ["Application.AlternateForwardKey"].PropertyValue);
  34. Assert.Equal (Key.PageUp | Key.CtrlMask, (Key)ConfigurationManager.Settings ["Application.AlternateBackwardKey"].PropertyValue);
  35. Assert.False ((bool)ConfigurationManager.Settings ["Application.IsMouseDisabled"].PropertyValue);
  36. // act
  37. ConfigurationManager.Settings ["Application.QuitKey"].PropertyValue = Key.Q;
  38. ConfigurationManager.Settings ["Application.AlternateForwardKey"].PropertyValue = Key.F;
  39. ConfigurationManager.Settings ["Application.AlternateBackwardKey"].PropertyValue = Key.B;
  40. ConfigurationManager.Settings ["Application.IsMouseDisabled"].PropertyValue = true;
  41. ConfigurationManager.Settings.Apply ();
  42. // assert
  43. Assert.Equal (Key.Q, Application.QuitKey);
  44. Assert.Equal (Key.F, Application.AlternateForwardKey);
  45. Assert.Equal (Key.B, Application.AlternateBackwardKey);
  46. Assert.True (Application.IsMouseDisabled);
  47. }
  48. [Fact, AutoInitShutdown]
  49. public void CopyUpdatedProperitesFrom_ShouldCopyChangedPropertiesOnly ()
  50. {
  51. ConfigurationManager.Settings ["Application.QuitKey"].PropertyValue = Key.End;
  52. var updatedSettings = new SettingsScope ();
  53. ///Don't set Quitkey
  54. updatedSettings["Application.AlternateForwardKey"].PropertyValue = Key.F;
  55. updatedSettings["Application.AlternateBackwardKey"].PropertyValue = Key.B;
  56. updatedSettings["Application.IsMouseDisabled"].PropertyValue = true;
  57. ConfigurationManager.Settings.Update (updatedSettings);
  58. Assert.Equal (Key.End, ConfigurationManager.Settings ["Application.QuitKey"].PropertyValue);
  59. Assert.Equal (Key.F, updatedSettings ["Application.AlternateForwardKey"].PropertyValue);
  60. Assert.Equal (Key.B, updatedSettings ["Application.AlternateBackwardKey"].PropertyValue);
  61. Assert.True ((bool)updatedSettings ["Application.IsMouseDisabled"].PropertyValue);
  62. }
  63. }
  64. }