github.com/johnnyeven/libtools@v0.0.0-20191126065708-61829c1adf46/sqlx/transforms_test.go (about) 1 package sqlx 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 8 "github.com/johnnyeven/libtools/sqlx/builder" 9 ) 10 11 func TestValueMap_FromStructBy(t *testing.T) { 12 tt := assert.New(t) 13 14 type User struct { 15 ID uint64 `db:"F_id" sql:"bigint(64) unsigned NOT NULL AUTO_INCREMENT"` 16 Name string `db:"F_name" sql:"varchar(255) NOT NULL"` 17 Username string `db:"F_username" sql:"varchar(255) NOT NULL"` 18 } 19 20 user := User{ 21 ID: 123123213, 22 } 23 24 { 25 fieldValues := FieldValuesFromStructBy(user, []string{}) 26 tt.Len(fieldValues, 0) 27 } 28 { 29 fieldValues := FieldValuesFromStructBy(user, []string{"ID"}) 30 tt.Equal(fieldValues, builder.FieldValues{ 31 "ID": user.ID, 32 }) 33 } 34 } 35 36 func TestValueMap_FromStructWithEmptyFields(t *testing.T) { 37 tt := assert.New(t) 38 39 type User struct { 40 ID uint64 `db:"F_id" sql:"bigint(64) unsigned NOT NULL AUTO_INCREMENT"` 41 Name string `db:"F_name" sql:"varchar(255) NOT NULL"` 42 Username string `db:"F_username" sql:"varchar(255) NOT NULL"` 43 } 44 45 user := User{ 46 ID: 123123213, 47 } 48 49 { 50 fieldValues := FieldValuesFromStructByNonZero(user) 51 tt.Equal(fieldValues, builder.FieldValues{ 52 "ID": user.ID, 53 }) 54 } 55 { 56 fieldValues := FieldValuesFromStructByNonZero(user, "Username") 57 tt.Equal(fieldValues, builder.FieldValues{ 58 "ID": user.ID, 59 "Username": user.Username, 60 }) 61 } 62 }