Ejemplo n.º 1
0
        public void Add()
        {
            var addressCache = new AddressCache(new TimeSpan(0, 0, 10));

            Assert.True(addressCache.Add(IPAddress.Parse("1.1.1.1")));
            Assert.False(addressCache.Add(IPAddress.Parse("1.1.1.1")));
            Assert.False(addressCache.Add(null));
        }
Ejemplo n.º 2
0
        public void TestRemoveExpired()
        {
            var addressCache = new AddressCache(new TimeSpan(0, 0, 2));

            Assert.True(addressCache.Add(IPAddress.Parse("1.1.1.1")));
            Assert.True(addressCache.Add(IPAddress.Parse("2.2.2.2")));
            Thread.Sleep(1000);
            Assert.True(addressCache.Add(IPAddress.Parse("3.3.3.3")));
            Assert.True(addressCache.Add(IPAddress.Parse("4.4.4.4")));
            Thread.Sleep(1000);
            Assert.True(addressCache.Remove(IPAddress.Parse("4.4.4.4")));
        }
Ejemplo n.º 3
0
        public void Peek()
        {
            var addressCache = new AddressCache(new TimeSpan(0, 0, 10));

            Assert.Null(addressCache.Peek());

            Assert.True(addressCache.Add(IPAddress.Parse("1.1.1.1")));
            Assert.AreEqual("1.1.1.1", addressCache.Peek().ToString());

            Assert.True(addressCache.Add(IPAddress.Parse("2.2.2.2")));
            Assert.AreEqual("2.2.2.2", addressCache.Peek().ToString());
        }
Ejemplo n.º 4
0
        public void Expired()
        {
            var addressCache = new AddressCache(new TimeSpan(0, 0, 2));

            Assert.True(addressCache.Add(IPAddress.Parse("1.1.1.1")));
            Assert.True(addressCache.Add(IPAddress.Parse("2.2.2.2")));
            Thread.Sleep(1000);
            Assert.True(addressCache.Add(IPAddress.Parse("3.3.3.3")));
            Assert.True(addressCache.Add(IPAddress.Parse("4.4.4.4")));
            Thread.Sleep(1000);

            Assert.AreEqual("4.4.4.4", addressCache.Take().ToString());
            Assert.AreEqual("3.3.3.3", addressCache.Take().ToString());
            Assert.Null(addressCache.Peek());
        }
Ejemplo n.º 5
0
        public void Remove()
        {
            var addressCache = new AddressCache(new TimeSpan(0, 0, 2));

            Assert.True(addressCache.Add(IPAddress.Parse("1.1.1.1")));
            Assert.True(addressCache.Add(IPAddress.Parse("2.2.2.2")));
            Assert.True(addressCache.Add(IPAddress.Parse("3.3.3.3")));
            Assert.True(addressCache.Add(IPAddress.Parse("4.4.4.4")));

            Assert.True(addressCache.Remove(IPAddress.Parse("4.4.4.4")));
            Assert.True(addressCache.Remove(IPAddress.Parse("2.2.2.2")));

            Assert.AreEqual("3.3.3.3", addressCache.Take().ToString());
            Assert.AreEqual("1.1.1.1", addressCache.Take().ToString());
        }
Ejemplo n.º 6
0
        public void Block()
        {
            var addressCache = new AddressCache(new TimeSpan(0, 0, 2));

            var thread = new Thread(() =>
            {
                addressCache.Take();
                Assert.Fail();
            });

            thread.Start();

            Thread.Sleep(1000);
            thread.Abort();

            thread = new Thread(() =>
            {
                Assert.AreEqual("1.1.1.1", addressCache.Take().ToString());
                Assert.Pass();
            });
            thread.Start();
            Thread.Sleep(1000);

            Assert.True(addressCache.Add(IPAddress.Parse("1.1.1.1")));
        }
Ejemplo n.º 7
0
        public void SingleMonkey()
        {
            var random = new Random();

            for (var i = 0; i < _actionCount; i++)
            {
                var address = GenerateAddress(random);

                switch (random.Next(1, 4))
                {
                case 1:
                    _addressCache.Add(address);
                    break;

                case 2:
                    _addressCache.Remove(address);
                    break;

                case 3:
                    _addressCache.Peek();
                    break;

                default:
                    Console.WriteLine("In default");
                    break;
                }

                Thread.Sleep(_actionDelayInMs);
            }
        }
Ejemplo n.º 8
0
        public void StressPeak()
        {
            var addressCache = new AddressCache(new TimeSpan(0, 0, 2));

            Assert.True(addressCache.Add(IPAddress.Parse("1.1.1.1")));
            Assert.True(addressCache.Add(IPAddress.Parse("2.2.2.2")));
            Assert.True(addressCache.Add(IPAddress.Parse("3.3.3.3")));
            Assert.True(addressCache.Add(IPAddress.Parse("4.4.4.4")));
            Assert.True(addressCache.Add(IPAddress.Parse("5.5.5.5")));

            Assert.AreEqual("5.5.5.5", addressCache.Peek().ToString());
            Thread.Sleep(1000);

            Assert.True(addressCache.Add(IPAddress.Parse("6.6.6.6")));

            Assert.AreEqual("6.6.6.6", addressCache.Peek().ToString());

            Thread.Sleep(1000);
            Assert.True(addressCache.Add(IPAddress.Parse("5.5.5.5")));

            Assert.AreEqual("5.5.5.5", addressCache.Peek().ToString());

            Thread.Sleep(2000);

            Assert.Null(addressCache.Peek());
        }
Ejemplo n.º 9
0
        public void ExpiredRemove()
        {
            var addressCache = new AddressCache(new TimeSpan(0, 0, 2));

            Assert.True(addressCache.Add(IPAddress.Parse("1.1.1.1")));
            Thread.Sleep(2000);

            Assert.False(addressCache.Remove(IPAddress.Parse("1.1.1.1")));
        }
Ejemplo n.º 10
0
        public void Remove()
        {
            var addressCache = new AddressCache(new TimeSpan(0, 0, 2));

            Assert.True(addressCache.Add(IPAddress.Parse("1.1.1.1")));

            Assert.False(addressCache.Remove(IPAddress.Parse("2.2.2.2")));
            Assert.True(addressCache.Remove(IPAddress.Parse("1.1.1.1")));
        }