From 22377b67b07a328c539ca02bcb76b6f688a9a94f Mon Sep 17 00:00:00 2001
From: ruyu <bicijinlian@163.com>
Date: Mon, 9 Jul 2018 23:26:24 +0800
Subject: [PATCH] update

---
 RedisStudyTest/RedisSortedSetStudyTest.cs | 164 +++++++++++++++++++++-
 1 file changed, 163 insertions(+), 1 deletion(-)

diff --git a/RedisStudyTest/RedisSortedSetStudyTest.cs b/RedisStudyTest/RedisSortedSetStudyTest.cs
index 6ea9363..ac68bc5 100644
--- a/RedisStudyTest/RedisSortedSetStudyTest.cs
+++ b/RedisStudyTest/RedisSortedSetStudyTest.cs
@@ -576,8 +576,170 @@ namespace RedisStudyTest
         [Fact]
         public void SortedSetRangeByScore_NotKey_Test()
         {
-            redisSortedSetStudy.SortedSetRangeByScore(defaultRedisKey);
+            var members = redisSortedSetStudy.SortedSetRangeByScore(defaultRedisKey);
+            Assert.Empty(members);
+        }
+
+        /// <summary>
+        /// 排它性参数Exclude设置 测试
+        /// </summary>
+        [Fact]
+        public void SortedSetRangeByScore_Exclude_Test()
+        {
+            SortedSetEntry[] sortedSetEntries = new SortedSetEntry[]
+            {
+                new SortedSetEntry("first",1),
+                new SortedSetEntry("second",2),
+                new SortedSetEntry("third",3),
+                new SortedSetEntry("four",4),
+                new SortedSetEntry("five",5),
+            };
+            redisSortedSetStudy.SortedSetAdd(defaultRedisKey, sortedSetEntries);
+
+            //默认:Exclude.None [Start,Stop]
+            var members = redisSortedSetStudy.SortedSetRangeByScore(defaultRedisKey, 2, 4, Exclude.None);
+            Assert.Equal(3, members.Length);
+            Assert.Contains("second", members);
+            Assert.Contains("third", members);
+            Assert.Contains("four", members);
+
+            //Exclude.Start (Start,Stop]
+            members = redisSortedSetStudy.SortedSetRangeByScore(defaultRedisKey, 2, 4, Exclude.Start);
+            Assert.Equal(2, members.Length);
+            Assert.Contains("third", members);
+            Assert.Contains("four", members);
+
+            //Exclude.Stop [Start,Stop)
+            members = redisSortedSetStudy.SortedSetRangeByScore(defaultRedisKey, 2, 4, Exclude.Stop);
+            Assert.Equal(2, members.Length);
+            Assert.Contains("second", members);
+            Assert.Contains("third", members);
+
+            //Exclude.Both (Start,Stop)
+            members = redisSortedSetStudy.SortedSetRangeByScore(defaultRedisKey, 2, 4, Exclude.Both);
+            Assert.Single(members);
+            Assert.Contains("third", members);
         }
