예제 #1
0
        public void TestHKeys()
        {
            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.HKeys("test");
                    Assert.Equal(2, response.Length);
                    Assert.Equal("test1", response[0]);
                    Assert.Equal("test2", response[1]);
                    Assert.Equal("*2\r\n$5\r\nHKEYS\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.HKeys("test");
                Assert.Equal(2, response.Length);
                Assert.Equal("field1", response[0]);
                Assert.Equal("field2", response[1]);
            });
        }
예제 #2
0
        public void TestHMSet_RedisDictionary()
        {
            using (var mock = new MockConnector("localhost", 9999, "+OK\r\n"))
                using (var redis = new RedisClient(mock))
                {
                    Assert.True(redis.HMSet("test", new RedisDictionary()
                    {
                        { "field1", "test1" }
                    }));
                    Assert.Equal("*4\r\n$5\r\nHMSET\r\n$4\r\ntest\r\n$6\r\nfield1\r\n$5\r\ntest1\r\n", mock.GetMessage());
                }

            this.RealCall(redis =>
            {
                Assert.True(redis.HMSet("test", new RedisDictionary()
                {
                    { "field1", "value1" }, { "field2", "value2" }
                }));
                var response = redis.HMGet("test", "field1", "field2");
                Assert.Equal(2, response.Length);
                Assert.Equal("value1", (string)response[0]);
                Assert.Equal("value2", (string)response[1]);
            });
        }
예제 #3
0
        public void TestZScan()
        {
            string reply = "*2\r\n$2\r\n23\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("MockHost", 9999, reply, reply, reply, reply))
                using (var redis = new RedisClient(mock))
                {
                    var response1 = redis.ZScan("test", 0);
                    Assert.AreEqual(23, response1.Cursor);
                    Assert.AreEqual(2, response1.Items.Length);
                    Assert.AreEqual("member1", response1.Items[0].Item1);
                    Assert.AreEqual(1.1, response1.Items[0].Item2);
                    Assert.AreEqual("*3\r\n$5\r\nZSCAN\r\n$4\r\ntest\r\n$1\r\n0\r\n", mock.GetMessage(), "Basic test");

                    var response2 = redis.ZScan("test", 0, pattern: "*");
                    Assert.AreEqual("*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(), "Pattern test");

                    var response3 = redis.ZScan("test", 0, count: 5);
                    Assert.AreEqual("*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(), "Count test");

                    var response4 = redis.ZScan("test", 0, "*", 5);
                    Assert.AreEqual("*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(), "Pattern + Count test");
                }
        }
예제 #4
0
        private void EmulateDisconnect()
        {
            MockConnector mc = (MockConnector)this.connector;

            mc.EmulateDisconnect();
        }
 public MockConnectorResolver()
 {
     MockConnector = new MockConnector();
 }