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.
105 lines
2.3 KiB
Go
105 lines
2.3 KiB
Go
4 years ago
|
package generator
|
||
|
|
||
|
import (
|
||
|
"os"
|
||
|
"path/filepath"
|
||
|
"strings"
|
||
|
"testing"
|
||
|
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
"github.com/tal-tech/go-zero/tools/goctl/rpc/execx"
|
||
|
)
|
||
|
|
||
|
func TestRpcGenerateCaseNilImport(t *testing.T) {
|
||
|
dispatcher := NewDefaultGenerator()
|
||
|
if err := dispatcher.Prepare(); err == nil {
|
||
|
g := NewRpcGenerator(dispatcher)
|
||
|
abs, err := filepath.Abs("./test")
|
||
|
assert.Nil(t, err)
|
||
|
|
||
|
err = g.Generate("./test_stream.proto", abs, nil)
|
||
|
defer func() {
|
||
|
_ = os.RemoveAll(abs)
|
||
|
}()
|
||
|
assert.Nil(t, err)
|
||
|
|
||
|
_, err = execx.Run("go test "+abs, abs)
|
||
|
assert.Nil(t, err)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestRpcGenerateCaseOption(t *testing.T) {
|
||
|
dispatcher := NewDefaultGenerator()
|
||
|
if err := dispatcher.Prepare(); err == nil {
|
||
|
g := NewRpcGenerator(dispatcher)
|
||
|
abs, err := filepath.Abs("./test")
|
||
|
assert.Nil(t, err)
|
||
|
|
||
|
err = g.Generate("./test_option.proto", abs, nil)
|
||
|
defer func() {
|
||
|
_ = os.RemoveAll(abs)
|
||
|
}()
|
||
|
assert.Nil(t, err)
|
||
|
|
||
|
_, err = execx.Run("go test "+abs, abs)
|
||
|
assert.Nil(t, err)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestRpcGenerateCaseWordOption(t *testing.T) {
|
||
|
dispatcher := NewDefaultGenerator()
|
||
|
if err := dispatcher.Prepare(); err == nil {
|
||
|
g := NewRpcGenerator(dispatcher)
|
||
|
abs, err := filepath.Abs("./test")
|
||
|
assert.Nil(t, err)
|
||
|
|
||
|
err = g.Generate("./test_word_option.proto", abs, nil)
|
||
|
defer func() {
|
||
|
_ = os.RemoveAll(abs)
|
||
|
}()
|
||
|
assert.Nil(t, err)
|
||
|
|
||
|
_, err = execx.Run("go test "+abs, abs)
|
||
|
assert.Nil(t, err)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// test keyword go
|
||
|
func TestRpcGenerateCaseGoOption(t *testing.T) {
|
||
|
dispatcher := NewDefaultGenerator()
|
||
|
if err := dispatcher.Prepare(); err == nil {
|
||
|
g := NewRpcGenerator(dispatcher)
|
||
|
abs, err := filepath.Abs("./test")
|
||
|
assert.Nil(t, err)
|
||
|
|
||
|
err = g.Generate("./test_go_option.proto", abs, nil)
|
||
|
defer func() {
|
||
|
_ = os.RemoveAll(abs)
|
||
|
}()
|
||
|
assert.Nil(t, err)
|
||
|
|
||
|
_, err = execx.Run("go test "+abs, abs)
|
||
|
assert.Nil(t, err)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestRpcGenerateCaseImport(t *testing.T) {
|
||
|
dispatcher := NewDefaultGenerator()
|
||
|
if err := dispatcher.Prepare(); err == nil {
|
||
|
g := NewRpcGenerator(dispatcher)
|
||
|
abs, err := filepath.Abs("./test")
|
||
|
assert.Nil(t, err)
|
||
|
|
||
|
err = g.Generate("./test_import.proto", abs, []string{"./base"})
|
||
|
defer func() {
|
||
|
_ = os.RemoveAll(abs)
|
||
|
}()
|
||
|
assert.Nil(t, err)
|
||
|
|
||
|
_, err = execx.Run("go test "+abs, abs)
|
||
|
assert.True(t, func() bool {
|
||
|
return strings.Contains(err.Error(), "package base is not in GOROOT")
|
||
|
}())
|
||
|
}
|
||
|
}
|