Skip to content

Commit a2b2524

Browse files
DOC-2525 add ListTutorial.cs to fork (#324)
* DOC-2525 add ListTutorial.cs to fork * DOC-2525 dotnet format changes * DOC-2525 try changing all files to same namespace * DOC-2525 added xunit.runner.json with parallelisation turned off * DOC-2525 alternative xunit.runner config * DOC-2525 try removing OutputType module * DOC-2525 fixed test problem with double string formatting * DOC-2525 another attempt to fix test string formatting * DOC-2525 another minor test fix * DOC-2525 removed xunit config --------- Co-authored-by: atakavci <[email protected]>
1 parent 167d09f commit a2b2524

File tree

6 files changed

+350
-16
lines changed

6 files changed

+350
-16
lines changed

tests/Doc/Doc.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<Nullable>enable</Nullable>
88
<LangVersion>latest</LangVersion>
99
<IsPackable>false</IsPackable>
10-
<OutputType>Module</OutputType>
10+
<!-- <OutputType>Module</OutputType> -->
1111
</PropertyGroup>
1212
<ItemGroup>
1313
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />

tests/Doc/Geo_tutorial.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -65,18 +65,18 @@ public void run()
6565
// Tests for 'geosearch' step.
6666
// REMOVE_START
6767
Assert.Equal(3, res4.Length);
68-
Assert.Equal(
69-
"Member: 'station:1', distance: 0.0001, position: -122.27652043104172 37.80518485897756",
70-
$"Member: '{res4[0].Member}', distance: {res4[0].Distance}, position: {res4[0].Position}"
71-
);
72-
Assert.Equal(
73-
"Member: 'station:2', distance: 0.8047, position: -122.26745992898941 37.80623423353753",
74-
$"Member: '{res4[1].Member}', distance: {res4[1].Distance}, position: {res4[1].Position}"
75-
);
76-
Assert.Equal(
77-
"Member: 'station:3', distance: 2.6596, position: -122.24698394536972 37.81040384984464",
78-
$"Member: '{res4[2].Member}', distance: {res4[2].Distance}, position: {res4[2].Position}"
79-
);
68+
69+
Assert.Equal("station:1", res4[0].Member);
70+
GeoPosition pos1 = res4[0].Position ?? new GeoPosition();
71+
Assert.Equal("-122.27652, 37.80518", $"{pos1.Longitude:F5}, {pos1.Latitude:F5}");
72+
73+
Assert.Equal("station:2", res4[1].Member);
74+
GeoPosition pos2 = res4[1].Position ?? new GeoPosition();
75+
Assert.Equal("-122.26746, 37.80623", $"{pos2.Longitude:F5}, {pos2.Latitude:F5}");
76+
77+
Assert.Equal("station:3", res4[2].Member);
78+
GeoPosition pos3 = res4[2].Position ?? new GeoPosition();
79+
Assert.Equal("-122.24698, 37.81040", $"{pos3.Longitude:F5}, {pos3.Latitude:F5}");
8080
// REMOVE_END
8181

8282

tests/Doc/ListTutorial.cs

Lines changed: 334 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,334 @@
1+
//EXAMPLE: list_tutorial
2+
//HIDE_START
3+
//REMOVE_START
4+
using NRedisStack;
5+
using NRedisStack.Tests;
6+
using StackExchange.Redis;
7+
//REMOVE_END
8+
9+
10+
//REMOVE_START
11+
namespace Doc;
12+
[Collection("DocsTests")]
13+
//REMOVE_END
14+
public class ListExample
15+
{
16+
//REMOVE_START
17+
[SkipIfRedis(Is.OSSCluster)]
18+
//REMOVE_END
19+
public void run()
20+
{
21+
var muxer = ConnectionMultiplexer.Connect("localhost:6379");
22+
var db = muxer.GetDatabase();
23+
//HIDE_END
24+
//REMOVE_START
25+
db.KeyDelete("bikes:repairs");
26+
db.KeyDelete("bikes:finished");
27+
db.KeyDelete("{bikes}:repairs");
28+
db.KeyDelete("{bikes}:finished");
29+
//REMOVE_END
30+
31+
32+
//STEP_START queue
33+
long res1 = db.ListLeftPush("bikes:repairs", "bike:1");
34+
Console.WriteLine(res1); // >>> 1
35+
36+
long res2 = db.ListLeftPush("bikes:repairs", "bike:2");
37+
Console.WriteLine(res2); // >>> 2
38+
39+
RedisValue res3 = db.ListRightPop("bikes:repairs");
40+
Console.WriteLine(res3); // >>> "bike:1"
41+
42+
RedisValue res4 = db.ListRightPop("bikes:repairs");
43+
Console.WriteLine(res4); // >>> "bike:2"
44+
//STEP_END
45+
46+
//REMOVE_START
47+
Assert.Equal(1, res1);
48+
Assert.Equal(2, res2);
49+
Assert.Equal("bike:1", res3);
50+
Assert.Equal("bike:2", res4);
51+
//REMOVE_END
52+
53+
//STEP_START stack
54+
long res5 = db.ListLeftPush("bikes:repairs", "bike:1");
55+
Console.WriteLine(res5); // >>> 1
56+
57+
long res6 = db.ListLeftPush("bikes:repairs", "bike:2");
58+
Console.WriteLine(res6); // >>> 2
59+
60+
RedisValue res7 = db.ListLeftPop("bikes:repairs");
61+
Console.WriteLine(res7); // >>> "bike:2"
62+
63+
RedisValue res8 = db.ListLeftPop("bikes:repairs");
64+
Console.WriteLine(res8); // >>> "bike:1"
65+
//STEP_END
66+
67+
//REMOVE_START
68+
Assert.Equal("bike:2", res7);
69+
Assert.Equal("bike:1", res8);
70+
//REMOVE_END
71+
72+
73+
//STEP_START llen
74+
long res9 = db.ListLength("bikes:repairs");
75+
Console.WriteLine(res9); // >>> 0
76+
//STEP_END
77+
78+
//REMOVE_START
79+
Assert.Equal(0, res9);
80+
//REMOVE_END
81+
82+
83+
//STEP_START lmove_lrange
84+
long res10 = db.ListLeftPush("{bikes}:repairs", "bike:1");
85+
Console.WriteLine(res10); // >>> 1
86+
87+
long res11 = db.ListLeftPush("{bikes}:repairs", "bike:2");
88+
Console.WriteLine(res11); // >>> 2
89+
90+
RedisValue res12 = db.ListMove("{bikes}:repairs", "{bikes}:finished", ListSide.Left, ListSide.Left);
91+
Console.Write(res12); // >>> "bike:2"
92+
93+
RedisValue[] res13 = db.ListRange("{bikes}:repairs", 0, -1);
94+
Console.WriteLine(string.Join(", ", res13)); // >>> "bike:1"
95+
96+
RedisValue[] res14 = db.ListRange("{bikes}:finished", 0, -1);
97+
Console.WriteLine(string.Join(", ", res14)); // >>> "bike:2"
98+
//STEP_END
99+
100+
//REMOVE_START
101+
Assert.Equal(1, res10);
102+
Assert.Equal(2, res11);
103+
Assert.Equal("bike:2", res12);
104+
Assert.Equal("bike:1", string.Join(", ", res13));
105+
Assert.Equal("bike:2", string.Join(", ", res14));
106+
bool delRes = db.KeyDelete("{bikes}:repairs");
107+
delRes = db.KeyDelete("{bikes}:finished");
108+
//REMOVE_END
109+
110+
//STEP_START lpush_rpush
111+
long res15 = db.ListRightPush("bikes:repairs", "bike:1");
112+
Console.WriteLine(res15); // >>> 1
113+
114+
long res16 = db.ListRightPush("bikes:repairs", "bike:2");
115+
Console.WriteLine(res16); // >>> 2
116+
117+
long res17 = db.ListLeftPush("bikes:repairs", "bike:important_bike");
118+
Console.WriteLine(res17); // >>> 3
119+
120+
RedisValue[] res18 = db.ListRange("bikes:repairs", 0, -1);
121+
Console.WriteLine(string.Join(", ", res18)); // >>> "bike:important_bike, bike:1, bike:2"
122+
//STEP_END
123+
124+
//REMOVE_START
125+
Assert.Equal(1, res15);
126+
Assert.Equal(2, res16);
127+
Assert.Equal(3, res17);
128+
Assert.Equal("bike:important_bike, bike:1, bike:2", string.Join(", ", res18));
129+
delRes = db.KeyDelete("bikes:repairs");
130+
//REMOVE_END
131+
132+
//STEP_START variadic
133+
long res19 = db.ListRightPush("bikes:repairs", new RedisValue[] { "bike:1", "bike:2", "bike:3" });
134+
Console.WriteLine(res19); // >>> 3
135+
136+
long res20 = db.ListLeftPush("bikes:repairs", new RedisValue[] { "bike:important_bike", "bike:very_important_bike" });
137+
Console.WriteLine(res20); // >>> 5
138+
139+
RedisValue[] res21 = db.ListRange("bikes:repairs", 0, -1);
140+
Console.WriteLine(string.Join(", ", res21));
141+
// >>> "bike:very_important_bike, bike:important_bike, bike:1, bike:2, bike:3"
142+
//STEP_END
143+
144+
//REMOVE_START
145+
Assert.Equal(3, res19);
146+
Assert.Equal(5, res20);
147+
Assert.Equal("bike:very_important_bike, bike:important_bike, bike:1, bike:2, bike:3", string.Join(", ", res21));
148+
delRes = db.KeyDelete("bikes:repairs");
149+
//REMOVE_END
150+
151+
//STEP_START lpop_rpop
152+
long res22 = db.ListRightPush("bikes:repairs", new RedisValue[] { "bike:1", "bike:2", "bike:3" });
153+
Console.WriteLine(res22); // >>> 3
154+
155+
RedisValue res23 = db.ListRightPop("bikes:repairs");
156+
Console.WriteLine(res23); // >>> "bike:3"
157+
158+
RedisValue res24 = db.ListLeftPop("bikes:repairs");
159+
Console.WriteLine(res24); // >>> "bike:1"
160+
161+
RedisValue res25 = db.ListRightPop("bikes:repairs");
162+
Console.WriteLine(res25); // >>> "bike:2"
163+
164+
RedisValue res26 = db.ListRightPop("bikes:repairs");
165+
Console.WriteLine(res26); // >>> <Empty string>
166+
//STEP_END
167+
168+
//REMOVE_START
169+
Assert.Equal(3, res22);
170+
Assert.Equal("bike:3", res23);
171+
Assert.Equal("bike:1", res24);
172+
Assert.Equal("bike:2", res25);
173+
Assert.Equal("", string.Join(", ", res26));
174+
//REMOVE_END
175+
176+
//STEP_START ltrim
177+
long res27 = db.ListLeftPush("bikes:repairs", new RedisValue[] { "bike:1", "bike:2", "bike:3", "bike:4", "bike:5" });
178+
Console.WriteLine(res27); // >>> 5
179+
180+
db.ListTrim("bikes:repairs", 0, 2);
181+
RedisValue[] res28 = db.ListRange("bikes:repairs", 0, -1);
182+
Console.WriteLine(string.Join(", ", res28)); // "bike:5, bike:4, bike:3"
183+
//STEP_END
184+
185+
//REMOVE_START
186+
Assert.Equal(5, res27);
187+
Assert.Equal("bike:5, bike:4, bike:3", string.Join(", ", res28));
188+
delRes = db.KeyDelete("bikes:repairs");
189+
//REMOVE_END
190+
191+
//STEP_START ltrim_end_of_list
192+
long res29 = db.ListRightPush("bikes:repairs", new RedisValue[] { "bike:1", "bike:2", "bike:3", "bike:4", "bike:5" });
193+
Console.WriteLine(res29); // >>> 5
194+
195+
db.ListTrim("bikes:repairs", -3, -1);
196+
RedisValue[] res30 = db.ListRange("bikes:repairs", 0, -1);
197+
Console.WriteLine(string.Join(", ", res30)); // >>> "bike:3, bike:4, bike:5"
198+
//STEP_END
199+
200+
//REMOVE_START
201+
Assert.Equal(5, res29);
202+
Assert.Equal("bike:3, bike:4, bike:5", string.Join(", ", res30));
203+
delRes = db.KeyDelete("bikes:repairs");
204+
//REMOVE_END
205+
206+
//STEP_START brpop
207+
long res31 = db.ListRightPush("bikes:repairs", new RedisValue[] { "bike:1", "bike:2" });
208+
Console.WriteLine(res31); // >>> 2
209+
210+
Tuple<RedisKey, RedisValue>? res32 = db.BRPop(new RedisKey[] { "bikes:repairs" }, 1);
211+
212+
if (res32 != null)
213+
Console.WriteLine($"{res32.Item1} -> {res32.Item2}"); // >>> "bikes:repairs -> bike:2"
214+
215+
Tuple<RedisKey, RedisValue>? res33 = db.BRPop(new RedisKey[] { "bikes:repairs" }, 1);
216+
217+
if (res33 != null)
218+
Console.WriteLine($"{res33.Item1} -> {res33.Item2}"); // >>> "bikes:repairs -> bike:1"
219+
220+
Tuple<RedisKey, RedisValue>? res34 = db.BRPop(new RedisKey[] { "bikes:repairs" }, 1);
221+
Console.WriteLine(res34); // >>> "Null"
222+
//STEP_END
223+
224+
//REMOVE_START
225+
Assert.Equal(2, res31);
226+
227+
if (res32 != null)
228+
Assert.Equal("bikes:repairs -> bike:2", $"{res32.Item1} -> {res32.Item2}");
229+
if (res33 != null)
230+
Assert.Equal("bikes:repairs -> bike:1", $"{res33.Item1} -> {res33.Item2}");
231+
232+
Assert.Null(res34);
233+
//REMOVE_END
234+
235+
//STEP_START rule_1
236+
bool res35 = db.KeyDelete("new_bikes");
237+
Console.WriteLine(res35); // >>> False
238+
239+
long res36 = db.ListRightPush("new_bikes", new RedisValue[] { "bike:1", "bike:2", "bike:3" });
240+
Console.WriteLine(res36); // >>> 3
241+
//STEP_END
242+
243+
//REMOVE_START
244+
Assert.False(res35);
245+
Assert.Equal(3, res36);
246+
//REMOVE_END
247+
248+
//STEP_START rule_1.1
249+
bool res37 = db.StringSet("new_bikes", "bike:1");
250+
Console.WriteLine(res37); // >>> True
251+
252+
RedisType res38 = db.KeyType("new_bikes");
253+
Console.WriteLine(res38); // >>> RedisType.String
254+
255+
try
256+
{
257+
long res39 = db.ListRightPush("new_bikes", new RedisValue[] { "bike:2", "bike:3" });
258+
}
259+
catch (Exception e)
260+
{
261+
Console.WriteLine(e);
262+
}
263+
//STEP_END
264+
265+
//REMOVE_START
266+
Assert.True(res37);
267+
Assert.Equal(RedisType.String, res38);
268+
delRes = db.KeyDelete("new_bikes");
269+
//REMOVE_END
270+
271+
//STEP_START rule_2
272+
long res40 = db.ListLeftPush("bikes:repairs", new RedisValue[] { "bike:1", "bike:2", "bike:3" });
273+
Console.WriteLine(res40); // >>> 3
274+
275+
bool res41 = db.KeyExists("bikes:repairs");
276+
Console.WriteLine(res41); // >>> True
277+
278+
RedisValue res42 = db.ListLeftPop("bikes:repairs");
279+
Console.WriteLine(res42); // >>> "bike:3"
280+
281+
RedisValue res43 = db.ListLeftPop("bikes:repairs");
282+
Console.WriteLine(res43); // >>> "bike:2"
283+
284+
RedisValue res44 = db.ListLeftPop("bikes:repairs");
285+
Console.WriteLine(res44); // >>> "bike:1"
286+
287+
bool res45 = db.KeyExists("bikes:repairs");
288+
Console.WriteLine(res45); // >>> False
289+
//STEP_END
290+
291+
//REMOVE_START
292+
Assert.Equal(3, res40);
293+
Assert.True(res41);
294+
Assert.Equal("bike:3", res42);
295+
Assert.Equal("bike:2", res43);
296+
Assert.Equal("bike:1", res44);
297+
Assert.False(res45);
298+
//REMOVE_END
299+
300+
//STEP_START rule_3
301+
bool res46 = db.KeyDelete("bikes:repairs");
302+
Console.WriteLine(res46); // >>> False
303+
304+
long res47 = db.ListLength("bikes:repairs");
305+
Console.WriteLine(res47); // >>> 0
306+
307+
RedisValue res48 = db.ListLeftPop("bikes:repairs");
308+
Console.WriteLine(res48); // >>> Null
309+
//STEP_END
310+
311+
//REMOVE_START
312+
Assert.False(res46);
313+
Assert.Equal(0, res47);
314+
Assert.Equal(RedisValue.Null, res48);
315+
//REMOVE_END
316+
317+
//STEP_START ltrim.1
318+
long res49 = db.ListLeftPush("bikes:repairs", new RedisValue[] { "bike:1", "bike:2", "bike:3", "bike:4", "bike:5" });
319+
Console.WriteLine(res49); // >>> 5
320+
321+
db.ListTrim("bikes:repairs", 0, 2);
322+
RedisValue[] res50 = db.ListRange("bikes:repairs", 0, -1);
323+
Console.WriteLine(string.Join(", ", res50)); // >>> "bike:5, bike:4, bike:3"
324+
//STEP_END
325+
326+
//REMOVE_START
327+
Assert.Equal(5, res49);
328+
Assert.Equal("bike:5, bike:4, bike:3", string.Join(", ", res50));
329+
//REMOVE_END
330+
331+
//HIDE_START
332+
}
333+
}
334+
//HIDE_END

tests/Doc/SetsTutorial.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
// HIDE_END
99

1010
//REMOVE_START
11-
namespace NRedisStack.Doc;
11+
namespace Doc;
1212
[Collection("DocsTests")]
1313
//REMOVE_END
1414

tests/Doc/SortedSetExample.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
using StackExchange.Redis;
77

88
//REMOVE_START
9-
namespace NRedisStack.Doc;
9+
namespace Doc;
1010
[Collection("DocsTests")]
1111
//REMOVE_END
1212
public class SortedSetExample

0 commit comments

Comments
 (0)