modify test

This commit is contained in:
zhuyasen
2022-09-21 23:21:55 +08:00
parent dab982f8c5
commit 7f6dbde16c
6 changed files with 74 additions and 73 deletions

View File

@@ -2,125 +2,126 @@ package cache
import (
"context"
"fmt"
"testing"
"time"
"github.com/zhufuyi/sponge/internal/model"
"github.com/zhufuyi/sponge/pkg/mysql"
"github.com/alicebob/miniredis/v2"
"github.com/go-redis/redis/v8"
"github.com/stretchr/testify/assert"
"github.com/zhufuyi/sponge/internal/model"
)
var (
type _userExampleCache struct {
ctx context.Context
testDatas []*model.UserExample
redisServer *miniredis.Miniredis
redisClient *redis.Client
testData = &model.UserExample{
Model: mysql.Model{ID: 1},
Name: "foo",
}
uc UserExampleCache
)
func setup() {
redisServer = mockRedis()
redisClient = redis.NewClient(&redis.Options{Addr: redisServer.Addr()})
uc = NewUserExampleCache(redisClient)
iCache UserExampleCache
}
func teardown() {
redisServer.Close()
}
func mockRedis() *miniredis.Miniredis {
s, err := miniredis.Run()
func newUserExampleCache() *_userExampleCache {
redisServer, err := miniredis.Run()
if err != nil {
panic(err)
}
return s
cache := NewUserExampleCache(redis.NewClient(&redis.Options{Addr: redisServer.Addr()}))
record1 := &model.UserExample{}
record1.ID = 1
record2 := &model.UserExample{}
record2.ID = 2
return &_userExampleCache{
ctx: context.Background(),
testDatas: []*model.UserExample{record1, record2},
redisServer: redisServer,
iCache: cache,
}
}
func (c *_userExampleCache) close() {
c.redisServer.Close()
}
func (c *_userExampleCache) getIDs() []uint64 {
var ids []uint64
for _, v := range c.testDatas {
ids = append(ids, v.ID)
}
return ids
}
func (c *_userExampleCache) getExpected() map[string]*model.UserExample {
expected := make(map[string]*model.UserExample)
for _, v := range c.testDatas {
record := &model.UserExample{}
record.ID = v.ID
expected[fmt.Sprintf("%d", v.ID)] = record
}
return expected
}
func Test_userExampleCache_Set(t *testing.T) {
setup()
defer teardown()
c := newUserExampleCache()
defer c.close()
var id uint64
ctx := context.Background()
id = 1
err := uc.Set(ctx, id, testData, time.Hour)
record := c.testDatas[0]
err := c.iCache.Set(c.ctx, record.ID, record, time.Hour)
if err != nil {
t.Fatal(err)
}
}
func Test_userExampleCache_Get(t *testing.T) {
setup()
defer teardown()
c := newUserExampleCache()
defer c.close()
var id uint64
ctx := context.Background()
id = 1
err := uc.Set(ctx, id, testData, time.Hour)
record := c.testDatas[0]
err := c.iCache.Set(c.ctx, record.ID, record, time.Hour)
if err != nil {
t.Fatal(err)
}
act, err := uc.Get(ctx, id)
got, err := c.iCache.Get(c.ctx, record.ID)
if err != nil {
t.Fatal(err)
}
assert.Equal(t, testData, act)
assert.Equal(t, record, got)
}
func Test_userExampleCache_MultiGet(t *testing.T) {
setup()
defer teardown()
c := newUserExampleCache()
defer c.close()
ctx := context.Background()
testData := []*model.UserExample{
{Model: mysql.Model{ID: 1}},
{Model: mysql.Model{ID: 2}},
}
err := uc.MultiSet(ctx, testData, time.Hour)
err := c.iCache.MultiSet(c.ctx, c.testDatas, time.Hour)
if err != nil {
t.Fatal(err)
}
expected := make(map[string]*model.UserExample)
expected["1"] = &model.UserExample{Model: mysql.Model{ID: 1}}
expected["2"] = &model.UserExample{Model: mysql.Model{ID: 2}}
act, err := uc.MultiGet(ctx, []uint64{1, 2})
got, err := c.iCache.MultiGet(c.ctx, c.getIDs())
if err != nil {
t.Fatal(err)
}
assert.Equal(t, expected, act)
expected := c.getExpected()
assert.Equal(t, expected, got)
}
func Test_userExampleCache_MultiSet(t *testing.T) {
setup()
defer teardown()
c := newUserExampleCache()
defer c.close()
ctx := context.Background()
testData := []*model.UserExample{
{Model: mysql.Model{ID: 1}},
{Model: mysql.Model{ID: 2}},
}
err := uc.MultiSet(ctx, testData, time.Hour)
err := c.iCache.MultiSet(c.ctx, c.testDatas, time.Hour)
if err != nil {
t.Fatal(err)
}
}
func Test_userExampleCache_Del(t *testing.T) {
setup()
defer teardown()
c := newUserExampleCache()
defer c.close()
var id uint64
ctx := context.Background()
id = 1
err := uc.Del(ctx, id)
record := c.testDatas[0]
err := c.iCache.Del(c.ctx, record.ID)
if err != nil {
t.Fatal(err)
}

View File

@@ -5,7 +5,7 @@ import (
)
// nolint
// rpc系统级别错误码有status前缀
// rpc系统级别错误码有status前缀错误码范围300000~400000
var (
StatusSuccess = errcode.StatusSuccess

View File

@@ -11,9 +11,9 @@ const (
)
// nolint
// 服务级别错误码有Err前缀
// 服务级别错误码
var (
StatusCreateUserExample = errcode.NewGRPCStatus(errcode.GCode(_userExampleNO)+1, "创建"+_userExampleName+"失败") // todo 补充错误码注释,例如 20101
StatusCreateUserExample = errcode.NewGRPCStatus(errcode.GCode(_userExampleNO)+1, "创建"+_userExampleName+"失败") // todo 补充错误码注释,例如 400101
StatusDeleteUserExample = errcode.NewGRPCStatus(errcode.GCode(_userExampleNO)+2, "删除"+_userExampleName+"失败")
StatusUpdateUserExample = errcode.NewGRPCStatus(errcode.GCode(_userExampleNO)+3, "更新"+_userExampleName+"失败")
StatusGetUserExample = errcode.NewGRPCStatus(errcode.GCode(_userExampleNO)+4, "获取"+_userExampleName+"失败")

View File

@@ -3,7 +3,7 @@ package ecode
import "github.com/zhufuyi/sponge/pkg/errcode"
// nolint
// http系统级别错误码无Err前缀错误码小于20000
// http系统级别错误码无Err前缀错误码范围100000~200000
var (
Success = errcode.Success
InvalidParams = errcode.InvalidParams

View File

@@ -13,7 +13,7 @@ const (
// nolint
// 服务级别错误码有Err前缀
var (
ErrCreateUserExample = errcode.NewError(errcode.HCode(userExampleNO)+1, "创建"+userExampleName+"失败") // todo 补充错误码注释,例如 20101
ErrCreateUserExample = errcode.NewError(errcode.HCode(userExampleNO)+1, "创建"+userExampleName+"失败") // todo 补充错误码注释,例如 200101
ErrDeleteUserExample = errcode.NewError(errcode.HCode(userExampleNO)+2, "删除"+userExampleName+"失败")
ErrUpdateUserExample = errcode.NewError(errcode.HCode(userExampleNO)+3, "更新"+userExampleName+"失败")
ErrGetUserExample = errcode.NewError(errcode.HCode(userExampleNO)+4, "获取"+userExampleName+"失败")

View File

@@ -177,9 +177,9 @@ func Test_userExampleService_benchmark(t *testing.T) {
Sort: "",
Columns: []*types.Column{
{
Name: "age",
Exp: ">=",
Value: "15",
Name: "id",
Exp: "<",
Value: "100",
Logic: "",
},
},