Select Git revision
redis_test.go
redis_test.go 3.24 KiB
package redis_test
import (
"context"
"fmt"
"os"
"reflect"
"testing"
"time"
"gitlab.com/uafrica/go-utils/redis"
)
func TestString(t *testing.T) {
os.Setenv("REDIS_HOST", "localhost")
os.Setenv("REDIS_PORT", "6380")
ctx := context.Background()
r, err := redis.New(ctx)
if err != nil {
t.Fatalf("failed to create redis: %+v", err)
}
id := fmt.Sprintf("%s_%v", t.Name(), time.Now().Unix())
defer func() {
r.Del(id)
}()
value := "abc123"
if err := r.SetString(id, value); err != nil {
t.Fatalf("failed to set: (%T) %+v", err, err)
}
//get after set must return same value
if v, ok := r.GetString(id); !ok {
t.Fatalf("failed to get(%s)", id)
} else {
if v != value {
t.Fatalf("%s=%s != %s", id, v, value)
}
}
//must be able to delete
if err := r.Del(id); err != nil {
t.Fatalf("failed to del(%s): %+v", id, err)
}
//delete non-existing must also succeed
if err := r.Del(id); err != nil {
t.Fatalf("failed to del(%s) again: %+v", id, err)
}
//get after delete must indicate not exist
if _, ok := r.GetString(id); ok {
t.Fatalf("got(%s) after delete", id)
}
}
func TestJSON(t *testing.T) {
os.Setenv("REDIS_HOST", "localhost")
os.Setenv("REDIS_PORT", "6380")
ctx := context.Background()
r, err := redis.New(ctx)
if err != nil {
t.Fatalf("failed to create redis: %+v", err)
}
id := fmt.Sprintf("%s_%v", t.Name(), time.Now().Unix())
defer func() {
r.Del(id)
}()
type Person struct {