-
Notifications
You must be signed in to change notification settings - Fork 44
/
Copy pathStringSnippets.cs
91 lines (77 loc) · 2.63 KB
/
StringSnippets.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
// EXAMPLE: set_tutorial
// HIDE_START
//REMOVE_START
using NRedisStack.Tests;
using StackExchange.Redis;
namespace Doc;
[Collection("DocsTests")]
//REMOVE_END
public class StringSnippets
// REMOVE_START
: AbstractNRedisStackTest, IDisposable
// REMOVE_END
{
// REMOVE_START
public StringSnippets(EndpointsFixture fixture) : base(fixture) { }
[SkippableFact]
// REMOVE_END
public void run()
{
//REMOVE_START
// This is needed because we're constructing ConfigurationOptions in the test before calling GetConnection
SkipIfTargetConnectionDoesNotExist(EndpointsFixture.Env.Standalone);
var _ = GetCleanDatabase(EndpointsFixture.Env.Standalone);
//REMOVE_END
var muxer = ConnectionMultiplexer.Connect("localhost:6379");
var db = muxer.GetDatabase();
//HIDE_END
//REMOVE_START
db.KeyDelete(new RedisKey[] { "bike:1", "bike:2", "bike:3", "total_crashes" });
//REMOVE_END
// STEP_START set_get
var res1 = db.StringSet("bike:1", "Deimos");
Console.WriteLine(res1); // true
var res2 = db.StringGet("bike:1");
Console.WriteLine(res2); // Deimos
// STEP_END
//REMOVE_START
Assert.True(res1);
Assert.Equal("Deimos", res2);
//REMOVE_END
//STEP_START setnx_xx
var res3 = db.StringSet("bike:1", "bike", when: When.NotExists);
Console.WriteLine(res3); // false
Console.WriteLine(db.StringGet("bike:1"));
var res4 = db.StringSet("bike:1", "bike", when: When.Exists);
Console.WriteLine(res4); // true
//STEP_END
//REMOVE_START
Assert.False(res3);
Assert.True(res4);
//REMOVE_END
//STEP_START mset
var res5 = db.StringSet(new KeyValuePair<RedisKey, RedisValue>[]
{
new ("bike:1", "Deimos"), new("bike:2", "Ares"), new("bike:3", "Vanth")
});
Console.WriteLine(res5);
var res6 = db.StringGet(new RedisKey[] { "bike:1", "bike:2", "bike:3" });
Console.WriteLine(res6);
//STEP_END
//REMOVE_START
Assert.True(res5);
Assert.Equal(new[] { "Deimos", "Ares", "Vanth" }, res6.Select(x => x.ToString()).ToArray());
//REMOVE_END
//STEP_START incr
db.StringSet("total_crashes", 0);
var res7 = db.StringIncrement("total_crashes");
Console.WriteLine(res7); // 1
var res8 = db.StringIncrement("total_crashes", 10);
Console.WriteLine(res8);
//STEP_END
//REMOVE_START
Assert.Equal(1, res7);
Assert.Equal(11, res8);
//REMOVE_END
}
}