add more unit testing cases for package gredis

This commit is contained in:
jianchenma
2021-01-13 20:00:31 +08:00
parent 6cf48f9479
commit c1b52e0f35
2 changed files with 107 additions and 4 deletions

View File

@ -10,6 +10,7 @@ import (
"fmt"
"github.com/gogf/gf/container/gvar"
"github.com/gogf/gf/frame/g"
"github.com/gogf/gf/util/gutil"
)
func Example_autoMarshalUnmarshalMap() {
@ -101,7 +102,7 @@ func Example_autoMarshalUnmarshalStructSlice() {
fmt.Println(users2)
}
func Example_hashSet() {
func Example_hSet() {
var (
err error
result *gvar.Var
@ -124,3 +125,54 @@ func Example_hashSet() {
// May Output:
// map[id:10000 name:john]
}
func Example_hMSet_Map() {
var (
key = "user_100"
data = g.Map{
"name": "gf",
"sex": 0,
"score": 100,
}
)
_, err := g.Redis().Do("HMSET", append(g.Slice{key}, gutil.MapToSlice(data)...)...)
if err != nil {
g.Log().Fatal(err)
}
v, err := g.Redis().DoVar("HMGET", key, "name")
if err != nil {
g.Log().Fatal(err)
}
fmt.Println(v.Slice())
// May Output:
// [gf]
}
func Example_hMSet_Struct() {
type User struct {
Name string `json:"name"`
Sex int `json:"sex"`
Score int `json:"score"`
}
var (
key = "user_100"
data = &User{
Name: "gf",
Sex: 0,
Score: 100,
}
)
_, err := g.Redis().Do("HMSET", append(g.Slice{key}, gutil.StructToSlice(data)...)...)
if err != nil {
g.Log().Fatal(err)
}
v, err := g.Redis().DoVar("HMGET", key, "name")
if err != nil {
g.Log().Fatal(err)
}
fmt.Println(v.Slice())
// May Output:
// ["gf"]
}

View File

@ -10,6 +10,7 @@ import (
"github.com/gogf/gf/container/gvar"
"github.com/gogf/gf/frame/g"
"github.com/gogf/gf/util/guid"
"github.com/gogf/gf/util/gutil"
"testing"
"time"
@ -255,9 +256,11 @@ func Test_HSet(t *testing.T) {
func Test_HGetAll1(t *testing.T) {
gtest.C(t, func(t *gtest.T) {
var err error
redis := gredis.New(config)
key := guid.S()
var (
err error
key = guid.S()
redis = gredis.New(config)
)
defer redis.Do("DEL", key)
_, err = redis.Do("HSET", key, "id", 100)
@ -296,6 +299,54 @@ func Test_HGetAll2(t *testing.T) {
})
}
func Test_HMSet(t *testing.T) {
// map
gtest.C(t, func(t *gtest.T) {
var (
err error
key = guid.S()
redis = gredis.New(config)
data = g.Map{
"name": "gf",
"sex": 0,
"score": 100,
}
)
defer redis.Do("DEL", key)
_, err = redis.Do("HMSET", append(g.Slice{key}, gutil.MapToSlice(data)...)...)
t.Assert(err, nil)
v, err := redis.DoVar("HMGET", key, "name")
t.Assert(err, nil)
t.Assert(v.Slice(), g.Slice{data["name"]})
})
// struct
gtest.C(t, func(t *gtest.T) {
type User struct {
Name string `json:"name"`
Sex int `json:"sex"`
Score int `json:"score"`
}
var (
err error
key = guid.S()
redis = gredis.New(config)
data = &User{
Name: "gf",
Sex: 0,
Score: 100,
}
)
defer redis.Do("DEL", key)
_, err = redis.Do("HMSET", append(g.Slice{key}, gutil.StructToSlice(data)...)...)
t.Assert(err, nil)
v, err := redis.DoVar("HMGET", key, "name")
t.Assert(err, nil)
t.Assert(v.Slice(), g.Slice{data.Name})
})
}
func Test_Auto_Marshal(t *testing.T) {
var (
err error