You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
1.9 KiB
Go
73 lines
1.9 KiB
Go
4 years ago
|
package gen
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"testing"
|
||
|
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
"github.com/tal-tech/go-zero/tools/goctl/model/sql/parser"
|
||
|
"github.com/tal-tech/go-zero/tools/goctl/util/stringx"
|
||
|
)
|
||
|
|
||
|
func TestGenCacheKeys(t *testing.T) {
|
||
|
m, err := genCacheKeys(parser.Table{
|
||
|
Name: stringx.From("user"),
|
||
|
PrimaryKey: parser.Primary{
|
||
|
Field: parser.Field{
|
||
|
Name: stringx.From("id"),
|
||
|
DataBaseType: "bigint",
|
||
|
DataType: "int64",
|
||
|
IsPrimaryKey: true,
|
||
|
IsUniqueKey: false,
|
||
|
Comment: "自增id",
|
||
|
},
|
||
|
AutoIncrement: true,
|
||
|
},
|
||
|
Fields: []parser.Field{
|
||
|
{
|
||
|
Name: stringx.From("mobile"),
|
||
|
DataBaseType: "varchar",
|
||
|
DataType: "string",
|
||
|
IsPrimaryKey: false,
|
||
|
IsUniqueKey: true,
|
||
|
Comment: "手机号",
|
||
|
},
|
||
|
{
|
||
|
Name: stringx.From("name"),
|
||
|
DataBaseType: "varchar",
|
||
|
DataType: "string",
|
||
|
IsPrimaryKey: false,
|
||
|
IsUniqueKey: true,
|
||
|
Comment: "姓名",
|
||
|
},
|
||
|
{
|
||
|
Name: stringx.From("createTime"),
|
||
|
DataBaseType: "timestamp",
|
||
|
DataType: "time.Time",
|
||
|
IsPrimaryKey: false,
|
||
|
IsUniqueKey: false,
|
||
|
Comment: "创建时间",
|
||
|
},
|
||
|
{
|
||
|
Name: stringx.From("updateTime"),
|
||
|
DataBaseType: "timestamp",
|
||
|
DataType: "time.Time",
|
||
|
IsPrimaryKey: false,
|
||
|
IsUniqueKey: false,
|
||
|
Comment: "更新时间",
|
||
|
},
|
||
|
},
|
||
|
})
|
||
|
assert.Nil(t, err)
|
||
|
|
||
|
for fieldName, key := range m {
|
||
|
name := stringx.From(fieldName)
|
||
|
assert.Equal(t, fmt.Sprintf(`cacheUser%sPrefix = "cache#User#%s#"`, name.ToCamel(), name.UnTitle()), key.VarExpression)
|
||
|
assert.Equal(t, fmt.Sprintf(`cacheUser%sPrefix`, name.ToCamel()), key.Left)
|
||
|
assert.Equal(t, fmt.Sprintf(`cache#User#%s#`, name.UnTitle()), key.Right)
|
||
|
assert.Equal(t, fmt.Sprintf(`user%sKey`, name.ToCamel()), key.Variable)
|
||
|
assert.Equal(t, `user`+name.ToCamel()+`Key := fmt.Sprintf("%s%v", cacheUser`+name.ToCamel()+`Prefix,`+name.UnTitle()+`)`, key.KeyExpression)
|
||
|
}
|
||
|
|
||
|
}
|