@@ -0,0 +1,97 @@
|
||||
package redis
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestRPushPipelineRejectsNonPositiveBatchSize(t *testing.T) {
|
||||
client := &Client{}
|
||||
if _, err := client.RPushPipeline("queue", []string{"video-1"}, 0); err == nil {
|
||||
t.Fatal("RPushPipeline() should reject a non-positive batch size")
|
||||
}
|
||||
}
|
||||
|
||||
func TestRPushPipelineEmptyValuesDoesNotUseClient(t *testing.T) {
|
||||
client := &Client{}
|
||||
length, err := client.RPushPipeline("queue", nil, 1000)
|
||||
if err != nil {
|
||||
t.Fatalf("RPushPipeline() error = %v", err)
|
||||
}
|
||||
if length != 0 {
|
||||
t.Fatalf("RPushPipeline() length = %d, want 0", length)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRPushPipelineContextValidatesExpiration(t *testing.T) {
|
||||
client := &Client{}
|
||||
for _, expirations := range [][]time.Duration{
|
||||
{0},
|
||||
{-time.Second},
|
||||
{time.Second, time.Minute},
|
||||
} {
|
||||
if _, err := client.RPushPipelineContext(
|
||||
context.Background(),
|
||||
"queue",
|
||||
[]string{"video-1"},
|
||||
1,
|
||||
expirations...,
|
||||
); err == nil {
|
||||
t.Fatalf("expirations=%v should be rejected", expirations)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestScriptHashIsStable(t *testing.T) {
|
||||
first := NewScript("return ARGV[1]")
|
||||
second := NewScript("return ARGV[1]")
|
||||
if first.Hash() == "" || first.Hash() != second.Hash() {
|
||||
t.Fatalf("script hashes differ: first=%q second=%q", first.Hash(), second.Hash())
|
||||
}
|
||||
}
|
||||
|
||||
func TestRunScriptContextValidatesArguments(t *testing.T) {
|
||||
client := &Client{}
|
||||
if _, err := client.RunScriptContext(nil, NewScript("return 1"), nil); err == nil {
|
||||
t.Fatal("RunScriptContext() should reject a nil context")
|
||||
}
|
||||
if _, err := client.RunScriptContext(context.Background(), nil, nil); err == nil {
|
||||
t.Fatal("RunScriptContext() should reject a nil script")
|
||||
}
|
||||
if _, err := client.RunScriptContext(context.Background(), NewScript("return 1"), nil); err == nil {
|
||||
t.Fatal("RunScriptContext() should reject an uninitialized client")
|
||||
}
|
||||
}
|
||||
|
||||
func TestContextRedisHelpersValidateContextAndClient(t *testing.T) {
|
||||
var client *Client
|
||||
if _, err := client.DelContext(context.Background(), "key"); err == nil {
|
||||
t.Fatal("DelContext() should reject nil client")
|
||||
}
|
||||
if _, err := client.EvalContext(context.Background(), "return 1", nil); err == nil {
|
||||
t.Fatal("EvalContext() should reject nil client")
|
||||
}
|
||||
if _, err := client.RPushPipelineContext(
|
||||
context.Background(), "queue", []string{"video-1"}, 1,
|
||||
); err == nil {
|
||||
t.Fatal("RPushPipelineContext() should reject nil client")
|
||||
}
|
||||
if _, err := client.SetNXContext(context.Background(), "key", "value", 0); err == nil {
|
||||
t.Fatal("SetNXContext() should reject nil client")
|
||||
}
|
||||
|
||||
empty := &Client{}
|
||||
if _, err := empty.DelContext(nil, "key"); err == nil {
|
||||
t.Fatal("DelContext() should reject nil context")
|
||||
}
|
||||
if _, err := empty.EvalContext(nil, "return 1", nil); err == nil {
|
||||
t.Fatal("EvalContext() should reject nil context")
|
||||
}
|
||||
if _, err := empty.RPushPipelineContext(nil, "queue", []string{"video-1"}, 1); err == nil {
|
||||
t.Fatal("RPushPipelineContext() should reject nil context")
|
||||
}
|
||||
if _, err := empty.SetNXContext(nil, "key", "value", 0); err == nil {
|
||||
t.Fatal("SetNXContext() should reject nil context")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user