public void TestSingleClientPrimaryDown()
        {
            var n1 = GetNode(1);
            var n2 = GetNode(2);
            var n3 = GetNode(3);
            var n4 = GetNode(4);

            var newClient = new MockMemcachedClient(new List<IMemcachedNode> { n1, n2, n3, n4 });
            cache.ResetMemcachedClient(newClient, null);

            cache.Store(N1Key, new SessionData(SessionStateActions.None, 23), TimeSpan.FromMinutes(30));

            newClient.SetNodeDead(n1, new List<IMemcachedNode> { n2, n3, n4 });

            var data = cache.Get(N1Key);
            Assert.AreEqual(23, data.Timeout);
        }
        public void TestTwoClientsPrimaryDown()
        {
            var n1 = GetNode(1);
            var n2 = GetNode(2);
            var n3 = GetNode(3);
            var n4 = GetNode(4);

            var s1 = new SessionNodeLocatorImpl();
            s1.Initialize(new List<IMemcachedNode> { n1, n2, n3, n4 });
            var newClient = new MockMemcachedClient(new List<IMemcachedNode> { n1, n2, n3, n4 });
            cache.ResetMemcachedClient(newClient, s1);

            cache.Store(N1Key, new SessionData(SessionStateActions.None, 23), TimeSpan.FromMinutes(30));

            newClient.SetNodeDead(n1, new List<IMemcachedNode> { n2, n3, n4 });

            cache.Store(N1Key, new SessionData(SessionStateActions.None, 25), TimeSpan.FromMinutes(30));

            var s2 = new SessionNodeLocatorImpl();
            s2.Initialize(new List<IMemcachedNode> { n1, n2, n3, n4 });
            cache.ResetMemcachedClient(newClient, s2);
            newClient.SetNodeDead(n1, new List<IMemcachedNode> { n2, n3, n4 });

            var data = cache.Get(N1Key);
            Assert.AreEqual(25, data.Timeout);
        }