func testDelete(engine *xorm.Engine, t *testing.T) { user := Userinfo{Uid: 1} cnt, err := engine.Delete(&user) if err != nil { t.Fatal("delete failed:", err) } if cnt != 1 { t.Fatal("delete failed: deleted 0 rows") } user.Uid = 0 user.IsMan = true has, err := engine.Id(3).Get(&user) if err != nil { t.Error(err) panic(err) } if has { //var tt time.Time //user.Created = tt cnt, err := engine.Id(3).Delete(new(Userinfo)) if err != nil { t.Fatal("delete failed:", err) } if cnt != 1 { t.Fatal("delete failed: deleted 0 rows") } } }
func test(engine *xorm.Engine) { err := engine.CreateTables(u) if err != nil { fmt.Println(err) return } size := 500 queue := make(chan int, size) for i := 0; i < size; i++ { go func(x int) { //x := i err := engine.Ping() if err != nil { fmt.Println(err) } else { for j := 0; j < 10; j++ { if x+j < 2 { _, err = engine.Get(u) } else if x+j < 4 { users := make([]User, 0) err = engine.Find(&users) } else if x+j < 8 { _, err = engine.Count(u) } else if x+j < 16 { _, err = engine.Insert(&User{Name: "xlw"}) } else if x+j < 32 { //_, err = engine.Id(1).Delete(u) _, err = engine.Delete(u) } if err != nil { fmt.Println(err) queue <- x return } } fmt.Printf("%v success!\n", x) } queue <- x }(i) } for i := 0; i < size; i++ { <-queue } //conns := atomic.LoadInt32(&xorm.ConnectionNum) //fmt.Println("connection number:", conns) fmt.Println("end") }
func testColTypes(engine *xorm.Engine, t *testing.T) { err := engine.DropTables(&allCols{}) if err != nil { t.Error(err) panic(err) } err = engine.CreateTables(&allCols{}) if err != nil { t.Error(err) panic(err) } ac := &allCols{ 1, 4, 8, 16, 32, 64, 128, "123", "fafdafa", "fafafafdsafdsafdaf", "fdsafafdsafdsaf", "fafdsafdsafdsfadasfsfafd", "fadfdsafdsafasfdasfds", []byte("fdafsafdasfdsafsa"), []byte("fdsafsdafs"), time.Now(), time.Now(), time.Now(), time.Now(), time.Now(), 1.34, 2.44302346, 1.3344, 2.59693523, 3.2342523543, []byte("fafdasf"), []byte("fafdfdsafdsafasf"), []byte("faffadsfdsdasf"), []byte("faffdasfdsadasf"), []byte("fafasdfsadffdasf"), map[string]string{"1": "1", "2": "2"}, []string{"1", "2", "3"}, true, 0, //21, } cnt, err := engine.Insert(ac) if err != nil { t.Error(err) panic(err) } if cnt != 1 { err = errors.New("insert return not 1") t.Error(err) panic(err) } newAc := &allCols{} has, err := engine.Get(newAc) if err != nil { t.Error(err) panic(err) } if !has { err = errors.New("error no ideas") t.Error(err) panic(err) } // don't use this type as query condition newAc.Real = 0 newAc.Float = 0 newAc.Double = 0 newAc.LongText = "" newAc.TinyText = "" newAc.MediumText = "" newAc.Text = "" newAc.Map = nil newAc.Slice = nil cnt, err = engine.Delete(newAc) if err != nil { t.Error(err) panic(err) } if cnt != 1 { err = errors.New(fmt.Sprintf("delete error, deleted counts is %v", cnt)) t.Error(err) panic(err) } }
func testCustomType1(engine *xorm.Engine, t *testing.T) { err := engine.DropTables(&MyStruct{}) if err != nil { t.Error(err) panic(err) return } err = engine.CreateTables(&MyStruct{}) i := MyStruct{Name: "Test", Type: MyInt(1)} i.U = 23 i.F = 1.34 i.S = "fafdsafdsaf" i.UI = 2 i.IA = []MyInt{1, 3, 5} i.UIA = []uint{1, 3} i.UIA16 = []uint16{2} i.UIA32 = []uint32{4, 5} i.UIA64 = []uint64{6, 7, 9} i.UIA8 = []uint8{1, 2, 3, 4} i.NameArray = []string{"ssss", "fsdf", "lllll, ss"} i.MSS = map[string]string{"s": "sfds,ss", "x": "lfjljsl"} cnt, err := engine.Insert(&i) if err != nil { t.Error(err) panic(err) return } if cnt != 1 { err = errors.New("insert not returned 1") t.Error(err) panic(err) return } fmt.Println(i) i.NameArray = []string{} i.MSS = map[string]string{} i.F = 0 has, err := engine.Get(&i) if err != nil { t.Error(err) panic(err) } else if !has { t.Error(errors.New("should get one record")) panic(err) } ss := []MyStruct{} err = engine.Find(&ss) if err != nil { t.Error(err) panic(err) } fmt.Println(ss) sss := MyStruct{} has, err = engine.Get(&sss) if err != nil { t.Error(err) panic(err) } fmt.Println(sss) if has { sss.NameArray = []string{} sss.MSS = map[string]string{} cnt, err := engine.Delete(&sss) if err != nil { t.Error(err) panic(err) } if cnt != 1 { t.Error(errors.New("delete error")) panic(err) } } }