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

Function TestRPOPLPUSH

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

Source from the content-addressed store, hash-verified

119}
120
121func TestRPOPLPUSH(t *testing.T) {
122 c := newClient(t)
123
124 length, err := c.RPUSH("l1", StringValue{"one"}, StringValue{"two"}, StringValue{"three"}, StringValue{"four"})
125 assert.NoError(t, err)
126 assert.Equal(t, int64(4), length)
127
128 length, err = c.RPUSH("l2", StringValue{"five"}, StringValue{"six"}, StringValue{"seven"}, StringValue{"eight"})
129 assert.NoError(t, err)
130 assert.Equal(t, int64(4), length)
131
132 element, err := c.RPOPLPUSH("l1", "l1")
133 assert.NoError(t, err)
134 assert.Equal(t, "four", element.String())
135
136 elements, err := c.LRANGE("l1", 0, -1)
137 assert.NoError(t, err)
138 assert.Equal(t, []string{"four", "one", "two", "three"}, readStrings(elements))
139
140 element, err = c.RPOPLPUSH("l1", "l2")
141 assert.NoError(t, err)
142 assert.Equal(t, "three", element.String())
143
144 elements, err = c.LRANGE("l1", 0, -1)
145 assert.NoError(t, err)
146 assert.Equal(t, []string{"four", "one", "two"}, readStrings(elements))
147
148 elements, err = c.LRANGE("l2", 0, -1)
149 assert.NoError(t, err)
150 assert.Equal(t, []string{"three", "five", "six", "seven", "eight"}, readStrings(elements))
151
152 element, err = c.RPOPLPUSH("l1", "l1")
153 assert.NoError(t, err)
154 assert.Equal(t, "two", element.String())
155
156 elements, err = c.LRANGE("l1", 0, -1)
157 assert.NoError(t, err)
158 assert.Equal(t, []string{"two", "four", "one"}, readStrings(elements))
159
160 element, err = c.RPOPLPUSH("l1", "newList")
161 assert.NoError(t, err)
162 assert.Equal(t, "one", element.String())
163
164 elements, err = c.LRANGE("l1", 0, -1)
165 assert.NoError(t, err)
166 assert.Equal(t, []string{"two", "four"}, readStrings(elements))
167
168 elements, err = c.LRANGE("newList", 0, -1)
169 assert.NoError(t, err)
170 assert.Equal(t, []string{"one"}, readStrings(elements))
171
172 // Two item single list rotation - they should simply switch places
173 element, err = c.RPOPLPUSH("l1", "l1")
174 assert.NoError(t, err)
175 assert.Equal(t, "four", element.String())
176
177 elements, err = c.LRANGE("l1", 0, -1)
178 assert.NoError(t, err)

Callers

nothing calls this directly

Calls 7

newClientFunction · 0.85
readStringsFunction · 0.85
RPUSHMethod · 0.80
RPOPLPUSHMethod · 0.80
LRANGEMethod · 0.80
LPOPMethod · 0.80
StringMethod · 0.45

Tested by

no test coverage detected