Beispiel #1
0
        public void Persist()
        {
            using (var mock = new MockConnector("localhost", 9999, ":1\r\n", ":0\r\n"))
                using (var redis = new RedisClient(mock))
                {
                    Assert.True(redis.Persist("test1"));
                    Assert.Equal("*2\r\n$7\r\nPERSIST\r\n$5\r\ntest1\r\n", mock.GetMessage());
                    Assert.False(redis.Persist("test2"));
                    Assert.Equal("*2\r\n$7\r\nPERSIST\r\n$5\r\ntest2\r\n", mock.GetMessage());
                }

            this.RealCall(redis =>
            {
                redis.MSet(new RedisDictionary {
                    { "key1", "value1" }, { "key2", "value2" }
                });
                Assert.True(redis.Expire("key1", TimeSpan.FromSeconds(10)));
                Assert.True(redis.Expire("key2", 20));
                Assert.True(redis.Ttl("key1") <= 10);
                Assert.True(redis.Ttl("key2") <= 20);

                Assert.True(redis.Persist("key1"));
                Assert.True(redis.Persist("key2"));
                Assert.Equal(-1, redis.Ttl("key1"));
                Assert.Equal(-1, redis.Ttl("key2"));
            });
        }
Beispiel #2
0
        public void TestSort()
        {
            using (var mock = new MockConnector("localhost", 9999, "*2\r\n$2\r\nab\r\n$2\r\ncd\r\n", "*0\r\n", "*0\r\n", "*0\r\n", "*0\r\n", "*0\r\n", "*0\r\n", "*0\r\n"))
                using (var redis = new RedisClient(mock))
                {
                    var resp1 = redis.Sort("test1");
                    Assert.Equal(2, resp1.Length);
                    Assert.Equal("ab", (string)resp1[0]);
                    Assert.Equal("cd", (string)resp1[1]);
                    Assert.Equal("*2\r\n$4\r\nSORT\r\n$5\r\ntest1\r\n", mock.GetMessage());

                    var resp2 = redis.Sort("test2", offset: 0, count: 2);
                    Assert.Equal("*5\r\n$4\r\nSORT\r\n$5\r\ntest2\r\n$5\r\nLIMIT\r\n$1\r\n0\r\n$1\r\n2\r\n", mock.GetMessage());

                    var resp3 = redis.Sort("test3", by: "xyz");
                    Assert.Equal("*4\r\n$4\r\nSORT\r\n$5\r\ntest3\r\n$2\r\nBY\r\n$3\r\nxyz\r\n", mock.GetMessage());

                    var resp4 = redis.Sort("test4", sort: RedisSort.Asc);
                    Assert.Equal("*3\r\n$4\r\nSORT\r\n$5\r\ntest4\r\n$3\r\nASC\r\n", mock.GetMessage());

                    var resp5 = redis.Sort("test5", sort: RedisSort.Desc);
                    Assert.Equal("*3\r\n$4\r\nSORT\r\n$5\r\ntest5\r\n$4\r\nDESC\r\n", mock.GetMessage());

                    var resp6 = redis.Sort("test6", alpha: true);
                    Assert.Equal("*3\r\n$4\r\nSORT\r\n$5\r\ntest6\r\n$5\r\nALPHA\r\n", mock.GetMessage());

                    var resp7 = redis.Sort("test7", get: new[] { "get1", "get2" });
                    Assert.Equal("*6\r\n$4\r\nSORT\r\n$5\r\ntest7\r\n$3\r\nGET\r\n$4\r\nget1\r\n$3\r\nGET\r\n$4\r\nget2\r\n", mock.GetMessage());

                    var resp8 = redis.Sort("test8", offset: 0, count: 2, by: "xyz", sort: RedisSort.Asc, alpha: true, get: new[] { "a", "b" });
                    Assert.Equal("*13\r\n$4\r\nSORT\r\n$5\r\ntest8\r\n$2\r\nBY\r\n$3\r\nxyz\r\n$5\r\nLIMIT\r\n$1\r\n0\r\n$1\r\n2\r\n$3\r\nGET\r\n$1\r\na\r\n$3\r\nGET\r\n$1\r\nb\r\n$3\r\nASC\r\n$5\r\nALPHA\r\n", mock.GetMessage());
                }
        }
Beispiel #3
0
        public void ExecTests()
        {
            var okReply = "+OK\r\n";

            using (var mock = new MockConnector("localhost", 9999, okReply, "+QUEUED\r\n", "+QUEUED\r\n", "*2\r\n" + okReply + okReply))
                using (var redis = new RedisClient(mock))
                {
                    int x = 0;
                    using (var tran = redis.BeginTransaction())
                    {
                        Assert.Equal("*1\r\n$5\r\nMULTI\r\n", mock.GetMessage());
                        tran.On(tran.Set("key1", "value1"), r =>
                        {
                            Assert.True(r);
                            x += 1;
                        });
                        Assert.Equal("*3\r\n$3\r\nSET\r\n$4\r\nkey1\r\n$6\r\nvalue1\r\n", mock.GetMessage());
                        tran.On(tran.Set("key2", "value2"), r =>
                        {
                            Assert.True(r);
                            Assert.Equal(1, x);
                            x += 2;
                        });
                        Assert.Equal("*3\r\n$3\r\nSET\r\n$4\r\nkey2\r\n$6\r\nvalue2\r\n", mock.GetMessage());
                        tran.Commit();
                        Assert.Equal("*1\r\n$4\r\nEXEC\r\n", mock.GetMessage());
                    }
                    Assert.Equal(string.Empty, mock.GetMessage());
                    Assert.Equal(3, x);
                }

            this.RealCall(redis =>
            {
                int x = 0;
                using (var tran = redis.BeginTransaction())
                {
                    tran.On(tran.Set("key1", "value1"), r =>
                    {
                        Assert.True(r);
                        x += 1;
                    });
                    tran.On(tran.Set("key2", "value2"), r =>
                    {
                        Assert.True(r);
                        Assert.Equal(1, x);
                        x += 2;
                    });
                    tran.Commit();
                }
                Assert.Equal(3, x);

                Assert.Equal("value1", (string)redis.Get("key1"));
                Assert.Equal("value2", (string)redis.Get("key2"));
            });
        }
