Skip to content

Commit 5ead782

Browse files
committed
Take 3 on unit test framework changes
1 parent 0168155 commit 5ead782

File tree

9 files changed

+193
-163
lines changed

9 files changed

+193
-163
lines changed

‎src/LightningDB.Tests/CursorTests.cs‎

Lines changed: 54 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,13 @@ private static byte[][] PopulateMultipleCursorValues(LightningCursor cursor, str
3333
return values;
3434
}
3535

36-
[Test]
3736
public void CursorShouldBeCreated()
3837
{
3938
using var env = CreateEnvironment();
4039
env.Open();
4140
env.RunCursorScenario((_, _, c) => c.ShouldNotBeNull());
4241
}
4342

44-
[Test]
4543
public void CursorShouldPutValues()
4644
{
4745
using var env = CreateEnvironment();
@@ -54,7 +52,6 @@ public void CursorShouldPutValues()
5452
});
5553
}
5654

57-
[Test]
5855
public void CursorShouldSetSpanKey()
5956
{
6057
using var env = CreateEnvironment();
@@ -70,7 +67,6 @@ public void CursorShouldSetSpanKey()
7067
});
7168
}
7269

73-
[Test]
7470
public void CursorShouldMoveToLast()
7571
{
7672
using var env = CreateEnvironment();
@@ -85,7 +81,6 @@ public void CursorShouldMoveToLast()
8581
});
8682
}
8783

88-
[Test]
8984
public void CursorShouldMoveToFirst()
9085
{
9186
using var env = CreateEnvironment();
@@ -100,7 +95,6 @@ public void CursorShouldMoveToFirst()
10095
});
10196
}
10297

103-
[Test]
10498
public void ShouldIterateThroughCursor()
10599
{
106100
using var env = CreateEnvironment();
@@ -119,7 +113,6 @@ public void ShouldIterateThroughCursor()
119113
});
120114
}
121115

122-
[Test]
123116
public void CursorShouldDeleteElements()
124117
{
125118
using var env = CreateEnvironment();
@@ -138,7 +131,6 @@ public void CursorShouldDeleteElements()
138131
});
139132
}
140133

141-
[Test]
142134
public void ShouldPutMultiple()
143135
{
144136
using var env = CreateEnvironment();
@@ -147,7 +139,6 @@ public void ShouldPutMultiple()
147139
DatabaseOpenFlags.DuplicatesFixed | DatabaseOpenFlags.Create);
148140
}
149141

150-
[Test]
151142
public void ShouldGetMultiple()
152143
{
153144
using var env = CreateEnvironment();
@@ -164,7 +155,6 @@ public void ShouldGetMultiple()
164155
}, DatabaseOpenFlags.DuplicatesFixed | DatabaseOpenFlags.Create);
165156
}
166157

167-
[Test]
168158
public void ShouldGetNextMultiple()
169159
{
170160
using var env = CreateEnvironment();
@@ -180,7 +170,6 @@ public void ShouldGetNextMultiple()
180170
}, DatabaseOpenFlags.DuplicatesFixed | DatabaseOpenFlags.Create);
181171
}
182172

183-
[Test]
184173
public void ShouldAdvanceKeyToClosestWhenKeyNotFound()
185174
{
186175
using var env = CreateEnvironment();
@@ -195,7 +184,6 @@ public void ShouldAdvanceKeyToClosestWhenKeyNotFound()
195184
});
196185
}
197186

198-
[Test]
199187
public void ShouldSetKeyAndGet()
200188
{
201189
using var env = CreateEnvironment();
@@ -209,7 +197,6 @@ public void ShouldSetKeyAndGet()
209197
});
210198
}
211199

212-
[Test]
213200
public void ShouldSetKeyAndGetWithSpan()
214201
{
215202
using var env = CreateEnvironment();
@@ -223,7 +210,6 @@ public void ShouldSetKeyAndGetWithSpan()
223210
});
224211
}
225212

226-
[Test]
227213
public void ShouldGetBoth()
228214
{
229215
using var env = CreateEnvironment();
@@ -236,7 +222,6 @@ public void ShouldGetBoth()
236222
}, DatabaseOpenFlags.DuplicatesFixed | DatabaseOpenFlags.Create);
237223
}
238224

239-
[Test]
240225
public void ShouldGetBothWithSpan()
241226
{
242227
using var env = CreateEnvironment();
@@ -250,7 +235,6 @@ public void ShouldGetBothWithSpan()
250235
}, DatabaseOpenFlags.DuplicatesFixed | DatabaseOpenFlags.Create);
251236
}
252237

253-
[Test]
254238
public void ShouldMoveToPrevious()
255239
{
256240
using var env = CreateEnvironment();
@@ -265,7 +249,6 @@ public void ShouldMoveToPrevious()
265249
});
266250
}
267251

268-
[Test]
269252
public void ShouldSetRangeWithSpan()
270253
{
271254
using var env = CreateEnvironment();
@@ -281,7 +264,6 @@ public void ShouldSetRangeWithSpan()
281264
});
282265
}
283266

