コード例 #1
0
ファイル: KeyTests.cs プロジェクト: DTBruce/csredis
 public void TestExists()
 {
     using (var mock = new FakeRedisSocket(":1\r\n", ":0\r\n"))
     using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
     {
         Assert.IsTrue(redis.Exists("test1"));
         Assert.AreEqual("*2\r\n$6\r\nEXISTS\r\n$5\r\ntest1\r\n", mock.GetMessage());
         Assert.IsFalse(redis.Exists("test2"));
         Assert.AreEqual("*2\r\n$6\r\nEXISTS\r\n$5\r\ntest2\r\n", mock.GetMessage());
     }
 }
コード例 #2
0
ファイル: KeyTests.cs プロジェクト: DTBruce/csredis
 public void TestExpire()
 {
     using (var mock = new FakeRedisSocket(":1\r\n", ":0\r\n"))
     using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
     {
         Assert.IsTrue(redis.Expire("test1", TimeSpan.FromSeconds(10)));
         Assert.AreEqual("*3\r\n$6\r\nEXPIRE\r\n$5\r\ntest1\r\n$2\r\n10\r\n", mock.GetMessage());
         Assert.IsFalse(redis.Expire("test2", 20));
         Assert.AreEqual("*3\r\n$6\r\nEXPIRE\r\n$5\r\ntest2\r\n$2\r\n20\r\n", mock.GetMessage());
     }
 }
コード例 #3
0
ファイル: KeyTests.cs プロジェクト: DTBruce/csredis
 public void TestExpireAt()
 {
     using (var mock = new FakeRedisSocket(":1\r\n", ":0\r\n"))
     using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
     {
         // 1402643208 = ISO 8601:2014-06-13T07:06:48Z
         Assert.IsTrue(redis.ExpireAt("test1", new DateTime(2014, 6, 13, 7, 6, 48)));
         Assert.AreEqual("*3\r\n$8\r\nEXPIREAT\r\n$5\r\ntest1\r\n$10\r\n1402643208\r\n", mock.GetMessage());
         Assert.IsFalse(redis.ExpireAt("test2", 1402643208));
         Assert.AreEqual("*3\r\n$8\r\nEXPIREAT\r\n$5\r\ntest2\r\n$10\r\n1402643208\r\n", mock.GetMessage());
     }
 }
コード例 #4
0
ファイル: StringTests.cs プロジェクト: DTBruce/csredis
        public void BitCountTest()
        {
            using (var mock = new FakeRedisSocket(":10\r\n", ":4\r\n"))
            using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
            {
                Assert.AreEqual(10, redis.BitCount("key"));
                Assert.AreEqual("*2\r\n$8\r\nBITCOUNT\r\n$3\r\nkey\r\n", mock.GetMessage());

                Assert.AreEqual(4, redis.BitCount("key", 0, 1));
                Assert.AreEqual("*4\r\n$8\r\nBITCOUNT\r\n$3\r\nkey\r\n$1\r\n0\r\n$1\r\n1\r\n", mock.GetMessage());
            }
        }
コード例 #5
0
ファイル: RegressionTests.cs プロジェクト: DTBruce/csredis
        public void SetUTF8Test()
        {
            using (var mock = new FakeRedisSocket("+OK\r\n", "+OK\r\n"))
            using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
            {
                Assert.AreEqual("OK", redis.Set("test", "é"));
                Assert.AreEqual("*3\r\n$3\r\nSET\r\n$4\r\ntest\r\n$2\r\né\r\n", mock.GetMessage());

                Assert.AreEqual("OK", redis.SetAsync("test", "é").Result);
                Assert.AreEqual("*3\r\n$3\r\nSET\r\n$4\r\ntest\r\n$2\r\né\r\n", mock.GetMessage());
            }
        }
コード例 #6
0
ファイル: ListTests.cs プロジェクト: DTBruce/csredis
        public void TestBRPop()
        {
            string reply = "*2\r\n$4\r\ntest\r\n$5\r\ntest1\r\n";
            using (var mock = new FakeRedisSocket(reply, reply))
            using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
            {
                Assert.AreEqual("test1", redis.BRPop(60, "test"));
                Assert.AreEqual("*3\r\n$5\r\nBRPOP\r\n$4\r\ntest\r\n$2\r\n60\r\n", mock.GetMessage());

                Assert.AreEqual("test1", redis.BRPop(TimeSpan.FromMinutes(1), "test"));
                Assert.AreEqual("*3\r\n$5\r\nBRPOP\r\n$4\r\ntest\r\n$2\r\n60\r\n", mock.GetMessage());
            }
        }
