コード例 #1
0
 public void Test_That_Key_XXXXX_Maps_To_VBucket_389()
 {
     const int actual = 389;
     IKeyMapper mapper = new VBucketKeyMapper(_servers, _vBucketServerMap, _bucketConfig.Rev, _bucketConfig.Name);
     var vBucket = (IVBucket)mapper.MapKey(Key);
     Assert.AreEqual(vBucket.Index, actual);
 }
コード例 #2
0
        public void VBucket_HasCorrectBucketname()
        {
            var expected = "travel-sample";
            IKeyMapper mapper = new VBucketKeyMapper(_servers, _vBucketServerMap, _bucketConfig.Rev, expected);
            var vBucket = (IVBucket)mapper.MapKey(Key);

            Assert.AreEqual(expected, vBucket.BucketName);
        }
コード例 #3
0
        public void When_BucketConfig_Has_Replicas_VBucketKeyMapper_Replica_Count_Is_Equal()
        {
            var json = File.ReadAllText(@"Data\\Configuration\\config-with-replicas-complete.json");
            var bucketConfig = JsonConvert.DeserializeObject<BucketConfig>(json);
            var servers = bucketConfig.VBucketServerMap.
               ServerList.
               Select(server => new Server(ObjectFactory.CreateIOStrategy(server), new Node(), new ClientConfiguration())).
               Cast<IServer>().
               ToList();

            var mapper = new VBucketKeyMapper(servers, bucketConfig.VBucketServerMap);
            var vBucket = (IVBucket)mapper.MapKey("somekey");

            const int expected = 3;
            Assert.AreEqual(expected, vBucket.Replicas.Count());
        }
コード例 #4
0
 public void TestMapKey()
 {
     IKeyMapper mapper = new VBucketKeyMapper(_servers, _vBucketServerMap, _bucketConfig.Rev, _bucketConfig.Name);
     var vBucket = mapper.MapKey(Key);
     Assert.IsNotNull(vBucket);
 }
コード例 #5
0
        public void When_BucketConfig_Has_Replicas_VBucketKeyMapper_Replicas_Are_Equal()
        {
            var json = File.ReadAllText(@"Data\\Configuration\\config-with-replicas-complete.json");
            var bucketConfig = JsonConvert.DeserializeObject<BucketConfig>(json);
            var servers = bucketConfig.VBucketServerMap.
               ServerList.
               Select(server => new Server(ObjectFactory.CreateIOStrategy(server), new Node(), new ClientConfiguration())).
               Cast<IServer>().
               ToList();

            var mapper = new VBucketKeyMapper(servers, bucketConfig.VBucketServerMap);
            var vBucket = (IVBucket)mapper.MapKey("somekey");

            var index = mapper.GetIndex("somekey");
            var expected = bucketConfig.VBucketServerMap.VBucketMap[index];
            for (var i = 0; i < vBucket.Replicas.Length; i++)
            {
                Assert.AreEqual(vBucket.Replicas[i], expected[i+1]);
            }
        }
コード例 #6
0
        public void When_BucketConfig_Has_Replicas_VBucketKeyMapper_LocateReplica_Returns_Correct_Server()
        {
            var json = File.ReadAllText(@"Data\\Configuration\\config-with-replicas-complete.json");
            var bucketConfig = JsonConvert.DeserializeObject<BucketConfig>(json);
            var servers = bucketConfig.VBucketServerMap.
               ServerList.
               Select(server => new Server(ObjectFactory.CreateIOStrategy(server), new Node(), new ClientConfiguration())).
               Cast<IServer>().
               ToList();

            var mapper = new VBucketKeyMapper(servers, bucketConfig.VBucketServerMap);
            var vBucket = (IVBucket)mapper.MapKey("somekey");

            foreach (var index in vBucket.Replicas)
            {
                var server = vBucket.LocateReplica(index);
                Assert.IsNotNull(server);

                var expected = bucketConfig.VBucketServerMap.ServerList[index];
                Assert.AreEqual(server.EndPoint.Address.ToString(), expected.Split(':').First());
            }
        }
コード例 #7
0
        public void When_Primary_Index_Is_Greater_Than_Cluster_Count_Random_Server_Returned()
        {
            var json = File.ReadAllText(@"Data\\Configuration\\config-with-negative-one-primary.json");
            var bucketConfig = JsonConvert.DeserializeObject<BucketConfig>(json);
            var servers = bucketConfig.VBucketServerMap.
               ServerList.
               Select(s => new Server(ObjectFactory.CreateIOStrategy(s), new Node(), new ClientConfiguration())).
               Cast<IServer>().
               ToList();

            //remove one server
            servers.RemoveAt(1);

            var mapper = new VBucketKeyMapper(servers, bucketConfig.VBucketServerMap);

            //maps to -1 primary
            const string key = "somekey23";
            var vBucket = (IVBucket)mapper.MapKey(key);

            var server = vBucket.LocatePrimary();
            Assert.IsNotNull(server);
        }
コード例 #8
0
        public void When_BucketConfig_Has_Replicas_VBucketKeyMapper_Replicas_Are_Equal()
        {
            var json = File.ReadAllText(@"Data\\Configuration\\config-with-replicas-complete.json");
            var bucketConfig = JsonConvert.DeserializeObject<BucketConfig>(json);

            var servers = new Dictionary<IPAddress, IServer>();
            foreach (var node in bucketConfig.GetNodes())
            {
                servers.Add(node.GetIPAddress(),
                    new Server(new FakeIOStrategy(node.GetIPEndPoint(), new FakeConnectionPool(), false),
                        node,
                        new ClientConfiguration(), bucketConfig,
                        new FakeTranscoder()));
            }

            var mapper = new VBucketKeyMapper(servers, bucketConfig.VBucketServerMap, bucketConfig.Rev);
            var vBucket = (IVBucket)mapper.MapKey("somekey");

            var index = mapper.GetIndex("somekey");
            var expected = bucketConfig.VBucketServerMap.VBucketMap[index];
            for (var i = 0; i < vBucket.Replicas.Length; i++)
            {
                Assert.AreEqual(vBucket.Replicas[i], expected[i+1]);
            }
        }
コード例 #9
0
        public void When_BucketConfig_Has_Replicas_VBucketKeyMapper_Replica_Count_Is_Equal()
        {
            var json = File.ReadAllText(@"Data\\Configuration\\config-with-replicas-complete.json");
            var bucketConfig = JsonConvert.DeserializeObject<BucketConfig>(json);

            var servers = new Dictionary<IPAddress, IServer>();
            foreach (var node in bucketConfig.GetNodes())
            {
                servers.Add(node.GetIPAddress(),
                    new Server(new FakeIOStrategy(node.GetIPEndPoint(), new FakeConnectionPool(), false),
                        node,
                        new ClientConfiguration(), bucketConfig,
                        new FakeTranscoder()));
            }

            var mapper = new VBucketKeyMapper(servers, bucketConfig.VBucketServerMap, bucketConfig.Rev);
            var vBucket = (IVBucket)mapper.MapKey("somekey");

            const int expected = 3;
            Assert.AreEqual(expected, vBucket.Replicas.Count());
        }
コード例 #10
0
        public void When_Primary_Index_Is_Greater_Than_Cluster_Count_Random_Server_Returned()
        {
            var json = File.ReadAllText(@"Data\\Configuration\\config-with-negative-one-primary.json");
            var bucketConfig = JsonConvert.DeserializeObject<BucketConfig>(json);

            var servers = new Dictionary<IPAddress, IServer>();
            foreach (var node in bucketConfig.GetNodes())
            {
                servers.Add(node.GetIPAddress(),
                    new Server(new FakeIOStrategy(node.GetIPEndPoint(), new FakeConnectionPool(), false),
                        node,
                        new ClientConfiguration(), bucketConfig,
                        new FakeTranscoder()));
            }

            //remove one server
            servers.Remove(_vBucketServerMap.IPEndPoints.Skip(1).First().Address);

            var mapper = new VBucketKeyMapper(servers, bucketConfig.VBucketServerMap, bucketConfig.Rev);

            //maps to -1 primary
            const string key = "somekey23";
            var vBucket = (IVBucket)mapper.MapKey(key);

            var primary = vBucket.LocatePrimary();
            Assert.IsNotNull(primary);
        }
コード例 #11
0
        public void When_BucketConfig_Has_Replicas_VBucketKeyMapper_LocateReplica_Returns_Correct_Server()
        {
            var json = File.ReadAllText(@"Data\\Configuration\\config-with-replicas-complete.json");
            var bucketConfig = JsonConvert.DeserializeObject<BucketConfig>(json);

            var servers = new Dictionary<IPAddress, IServer>();
            foreach (var node in bucketConfig.GetNodes())
            {
                servers.Add(node.GetIPAddress(),
                    new Server(new FakeIOStrategy(node.GetIPEndPoint(), new FakeConnectionPool(), false),
                        node,
                        new ClientConfiguration(), bucketConfig,
                        new FakeTranscoder()));
            }

            var mapper = new VBucketKeyMapper(servers, bucketConfig.VBucketServerMap, bucketConfig.Rev);
            var vBucket = (IVBucket)mapper.MapKey("somekey");

            foreach (var index in vBucket.Replicas)
            {
                var server = vBucket.LocateReplica(index);
                Assert.IsNotNull(server);

                var expected = bucketConfig.VBucketServerMap.ServerList[index];
                Assert.AreEqual(server.EndPoint.Address.ToString(), expected.Split(':').First());
            }
        }
コード例 #12
0
        public void When_Primary_Is_Negative_Random_Server_Returned()
        {
            var json = ResourceHelper.ReadResource(@"Data\Configuration\config-with-negative-one-primary.json");
            var bucketConfig = JsonConvert.DeserializeObject<BucketConfig>(json);

            var servers = new Dictionary<IPAddress, IServer>();
            foreach (var node in bucketConfig.GetNodes())
            {
                servers.Add(node.GetIPAddress(),
                    new Server(new FakeIOService(node.GetIPEndPoint(), new FakeConnectionPool(), false),
                        node,
                        new ClientConfiguration(), bucketConfig,
                        new FakeTranscoder()));
            }

            var mapper = new VBucketKeyMapper(servers, bucketConfig.VBucketServerMap, bucketConfig.Rev, bucketConfig.Name);

            //maps to -1 primary
            const string key = "somekey0";
            var vBucket = (IVBucket)mapper.MapKey(key);
            Assert.AreEqual(-1, vBucket.Primary);

            var primary = vBucket.LocatePrimary();
            Assert.IsNotNull(primary);
        }