Skip to content

Commit 81f0311

Browse files
committed
Idle test stability with split for time
1 parent af3d52c commit 81f0311

File tree

2 files changed

+89
-80
lines changed

2 files changed

+89
-80
lines changed
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
using System;
2+
using System.Threading.Tasks;
3+
using Xunit;
4+
5+
namespace StackExchange.Redis.Tests;
6+
7+
[RunPerProtocol]
8+
public class KeyIdleTests(ITestOutputHelper output, SharedConnectionFixture fixture) : TestBase(output, fixture)
9+
{
10+
[Fact]
11+
public async Task IdleTime()
12+
{
13+
await using var conn = Create();
14+
15+
RedisKey key = Me();
16+
var db = conn.GetDatabase();
17+
db.KeyDelete(key, CommandFlags.FireAndForget);
18+
db.StringSet(key, "new value", flags: CommandFlags.FireAndForget);
19+
await Task.Delay(2000).ForAwait();
20+
var idleTime = db.KeyIdleTime(key);
21+
Assert.True(idleTime > TimeSpan.Zero);
22+
23+
db.StringSet(key, "new value2", flags: CommandFlags.FireAndForget);
24+
var idleTime2 = db.KeyIdleTime(key);
25+
Assert.True(idleTime2 < idleTime);
26+
27+
db.KeyDelete(key);
28+
var idleTime3 = db.KeyIdleTime(key);
29+
Assert.Null(idleTime3);
30+
}
31+
32+
[Fact]
33+
public async Task TouchIdleTime()
34+
{
35+
await using var conn = Create(require: RedisFeatures.v3_2_1);
36+
37+
RedisKey key = Me();
38+
var db = conn.GetDatabase();
39+
db.KeyDelete(key, CommandFlags.FireAndForget);
40+
db.StringSet(key, "new value", flags: CommandFlags.FireAndForget);
41+
await Task.Delay(2000).ForAwait();
42+
var idleTime = db.KeyIdleTime(key);
43+
Assert.True(idleTime > TimeSpan.Zero, "First check");
44+
45+
Assert.True(db.KeyTouch(key), "Second check");
46+
var idleTime1 = db.KeyIdleTime(key);
47+
Assert.True(idleTime1 < idleTime, "Third check");
48+
}
49+
50+
[Fact]
51+
public async Task IdleTimeAsync()
52+
{
53+
await using var conn = Create();
54+
55+
RedisKey key = Me();
56+
var db = conn.GetDatabase();
57+
db.KeyDelete(key, CommandFlags.FireAndForget);
58+
db.StringSet(key, "new value", flags: CommandFlags.FireAndForget);
59+
await Task.Delay(2000).ForAwait();
60+
var idleTime = await db.KeyIdleTimeAsync(key).ForAwait();
61+
Assert.True(idleTime > TimeSpan.Zero, "First check");
62+
63+
db.StringSet(key, "new value2", flags: CommandFlags.FireAndForget);
64+
var idleTime2 = await db.KeyIdleTimeAsync(key).ForAwait();
65+
Assert.True(idleTime2 < idleTime, "Second check");
66+
67+
db.KeyDelete(key);
68+
var idleTime3 = await db.KeyIdleTimeAsync(key).ForAwait();
69+
Assert.Null(idleTime3);
70+
}
71+
72+
[Fact]
73+
public async Task TouchIdleTimeAsync()
74+
{
75+
await using var conn = Create(require: RedisFeatures.v3_2_1);
76+
77+
RedisKey key = Me();
78+
var db = conn.GetDatabase();
79+
db.KeyDelete(key, CommandFlags.FireAndForget);
80+
db.StringSet(key, "new value", flags: CommandFlags.FireAndForget);
81+
await Task.Delay(2000).ForAwait();
82+
var idleTime = await db.KeyIdleTimeAsync(key).ForAwait();
83+
Assert.True(idleTime > TimeSpan.Zero, "First check");
84+
85+
Assert.True(await db.KeyTouchAsync(key).ForAwait(), "Second check");
86+
var idleTime1 = await db.KeyIdleTimeAsync(key).ForAwait();
87+
Assert.True(idleTime1 < idleTime, "Third check");
88+
}
89+
}