コード例 #7
0
ファイル: ListTests.cs プロジェクト: DTBruce/csredis
        public void TestBLPopWithKey()
        {
            string reply = "*2\r\n$4\r\ntest\r\n$5\r\ntest1\r\n";
            using (var mock = new FakeRedisSocket(reply, reply))
            using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
            {
                var response1 = redis.BLPopWithKey(60, "test");
                Assert.AreEqual("test", response1.Item1);
                Assert.AreEqual("test1", response1.Item2);
                Assert.AreEqual("*3\r\n$5\r\nBLPOP\r\n$4\r\ntest\r\n$2\r\n60\r\n", mock.GetMessage());

                var response2 = redis.BLPopWithKey(TimeSpan.FromMinutes(1), "test");
                Assert.AreEqual("*3\r\n$5\r\nBLPOP\r\n$4\r\ntest\r\n$2\r\n60\r\n", mock.GetMessage());
            }
        }
コード例 #8
0
ファイル: StringTests.cs プロジェクト: DTBruce/csredis
        public void BitPosTest()
        {
            using (var mock = new FakeRedisSocket(":10\r\n", ":10\r\n", ":10\r\n"))
            using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
            {
                Assert.AreEqual(10, redis.BitPos("key", true));
                Assert.AreEqual("*3\r\n$6\r\nBITPOS\r\n$3\r\nkey\r\n$1\r\n1\r\n", mock.GetMessage());

                Assert.AreEqual(10, redis.BitPos("key", true, start: 0));
                Assert.AreEqual("*4\r\n$6\r\nBITPOS\r\n$3\r\nkey\r\n$1\r\n1\r\n$1\r\n0\r\n", mock.GetMessage());

                Assert.AreEqual(10, redis.BitPos("key", true, start: 0, end: 1));
                Assert.AreEqual("*5\r\n$6\r\nBITPOS\r\n$3\r\nkey\r\n$1\r\n1\r\n$1\r\n0\r\n$1\r\n1\r\n", mock.GetMessage());
            }
        }
コード例 #9
0
ファイル: HashTests.cs プロジェクト: DTBruce/csredis
 public void TestHDel()
 {
     using (var mock = new FakeRedisSocket(":2\r\n"))
     using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
     {
         Assert.AreEqual(2, redis.HDel("test", "test1", "test2"));
         Assert.AreEqual("*4\r\n$4\r\nHDEL\r\n$4\r\ntest\r\n$5\r\ntest1\r\n$5\r\ntest2\r\n", mock.GetMessage());
     }
 }
コード例 #10
0
ファイル: TransactionTests.cs プロジェクト: DTBruce/csredis
 public void DiscardTest()
 {
     using (var mock = new FakeRedisSocket("+OK\r\n"))
     using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
     {
         Assert.AreEqual("OK", redis.Discard());
         Assert.AreEqual("*1\r\n$7\r\nDISCARD\r\n", mock.GetMessage());
     }
 }
コード例 #11
0
ファイル: StringTests.cs プロジェクト: DTBruce/csredis
        public void BitOpTest()
        {
            using (var mock = new FakeRedisSocket(":10\r\n", ":10\r\n", ":10\r\n", ":10\r\n"))
            using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
            {
                Assert.AreEqual(10, redis.BitOp(RedisBitOp.And, "dest", "key1", "key2"));
                Assert.AreEqual("*5\r\n$5\r\nBITOP\r\n$3\r\nAND\r\n$4\r\ndest\r\n$4\r\nkey1\r\n$4\r\nkey2\r\n", mock.GetMessage());

                Assert.AreEqual(10, redis.BitOp(RedisBitOp.Or, "dest", "key1", "key2"));
                Assert.AreEqual("*5\r\n$5\r\nBITOP\r\n$2\r\nOR\r\n$4\r\ndest\r\n$4\r\nkey1\r\n$4\r\nkey2\r\n", mock.GetMessage());

                Assert.AreEqual(10, redis.BitOp(RedisBitOp.XOr, "dest", "key1", "key2"));
                Assert.AreEqual("*5\r\n$5\r\nBITOP\r\n$3\r\nXOR\r\n$4\r\ndest\r\n$4\r\nkey1\r\n$4\r\nkey2\r\n", mock.GetMessage());

                Assert.AreEqual(10, redis.BitOp(RedisBitOp.Not, "dest", "key1", "key2"));
                Assert.AreEqual("*5\r\n$5\r\nBITOP\r\n$3\r\nNOT\r\n$4\r\ndest\r\n$4\r\nkey1\r\n$4\r\nkey2\r\n", mock.GetMessage());
            }
        }