284-
[Test]
285267
public void ShouldGetBothRange()
286268
{
287269
using var env = CreateEnvironment();
@@ -297,7 +279,6 @@ public void ShouldGetBothRange()
297279
}, DatabaseOpenFlags.DuplicatesFixed | DatabaseOpenFlags.Create);
298280
}
299281

300-
[Test]
301282
public void ShouldGetBothRangeWithSpan()
302283
{
303284
using var env = CreateEnvironment();
@@ -313,7 +294,6 @@ public void ShouldGetBothRangeWithSpan()
313294
}, DatabaseOpenFlags.DuplicatesFixed | DatabaseOpenFlags.Create);
314295
}
315296

316-
[Test]
317297
public void ShouldMoveToFirstDuplicate()
318298
{
319299
using var env = CreateEnvironment();
@@ -330,7 +310,6 @@ public void ShouldMoveToFirstDuplicate()
330310
}, DatabaseOpenFlags.DuplicatesFixed | DatabaseOpenFlags.Create);
331311
}
332312

333-
[Test]
334313
public void ShouldMoveToLastDuplicate()
335314
{
336315
using var env = CreateEnvironment();
@@ -346,7 +325,36 @@ public void ShouldMoveToLastDuplicate()
346325
}, DatabaseOpenFlags.DuplicatesFixed | DatabaseOpenFlags.Create);
347326
}
348327

349-
[Test]
328+
public void AllValuesForShouldOnlyReturnMatchingKeyValues()
329+
{
330+
using var env = CreateEnvironment();
331+
env.Open();
332+
env.RunCursorScenario((_, _, c) =>
333+
{
334+
var key1 = "TestKey1"u8.ToArray();
335+
var key2 = "TestKey2"u8.ToArray();
336+
337+
var key1Values = Enumerable.Range(1, 5).Select(i => UTF8.GetBytes($"key1_value{i}")).ToArray();
338+
var key2Values = Enumerable.Range(1, 3).Select(i => UTF8.GetBytes($"key2_value{i}")).ToArray();
339+
340+
foreach (var value in key1Values)
341+
{
342+
c.Put(key1, value, CursorPutOptions.None);
343+
}
344+
345+
foreach (var value in key2Values)
346+
{
347+
c.Put(key2, value, CursorPutOptions.None);
348+
}
349+
350+
var allKey1Values = c.AllValuesFor(key1).Select(v => v.CopyToNewArray()).ToArray();
351+
var allKey2Values = c.AllValuesFor(key2).Select(v => v.CopyToNewArray()).ToArray();
352+
353+
allKey1Values.ShouldBe(key1Values);
354+
allKey2Values.ShouldBe(key2Values);
355+
}, DatabaseOpenFlags.DuplicatesSort | DatabaseOpenFlags.Create);
356+
}
357+
350358
public void ShouldMoveToNextNoDuplicate()
351359
{
352360
using var env = CreateEnvironment();
@@ -360,7 +368,30 @@ public void ShouldMoveToNextNoDuplicate()
360368
}, DatabaseOpenFlags.DuplicatesFixed | DatabaseOpenFlags.Create);
361369
}
362370

363-
[Test]
371+
372+
public void ShouldRetrieveAllValuesForKey()
373+
{
374+
using var env = CreateEnvironment();
375+
env.Open();
376+
env.RunCursorScenario((_, _, c) =>
377+
{
378+
var key = "TestKey"u8.ToArray();
379+
var values = Enumerable.Range(1, 5).Select(i => UTF8.GetBytes($"value{i}")).ToArray();
380+
381+
// Insert multiple values for the same key with DuplicateSort option
382+
foreach (var value in values)
383+
{
384+
c.Put(key, value, CursorPutOptions.None);
385+
}
386+
387+
// Fetch all values using the AllValuesFor method
388+
var retrievedValues = c.AllValuesFor(key).Select(v => v.CopyToNewArray()).ToArray();
389+
390+
// Verify all inserted values are retrieved
391+
retrievedValues.ShouldBe(values);
392+
}, DatabaseOpenFlags.DuplicatesSort | DatabaseOpenFlags.Create);
393+
}
394+
364395
public void ShouldRenewSameTransaction()
365396
{
366397
using var env = CreateEnvironment();
@@ -372,7 +403,6 @@ public void ShouldRenewSameTransaction()
372403
}, transactionFlags: TransactionBeginFlags.ReadOnly);
373404
}
374405

375-
[Test]
376406
public void ShouldDeleteDuplicates()
377407
{
378408
using var env = CreateEnvironment();
@@ -388,7 +418,6 @@ public void ShouldDeleteDuplicates()
388418
}, DatabaseOpenFlags.DuplicatesFixed | DatabaseOpenFlags.Create);
389419
}
390420

391-
[Test]
392421
public void CanPutBatchesViaCursorIssue155()
393422
{
394423
static LightningDatabase OpenDatabase(LightningEnvironment environment)
@@ -427,7 +456,6 @@ void ReproduceCoreIteration(LightningEnvironment environment, LightningDatabase
427456
true.ShouldBeTrue("Code would be unreachable otherwise.");
428457
}
429458

430-
[Test]
431459
public void CountCursor()
432460
{
433461
using var env = CreateEnvironment();

0 commit comments

Comments
 (0)