github.com/unionj-cloud/go-doudou@v1.3.8-0.20221011095552-0088008e5b31/cmd/internal/astutils/enumcollector_test.go (about) 1 package astutils 2 3 import ( 4 "github.com/stretchr/testify/require" 5 "github.com/unionj-cloud/go-doudou/toolkit/pathutils" 6 "go/ast" 7 "go/parser" 8 "go/token" 9 "testing" 10 ) 11 12 func TestEnum(t *testing.T) { 13 file := pathutils.Abs("testdata/enum.go") 14 fset := token.NewFileSet() 15 root, err := parser.ParseFile(fset, file, nil, parser.ParseComments) 16 if err != nil { 17 panic(err) 18 } 19 sc := NewEnumCollector(ExprString) 20 ast.Walk(sc, root) 21 for k, v := range sc.Methods { 22 if IsEnum(v) { 23 em := EnumMeta{ 24 Name: k, 25 Values: sc.Consts[k], 26 } 27 sc.Enums[k] = em 28 } 29 } 30 require.Equal(t, 1, len(sc.Enums)) 31 }