Commit eec15d6f authored by Marc Gravell's avatar Marc Gravell

Merge pull request #183 from xkrt/master

Test case for issue #182
parents afe847fc 80b3a574
using System;
using System.Linq;
using NUnit.Framework;
namespace StackExchange.Redis.Tests.Issues
{
[TestFixture]
public class Issue182 : TestBase
{
[Test]
public void SetMembers()
{
using (var conn = Create())
{
var db = conn.GetDatabase();
var key = Me();
const int count = (int)5e6;
db.KeyDeleteAsync(key).Wait();
foreach (var _ in Enumerable.Range(0, count))
db.SetAdd(key, Guid.NewGuid().ToByteArray(), CommandFlags.FireAndForget);
Assert.AreEqual(count, db.SetLengthAsync(key).Result, "SCARD for set");
var task = db.SetMembersAsync(key);
task.Wait();
Assert.AreEqual(count, task.Result.Length, "SMEMBERS result length");
}
}
[Test]
public void SetUnion()
{
using (var conn = Create())
{
var db = conn.GetDatabase();
var key1 = Me() + ":1";
var key2 = Me() + ":2";
var dstkey = Me() + ":dst";
db.KeyDeleteAsync(key1).Wait();
db.KeyDeleteAsync(key2).Wait();
db.KeyDeleteAsync(dstkey).Wait();
const int count = (int)5e6;
foreach (var _ in Enumerable.Range(0, count))
{
db.SetAdd(key1, Guid.NewGuid().ToByteArray(), CommandFlags.FireAndForget);
db.SetAdd(key2, Guid.NewGuid().ToByteArray(), CommandFlags.FireAndForget);
}
Assert.AreEqual(count, db.SetLengthAsync(key1).Result, "SCARD for set 1");
Assert.AreEqual(count, db.SetLengthAsync(key2).Result, "SCARD for set 2");
db.SetCombineAndStoreAsync(SetOperation.Union, dstkey, key1, key2).Wait();
var dstLen = db.SetLength(dstkey);
Assert.AreEqual(count * 2, dstLen, "SCARD for destination set");
}
}
}
}
\ No newline at end of file
......@@ -70,6 +70,7 @@
<Compile Include="ConnectingFailDetection.cs" />
<Compile Include="ConnectToUnexistingHost.cs" />
<Compile Include="HyperLogLog.cs" />
<Compile Include="Issues\Issue182.cs" />
<Compile Include="WrapperBaseTests.cs" />
<Compile Include="TransactionWrapperTests.cs" />
<Compile Include="Bits.cs" />
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment