gen_test.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package gen
  2. import (
  3. "os"
  4. "path/filepath"
  5. "testing"
  6. "github.com/stretchr/testify/assert"
  7. "github.com/tal-tech/go-zero/core/logx"
  8. )
  9. var (
  10. source = "CREATE TABLE `test_user_info` (\n `id` bigint NOT NULL AUTO_INCREMENT,\n `nanosecond` bigint NOT NULL DEFAULT '0',\n `data` varchar(255) DEFAULT '',\n `content` json DEFAULT NULL,\n `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP,\n `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,\n PRIMARY KEY (`id`),\n UNIQUE KEY `nanosecond_unique` (`nanosecond`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;"
  11. )
  12. func TestCacheModel(t *testing.T) {
  13. logx.Disable()
  14. _ = Clean()
  15. dir, _ := filepath.Abs("./testmodel")
  16. cacheDir := filepath.Join(dir, "cache")
  17. noCacheDir := filepath.Join(dir, "nocache")
  18. defer func() {
  19. _ = os.RemoveAll(dir)
  20. }()
  21. g, err := NewDefaultGenerator(cacheDir, NamingCamel)
  22. assert.Nil(t, err)
  23. err = g.StartFromDDL(source, true)
  24. assert.Nil(t, err)
  25. assert.True(t, func() bool {
  26. _, err := os.Stat(filepath.Join(cacheDir, "TestUserInfoModel.go"))
  27. return err == nil
  28. }())
  29. g, err = NewDefaultGenerator(noCacheDir, NamingLower)
  30. assert.Nil(t, err)
  31. err = g.StartFromDDL(source, false)
  32. assert.Nil(t, err)
  33. assert.True(t, func() bool {
  34. _, err := os.Stat(filepath.Join(noCacheDir, "testuserinfomodel.go"))
  35. return err == nil
  36. }())
  37. }
  38. func TestNamingModel(t *testing.T) {
  39. logx.Disable()
  40. _ = Clean()
  41. dir, _ := filepath.Abs("./testmodel")
  42. camelDir := filepath.Join(dir, "camel")
  43. snakeDir := filepath.Join(dir, "snake")
  44. defer func() {
  45. _ = os.RemoveAll(dir)
  46. }()
  47. g, err := NewDefaultGenerator(camelDir, NamingCamel)
  48. assert.Nil(t, err)
  49. err = g.StartFromDDL(source, true)
  50. assert.Nil(t, err)
  51. assert.True(t, func() bool {
  52. _, err := os.Stat(filepath.Join(camelDir, "TestUserInfoModel.go"))
  53. return err == nil
  54. }())
  55. g, err = NewDefaultGenerator(snakeDir, NamingSnake)
  56. assert.Nil(t, err)
  57. err = g.StartFromDDL(source, true)
  58. assert.Nil(t, err)
  59. assert.True(t, func() bool {
  60. _, err := os.Stat(filepath.Join(snakeDir, "test_user_info_model.go"))
  61. return err == nil
  62. }())
  63. }