コード例 #12
0
ファイル: TransactionTests.cs プロジェクト: DTBruce/csredis
 public void WatchTest()
 {
     using (var mock = new FakeRedisSocket("+OK\r\n"))
     using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
     {
         Assert.AreEqual("OK", redis.Watch());
         Assert.AreEqual("*1\r\n$5\r\nWATCH\r\n", mock.GetMessage());
     }
 }
コード例 #13
0
ファイル: StringTests.cs プロジェクト: DTBruce/csredis
 public void AppendTest()
 {
     using (var mock = new FakeRedisSocket(":10\r\n"))
     using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
     {
         Assert.AreEqual(10, redis.Append("key", "x"));
         Assert.AreEqual("*3\r\n$6\r\nAPPEND\r\n$3\r\nkey\r\n$1\r\nx\r\n", mock.GetMessage());
     }
 }
コード例 #14
0
ファイル: SetTests.cs プロジェクト: DTBruce/csredis
 public void TestSInterStore()
 {
     using (var mock = new FakeRedisSocket(":3\r\n"))
     using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
     {
         Assert.AreEqual(3, redis.SInterStore("destination", "key1", "key2"));
         Assert.AreEqual("*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());
     }
 }
コード例 #15
0
ファイル: SetTests.cs プロジェクト: DTBruce/csredis
 public void TestSAdd()
 {
     using (var mock = new FakeRedisSocket(":3\r\n"))
     using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
     {
         Assert.AreEqual(3, redis.SAdd("test", "test1"));
         Assert.AreEqual("*3\r\n$4\r\nSADD\r\n$4\r\ntest\r\n$5\r\ntest1\r\n", mock.GetMessage());
     }
 }
コード例 #16
0
ファイル: HyperLogLogTests.cs プロジェクト: DTBruce/csredis
 public void PfMergeTest()
 {
     using (var mock = new FakeRedisSocket("+OK\r\n"))
     using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
     {
         Assert.AreEqual("OK", redis.PfMerge("destination", "source1", "source2"));
         Assert.AreEqual("*4\r\n$7\r\nPFMERGE\r\n$11\r\ndestination\r\n$7\r\nsource1\r\n$7\r\nsource2\r\n", mock.GetMessage());
     }
 }
コード例 #17
0
ファイル: KeyTests.cs プロジェクト: DTBruce/csredis
 public void TestDump()
 {
     using (var mock = new FakeRedisSocket("$4\r\ntest\r\n"))
     using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
     {
         Assert.AreEqual("test", redis.Encoding.GetString(redis.Dump("test")));
         Assert.AreEqual("*2\r\n$4\r\nDUMP\r\n$4\r\ntest\r\n", mock.GetMessage());
     }
 }
コード例 #18
0
ファイル: SortedSetTests.cs プロジェクト: DTBruce/csredis
 public void TestZCard()
 {
     using (var mock = new FakeRedisSocket(":2\r\n"))
     using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
     {
         Assert.AreEqual(2, redis.ZCard("test"));
         Assert.AreEqual("*2\r\n$5\r\nZCARD\r\n$4\r\ntest\r\n", mock.GetMessage());
     }
 }
コード例 #19
0
ファイル: PubSubTests.cs プロジェクト: DTBruce/csredis
 public void PublishTest()
 {
     using (var mock = new FakeRedisSocket(":3\r\n"))
     using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
     {
         Assert.AreEqual(3, redis.Publish("test", "message"));
         Assert.AreEqual("*3\r\n$7\r\nPUBLISH\r\n$4\r\ntest\r\n$7\r\nmessage\r\n", mock.GetMessage());
     }
 }
コード例 #20
0
ファイル: StringTests.cs プロジェクト: DTBruce/csredis
 public void DecrTest()
 {
     using (var mock = new FakeRedisSocket(":10\r\n"))
     using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
     {
         Assert.AreEqual(10, redis.Decr("key"));
         Assert.AreEqual("*2\r\n$4\r\nDECR\r\n$3\r\nkey\r\n", mock.GetMessage());
     }
 }
コード例 #21
0
ファイル: ServerTests.cs プロジェクト: DTBruce/csredis
 public void ClientListTest()
 {
     using (var mock = new FakeRedisSocket("$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, new DnsEndPoint("fakehost", 9999)))
     {
         Assert.AreEqual("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.AreEqual("*2\r\n$6\r\nCLIENT\r\n$4\r\nLIST\r\n", mock.GetMessage());
     }
 }
コード例 #22
0
ファイル: ServerTests.cs プロジェクト: DTBruce/csredis
 public void ClientGetNameTest()
 {
     using (var mock = new FakeRedisSocket("$6\r\nmyname\r\n"))
     using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
     {
         Assert.AreEqual("myname", redis.ClientGetName());
         Assert.AreEqual("*2\r\n$6\r\nCLIENT\r\n$7\r\nGETNAME\r\n", mock.GetMessage());
     }
 }
コード例 #23
0
ファイル: ServerTests.cs プロジェクト: DTBruce/csredis
 public void BgSaveTest()
 {
     using (var mock = new FakeRedisSocket("+OK\r\n"))
     using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
     {
         Assert.AreEqual("OK", redis.BgSave());
         Assert.AreEqual("*1\r\n$6\r\nBGSAVE\r\n", mock.GetMessage());
     }
 }
コード例 #24
0
ファイル: ServerTests.cs プロジェクト: DTBruce/csredis
 public void BgRewriteAofTest()
 {
     using (var mock = new FakeRedisSocket("+OK\r\n"))
     using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
     {
         Assert.AreEqual("OK", redis.BgRewriteAof());
         Assert.AreEqual("*1\r\n$12\r\nBGREWRITEAOF\r\n", mock.GetMessage());
     }
 }
コード例 #25
0
ファイル: SortedSetTests.cs プロジェクト: DTBruce/csredis
 public void TestZAdd_Tuple()
 {
     using (var mock = new FakeRedisSocket(":2\r\n"))
     using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
     {
         Assert.AreEqual(2, redis.ZAdd("test", Tuple.Create(1.1, "test1"), Tuple.Create(2.2, "test2")));
         Assert.AreEqual("*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());
     }
 }
コード例 #26
0
ファイル: HashTests.cs プロジェクト: DTBruce/csredis
 public void TestHExists()
 {
     using (var mock = new FakeRedisSocket(":1\r\n"))
     using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
     {
         Assert.IsTrue(redis.HExists("test", "field"));
         Assert.AreEqual("*3\r\n$7\r\nHEXISTS\r\n$4\r\ntest\r\n$5\r\nfield\r\n", mock.GetMessage());
     }
 }
コード例 #27
0
ファイル: SortedSetTests.cs プロジェクト: DTBruce/csredis
 public void TestZIncrby()
 {
     using (var mock = new FakeRedisSocket("$4\r\n3.14\r\n"))
     using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
     {
         Assert.AreEqual(3.14, redis.ZIncrBy("test", 1.5, "test1"));
         Assert.AreEqual("*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());
     }
 }
コード例 #28
0
ファイル: HashTests.cs プロジェクト: DTBruce/csredis
 public void TestHGet()
 {
     using (var mock = new FakeRedisSocket("$4\r\ntest\r\n"))
     using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
     {
         Assert.AreEqual("test", redis.HGet("test", "field"));
         Assert.AreEqual("*3\r\n$4\r\nHGET\r\n$4\r\ntest\r\n$5\r\nfield\r\n", mock.GetMessage());
     }
 }
コード例 #29
0
ファイル: ScriptingTests.cs プロジェクト: DTBruce/csredis
 public void ScriptKillTest()
 {
     using (var mock = new FakeRedisSocket("+OK\r\n"))
     using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
     {
         Assert.AreEqual("OK", redis.ScriptKill());
         Assert.AreEqual("*2\r\n$6\r\nSCRIPT\r\n$4\r\nKILL\r\n", mock.GetMessage());
     }
 }
コード例 #30
0
ファイル: KeyTests.cs プロジェクト: DTBruce/csredis
 public void TestDel()
 {
     using (var mock = new FakeRedisSocket(":3\r\n"))
     using (var redis = new RedisClient(mock, new DnsEndPoint("fakehost", 9999)))
     {
         Assert.AreEqual(3, redis.Del("test"));
         Assert.AreEqual("*2\r\n$3\r\nDEL\r\n$4\r\ntest\r\n", mock.GetMessage());
     }
 }