Beispiel #4
0
        public void ExecTests()
        {
            var okReply = "+OK\r\n";
            using(var mock = new MockConnector("localhost", 9999, okReply, "+QUEUED\r\n", "+QUEUED\r\n", "*2\r\n" + okReply + okReply))
            using(var redis = new RedisClient(mock))
            {
                int x = 0;
                using(var tran = redis.BeginTransaction())
                {
                    Assert.Equal("*1\r\n$5\r\nMULTI\r\n", mock.GetMessage());
                    tran.On(tran.Set("key1", "value1"), r =>
                    {
                        Assert.True(r);
                        x += 1;
                    });
                    Assert.Equal("*3\r\n$3\r\nSET\r\n$4\r\nkey1\r\n$6\r\nvalue1\r\n", mock.GetMessage());
                    tran.On(tran.Set("key2", "value2"), r =>
                    {
                        Assert.True(r);
                        Assert.Equal(1, x);
                        x += 2;
                    });
                    Assert.Equal("*3\r\n$3\r\nSET\r\n$4\r\nkey2\r\n$6\r\nvalue2\r\n", mock.GetMessage());
                    tran.Commit();
                    Assert.Equal("*1\r\n$4\r\nEXEC\r\n", mock.GetMessage());
                }
                Assert.Equal(string.Empty, mock.GetMessage());
                Assert.Equal(3, x);
            }

            this.RealCall(redis =>
            {
                int x = 0;
                using(var tran = redis.BeginTransaction())
                {
                    tran.On(tran.Set("key1", "value1"), r =>
                    {
                        Assert.True(r);
                        x += 1;
                    });
                    tran.On(tran.Set("key2", "value2"), r =>
                    {
                        Assert.True(r);
                        Assert.Equal(1, x);
                        x += 2;
                    });
                    tran.Commit();
                }
                Assert.Equal(3, x);

                Assert.Equal("value1", (string)redis.Get("key1"));
                Assert.Equal("value2", (string)redis.Get("key2"));
            });
        }
Beispiel #5
0
        public void MyTestMethod3()
        {
            using(var mock = new MockConnector("localhost", 9999, "+OK\r\n", "+OK\r\n"))
            using(var redis = new RedisClient(mock))
            {
                Assert.True(redis.Set("key", "value"));
                Assert.Equal("*3\r\n$3\r\nSET\r\n$3\r\nkey\r\n$5\r\nvalue\r\n", mock.GetMessage());

                Assert.True(redis.Set("key", "value"));
                Assert.Equal("*3\r\n$3\r\nSET\r\n$3\r\nkey\r\n$5\r\nvalue\r\n", mock.GetMessage());
            }
        }
Beispiel #6
0
        public void MyTestMethod3()
        {
            using (var mock = new MockConnector("localhost", 9999, "+OK\r\n", "+OK\r\n"))
                using (var redis = new RedisClient(mock))
                {
                    Assert.True(redis.Set("key", "value"));
                    Assert.Equal("*3\r\n$3\r\nSET\r\n$3\r\nkey\r\n$5\r\nvalue\r\n", mock.GetMessage());

                    Assert.True(redis.Set("key", "value"));
                    Assert.Equal("*3\r\n$3\r\nSET\r\n$3\r\nkey\r\n$5\r\nvalue\r\n", mock.GetMessage());
                }
        }
Beispiel #7
0
        public void TestBRPopLPush()
        {
            string reply = "$5\r\ntest1\r\n";
            using (var mock = new MockConnector("localhost", 9999, reply, reply))
            using (var redis = new RedisClient(mock))
            {
                Assert.Equal("test1", (string)redis.BRPopLPush("test", "new", 60));
                Assert.Equal("*4\r\n$10\r\nBRPOPLPUSH\r\n$4\r\ntest\r\n$3\r\nnew\r\n$2\r\n60\r\n", mock.GetMessage());

                Assert.Equal("test1", (string)redis.BRPopLPush("test", "new", TimeSpan.FromMinutes(1)));
                Assert.Equal("*4\r\n$10\r\nBRPOPLPUSH\r\n$4\r\ntest\r\n$3\r\nnew\r\n$2\r\n60\r\n", mock.GetMessage());
            }
        }
Beispiel #8
0
        public void TestBRPop()
        {
            string reply = "*2\r\n$4\r\ntest\r\n$5\r\ntest1\r\n";
            using (var mock = new MockConnector("localhost", 9999, reply, reply))
            using (var redis = new RedisClient(mock))
            {
                Assert.Equal("test1", (string)redis.BRPop(60, "test").Value);
                Assert.Equal("*3\r\n$5\r\nBRPOP\r\n$4\r\ntest\r\n$2\r\n60\r\n", mock.GetMessage());

                Assert.Equal("test1", (string)redis.BRPop(TimeSpan.FromMinutes(1), "test").Value);
                Assert.Equal("*3\r\n$5\r\nBRPOP\r\n$4\r\ntest\r\n$2\r\n60\r\n", mock.GetMessage());
            }
        }
Beispiel #9
0
        public void TestBRPop()
        {
            string reply = "*2\r\n$4\r\ntest\r\n$5\r\ntest1\r\n";

            using (var mock = new MockConnector("localhost", 9999, reply, reply))
                using (var redis = new RedisClient(mock))
                {
                    Assert.Equal("test1", (string)redis.BRPop(60, "test").Value);
                    Assert.Equal("*3\r\n$5\r\nBRPOP\r\n$4\r\ntest\r\n$2\r\n60\r\n", mock.GetMessage());

                    Assert.Equal("test1", (string)redis.BRPop(TimeSpan.FromMinutes(1), "test").Value);
                    Assert.Equal("*3\r\n$5\r\nBRPOP\r\n$4\r\ntest\r\n$2\r\n60\r\n", mock.GetMessage());
                }
        }
