MCPcopy Create free account
hub / github.com/dbProjectRED/redimo.go / TestRanges

Function TestRanges

streams_test.go:279–318  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

277}
278
279func TestRanges(t *testing.T) {
280 c := newClient(t)
281 allItems := make([]StreamItem, 0, 30)
282 key := "x1"
283
284 for i := 0; i < 30; i++ {
285 fields := map[string]Value{"i": IntValue{int64(i)}}
286 insertedID, err := c.XADD(key, XAutoID, fields)
287
288 allItems = append(allItems, StreamItem{ID: insertedID, Fields: map[string]ReturnValue{"i": {IntValue{int64(i)}.ToAV()}}})
289
290 assert.NoError(t, err)
291 }
292
293 r1, err := c.XRANGE(key, XStart, XEnd, 5)
294 assert.NoError(t, err)
295 assert.Equal(t, allItems[0:5], r1)
296
297 r2, err := c.XRANGE(key, r1[len(r1)-1].ID.Next(), XEnd, 5)
298 assert.NoError(t, err)
299 assert.Equal(t, allItems[5:10], r2)
300
301 reverse := func(a []StreamItem) []StreamItem {
302 for left, right := 0, len(a)-1; left < right; left, right = left+1, right-1 {
303 a[left], a[right] = a[right], a[left]
304 }
305
306 return a
307 }
308
309 rr1, err := c.XREVRANGE(key, XEnd, XStart, 5)
310 lastFetchedItemID := rr1[len(rr1)-1].ID
311
312 assert.NoError(t, err)
313 assert.Equal(t, allItems[25:30], reverse(rr1))
314
315 rr2, err := c.XREVRANGE(key, lastFetchedItemID.Prev(), XStart, 5)
316 assert.NoError(t, err)
317 assert.Equal(t, allItems[20:25], reverse(rr2))
318}

Callers

nothing calls this directly

Calls 7

newClientFunction · 0.85
XADDMethod · 0.80
XRANGEMethod · 0.80
NextMethod · 0.80
XREVRANGEMethod · 0.80
PrevMethod · 0.80
ToAVMethod · 0.65

Tested by

no test coverage detected