SettingsScopeTests.cs 4.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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 ["Application.EnableConsoleScrolling"].PropertyValue is bool);
  24. Assert.True (ConfigurationManager.Settings ["Theme"].PropertyValue is string);
  25. Assert.Equal ("Default", ConfigurationManager.Settings ["Theme"].PropertyValue as string);
  26. Assert.True (ConfigurationManager.Settings ["Themes"].PropertyValue is Dictionary<string, ThemeScope>);
  27. Assert.Single (((Dictionary<string, ThemeScope>)ConfigurationManager.Settings ["Themes"].PropertyValue));
  28. }
  29. [Fact, AutoInitShutdown]
  30. public void Apply_ShouldApplyProperties ()
  31. {
  32. // arrange
  33. Assert.Equal (Key.Q | Key.CtrlMask, (Key)ConfigurationManager.Settings ["Application.QuitKey"].PropertyValue);
  34. Assert.Equal (Key.PageDown | Key.CtrlMask, (Key)ConfigurationManager.Settings ["Application.AlternateForwardKey"].PropertyValue);
  35. Assert.Equal (Key.PageUp | Key.CtrlMask, (Key)ConfigurationManager.Settings ["Application.AlternateBackwardKey"].PropertyValue);
  36. Assert.False ((bool)ConfigurationManager.Settings ["Application.IsMouseDisabled"].PropertyValue);
  37. Assert.False ((bool)ConfigurationManager.Settings ["Application.EnableConsoleScrolling"].PropertyValue);
  38. // act
  39. ConfigurationManager.Settings ["Application.QuitKey"].PropertyValue = Key.Q;
  40. ConfigurationManager.Settings ["Application.AlternateForwardKey"].PropertyValue = Key.F;
  41. ConfigurationManager.Settings ["Application.AlternateBackwardKey"].PropertyValue = Key.B;
  42. ConfigurationManager.Settings ["Application.IsMouseDisabled"].PropertyValue = true;
  43. ConfigurationManager.Settings ["Application.EnableConsoleScrolling"].PropertyValue = true;
  44. ConfigurationManager.Settings.Apply ();
  45. // assert
  46. Assert.Equal (Key.Q, Application.QuitKey);
  47. Assert.Equal (Key.F, Application.AlternateForwardKey);
  48. Assert.Equal (Key.B, Application.AlternateBackwardKey);
  49. Assert.True (Application.IsMouseDisabled);
  50. Assert.True (Application.EnableConsoleScrolling);
  51. }
  52. [Fact, AutoInitShutdown]
  53. public void CopyUpdatedProperitesFrom_ShouldCopyChangedPropertiesOnly ()
  54. {
  55. ConfigurationManager.Settings ["Application.QuitKey"].PropertyValue = Key.End;
  56. var updatedSettings = new SettingsScope ();
  57. ///Don't set Quitkey
  58. updatedSettings["Application.AlternateForwardKey"].PropertyValue = Key.F;
  59. updatedSettings["Application.AlternateBackwardKey"].PropertyValue = Key.B;
  60. updatedSettings["Application.IsMouseDisabled"].PropertyValue = true;
  61. updatedSettings["Application.EnableConsoleScrolling"].PropertyValue = true;
  62. ConfigurationManager.Settings.Update (updatedSettings);
  63. Assert.Equal (Key.End, ConfigurationManager.Settings ["Application.QuitKey"].PropertyValue);
  64. Assert.Equal (Key.F, updatedSettings ["Application.AlternateForwardKey"].PropertyValue);
  65. Assert.Equal (Key.B, updatedSettings ["Application.AlternateBackwardKey"].PropertyValue);
  66. Assert.True ((bool)updatedSettings ["Application.IsMouseDisabled"].PropertyValue);
  67. Assert.True ((bool)updatedSettings ["Application.EnableConsoleScrolling"].PropertyValue);
  68. }
  69. }
  70. }