public void TestKeyBlacklisting()
        {
            var key = GetRandomKey();
            var ip  = GetRandomIP();

            var interval = TimeSpan.FromMinutes(1);

            Assert.AreEqual(
                false,
                HackerSprayer.IsKeyBlacklistedAsync(key).Run(),
                "Key must not be blacklisted");

            var startTime = DateTime.Now;

            HackerSprayer.BlacklistKeyAsync(key, interval).Run();

            Assert.AreEqual(
                true,
                HackerSprayer.IsKeyBlacklistedAsync(key).Run(),
                "Key must be blacklisted");

            string [] blacklistedKeys = HackerSprayer.GetKeyBlacklists().Run();
            Assert.IsTrue(Array.Exists(blacklistedKeys, k => k == key),
                          "Key must be in the blacklist");

            WaitForIntervalToElapse(interval, startTime);

            Assert.AreEqual(
                false,
                HackerSprayer.IsKeyBlacklistedAsync(key).Run(),
                "Key must not be blacklisted after expiration time");
        }