gen_test.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. package generator
  2. import (
  3. "os"
  4. "path/filepath"
  5. "strings"
  6. "testing"
  7. "github.com/stretchr/testify/assert"
  8. "github.com/tal-tech/go-zero/tools/goctl/rpc/execx"
  9. )
  10. func TestRpcGenerateCaseNilImport(t *testing.T) {
  11. dispatcher := NewDefaultGenerator()
  12. if err := dispatcher.Prepare(); err == nil {
  13. g := NewRpcGenerator(dispatcher)
  14. abs, err := filepath.Abs("./test")
  15. assert.Nil(t, err)
  16. err = g.Generate("./test_stream.proto", abs, nil)
  17. defer func() {
  18. _ = os.RemoveAll(abs)
  19. }()
  20. assert.Nil(t, err)
  21. _, err = execx.Run("go test "+abs, abs)
  22. assert.Nil(t, err)
  23. }
  24. }
  25. func TestRpcGenerateCaseOption(t *testing.T) {
  26. dispatcher := NewDefaultGenerator()
  27. if err := dispatcher.Prepare(); err == nil {
  28. g := NewRpcGenerator(dispatcher)
  29. abs, err := filepath.Abs("./test")
  30. assert.Nil(t, err)
  31. err = g.Generate("./test_option.proto", abs, nil)
  32. defer func() {
  33. _ = os.RemoveAll(abs)
  34. }()
  35. assert.Nil(t, err)
  36. _, err = execx.Run("go test "+abs, abs)
  37. assert.Nil(t, err)
  38. }
  39. }
  40. func TestRpcGenerateCaseWordOption(t *testing.T) {
  41. dispatcher := NewDefaultGenerator()
  42. if err := dispatcher.Prepare(); err == nil {
  43. g := NewRpcGenerator(dispatcher)
  44. abs, err := filepath.Abs("./test")
  45. assert.Nil(t, err)
  46. err = g.Generate("./test_word_option.proto", abs, nil)
  47. defer func() {
  48. _ = os.RemoveAll(abs)
  49. }()
  50. assert.Nil(t, err)
  51. _, err = execx.Run("go test "+abs, abs)
  52. assert.Nil(t, err)
  53. }
  54. }
  55. // test keyword go
  56. func TestRpcGenerateCaseGoOption(t *testing.T) {
  57. dispatcher := NewDefaultGenerator()
  58. if err := dispatcher.Prepare(); err == nil {
  59. g := NewRpcGenerator(dispatcher)
  60. abs, err := filepath.Abs("./test")
  61. assert.Nil(t, err)
  62. err = g.Generate("./test_go_option.proto", abs, nil)
  63. defer func() {
  64. _ = os.RemoveAll(abs)
  65. }()
  66. assert.Nil(t, err)
  67. _, err = execx.Run("go test "+abs, abs)
  68. assert.Nil(t, err)
  69. }
  70. }
  71. func TestRpcGenerateCaseImport(t *testing.T) {
  72. dispatcher := NewDefaultGenerator()
  73. if err := dispatcher.Prepare(); err == nil {
  74. g := NewRpcGenerator(dispatcher)
  75. abs, err := filepath.Abs("./test")
  76. assert.Nil(t, err)
  77. err = g.Generate("./test_import.proto", abs, []string{"./base"})
  78. defer func() {
  79. _ = os.RemoveAll(abs)
  80. }()
  81. assert.Nil(t, err)
  82. _, err = execx.Run("go test "+abs, abs)
  83. assert.True(t, func() bool {
  84. return strings.Contains(err.Error(), "package base is not in GOROOT")
  85. }())
  86. }
  87. }