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); + } + + /// + /// 排它性参数Exclude设置 测试 + /// + [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); } + + /// + /// 排序参数测试 + /// + [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]); + } + + /// + /// 分页测试 + /// + [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 清理