github.com/wanlay/gorm-dm8@v1.0.5/dm_test.go (about) 1 package dm 2 3 import ( 4 "fmt" 5 "testing" 6 "time" 7 8 dmSchema "github.com/wanlay/gorm-dm8/schema" 9 "gorm.io/gorm" 10 ) 11 12 var db *gorm.DB 13 14 func init() { 15 var err error 16 // dsn := "dm://sysdba:SYSDBA@local.nfjbill.ren:5236?autoCommit=true" 17 dsn := "dm://sysdba:SYSDBA@127.0.0.1:5236?autoCommit=true" 18 db, err = gorm.Open(Open(dsn), &gorm.Config{ 19 DisableForeignKeyConstraintWhenMigrating: true, 20 }) 21 22 if err != nil { 23 fmt.Printf("Error: failed to connect dm server: %v\n", err) 24 return 25 } 26 27 TB(db) 28 } 29 30 type User struct { 31 gorm.Model 32 Key string `gorm:"index:key,unique"` 33 Name string `gorm:"index:name"` 34 Age int 35 Content dmSchema.Clob `gorm:"size:1024000"` 36 Birthday time.Time 37 } 38 39 type PerPel struct { 40 gorm.Model 41 Key string `gorm:"index:key,unique"` 42 Name string `gorm:"index:name"` 43 Age int 44 Content dmSchema.Clob `gorm:"size:1024000"` 45 Birthday time.Time 46 } 47 48 func TestAutoMigrate(t *testing.T) { 49 var err error 50 51 if Table().HasTable(&User{}) { 52 err := Table().DropTable(&User{}) 53 54 if err != nil { 55 fmt.Printf("Error: failed to DropTable: %v\n", err) 56 return 57 } 58 } 59 60 err = Table().AutoMigrate(&User{}) 61 err = Table().AutoMigrate(&User{}) 62 err = Table().AutoMigrate(&User{}) 63 err = Table().AutoMigrate(&PerPel{}) 64 err = Table().AutoMigrate(&PerPel{}) 65 err = Table().AutoMigrate(&PerPel{}) 66 67 if err != nil { 68 fmt.Printf("Error: failed to AutoMigrate: %v\n", err) 69 return 70 } 71 } 72 73 func TestCreate(t *testing.T) { 74 err := Table(&User{Key: "1", Name: "Jinzhu", Age: 18, Content: "asdfdasfasdfasdfj手机卡是点击", Birthday: time.Now()}).Create() 75 _ = Table(&User{Key: "2", Name: "Jinzhu1", Age: 19, Content: "bbb", Birthday: time.Now()}).Create() 76 _ = Table(&User{Key: "3", Name: "Jinzhu2", Age: 20, Content: "ccc", Birthday: time.Now()}).Create() 77 78 if err != nil { 79 fmt.Printf("Error: failed to Create: %v\n", err) 80 return 81 } 82 } 83 84 func TestGet(t *testing.T) { 85 var data User 86 err := Table(&User{Name: "Jinzhu"}).Get(&data) 87 88 if err != nil { 89 fmt.Printf("Error: failed to Get: %v\n", err) 90 return 91 } 92 } 93 94 func TestWhere(t *testing.T) { 95 var data []User 96 err := Table(&User{Name: "Jinzhu"}).GetWhere(&data) 97 98 if err != nil { 99 fmt.Printf("Error: failed to Where: %v\n", err) 100 return 101 } 102 } 103 104 func TestGetAll(t *testing.T) { 105 var data []User 106 err := Table().GetAll(&data) 107 108 if err != nil { 109 fmt.Printf("Error: failed to GetAll: %v\n", err) 110 return 111 } 112 } 113 114 func TestUpdate(t *testing.T) { 115 err := Table(&User{Key: "3"}).Update(&User{Content: "DDDD"}) 116 117 if err != nil { 118 fmt.Printf("Error: failed to Update: %v\n", err) 119 return 120 } 121 } 122 123 func TestDelete(t *testing.T) { 124 err := Table(&User{Key: "1"}).Delete() 125 126 var data []User 127 _ = Table(&User{Key: "1"}).GetWhere(&data) 128 129 if err != nil || len(data) == 1 { 130 fmt.Printf("Error: failed to Delete: %v\n", err) 131 return 132 } 133 } 134 135 // err 136 func TestClausesAssignmentColumns(t *testing.T) { 137 err := Table(&User{Key: "2", Content: "EEE"}).ClausesAssignmentColumns("KEY", []string{"DELETED_AT", "CONTENT"}) 138 err = Table(&User{Key: "4", Name: "Jinzhu5", Content: "FFF", Birthday: time.Now()}).ClausesAssignmentColumns("KEY", []string{"DELETED_AT", "CONTENT", "BIRTHDAY"}) 139 140 if err != nil { 141 fmt.Printf("Error: failed to ClausesAssignmentColumns: %v\n", err) 142 return 143 } 144 }