mirror of
https://github.com/zhufuyi/sponge.git
synced 2025-10-29 19:52:04 +08:00
modify test
This commit is contained in:
131
internal/cache/userExample_test.go
vendored
131
internal/cache/userExample_test.go
vendored
@@ -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)
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
)
|
||||
|
||||
// nolint
|
||||
// rpc系统级别错误码,有status前缀
|
||||
// rpc系统级别错误码,有status前缀,错误码范围300000~400000
|
||||
var (
|
||||
StatusSuccess = errcode.StatusSuccess
|
||||
|
||||
|
||||
@@ -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+"失败")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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+"失败")
|
||||
|
||||
@@ -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: "",
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user