keys_test.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package gen
  2. import (
  3. "fmt"
  4. "testing"
  5. "github.com/stretchr/testify/assert"
  6. "github.com/tal-tech/go-zero/tools/goctl/model/sql/parser"
  7. "github.com/tal-tech/go-zero/tools/goctl/util/stringx"
  8. )
  9. func TestGenCacheKeys(t *testing.T) {
  10. m, err := genCacheKeys(parser.Table{
  11. Name: stringx.From("user"),
  12. PrimaryKey: parser.Primary{
  13. Field: parser.Field{
  14. Name: stringx.From("id"),
  15. DataBaseType: "bigint",
  16. DataType: "int64",
  17. IsKey: false,
  18. IsPrimaryKey: true,
  19. IsUniqueKey: false,
  20. Comment: "自增id",
  21. },
  22. AutoIncrement: true,
  23. },
  24. Fields: []parser.Field{
  25. {
  26. Name: stringx.From("mobile"),
  27. DataBaseType: "varchar",
  28. DataType: "string",
  29. IsKey: false,
  30. IsPrimaryKey: false,
  31. IsUniqueKey: true,
  32. Comment: "手机号",
  33. },
  34. {
  35. Name: stringx.From("name"),
  36. DataBaseType: "varchar",
  37. DataType: "string",
  38. IsKey: false,
  39. IsPrimaryKey: false,
  40. IsUniqueKey: true,
  41. Comment: "姓名",
  42. },
  43. {
  44. Name: stringx.From("createTime"),
  45. DataBaseType: "timestamp",
  46. DataType: "time.Time",
  47. IsKey: false,
  48. IsPrimaryKey: false,
  49. IsUniqueKey: false,
  50. Comment: "创建时间",
  51. },
  52. {
  53. Name: stringx.From("updateTime"),
  54. DataBaseType: "timestamp",
  55. DataType: "time.Time",
  56. IsKey: false,
  57. IsPrimaryKey: false,
  58. IsUniqueKey: false,
  59. Comment: "更新时间",
  60. },
  61. },
  62. })
  63. assert.Nil(t, err)
  64. for fieldName, key := range m {
  65. name := stringx.From(fieldName)
  66. assert.Equal(t, fmt.Sprintf(`cacheUser%sPrefix = "cache#User#%s#"`, name.ToCamel(), name.UnTitle()), key.VarExpression)
  67. assert.Equal(t, fmt.Sprintf(`cacheUser%sPrefix`, name.ToCamel()), key.Left)
  68. assert.Equal(t, fmt.Sprintf(`cache#User#%s#`, name.UnTitle()), key.Right)
  69. assert.Equal(t, fmt.Sprintf(`user%sKey`, name.ToCamel()), key.Variable)
  70. assert.Equal(t, `user`+name.ToCamel()+`Key := fmt.Sprintf("%s%v", cacheUser`+name.ToCamel()+`Prefix,`+name.UnTitle()+`)`, key.KeyExpression)
  71. }
  72. }