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  }