From c2fa58fcfa53598d1884a1e98acd4269c2127987 Mon Sep 17 00:00:00 2001 From: ruyu Date: Sun, 1 Jul 2018 11:38:02 +0800 Subject: [PATCH] RedisSetStudyTest --- RedisStudyTest/RedisSetStudyTest.cs | 97 ++++++++++++++++++++++++++++ RedisStudyTest/RedisStudyTest.csproj | 1 + RedisStuy/RedisSetStudy.cs | 1 + 3 files changed, 99 insertions(+) create mode 100644 RedisStudyTest/RedisSetStudyTest.cs diff --git a/RedisStudyTest/RedisSetStudyTest.cs b/RedisStudyTest/RedisSetStudyTest.cs new file mode 100644 index 0000000..34fce55 --- /dev/null +++ b/RedisStudyTest/RedisSetStudyTest.cs @@ -0,0 +1,97 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +using StackExchange.Redis; + +using Xunit; +using Xunit.Extensions; +using Xunit.Serialization; +using Xunit.Abstractions; +using Xunit.Sdk; + +using RedisStuy; + +namespace RedisStudyTest +{ + /// + /// Redis 集合学习 测试 + /// + [Trait("RedisSet", "All")] + public class RedisSetStudyTest:IDisposable + { + #region 初始化 + private readonly ITestOutputHelper testOutput; + private IDatabase redisDatabase = null; + private RedisSetStudy redisSetStudy = null; + private TimeSpan defaultExpiry = TimeSpan.FromSeconds(20); + private string defaultRedisKey = "RedisStudy:Set:xUnitTest"; + + /// + /// 构造 + /// + public RedisSetStudyTest(ITestOutputHelper output) + { + this.testOutput = output; + redisDatabase = RedisHelper.GetRedisDatabase(); + redisSetStudy = new RedisSetStudy(); + } + #endregion + + #region SetAdd + + [Fact] + public void SetAddOneTest() + { + var addResult = redisSetStudy.SetAdd(defaultRedisKey, "first"); + Assert.True(addResult); + + addResult = redisSetStudy.SetAdd(defaultRedisKey, "second"); + Assert.True(addResult); + + var setMembers = redisSetStudy.SetMembers(defaultRedisKey); + + Assert.NotEmpty(setMembers); + Assert.Equal(2, setMembers.Length); + Assert.Contains("first", setMembers); + Assert.Contains("second", setMembers); + } + + [Fact] + public void SetAddGroupTest() + { + RedisValue[] values = new RedisValue[] + { + "first", + "second", + "third", + "four", + }; + + var setAddNumber = redisSetStudy.SetAdd(defaultRedisKey, values); + Assert.Equal(4, setAddNumber); + + //忽略已存在的项 + setAddNumber = redisSetStudy.SetAdd(defaultRedisKey, values); + Assert.Equal(0, setAddNumber); + + var setMember = redisSetStudy.SetMembers(defaultRedisKey); + Assert.Equal(4, setMember.Length); + + Assert.Contains(values[0], setMember); + Assert.Contains(values[1], setMember); + Assert.Contains(values[2], setMember); + Assert.Contains(values[3], setMember); + } + #endregion + + #region 清理 + public void Dispose() + { + redisDatabase.KeyDelete(defaultRedisKey); + } + #endregion + } +} diff --git a/RedisStudyTest/RedisStudyTest.csproj b/RedisStudyTest/RedisStudyTest.csproj index 0dc1c4e..a201176 100644 --- a/RedisStudyTest/RedisStudyTest.csproj +++ b/RedisStudyTest/RedisStudyTest.csproj @@ -80,6 +80,7 @@ + diff --git a/RedisStuy/RedisSetStudy.cs b/RedisStuy/RedisSetStudy.cs index 4e9bb6e..8cd9542 100644 --- a/RedisStuy/RedisSetStudy.cs +++ b/RedisStuy/RedisSetStudy.cs @@ -32,6 +32,7 @@ namespace RedisStuy /// /// 添加一组值到集合中 /// + /// 添加到集合中的元素的数量,不包括已经存在于集合中的所有元素。 public long SetAdd(RedisKey key, RedisValue[] values, CommandFlags flags = CommandFlags.None) { return redisDatabase.SetAdd(key, values, flags);