Beispiel #10
0
        public void InfoTest()
        {
            var reply1 = "$1774\r\n# Server\r\nredis_version:2.8.12\r\nredis_git_sha1:00000000\r\nredis_git_dirty:0\r\nredis_build_id:15bba638a3b1acf9\r\nredis_mode:standalone\r\nos:Linux 2.6.32-220.17.1.el6.x86_64 x86_64\r\narch_bits:64\r\nmultiplexing_api:epoll\r\ngcc_version:4.4.6\r\nprocess_id:16533\r\nrun_id:76e33834f46f97e0acf1c2749245bc25758afe41\r\ntcp_port:6379\r\nuptime_in_seconds:183775\r\nuptime_in_days:2\r\nhz:10\r\nlru_clock:12351741\r\nconfig_file:/etc/redis.conf\r\n\r\n# Clients\r\nconnected_clients:2\r\nclient_longest_output_list:0\r\nclient_biggest_input_buf:0\r\nblocked_clients:0\r\n\r\n# Memory\r\nused_memory:365208\r\nused_memory_human:356.65K\r\nused_memory_rss:7626752\r\nused_memory_peak:386120\r\nused_memory_peak_human:377.07K\r\nused_memory_lua:33792\r\nmem_fragmentation_ratio:20.88\r\nmem_allocator:jemalloc-3.6.0\r\n\r\n# Persistence\r\nloading:0\r\nrdb_changes_since_last_save:0\r\nrdb_bgsave_in_progress:0\r\nrdb_last_save_time:1404676894\r\nrdb_last_bgsave_status:ok\r\nrdb_last_bgsave_time_sec:-1\r\nrdb_current_bgsave_time_sec:-1\r\naof_enabled:0\r\naof_rewrite_in_progress:0\r\naof_rewrite_scheduled:0\r\naof_last_rewrite_time_sec:-1\r\naof_current_rewrite_time_sec:-1\r\naof_last_bgrewrite_status:ok\r\naof_last_write_status:ok\r\n\r\n# Stats\r\ntotal_connections_received:9\r\ntotal_commands_processed:23\r\ninstantaneous_ops_per_sec:0\r\nrejected_connections:0\r\nsync_full:0\r\nsync_partial_ok:0\r\nsync_partial_err:0\r\nexpired_keys:0\r\nevicted_keys:0\r\nkeyspace_hits:0\r\nkeyspace_misses:0\r\npubsub_channels:0\r\npubsub_patterns:0\r\nlatest_fork_usec:0\r\n\r\n# Replication\r\nrole:master\r\nconnected_slaves:0\r\nmaster_repl_offset:0\r\nrepl_backlog_active:0\r\nrepl_backlog_size:1048576\r\nrepl_backlog_first_byte_offset:0\r\nrepl_backlog_histlen:0\r\n\r\n# CPU\r\nused_cpu_sys:139.97\r\nused_cpu_user:43.93\r\nused_cpu_sys_children:0.00\r\nused_cpu_user_children:0.00\r\n\r\n# Keyspace\r\ndb0:keys=6,expires=0,avg_ttl=0\r\n";
            var reply2 = "$104\r\n# CPU\r\nused_cpu_sys:140.26\r\nused_cpu_user:43.95\r\nused_cpu_sys_children:0.00\r\nused_cpu_user_children:0.00\r\n";

            using (var mock = new MockConnector("localhost", 9999, reply1, reply2))
                using (var redis = new RedisClient(mock))
                {
                    Assert.Equal("# Server\r\nredis_version:2.8.12\r\nredis_git_sha1:00000000\r\nredis_git_dirty:0\r\nredis_build_id:15bba638a3b1acf9\r\nredis_mode:standalone\r\nos:Linux 2.6.32-220.17.1.el6.x86_64 x86_64\r\narch_bits:64\r\nmultiplexing_api:epoll\r\ngcc_version:4.4.6\r\nprocess_id:16533\r\nrun_id:76e33834f46f97e0acf1c2749245bc25758afe41\r\ntcp_port:6379\r\nuptime_in_seconds:183775\r\nuptime_in_days:2\r\nhz:10\r\nlru_clock:12351741\r\nconfig_file:/etc/redis.conf\r\n\r\n# Clients\r\nconnected_clients:2\r\nclient_longest_output_list:0\r\nclient_biggest_input_buf:0\r\nblocked_clients:0\r\n\r\n# Memory\r\nused_memory:365208\r\nused_memory_human:356.65K\r\nused_memory_rss:7626752\r\nused_memory_peak:386120\r\nused_memory_peak_human:377.07K\r\nused_memory_lua:33792\r\nmem_fragmentation_ratio:20.88\r\nmem_allocator:jemalloc-3.6.0\r\n\r\n# Persistence\r\nloading:0\r\nrdb_changes_since_last_save:0\r\nrdb_bgsave_in_progress:0\r\nrdb_last_save_time:1404676894\r\nrdb_last_bgsave_status:ok\r\nrdb_last_bgsave_time_sec:-1\r\nrdb_current_bgsave_time_sec:-1\r\naof_enabled:0\r\naof_rewrite_in_progress:0\r\naof_rewrite_scheduled:0\r\naof_last_rewrite_time_sec:-1\r\naof_current_rewrite_time_sec:-1\r\naof_last_bgrewrite_status:ok\r\naof_last_write_status:ok\r\n\r\n# Stats\r\ntotal_connections_received:9\r\ntotal_commands_processed:23\r\ninstantaneous_ops_per_sec:0\r\nrejected_connections:0\r\nsync_full:0\r\nsync_partial_ok:0\r\nsync_partial_err:0\r\nexpired_keys:0\r\nevicted_keys:0\r\nkeyspace_hits:0\r\nkeyspace_misses:0\r\npubsub_channels:0\r\npubsub_patterns:0\r\nlatest_fork_usec:0\r\n\r\n# Replication\r\nrole:master\r\nconnected_slaves:0\r\nmaster_repl_offset:0\r\nrepl_backlog_active:0\r\nrepl_backlog_size:1048576\r\nrepl_backlog_first_byte_offset:0\r\nrepl_backlog_histlen:0\r\n\r\n# CPU\r\nused_cpu_sys:139.97\r\nused_cpu_user:43.93\r\nused_cpu_sys_children:0.00\r\nused_cpu_user_children:0.00\r\n\r\n# Keyspace\r\ndb0:keys=6,expires=0,avg_ttl=0", redis.Info());
                    Assert.Equal("*1\r\n$4\r\nINFO\r\n", mock.GetMessage());

                    redis.Info("CPU");
                    Assert.Equal("*2\r\n$4\r\nINFO\r\n$3\r\nCPU\r\n", mock.GetMessage());
                }
        }
