|
|
@ -61,3 +61,41 @@ func TestPutMore(t *testing.T) {
|
|
|
|
assert.Equal(t, string(element), string(body.([]byte)))
|
|
|
|
assert.Equal(t, string(element), string(body.([]byte)))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func TestPutMoreWithHeaderNotZero(t *testing.T) {
|
|
|
|
|
|
|
|
elements := [][]byte{
|
|
|
|
|
|
|
|
[]byte("hello"),
|
|
|
|
|
|
|
|
[]byte("world"),
|
|
|
|
|
|
|
|
[]byte("again"),
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
queue := NewQueue(4)
|
|
|
|
|
|
|
|
for i := range elements {
|
|
|
|
|
|
|
|
queue.Put(elements[i])
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// take 1
|
|
|
|
|
|
|
|
body, ok := queue.Take()
|
|
|
|
|
|
|
|
assert.True(t, ok)
|
|
|
|
|
|
|
|
element, ok := body.([]byte)
|
|
|
|
|
|
|
|
assert.True(t, ok)
|
|
|
|
|
|
|
|
assert.Equal(t, element, []byte("hello"))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// put more
|
|
|
|
|
|
|
|
queue.Put([]byte("b4"))
|
|
|
|
|
|
|
|
queue.Put([]byte("b5")) // will store in elements[0]
|
|
|
|
|
|
|
|
queue.Put([]byte("b6")) // cause expansion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
results := [][]byte{
|
|
|
|
|
|
|
|
[]byte("world"),
|
|
|
|
|
|
|
|
[]byte("again"),
|
|
|
|
|
|
|
|
[]byte("b4"),
|
|
|
|
|
|
|
|
[]byte("b5"),
|
|
|
|
|
|
|
|
[]byte("b6"),
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for _, element := range results {
|
|
|
|
|
|
|
|
body, ok := queue.Take()
|
|
|
|
|
|
|
|
assert.True(t, ok)
|
|
|
|
|
|
|
|
assert.Equal(t, string(element), string(body.([]byte)))
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|