ConfigurationTests.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using System.Configuration;
  2. using Abc.Zebus.Directory.Configuration;
  3. using Abc.Zebus.Testing.Extensions;
  4. using Abc.Zebus.Util;
  5. using NUnit.Framework;
  6. namespace Abc.Zebus.Directory.Tests.Configuration
  7. {
  8. [TestFixture]
  9. public class ConfigurationTests
  10. {
  11. [Test]
  12. public void should_read_registration_timeout()
  13. {
  14. SetAppSettingsKey("Bus.Directory.RegistrationTimeout", "00:00:42");
  15. var configuration = new AppSettingsBusConfiguration();
  16. configuration.RegistrationTimeout.ShouldEqual(42.Seconds());
  17. }
  18. [Test]
  19. public void should_read_default_registration_timeout()
  20. {
  21. RemoveAppSettingsKey("Bus.Directory.RegistrationTimeout");
  22. var configuration = new AppSettingsBusConfiguration();
  23. configuration.RegistrationTimeout.ShouldEqual(30.Seconds());
  24. }
  25. [Test]
  26. public void should_read_peer_ping_interval()
  27. {
  28. SetAppSettingsKey("Directory.PingPeers.Interval", "00:02");
  29. var configuration = new AppSettingsDirectoryConfiguration();
  30. configuration.PeerPingInterval.ShouldEqual(2.Minutes());
  31. }
  32. [Test]
  33. public void should_read_default_peer_ping_interval()
  34. {
  35. RemoveAppSettingsKey("Directory.PingPeers.Interval");
  36. var configuration = new AppSettingsDirectoryConfiguration();
  37. configuration.PeerPingInterval.ShouldEqual(1.Minute());
  38. }
  39. private static void SetAppSettingsKey(string key, string value)
  40. {
  41. var appConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
  42. var element = appConfig.AppSettings.Settings[key];
  43. if (element == null)
  44. appConfig.AppSettings.Settings.Add(key, value);
  45. else
  46. element.Value = value;
  47. appConfig.Save();
  48. ConfigurationManager.RefreshSection("appSettings");
  49. }
  50. private static void RemoveAppSettingsKey(string key)
  51. {
  52. var appConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
  53. appConfig.AppSettings.Settings.Remove(key);
  54. appConfig.Save();
  55. ConfigurationManager.RefreshSection("appSettings");
  56. }
  57. }
  58. }