Beispiel #11
0
        public void TestSScan()
        {
            string reply = "*2\r\n$1\r\n0\r\n*2\r\n$5\r\ntest1\r\n$5\r\ntest2\r\n";

            using (var mock = new MockConnector("localhost", 9999, reply, reply, reply, reply))
                using (var redis = new RedisClient(mock))
                {
                    var resp = (redis.SScan("test", 0) as RedisScan <BinaryValue>).GetEnumerator() as RedisScan <BinaryValue> .Enumerator;
                    resp.MoveNext();
                    Assert.Equal(0, resp.Cursor);
                    Assert.Equal(1, resp.Items.Length);
                    Assert.Equal("test1", (string)resp.Current);
                    resp.MoveNext();
                    Assert.Equal(0, resp.Cursor);
                    Assert.Equal(0, resp.Items.Length);
                    Assert.Equal("test2", (string)resp.Current);
                    Assert.Equal("*3\r\n$5\r\nSSCAN\r\n$4\r\ntest\r\n$1\r\n0\r\n", mock.GetMessage());

                    var response2 = redis.SScan("test", 0, pattern: "*").ToArray();
                    Assert.Equal("*5\r\n$5\r\nSSCAN\r\n$4\r\ntest\r\n$1\r\n0\r\n$5\r\nMATCH\r\n$1\r\n*\r\n", mock.GetMessage());

                    var response3 = redis.SScan("test", 0, count: 5).ToArray();
                    Assert.Equal("*5\r\n$5\r\nSSCAN\r\n$4\r\ntest\r\n$1\r\n0\r\n$5\r\nCOUNT\r\n$1\r\n5\r\n", mock.GetMessage());

                    var response4 = redis.SScan("test", 0, "*", 5).ToArray();
                    Assert.Equal("*7\r\n$5\r\nSSCAN\r\n$4\r\ntest\r\n$1\r\n0\r\n$5\r\nMATCH\r\n$1\r\n*\r\n$5\r\nCOUNT\r\n$1\r\n5\r\n", mock.GetMessage());
                }
        }
Beispiel #12
0
        public void SetTest()
        {
            using (var mock = new MockConnector("localhost", 9999, "+OK\r\n", "+OK\r\n", "+OK\r\n", "+OK\r\n", "$-1\r\n", "$-1\r\n", "$-1\r\n"))
                using (var redis = new RedisClient(mock))
                {
                    Assert.True(redis.Set("key", "value"));
                    Assert.Equal("*3\r\n$3\r\nSET\r\n$3\r\nkey\r\n$5\r\nvalue\r\n", mock.GetMessage());

                    Assert.True(redis.Set("key", "value", 1));
                    Assert.Equal("*5\r\n$3\r\nSET\r\n$3\r\nkey\r\n$5\r\nvalue\r\n$2\r\nEX\r\n$1\r\n1\r\n", mock.GetMessage());

                    Assert.True(redis.Set("key", "value", 1, RedisExpireTimeUnit.EX, behavior: RedisKeyBehavior.NX));
                    Assert.Equal("*6\r\n$3\r\nSET\r\n$3\r\nkey\r\n$5\r\nvalue\r\n$2\r\nEX\r\n$1\r\n1\r\n$2\r\nNX\r\n", mock.GetMessage());

                    Assert.True(redis.Set("key", "value", 1, RedisExpireTimeUnit.EX, behavior: RedisKeyBehavior.XX));
                    Assert.Equal("*6\r\n$3\r\nSET\r\n$3\r\nkey\r\n$5\r\nvalue\r\n$2\r\nEX\r\n$1\r\n1\r\n$2\r\nXX\r\n", mock.GetMessage());

                    Assert.False(redis.Set("key", "value", 1, RedisExpireTimeUnit.PX));
                    Assert.Equal("*5\r\n$3\r\nSET\r\n$3\r\nkey\r\n$5\r\nvalue\r\n$2\r\nPX\r\n$1\r\n1\r\n", mock.GetMessage());

                    Assert.False(redis.Set("key", "value", 1, RedisExpireTimeUnit.PX, behavior: RedisKeyBehavior.NX));
                    Assert.Equal("*6\r\n$3\r\nSET\r\n$3\r\nkey\r\n$5\r\nvalue\r\n$2\r\nPX\r\n$1\r\n1\r\n$2\r\nNX\r\n", mock.GetMessage());

                    Assert.False(redis.Set("key", "value", 1, RedisExpireTimeUnit.PX, behavior: RedisKeyBehavior.XX));
                    Assert.Equal("*6\r\n$3\r\nSET\r\n$3\r\nkey\r\n$5\r\nvalue\r\n$2\r\nPX\r\n$1\r\n1\r\n$2\r\nXX\r\n", mock.GetMessage());
                }
        }
Beispiel #13
0
        public void TestHGetAll()
        {
            using(var mock = new MockConnector("localhost", 9999, "*2\r\n$6\r\nfield1\r\n$5\r\ntest1\r\n"))
            using(var redis = new RedisClient(mock))
            {
                var response = redis.HGetAll("test");
                Assert.Equal(1, response.Length);
                Assert.Equal("field1", response[0].Field);
                Assert.Equal("test1", (string)response[0].Value);
                Assert.Equal("*2\r\n$7\r\nHGETALL\r\n$4\r\ntest\r\n", mock.GetMessage());
            }

            this.RealCall(redis =>
            {
                redis.HSet("test", "field1", "value1");
                redis.HSet("test", "field2", "value2");

                var response = redis.HGetAll("test");
                Assert.Equal(2, response.Length);
                for(int i = 0; i < 2; i++)
                {
                    Assert.Equal("field" + (i + 1), response[i].Field);
                    Assert.Equal("value" + (i + 1), (string)response[i].Value);
                }
            });
        }
