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

Function TestListIndexBasedCRUD

lists_test.go:198–260  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

196}
197
198func TestListIndexBasedCRUD(t *testing.T) {
199 c := newClient(t)
200
201 _, err := c.RPUSH("l1", StringValue{"inty"}, StringValue{"minty"}, StringValue{"papa"}, StringValue{"tinty"})
202 assert.NoError(t, err)
203
204 element, err := c.LINDEX("l1", 0)
205 assert.NoError(t, err)
206 assert.Equal(t, "inty", element.String())
207
208 element, err = c.LINDEX("l1", 3)
209 assert.NoError(t, err)
210 assert.Equal(t, "tinty", element.String())
211
212 element, err = c.LINDEX("l1", 4)
213 assert.NoError(t, err)
214 assert.False(t, element.Present())
215
216 element, err = c.LINDEX("l1", 42)
217 assert.NoError(t, err)
218 assert.False(t, element.Present())
219
220 element, err = c.LINDEX("l1", -1)
221 assert.NoError(t, err)
222 assert.True(t, element.Present())
223 assert.Equal(t, "tinty", element.String())
224
225 element, err = c.LINDEX("l1", -4)
226 assert.NoError(t, err)
227 assert.Equal(t, "inty", element.String())
228
229 element, err = c.LINDEX("l1", -42)
230 assert.NoError(t, err)
231 assert.True(t, element.Empty())
232
233 ok, err := c.LSET("l1", 1, "monty")
234 assert.NoError(t, err)
235 assert.True(t, ok)
236
237 element, err = c.LINDEX("l1", 1)
238 assert.NoError(t, err)
239 assert.Equal(t, "monty", element.String())
240
241 ok, err = c.LSET("l1", -2, "mama")
242 assert.NoError(t, err)
243 assert.True(t, ok)
244
245 element, err = c.LINDEX("l1", -2)
246 assert.NoError(t, err)
247 assert.Equal(t, "mama", element.String())
248
249 ok, err = c.LSET("l1", 42, "no chance")
250 assert.NoError(t, err)
251 assert.False(t, ok)
252
253 count, err := c.LLEN("l1")
254 assert.NoError(t, err)
255 assert.Equal(t, int64(4), count)

Callers

nothing calls this directly

Calls 10

newClientFunction · 0.85
readStringsFunction · 0.85
RPUSHMethod · 0.80
LINDEXMethod · 0.80
PresentMethod · 0.80
EmptyMethod · 0.80
LSETMethod · 0.80
LLENMethod · 0.80
LRANGEMethod · 0.80
StringMethod · 0.45

Tested by

no test coverage detected