From f7d68834057640ecc3d3fede3dd9b8fb8895f5a7 Mon Sep 17 00:00:00 2001 From: John Date: Wed, 4 Dec 2019 18:43:16 +0800 Subject: [PATCH] fix issue in gredis for int set/get --- database/gredis/gredis.go | 4 ++++ database/gredis/gredis_unit_test.go | 28 ++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/database/gredis/gredis.go b/database/gredis/gredis.go index 437fe54d9..02c75cf4d 100644 --- a/database/gredis/gredis.go +++ b/database/gredis/gredis.go @@ -15,6 +15,7 @@ package gredis import ( "fmt" + "github.com/gogf/gf/util/gconv" "time" "github.com/gogf/gf/container/gmap" @@ -186,5 +187,8 @@ func (r *Redis) Do(command string, args ...interface{}) (interface{}, error) { // DoVar returns value from Do as gvar.Var. func (r *Redis) DoVar(command string, args ...interface{}) (*gvar.Var, error) { v, err := r.Do(command, args...) + if result, ok := v.([]byte); ok { + return gvar.New(gconv.UnsafeBytesToStr(result)), err + } return gvar.New(v), err } diff --git a/database/gredis/gredis_unit_test.go b/database/gredis/gredis_unit_test.go index 65267ec09..85b5e8283 100644 --- a/database/gredis/gredis_unit_test.go +++ b/database/gredis/gredis_unit_test.go @@ -7,6 +7,8 @@ package gredis_test import ( + "github.com/gogf/gf/frame/g" + "github.com/gogf/gf/util/guuid" "testing" "time" @@ -223,3 +225,29 @@ func Test_Bool(t *testing.T) { gtest.Assert(r.Bool(), false) }) } + +func Test_Int(t *testing.T) { + gtest.Case(t, func() { + redis := gredis.New(config) + key := guuid.New() + _, err := redis.Do("SET", key, 1) + gtest.Assert(err, nil) + + r, err := redis.DoVar("GET", key) + gtest.Assert(err, nil) + gtest.Assert(r.Int(), 1) + }) +} + +func Test_HSet(t *testing.T) { + gtest.Case(t, func() { + redis := gredis.New(config) + key := guuid.New() + _, err := redis.Do("HSET", key, "name", "john") + gtest.Assert(err, nil) + + r, err := redis.DoVar("HGETALL", key) + gtest.Assert(err, nil) + gtest.Assert(r.Strings(), g.ArrayStr{"name", "john"}) + }) +}