Beispiel #14
0
        public void TestZScan()
        {
            string reply = "*2\r\n$1\r\n0\r\n*4\r\n$7\r\nmember1\r\n$3\r\n1.1\r\n$7\r\nmember2\r\n$3\r\n2.2\r\n";

            using (var mock = new MockConnector("localhost", 9999, reply, reply, reply, reply))
                using (var redis = new RedisClient(mock))
                {
                    var resp = (redis.ZScan("test", 0) as RedisScan <RedisScoreItem>).GetEnumerator() as RedisScan <RedisScoreItem> .Enumerator;
                    resp.MoveNext();
                    Assert.Equal(0, resp.Cursor);
                    Assert.Equal(1, resp.Items.Length);
                    Assert.Equal("member1", (string)resp.Current.Member);
                    Assert.Equal(1.1, resp.Current.Score);
                    resp.MoveNext();
                    Assert.Equal(0, resp.Cursor);
                    Assert.Equal(0, resp.Items.Length);
                    Assert.Equal("member2", (string)resp.Current.Member);
                    Assert.Equal(2.2, resp.Current.Score);
                    Assert.Equal("*3\r\n$5\r\nZSCAN\r\n$4\r\ntest\r\n$1\r\n0\r\n", mock.GetMessage());

                    var response2 = redis.ZScan("test", 0, pattern: "*").ToArray();
                    Assert.Equal("*5\r\n$5\r\nZSCAN\r\n$4\r\ntest\r\n$1\r\n0\r\n$5\r\nMATCH\r\n$1\r\n*\r\n", mock.GetMessage());

                    var response3 = redis.ZScan("test", 0, count: 5).ToArray();
                    Assert.Equal("*5\r\n$5\r\nZSCAN\r\n$4\r\ntest\r\n$1\r\n0\r\n$5\r\nCOUNT\r\n$1\r\n5\r\n", mock.GetMessage());

                    var response4 = redis.ZScan("test", 0, "*", 5).ToArray();
                    Assert.Equal("*7\r\n$5\r\nZSCAN\r\n$4\r\ntest\r\n$1\r\n0\r\n$5\r\nMATCH\r\n$1\r\n*\r\n$5\r\nCOUNT\r\n$1\r\n5\r\n", mock.GetMessage());
                }
        }
Beispiel #15
0
 public void TestSAdd()
 {
     using(var mock = new MockConnector("localhost", 9999, ":3\r\n"))
     using(var redis = new RedisClient(mock))
     {
         Assert.Equal(3, redis.SAdd("test", "test1"));
         Assert.Equal("*3\r\n$4\r\nSADD\r\n$4\r\ntest\r\n$5\r\ntest1\r\n", mock.GetMessage());
     }
 }
Beispiel #16
0
 public void TestSInterStore()
 {
     using(var mock = new MockConnector("localhost", 9999, ":3\r\n"))
     using(var redis = new RedisClient(mock))
     {
         Assert.Equal(3, redis.SInterStore("destination", "key1", "key2"));
         Assert.Equal("*4\r\n$11\r\nSINTERSTORE\r\n$11\r\ndestination\r\n$4\r\nkey1\r\n$4\r\nkey2\r\n", mock.GetMessage());
     }
 }
Beispiel #17
0
 public void TestZIncrby()
 {
     using(var mock = new MockConnector("localhost", 9999, "$4\r\n3.14\r\n"))
     using(var redis = new RedisClient(mock))
     {
         Assert.Equal(3.14, redis.ZIncrBy("test", 1.5, "test1"));
         Assert.Equal("*4\r\n$7\r\nZINCRBY\r\n$4\r\ntest\r\n$3\r\n1.5\r\n$5\r\ntest1\r\n", mock.GetMessage());
     }
 }
Beispiel #18
0
 public void TestZCard()
 {
     using(var mock = new MockConnector("localhost", 9999, ":2\r\n"))
     using(var redis = new RedisClient(mock))
     {
         Assert.Equal(2, redis.ZCard("test"));
         Assert.Equal("*2\r\n$5\r\nZCARD\r\n$4\r\ntest\r\n", mock.GetMessage());
     }
 }
Beispiel #19
0
 public void AuthTest()
 {
     using (var mock = new MockConnector("localhost", 9999, "+OK\r\n", "+OK\r\n"))
         using (var redis = new RedisClient(mock, "my password"))
         {
             redis._connector.Connect();
             Assert.Equal("*2\r\n$4\r\nAUTH\r\n$11\r\nmy password\r\n", mock.GetMessage());
         }
 }
Beispiel #20
0
 public void TestRPop()
 {
     using (var mock = new MockConnector("localhost", 9999, "$5\r\ntest1\r\n"))
         using (var redis = new RedisClient(mock))
         {
             Assert.Equal("test1", (string)redis.RPop("test"));
             Assert.Equal("*2\r\n$4\r\nRPOP\r\n$4\r\ntest\r\n", mock.GetMessage());
         }
 }
Beispiel #21
0
 public void ScriptKillTest()
 {
     using(var mock = new MockConnector("localhost", 9999, "+OK\r\n"))
     using(var redis = new RedisClient(mock))
     {
         Assert.True(redis.ScriptKill());
         Assert.Equal("*2\r\n$6\r\nSCRIPT\r\n$4\r\nKILL\r\n", mock.GetMessage());
     }
 }
Beispiel #22
0
 public void ScriptLoadTest()
 {
     using(var mock = new MockConnector("localhost", 9999, "$8\r\nchecksum\r\n"))
     using(var redis = new RedisClient(mock))
     {
         Assert.Equal("checksum", redis.ScriptLoad("return 1"));
         Assert.Equal("*3\r\n$6\r\nSCRIPT\r\n$4\r\nLOAD\r\n$8\r\nreturn 1\r\n", mock.GetMessage());
     }
 }
