2
0

SettingsScopeTests.cs 4.6 KB

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