You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
2.6 KiB
C#

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
{
/// <summary>
/// Redis 集合学习 测试
/// </summary>
[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";
/// <summary>
/// 构造
/// </summary>
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
}
}