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 } }