+
+        /// <summary>
+        /// 排序参数测试
+        /// </summary>
+        [Fact]
+        public void SortedSetRangeByScore_Sort_Test()
+        {
+            SortedSetEntry[] sortedSetEntries = new SortedSetEntry[]
+            {
+                new SortedSetEntry("first",1),
+                new SortedSetEntry("second",2),
+                new SortedSetEntry("third",3),
+                new SortedSetEntry("four",4),
+                new SortedSetEntry("five",5),
+            };
+            redisSortedSetStudy.SortedSetAdd(defaultRedisKey, sortedSetEntries);
+
+            //默认:升序
+            var members = redisSortedSetStudy.SortedSetRangeByScore(defaultRedisKey, 2, 4, Exclude.None, Order.Ascending);
+            Assert.Equal(3, members.Length);
+            Assert.Equal("second", members[0]);
+            Assert.Equal("third", members[1]);
+            Assert.Equal("four", members[2]);
+
+            //降序
+            members = redisSortedSetStudy.SortedSetRangeByScore(defaultRedisKey, 2, 4, Exclude.None, Order.Descending);
+            Assert.Equal(3, members.Length);
+            Assert.Equal("four", members[0]);
+            Assert.Equal("third", members[1]);
+            Assert.Equal("second", members[2]);
+        }
+
+        /// <summary>
+        /// 分页测试
+        /// </summary>
+        [Fact]
+        public void SortedSetRangeByScore_Page_Test()
+        {
+            SortedSetEntry[] sortedSetEntries = new SortedSetEntry[]
+            {
+                new SortedSetEntry("Andy",1),
+                new SortedSetEntry("and",2),
+                new SortedSetEntry("And",3),
+                new SortedSetEntry("Banana",4),
+                new SortedSetEntry("color",5),
+                new SortedSetEntry("query",6),
+                new SortedSetEntry("remove",7),
+                new SortedSetEntry("101",8),
+                new SortedSetEntry("304",9),
+                new SortedSetEntry("404",10),
+                new SortedSetEntry("王高峰",11),
+                new SortedSetEntry("刘山东",12),
+            };
+            redisSortedSetStudy.SortedSetAdd(defaultRedisKey, sortedSetEntries);
+
+            //第一页
+            var members = redisSortedSetStudy.SortedSetRangeByScore(defaultRedisKey, double.MinValue, double.MaxValue, Exclude.None, Order.Ascending, 0, 4, CommandFlags.None);
+            Assert.Equal(4, members.Length);
+            Assert.Contains("Andy", members);
+            Assert.Contains("and", members);
+            Assert.Contains("And", members);
+            Assert.Contains("Banana", members);
+
+            //第2页
+            members = redisSortedSetStudy.SortedSetRangeByScore(defaultRedisKey, double.NegativeInfinity, double.PositiveInfinity, Exclude.None, Order.Ascending, 4, 4, CommandFlags.None);
+            Assert.Equal(4, members.Length);
+            Assert.Contains("color", members);
+            Assert.Contains("query", members);
+            Assert.Contains("remove", members);
+            Assert.Contains("101", members);
+
+            //第3页
+            members = redisSortedSetStudy.SortedSetRangeByScore(defaultRedisKey, double.NegativeInfinity, double.PositiveInfinity, Exclude.None, Order.Ascending, 8, 4, CommandFlags.None);
+            Assert.Equal(4, members.Length);
+            Assert.Contains("304", members);
+            Assert.Contains("404", members);
+            Assert.Contains("王高峰", members);
+            Assert.Contains("刘山东", members);
+        }
+
+        [Fact]
+        public void SortedSetRangeByScoreTest()
+        {
+            SortedSetEntry[] sortedSetEntries = new SortedSetEntry[]
+            {
+                new SortedSetEntry("Andy",1),
+                new SortedSetEntry("and",2),
+                new SortedSetEntry("And",3),
+                new SortedSetEntry("Banana",4),
+                new SortedSetEntry("color",5),
+                new SortedSetEntry("query",6),
+                new SortedSetEntry("remove",7),
+                new SortedSetEntry("101",8),
+                new SortedSetEntry("304",9),
+                new SortedSetEntry("404",10),
+                new SortedSetEntry("王高峰",11),
+                new SortedSetEntry("刘山东",12),
+            };
+            redisSortedSetStudy.SortedSetAdd(defaultRedisKey, sortedSetEntries);
+
+            var members = redisSortedSetStudy.SortedSetRangeByScore(defaultRedisKey, 1, 5);
+            Assert.Equal(5, members.Length);
+            Assert.Equal("Andy", members[0]);
+            Assert.Equal("and", members[1]);
+            Assert.Equal("And", members[2]);
+            Assert.Equal("Banana", members[3]);
+            Assert.Equal("color", members[4]);
+
+            members = redisSortedSetStudy.SortedSetRangeByScore(defaultRedisKey, 5, 7, Exclude.None, Order.Descending);
+            Assert.Equal(3, members.Length);
+            Assert.Equal("remove", members[0]);
+            Assert.Equal("query", members[1]);
+            Assert.Equal("color", members[2]);
+
+            members = redisSortedSetStudy.SortedSetRangeByScore(defaultRedisKey, double.NegativeInfinity, double.PositiveInfinity);
+            Assert.Equal(12, members.Length);
+            Assert.Equal("Andy", members[0]);
+            Assert.Equal("刘山东", members[11]);
+        }
+
         #endregion
 
         #region 清理