Beispiel #23
0
 public void TestLLen()
 {
     using (var mock = new MockConnector("localhost", 9999, ":3\r\n"))
         using (var redis = new RedisClient(mock))
         {
             Assert.Equal(3, redis.LLen("test"));
             Assert.Equal("*2\r\n$4\r\nLLEN\r\n$4\r\ntest\r\n", mock.GetMessage());
         }
 }
Beispiel #24
0
 public void TestZCard()
 {
     using (var mock = new MockConnector("localhost", 9999, ":2\r\n"))
         using (var redis = new RedisClient(mock))
         {
             Assert.Equal(2, redis.ZCard("test"));
             Assert.Equal("*2\r\n$5\r\nZCARD\r\n$4\r\ntest\r\n", mock.GetMessage());
         }
 }
Beispiel #25
0
 public void PingTest()
 {
     using (var mock = new MockConnector("localhost", 9999, "+PONG\r\n"))
         using (var redis = new RedisClient(mock))
         {
             Assert.True(redis.Ping());
             Assert.Equal("*1\r\n$4\r\nPING\r\n", mock.GetMessage());
         }
 }
Beispiel #26
0
 public void QuitTest()
 {
     using (var mock = new MockConnector("localhost", 9999, "+OK\r\n"))
         using (var redis = new RedisClient(mock))
         {
             Assert.True(redis.Quit());
             Assert.Equal("*1\r\n$4\r\nQUIT\r\n", mock.GetMessage());
         }
 }
Beispiel #27
0
 public void PingTest()
 {
     using(var mock = new MockConnector("localhost", 9999, "+PONG\r\n"))
     using(var redis = new RedisClient(mock))
     {
         Assert.True(redis.Ping());
         Assert.Equal("*1\r\n$4\r\nPING\r\n", mock.GetMessage());
     }
 }
Beispiel #28
0
 public void TestLIndex()
 {
     using (var mock = new MockConnector("localhost", 9999, "$5\r\ntest1\r\n"))
         using (var redis = new RedisClient(mock))
         {
             Assert.Equal("test1", (string)redis.LIndex("test", 0));
             Assert.Equal("*3\r\n$6\r\nLINDEX\r\n$4\r\ntest\r\n$1\r\n0\r\n", mock.GetMessage());
         }
 }
Beispiel #29
0
 public void QuitTest()
 {
     using(var mock = new MockConnector("localhost", 9999, "+OK\r\n"))
     using(var redis = new RedisClient(mock))
     {
         Assert.True(redis.Quit());
         Assert.Equal("*1\r\n$4\r\nQUIT\r\n", mock.GetMessage());
     }
 }
Beispiel #30
0
 public void TestZAdd_Array()
 {
     using(var mock = new MockConnector("localhost", 9999, ":2\r\n"))
     using(var redis = new RedisClient(mock))
     {
         Assert.Equal(2, redis.ZAdd("test", new RedisScoreItem(1.1, "test1"), new RedisScoreItem(2.2, "test2")));
         Assert.Equal("*6\r\n$4\r\nZADD\r\n$4\r\ntest\r\n$3\r\n1.1\r\n$5\r\ntest1\r\n$3\r\n2.2\r\n$5\r\ntest2\r\n", mock.GetMessage());
     }
 }
Beispiel #31
0
 public void AuthTest()
 {
     using(var mock = new MockConnector("localhost", 9999, "+OK\r\n", "+OK\r\n"))
     using(var redis = new RedisClient(mock, "my password"))
     {
         redis._connector.Connect();
         Assert.Equal("*2\r\n$4\r\nAUTH\r\n$11\r\nmy password\r\n", mock.GetMessage());
     }
 }
Beispiel #32
0
 public void SelectTest()
 {
     using (var mock = new MockConnector("localhost", 9999, "+OK\r\n"))
         using (var redis = new RedisClient(mock))
         {
             Assert.True(redis.Select(2));
             Assert.Equal("*2\r\n$6\r\nSELECT\r\n$1\r\n2\r\n", mock.GetMessage());
         }
 }
Beispiel #33
0
 public void ClientListTest()
 {
     using (var mock = new MockConnector("localhost", 9999, "$291\r\nid=3 addr=127.0.0.1:57656 fd=6 name= age=97 idle=81 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=client\nid=4 addr=127.0.0.1:57663 fd=7 name= age=5 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client\r\n"))
         using (var redis = new RedisClient(mock))
         {
             Assert.Equal("id=3 addr=127.0.0.1:57656 fd=6 name= age=97 idle=81 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=client\nid=4 addr=127.0.0.1:57663 fd=7 name= age=5 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client", redis.ClientList());
             Assert.Equal("*2\r\n$6\r\nCLIENT\r\n$4\r\nLIST\r\n", mock.GetMessage());
         }
 }
Beispiel #34
0
 public void IncrTest()
 {
     using(var mock = new MockConnector("localhost", 9999, ":5\r\n"))
     using(var redis = new RedisClient(mock))
     {
         Assert.Equal(5, redis.IncrBy("key"));
         Assert.Equal("*2\r\n$4\r\nINCR\r\n$3\r\nkey\r\n", mock.GetMessage());
     }
 }
Beispiel #35
0
 public void GetSetTest()
 {
     using(var mock = new MockConnector("localhost", 9999, "$5\r\nhello\r\n"))
     using(var redis = new RedisClient(mock))
     {
         Assert.Equal("hello", (string)redis.GetSet("key", "new"));
         Assert.Equal("*3\r\n$6\r\nGETSET\r\n$3\r\nkey\r\n$3\r\nnew\r\n", mock.GetMessage());
     }
 }
Beispiel #36
0
 public void AppendTest()
 {
     using(var mock = new MockConnector("localhost", 9999, ":10\r\n"))
     using(var redis = new RedisClient(mock))
     {
         Assert.Equal(10, redis.Append("key", "x"));
         Assert.Equal("*3\r\n$6\r\nAPPEND\r\n$3\r\nkey\r\n$1\r\nx\r\n", mock.GetMessage());
     }
 }
