gitee.com/go-genie/sqlx@v1.0.3/generator/utils_test.go (about) 1 package generator 2 3 import ( 4 "os" 5 "testing" 6 7 "gitee.com/go-genie/sqlx/builder" 8 "github.com/onsi/gomega" 9 ) 10 11 func init() { 12 _ = os.Chdir("./test") 13 } 14 15 func TestParseIndexesFromDoc(t *testing.T) { 16 t.Run("parse primary", func(t *testing.T) { 17 keys, other := parseKeysFromDoc(` 18 @def primary ID 19 summary 20 desc 21 `) 22 gomega.NewWithT(t).Expect(keys).To(gomega.Equal(&Keys{ 23 Primary: []string{"ID"}, 24 })) 25 26 gomega.NewWithT(t).Expect(other).To(gomega.Equal([]string{ 27 "summary", 28 "desc", 29 })) 30 }) 31 t.Run("parse index", func(t *testing.T) { 32 keys, _ := parseKeysFromDoc(` 33 @def index I_name Name 34 @def index I_nickname/HASH Nickname Name 35 `) 36 gomega.NewWithT(t).Expect(keys).To(gomega.Equal(&Keys{ 37 Indexes: builder.Indexes{ 38 "i_name": []string{"Name"}, 39 "i_nickname/HASH": []string{"Nickname", "Name"}, 40 }, 41 })) 42 }) 43 t.Run("parse all", func(t *testing.T) { 44 keys, _ := parseKeysFromDoc(` 45 @def primary ID 46 @def index I_nickname/BTREE Nickname 47 @def index I_username Username 48 @def index I_geom/SPATIAL Geom 49 @def unique_index I_name Name 50 `) 51 gomega.NewWithT(t).Expect(keys).To(gomega.Equal(&Keys{ 52 Primary: []string{"ID"}, 53 Indexes: builder.Indexes{ 54 "i_nickname/BTREE": []string{"Nickname"}, 55 "i_username": []string{"Username"}, 56 "i_geom/SPATIAL": []string{"Geom"}, 57 }, 58 UniqueIndexes: builder.Indexes{ 59 "i_name": []string{"Name"}, 60 }, 61 })) 62 }) 63 } 64 65 func TestParseColRel(t *testing.T) { 66 t.Run("rel", func(t *testing.T) { 67 rel, others := parseColRelFromComment(` 68 @rel Account.AccountID 69 70 summary 71 72 desc 73 `) 74 gomega.NewWithT(t).Expect(rel).To(gomega.Equal("Account.AccountID")) 75 gomega.NewWithT(t).Expect(others).To(gomega.Equal([]string{ 76 "summary", 77 "desc", 78 })) 79 }) 80 }