public void TestDefaultConfig() { // ensure config file is read properly IPBanService service = IPBanService.CreateAndStartIPBanTestService <IPBanService>(); try { IPBanConfig cfg = service.Config; Assert.IsNotNull(cfg); Assert.AreEqual(TimeSpan.FromDays(1.0), cfg.BanTime); Assert.IsEmpty(cfg.BlackList); Assert.IsEmpty(cfg.BlackListRegex); Assert.IsFalse(cfg.ClearBannedIPAddressesOnRestart); Assert.IsFalse(cfg.CreateWhitelistFirewallRule); Assert.AreEqual(TimeSpan.FromSeconds(15.0), cfg.CycleTime); Assert.AreEqual(TimeSpan.FromDays(1.0), cfg.ExpireTime); Assert.AreEqual("https://checkip.amazonaws.com/", cfg.ExternalIPAddressUrl); Assert.AreEqual(5, cfg.FailedLoginAttemptsBeforeBan); Assert.AreEqual(20, cfg.FailedLoginAttemptsBeforeBanUserNameWhitelist); Assert.AreEqual(1, cfg.FirewallOSAndType.Count); Assert.AreEqual("*:Default", cfg.FirewallOSAndType.Keys.First() + ":" + cfg.FirewallOSAndType.Values.First()); Assert.AreEqual("IPBan_", cfg.FirewallRulePrefix); Assert.AreEqual(TimeSpan.FromSeconds(1.0), cfg.MinimumTimeBetweenFailedLoginAttempts); Assert.IsEmpty(cfg.ProcessToRunOnBan); Assert.IsFalse(cfg.UseDefaultBannedIPAddressHandler); // the create and start test service forces this false, it is true otherwise in production by default Assert.IsEmpty(cfg.UserNameWhitelist); Assert.IsEmpty(cfg.WhiteList); Assert.IsEmpty(cfg.WhiteListRegex); AssertLogFilesToParse(cfg); AssertEventViewer(cfg); IPBanConfig prod = IPBanConfig.LoadFromFile(service.ConfigFilePath.Replace(".tmp", string.Empty), null); Assert.IsTrue(prod.UseDefaultBannedIPAddressHandler); } finally { IPBanService.DisposeIPBanTestService(service); } }