tests/StackExchange.Redis.Tests/KeyTests.cs

Lines changed: 0 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -171,86 +171,6 @@ public async Task ExistsAsync()
171171
Assert.Equal(2, await c3);
172172
}
173173

174-
[Fact]
175-
public async Task IdleTime()
176-
{
177-
await using var conn = Create();
178-
179-
RedisKey key = Me();
180-
var db = conn.GetDatabase();
181-
db.KeyDelete(key, CommandFlags.FireAndForget);
182-
db.StringSet(key, "new value", flags: CommandFlags.FireAndForget);
183-
await Task.Delay(1000).ForAwait();
184-
var idleTime = db.KeyIdleTime(key);
185-
Assert.True(idleTime > TimeSpan.Zero);
186-
187-
db.StringSet(key, "new value2", flags: CommandFlags.FireAndForget);
188-
var idleTime2 = db.KeyIdleTime(key);
189-
Assert.True(idleTime2 < idleTime);
190-
191-
db.KeyDelete(key);
192-
var idleTime3 = db.KeyIdleTime(key);
193-
Assert.Null(idleTime3);
194-
}
195-
196-
[Fact]
197-
public async Task TouchIdleTime()
198-
{
199-
await using var conn = Create(require: RedisFeatures.v3_2_1);
200-
201-
RedisKey key = Me();
202-
var db = conn.GetDatabase();
203-
db.KeyDelete(key, CommandFlags.FireAndForget);
204-
db.StringSet(key, "new value", flags: CommandFlags.FireAndForget);
205-
await Task.Delay(1000).ForAwait();
206-
var idleTime = db.KeyIdleTime(key);
207-
Assert.True(idleTime > TimeSpan.Zero, "First check");
208-
209-
Assert.True(db.KeyTouch(key), "Second check");
210-
var idleTime1 = db.KeyIdleTime(key);
211-
Assert.True(idleTime1 < idleTime, "Third check");
212-
}
213-
214-
[Fact]
215-
public async Task IdleTimeAsync()
216-
{
217-
await using var conn = Create();
218-
219-
RedisKey key = Me();
220-
var db = conn.GetDatabase();
221-
db.KeyDelete(key, CommandFlags.FireAndForget);
222-
db.StringSet(key, "new value", flags: CommandFlags.FireAndForget);
223-
await Task.Delay(1000).ForAwait();
224-
var idleTime = await db.KeyIdleTimeAsync(key).ForAwait();
225-
Assert.True(idleTime > TimeSpan.Zero, "First check");
226-
227-
db.StringSet(key, "new value2", flags: CommandFlags.FireAndForget);
228-
var idleTime2 = await db.KeyIdleTimeAsync(key).ForAwait();
229-
Assert.True(idleTime2 < idleTime, "Second check");
230-
231-
db.KeyDelete(key);
232-
var idleTime3 = await db.KeyIdleTimeAsync(key).ForAwait();
233-
Assert.Null(idleTime3);
234-
}
235-
236-
[Fact]
237-
public async Task TouchIdleTimeAsync()
238-
{
239-
await using var conn = Create(require: RedisFeatures.v3_2_1);
240-
241-
RedisKey key = Me();
242-
var db = conn.GetDatabase();
243-
db.KeyDelete(key, CommandFlags.FireAndForget);
244-
db.StringSet(key, "new value", flags: CommandFlags.FireAndForget);
245-
await Task.Delay(1000).ForAwait();
246-
var idleTime = await db.KeyIdleTimeAsync(key).ForAwait();
247-
Assert.True(idleTime > TimeSpan.Zero, "First check");
248-
249-
Assert.True(await db.KeyTouchAsync(key).ForAwait(), "Second check");
250-
var idleTime1 = await db.KeyIdleTimeAsync(key).ForAwait();
251-
Assert.True(idleTime1 < idleTime, "Third check");
252-
}
253-
254174
[Fact]
255175
public async Task KeyEncoding()
256176
{

0 commit comments

Comments
 (0)