Commit f7e1bb15 authored by Nick Craver's avatar Nick Craver

Tests: Async variants for idle & swap

parent 76ed030a
......@@ -116,5 +116,39 @@ public async Task SwapDatabases()
Assert.Equal("b", await bNew); // db:0
}
}
[Fact]
public async Task SwapDatabasesAsync()
{
using (var muxer = Create(allowAdmin: true))
{
RedisKey key = Me();
var db0id = TestConfig.GetDedicatedDB(muxer);
var db0 = muxer.GetDatabase(db0id);
var db1id = TestConfig.GetDedicatedDB(muxer);
var db1 = muxer.GetDatabase(db1id);
db0.KeyDelete(key, CommandFlags.FireAndForget);
db1.KeyDelete(key, CommandFlags.FireAndForget);
db0.StringSet(key, "a", flags: CommandFlags.FireAndForget);
db1.StringSet(key, "b", flags: CommandFlags.FireAndForget);
var a = db0.StringGetAsync(key);
var b = db1.StringGetAsync(key);
Assert.Equal("a", await a); // db:0
Assert.Equal("b", await b); // db:1
var server = GetServer(muxer);
var swap = server.SwapDatabasesAsync(db0id, db1id).ForAwait();
var aNew = db1.StringGetAsync(key);
var bNew = db0.StringGetAsync(key);
Assert.Equal("a", await aNew); // db:1
Assert.Equal("b", await bNew); // db:0
}
}
}
}
......@@ -130,5 +130,28 @@ public async Task IdleTime()
Assert.Null(idleTime3);
}
}
[Fact]
public async Task IdleTimeAsync()
{
using (var muxer = Create())
{
RedisKey key = Me();
var db = muxer.GetDatabase();
db.KeyDelete(key, CommandFlags.FireAndForget);
db.StringSet(key, "new value", flags: CommandFlags.FireAndForget);
await Task.Delay(2000).ForAwait();
var idleTime = await db.KeyIdleTimeAsync(key).ForAwait();
Assert.True(idleTime > TimeSpan.Zero);
db.StringSet(key, "new value2", flags: CommandFlags.FireAndForget);
var idleTime2 = await db.KeyIdleTimeAsync(key).ForAwait();
Assert.True(idleTime2 < idleTime);
db.KeyDelete(key);
var idleTime3 = await db.KeyIdleTimeAsync(key).ForAwait();
Assert.Null(idleTime3);
}
}
}
}
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