Beispiel #37
0
 public void GetRangeTest()
 {
     using(var mock = new MockConnector("localhost", 9999, "$5\r\nhello\r\n"))
     using(var redis = new RedisClient(mock))
     {
         Assert.Equal("hello", (string)redis.GetRange("key", 0, 10));
         Assert.Equal("*4\r\n$8\r\nGETRANGE\r\n$3\r\nkey\r\n$1\r\n0\r\n$2\r\n10\r\n", mock.GetMessage());
     }
 }
Beispiel #38
0
 public void IncrByTest()
 {
     using (var mock = new MockConnector("localhost", 9999, ":5\r\n"))
         using (var redis = new RedisClient(mock))
         {
             Assert.Equal(5, redis.IncrBy("key", 2));
             Assert.Equal("*3\r\n$6\r\nINCRBY\r\n$3\r\nkey\r\n$1\r\n2\r\n", mock.GetMessage());
         }
 }
Beispiel #39
0
 public void SelectTest()
 {
     using(var mock = new MockConnector("localhost", 9999, "+OK\r\n"))
     using(var redis = new RedisClient(mock))
     {
         Assert.True( redis.Select(2));
         Assert.Equal("*2\r\n$6\r\nSELECT\r\n$1\r\n2\r\n", mock.GetMessage());
     }
 }
Beispiel #40
0
 public void AppendTest()
 {
     using (var mock = new MockConnector("localhost", 9999, ":10\r\n"))
         using (var redis = new RedisClient(mock))
         {
             Assert.Equal(10, redis.Append("key", "x"));
             Assert.Equal("*3\r\n$6\r\nAPPEND\r\n$3\r\nkey\r\n$1\r\nx\r\n", mock.GetMessage());
         }
 }
Beispiel #41
0
 public void ClientGetNameTest()
 {
     using(var mock = new MockConnector("localhost", 9999, "$6\r\nmyname\r\n"))
     using(var redis = new RedisClient(mock))
     {
         Assert.Equal("myname", redis.ClientGetName());
         Assert.Equal("*2\r\n$6\r\nCLIENT\r\n$7\r\nGETNAME\r\n", mock.GetMessage());
     }
 }
Beispiel #42
0
 public void BgSaveTest()
 {
     using (var mock = new MockConnector("localhost", 9999, "+OK\r\n"))
         using (var redis = new RedisClient(mock))
         {
             Assert.True(redis.BgSave());
             Assert.Equal("*1\r\n$6\r\nBGSAVE\r\n", mock.GetMessage());
         }
 }
Beispiel #43
0
 public void ClientListTest()
 {
     using(var mock = new MockConnector("localhost", 9999, "$291\r\nid=3 addr=127.0.0.1:57656 fd=6 name= age=97 idle=81 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=client\nid=4 addr=127.0.0.1:57663 fd=7 name= age=5 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client\r\n"))
     using(var redis = new RedisClient(mock))
     {
         Assert.Equal("id=3 addr=127.0.0.1:57656 fd=6 name= age=97 idle=81 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=client\nid=4 addr=127.0.0.1:57663 fd=7 name= age=5 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client", redis.ClientList());
         Assert.Equal("*2\r\n$6\r\nCLIENT\r\n$4\r\nLIST\r\n", mock.GetMessage());
     }
 }
Beispiel #44
0
 public void DbSizeTest()
 {
     using (var mock = new MockConnector("localhost", 9999, ":5\r\n"))
         using (var redis = new RedisClient(mock))
         {
             Assert.Equal(5, redis.DbSize());
             Assert.Equal("*1\r\n$6\r\nDBSIZE\r\n", mock.GetMessage());
         }
 }
Beispiel #45
0
 public void LastSaveTest()
 {
     using (var mock = new MockConnector("localhost", 9999, ":1404861064\r\n"))
         using (var redis = new RedisClient(mock))
         {
             Assert.Equal(new DateTime(2014, 7, 8, 23, 11, 04, DateTimeKind.Utc).ToLocalTime(), redis.LastSave());
             Assert.Equal("*1\r\n$8\r\nLASTSAVE\r\n", mock.GetMessage());
         }
 }
Beispiel #46
0
 public void FlushDbTest()
 {
     using (var mock = new MockConnector("localhost", 9999, "+OK\r\n"))
         using (var redis = new RedisClient(mock))
         {
             Assert.True(redis.FlushDb());
             Assert.Equal("*1\r\n$7\r\nFLUSHDB\r\n", mock.GetMessage());
         }
 }
Beispiel #47
0
 public void BgRewriteAofTest()
 {
     using (var mock = new MockConnector("localhost", 9999, "+OK\r\n"))
         using (var redis = new RedisClient(mock))
         {
             Assert.True(redis.BgRewriteAof());
             Assert.Equal("*1\r\n$12\r\nBGREWRITEAOF\r\n", mock.GetMessage());
         }
 }
Beispiel #48
0
 public void ConfigRewriteTest()
 {
     using (var mock = new MockConnector("localhost", 9999, "+OK\r\n"))
         using (var redis = new RedisClient(mock))
         {
             Assert.True(redis.ConfigRewrite());
             Assert.Equal("*2\r\n$6\r\nCONFIG\r\n$7\r\nREWRITE\r\n", mock.GetMessage());
         }
 }
Beispiel #49
0
 public void BgSaveTest()
 {
     using(var mock = new MockConnector("localhost", 9999, "+OK\r\n"))
     using(var redis = new RedisClient(mock))
     {
         Assert.True(redis.BgSave());
         Assert.Equal("*1\r\n$6\r\nBGSAVE\r\n", mock.GetMessage());
     }
 }
Beispiel #50
0
 public void BgRewriteAofTest()
 {
     using(var mock = new MockConnector("localhost", 9999, "+OK\r\n"))
     using(var redis = new RedisClient(mock))
     {
         Assert.True(redis.BgRewriteAof());
         Assert.Equal("*1\r\n$12\r\nBGREWRITEAOF\r\n", mock.GetMessage());
     }
 }
Beispiel #51
0
 public void ClientGetNameTest()
 {
     using (var mock = new MockConnector("localhost", 9999, "$6\r\nmyname\r\n"))
         using (var redis = new RedisClient(mock))
         {
             Assert.Equal("myname", redis.ClientGetName());
             Assert.Equal("*2\r\n$6\r\nCLIENT\r\n$7\r\nGETNAME\r\n", mock.GetMessage());
         }
 }
