2
0

plugin_initialize_router_test.go 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. package ast
  2. import (
  3. "github.com/flipped-aurora/gin-vue-admin/server/global"
  4. "path/filepath"
  5. "testing"
  6. )
  7. func TestPluginInitializeRouter_Injection(t *testing.T) {
  8. type fields struct {
  9. Type Type
  10. Path string
  11. ImportPath string
  12. AppName string
  13. GroupName string
  14. PackageName string
  15. FunctionName string
  16. LeftRouterGroupName string
  17. RightRouterGroupName string
  18. }
  19. tests := []struct {
  20. name string
  21. fields fields
  22. wantErr bool
  23. }{
  24. {
  25. name: "测试 Gva插件User 注入",
  26. fields: fields{
  27. Type: TypePluginInitializeRouter,
  28. Path: filepath.Join(global.GVA_CONFIG.AutoCode.Root, global.GVA_CONFIG.AutoCode.Server, "plugin", "gva", "initialize", "router.go"),
  29. ImportPath: `"github.com/flipped-aurora/gin-vue-admin/server/plugin/gva/router"`,
  30. AppName: "Router",
  31. GroupName: "User",
  32. PackageName: "router",
  33. FunctionName: "Init",
  34. LeftRouterGroupName: "public",
  35. RightRouterGroupName: "private",
  36. },
  37. wantErr: false,
  38. },
  39. {
  40. name: "测试 中文 注入",
  41. fields: fields{
  42. Type: TypePluginInitializeRouter,
  43. Path: filepath.Join(global.GVA_CONFIG.AutoCode.Root, global.GVA_CONFIG.AutoCode.Server, "plugin", "gva", "initialize", "router.go"),
  44. ImportPath: `"github.com/flipped-aurora/gin-vue-admin/server/plugin/gva/router"`,
  45. AppName: "Router",
  46. GroupName: "U中文",
  47. PackageName: "router",
  48. FunctionName: "Init",
  49. LeftRouterGroupName: "public",
  50. RightRouterGroupName: "private",
  51. },
  52. wantErr: false,
  53. },
  54. }
  55. for _, tt := range tests {
  56. t.Run(tt.name, func(t *testing.T) {
  57. a := &PluginInitializeRouter{
  58. Type: tt.fields.Type,
  59. Path: tt.fields.Path,
  60. ImportPath: tt.fields.ImportPath,
  61. AppName: tt.fields.AppName,
  62. GroupName: tt.fields.GroupName,
  63. PackageName: tt.fields.PackageName,
  64. FunctionName: tt.fields.FunctionName,
  65. LeftRouterGroupName: tt.fields.LeftRouterGroupName,
  66. RightRouterGroupName: tt.fields.RightRouterGroupName,
  67. }
  68. file, err := a.Parse(a.Path, nil)
  69. if err != nil {
  70. t.Errorf("Parse() error = %v, wantErr %v", err, tt.wantErr)
  71. }
  72. a.Injection(file)
  73. err = a.Format(a.Path, nil, file)
  74. if (err != nil) != tt.wantErr {
  75. t.Errorf("Injection() error = %v, wantErr %v", err, tt.wantErr)
  76. }
  77. })
  78. }
  79. }
  80. func TestPluginInitializeRouter_Rollback(t *testing.T) {
  81. type fields struct {
  82. Type Type
  83. Path string
  84. ImportPath string
  85. AppName string
  86. GroupName string
  87. PackageName string
  88. FunctionName string
  89. LeftRouterGroupName string
  90. RightRouterGroupName string
  91. }
  92. tests := []struct {
  93. name string
  94. fields fields
  95. wantErr bool
  96. }{
  97. {
  98. name: "测试 Gva插件User 回滚",
  99. fields: fields{
  100. Type: TypePluginInitializeRouter,
  101. Path: filepath.Join(global.GVA_CONFIG.AutoCode.Root, global.GVA_CONFIG.AutoCode.Server, "plugin", "gva", "initialize", "router.go"),
  102. ImportPath: `"github.com/flipped-aurora/gin-vue-admin/server/plugin/gva/router"`,
  103. AppName: "Router",
  104. GroupName: "User",
  105. PackageName: "router",
  106. FunctionName: "Init",
  107. LeftRouterGroupName: "public",
  108. RightRouterGroupName: "private",
  109. },
  110. wantErr: false,
  111. },
  112. {
  113. name: "测试 中文 注入",
  114. fields: fields{
  115. Type: TypePluginInitializeRouter,
  116. Path: filepath.Join(global.GVA_CONFIG.AutoCode.Root, global.GVA_CONFIG.AutoCode.Server, "plugin", "gva", "initialize", "router.go"),
  117. ImportPath: `"github.com/flipped-aurora/gin-vue-admin/server/plugin/gva/router"`,
  118. AppName: "Router",
  119. GroupName: "U中文",
  120. PackageName: "router",
  121. FunctionName: "Init",
  122. LeftRouterGroupName: "public",
  123. RightRouterGroupName: "private",
  124. },
  125. wantErr: false,
  126. },
  127. }
  128. for _, tt := range tests {
  129. t.Run(tt.name, func(t *testing.T) {
  130. a := &PluginInitializeRouter{
  131. Type: tt.fields.Type,
  132. Path: tt.fields.Path,
  133. ImportPath: tt.fields.ImportPath,
  134. AppName: tt.fields.AppName,
  135. GroupName: tt.fields.GroupName,
  136. PackageName: tt.fields.PackageName,
  137. FunctionName: tt.fields.FunctionName,
  138. LeftRouterGroupName: tt.fields.LeftRouterGroupName,
  139. RightRouterGroupName: tt.fields.RightRouterGroupName,
  140. }
  141. file, err := a.Parse(a.Path, nil)
  142. if err != nil {
  143. t.Errorf("Parse() error = %v, wantErr %v", err, tt.wantErr)
  144. }
  145. a.Rollback(file)
  146. err = a.Format(a.Path, nil, file)
  147. if (err != nil) != tt.wantErr {
  148. t.Errorf("Rollback() error = %v, wantErr %v", err, tt.wantErr)
  149. }
  150. })
  151. }
  152. }