snapshot of https://github.com/centrifugal/centrifugo.git (master, 2026-09-16; blobs > 131072B omitted)
This commit is contained in:
52
internal/redisqueue/producer_test.go
Normal file
52
internal/redisqueue/producer_test.go
Normal file
@@ -0,0 +1,52 @@
|
||||
//go:build integration
|
||||
|
||||
package redisqueue
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/redis/rueidis"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestNewProducer(t *testing.T) {
|
||||
t.Run("creates a new producer", func(tt *testing.T) {
|
||||
e := testRedisShard(t)
|
||||
defer e.Close()
|
||||
p, err := NewProducer(e, ProducerOptions{
|
||||
Stream: tt.Name(),
|
||||
})
|
||||
require.NoError(tt, err)
|
||||
assert.NotNil(tt, p)
|
||||
})
|
||||
}
|
||||
|
||||
func TestEnqueue(t *testing.T) {
|
||||
t.Run("puts the message in the stream", func(tt *testing.T) {
|
||||
e := testRedisShard(t)
|
||||
defer e.Close()
|
||||
p, err := NewProducer(e, ProducerOptions{
|
||||
Stream: tt.Name(),
|
||||
})
|
||||
require.NoError(t, err)
|
||||
|
||||
msg := &Message{
|
||||
Values: map[string]string{"test": "value"},
|
||||
}
|
||||
err = p.Enqueue(msg)
|
||||
require.NoError(tt, err)
|
||||
|
||||
res := p.shard.RunOp(func(client rueidis.Client) rueidis.RedisResult {
|
||||
cmd := client.B().Xrange().Key(tt.Name()).Start(msg.ID).End(msg.ID).Build()
|
||||
return client.Do(context.Background(), cmd)
|
||||
})
|
||||
require.NoError(tt, res.Error())
|
||||
|
||||
xRange, err := res.AsXRange()
|
||||
require.NoError(tt, err)
|
||||
|
||||
assert.Equal(tt, "value", xRange[0].FieldValues["test"])
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user