Beispiel #52
0
 public void DecrByTest()
 {
     using(var mock = new MockConnector("localhost", 9999, ":10\r\n"))
     using(var redis = new RedisClient(mock))
     {
         Assert.Equal(10, redis.DecrBy("key", 5));
         Assert.Equal("*3\r\n$6\r\nDECRBY\r\n$3\r\nkey\r\n$1\r\n5\r\n", mock.GetMessage());
     }
 }
Beispiel #53
0
 public void GetSetTest()
 {
     using (var mock = new MockConnector("localhost", 9999, "$5\r\nhello\r\n"))
         using (var redis = new RedisClient(mock))
         {
             Assert.Equal("hello", (string)redis.GetSet("key", "new"));
             Assert.Equal("*3\r\n$6\r\nGETSET\r\n$3\r\nkey\r\n$3\r\nnew\r\n", mock.GetMessage());
         }
 }
Beispiel #54
0
 public void DecrByTest()
 {
     using (var mock = new MockConnector("localhost", 9999, ":10\r\n"))
         using (var redis = new RedisClient(mock))
         {
             Assert.Equal(10, redis.DecrBy("key", 5));
             Assert.Equal("*3\r\n$6\r\nDECRBY\r\n$3\r\nkey\r\n$1\r\n5\r\n", mock.GetMessage());
         }
 }
Beispiel #55
0
 public void StrLenTest()
 {
     using (var mock = new MockConnector("localhost", 9999, ":10\r\n"))
         using (var redis = new RedisClient(mock))
         {
             Assert.Equal(10, redis.StrLen("key"));
             Assert.Equal("*2\r\n$6\r\nSTRLEN\r\n$3\r\nkey\r\n", mock.GetMessage());
         }
 }
Beispiel #56
0
        public void TestExists()
        {
            using(var mock = new MockConnector("localhost", 9999, ":1\r\n", ":0\r\n"))
            using(var redis = new RedisClient(mock))
            {
                Assert.True(redis.Exists("test1"));
                Assert.Equal("*2\r\n$6\r\nEXISTS\r\n$5\r\ntest1\r\n", mock.GetMessage());
                Assert.False(redis.Exists("test2"));
                Assert.Equal("*2\r\n$6\r\nEXISTS\r\n$5\r\ntest2\r\n", mock.GetMessage());
            }
            this.RealCall(redis =>
            {
                redis.MSet(new RedisDictionary { { "key1", "value1" }, { "key2", "value2" } });

                Assert.True(redis.Exists("key1"));
                Assert.True(redis.Exists("key2"));
                Assert.False(redis.Exists("test3"));
            });
        }
Beispiel #57
0
        public void TestExpire()
        {
            using(var mock = new MockConnector("localhost", 9999, ":1\r\n", ":0\r\n"))
            using(var redis = new RedisClient(mock))
            {
                Assert.True(redis.Expire("test1", TimeSpan.FromSeconds(10)));
                Assert.Equal("*3\r\n$6\r\nEXPIRE\r\n$5\r\ntest1\r\n$2\r\n10\r\n", mock.GetMessage());
                Assert.False(redis.Expire("test2", 20));
                Assert.Equal("*3\r\n$6\r\nEXPIRE\r\n$5\r\ntest2\r\n$2\r\n20\r\n", mock.GetMessage());
            }

            this.RealCall(redis =>
            {
                redis.MSet(new RedisDictionary { { "key1", "value1" }, { "key2", "value2" } });
                Assert.True(redis.Expire("key1", TimeSpan.FromSeconds(10)));
                Assert.True(redis.Expire("key2", 20));
                Assert.True(redis.Ttl("key1") <= 10);
                Assert.True(redis.Ttl("key2") <= 20);
            });
        }
Beispiel #58
0
 public void MultiTest()
 {
     var okReply = "+OK\r\n";
     using(var mock = new MockConnector("localhost", 9999, okReply, okReply))
     using(var redis = new RedisClient(mock))
     {
         using(var tran = redis.BeginTransaction())
         {
             Assert.Equal("*1\r\n$5\r\nMULTI\r\n", mock.GetMessage());
         }
     }
 }
Beispiel #59
0
 public void TestInter()
 {
     using(var mock = new MockConnector("localhost", 9999, "*2\r\n$5\r\ntest1\r\n$5\r\ntest2\r\n"))
     using(var redis = new RedisClient(mock))
     {
         var response = redis.SInter("test", "another");
         Assert.Equal(2, response.Length);
         Assert.Equal("test1", (string)response[0]);
         Assert.Equal("test2", (string)response[1]);
         Assert.Equal("*3\r\n$6\r\nSINTER\r\n$4\r\ntest\r\n$7\r\nanother\r\n", mock.GetMessage());
     }
 }
Beispiel #60
0
        public void TestExpireAt()
        {
            using(var mock = new MockConnector("localhost", 9999, ":1\r\n", ":0\r\n"))
            using(var redis = new RedisClient(mock))
            {
                // 1402643208 = ISO 8601:2014-06-13T07:06:48Z
                Assert.True(redis.ExpireAt("test1", new DateTime(2014, 6, 13, 7, 6, 48, DateTimeKind.Utc)));
                Assert.Equal("*3\r\n$8\r\nEXPIREAT\r\n$5\r\ntest1\r\n$10\r\n1402643208\r\n", mock.GetMessage());
                Assert.False(redis.ExpireAt("test2", 1402643208));
                Assert.Equal("*3\r\n$8\r\nEXPIREAT\r\n$5\r\ntest2\r\n$10\r\n1402643208\r\n", mock.GetMessage());
            }

            this.RealCall(redis =>
            {
                redis.MSet(new RedisDictionary { { "key1", "value1" } });
                var now = DateTime.Now;
                Assert.True(redis.ExpireAt("key1", now.AddSeconds(10)));
                var ttl = redis.Ttl("key1");
                Assert.True(ttl <= 10);
            });
        }