123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- package generator
- import (
- "os"
- "path/filepath"
- "testing"
- "github.com/stretchr/testify/assert"
- "github.com/tal-tech/go-zero/tools/goctl/rpc/parser"
- "github.com/tal-tech/go-zero/tools/goctl/util"
- "github.com/tal-tech/go-zero/tools/goctl/util/ctx"
- )
- func TestGenerateCaseNilImport(t *testing.T) {
- project := "stream"
- abs, err := filepath.Abs("./test")
- assert.Nil(t, err)
- dir := filepath.Join(abs, project)
- err = util.MkdirIfNotExist(dir)
- assert.Nil(t, err)
- defer func() {
- //_ = os.RemoveAll(abs)
- }()
- projectCtx, err := ctx.Prepare(dir)
- assert.Nil(t, err)
- p := parser.NewDefaultProtoParser()
- proto, err := p.Parse("./test_stream.proto")
- assert.Nil(t, err)
- dirCtx, err := mkdir(projectCtx, proto)
- assert.Nil(t, err)
- g := NewDefaultGenerator()
- if err := g.Prepare(); err == nil {
- targetPb := filepath.Join(dirCtx.GetPb().Filename, "test_stream.pb.go")
- err = g.GenPb(dirCtx, nil, proto)
- assert.Nil(t, err)
- assert.True(t, func() bool {
- return util.FileExists(targetPb)
- }())
- }
- }
- func TestGenerateCaseImport(t *testing.T) {
- project := "stream"
- abs, err := filepath.Abs("./test")
- assert.Nil(t, err)
- dir := filepath.Join(abs, project)
- err = util.MkdirIfNotExist(dir)
- assert.Nil(t, err)
- defer func() {
- _ = os.RemoveAll(abs)
- }()
- projectCtx, err := ctx.Prepare(dir)
- assert.Nil(t, err)
- p := parser.NewDefaultProtoParser()
- proto, err := p.Parse("./test_stream.proto")
- assert.Nil(t, err)
- dirCtx, err := mkdir(projectCtx, proto)
- assert.Nil(t, err)
- g := NewDefaultGenerator()
- if err := g.Prepare(); err == nil {
- err = g.GenPb(dirCtx, nil, proto)
- assert.Nil(t, err)
- targetPb := filepath.Join(dirCtx.GetPb().Filename, "test_stream.pb.go")
- assert.True(t, func() bool {
- return util.FileExists(targetPb)
- }())
- }
- }
- func TestGenerateCasePathOption(t *testing.T) {
- project := "stream"
- abs, err := filepath.Abs("./test")
- assert.Nil(t, err)
- dir := filepath.Join(abs, project)
- err = util.MkdirIfNotExist(dir)
- assert.Nil(t, err)
- defer func() {
- _ = os.RemoveAll(abs)
- }()
- projectCtx, err := ctx.Prepare(dir)
- assert.Nil(t, err)
- p := parser.NewDefaultProtoParser()
- proto, err := p.Parse("./test_option.proto")
- assert.Nil(t, err)
- dirCtx, err := mkdir(projectCtx, proto)
- assert.Nil(t, err)
- g := NewDefaultGenerator()
- if err := g.Prepare(); err == nil {
- err = g.GenPb(dirCtx, nil, proto)
- assert.Nil(t, err)
- targetPb := filepath.Join(dirCtx.GetPb().Filename, "test_option.pb.go")
- assert.True(t, func() bool {
- return util.FileExists(targetPb)
- }())
- }
- }
- func TestGenerateCaseWordOption(t *testing.T) {
- project := "stream"
- abs, err := filepath.Abs("./test")
- assert.Nil(t, err)
- dir := filepath.Join(abs, project)
- err = util.MkdirIfNotExist(dir)
- assert.Nil(t, err)
- defer func() {
- _ = os.RemoveAll(abs)
- }()
- projectCtx, err := ctx.Prepare(dir)
- assert.Nil(t, err)
- p := parser.NewDefaultProtoParser()
- proto, err := p.Parse("./test_word_option.proto")
- assert.Nil(t, err)
- dirCtx, err := mkdir(projectCtx, proto)
- assert.Nil(t, err)
- g := NewDefaultGenerator()
- if err := g.Prepare(); err == nil {
- err = g.GenPb(dirCtx, nil, proto)
- assert.Nil(t, err)
- targetPb := filepath.Join(dirCtx.GetPb().Filename, "test_word_option.pb.go")
- assert.True(t, func() bool {
- return util.FileExists(targetPb)
- }())
- }
- }
- // test keyword go
- func TestGenerateCaseGoOption(t *testing.T) {
- project := "stream"
- abs, err := filepath.Abs("./test")
- assert.Nil(t, err)
- dir := filepath.Join(abs, project)
- err = util.MkdirIfNotExist(dir)
- assert.Nil(t, err)
- defer func() {
- _ = os.RemoveAll(abs)
- }()
- projectCtx, err := ctx.Prepare(dir)
- assert.Nil(t, err)
- p := parser.NewDefaultProtoParser()
- proto, err := p.Parse("./test_go_option.proto")
- assert.Nil(t, err)
- dirCtx, err := mkdir(projectCtx, proto)
- assert.Nil(t, err)
- g := NewDefaultGenerator()
- if err := g.Prepare(); err == nil {
- err = g.GenPb(dirCtx, nil, proto)
- assert.Nil(t, err)
- targetPb := filepath.Join(dirCtx.GetPb().Filename, "test_go_option.pb.go")
- assert.True(t, func() bool {
- return util.FileExists(targetPb)
- }())
- }
- }
|