func testProcessors(engine *xorm.Engine, t *testing.T) { // tempEngine, err := NewEngine(engine.DriverName, engine.DataSourceName) // if err != nil { // t.Error(err) // panic(err) // } engine.ShowSQL = true err := engine.DropTables(&ProcessorsStruct{}) if err != nil { t.Error(err) panic(err) } p := &ProcessorsStruct{} err = engine.CreateTables(&ProcessorsStruct{}) if err != nil { t.Error(err) panic(err) } b4InsertFunc := func(bean interface{}) { if v, ok := (bean).(*ProcessorsStruct); ok { v.B4InsertViaExt = 1 } else { t.Error(errors.New("cast to ProcessorsStruct failed, how can this be!?")) } } afterInsertFunc := func(bean interface{}) { if v, ok := (bean).(*ProcessorsStruct); ok { v.AfterInsertedViaExt = 1 } else { t.Error(errors.New("cast to ProcessorsStruct failed, how can this be!?")) } } _, err = engine.Before(b4InsertFunc).After(afterInsertFunc).Insert(p) if err != nil { t.Error(err) panic(err) } else { if p.B4InsertFlag == 0 { t.Error(errors.New("B4InsertFlag not set")) } if p.AfterInsertedFlag == 0 { t.Error(errors.New("B4InsertFlag not set")) } if p.B4InsertViaExt == 0 { t.Error(errors.New("B4InsertFlag not set")) } if p.AfterInsertedViaExt == 0 { t.Error(errors.New("AfterInsertedViaExt not set")) } } p2 := &ProcessorsStruct{} _, err = engine.Id(p.Id).Get(p2) if err != nil { t.Error(err) panic(err) } else { if p2.B4InsertFlag == 0 { t.Error(errors.New("B4InsertFlag not set")) } if p2.AfterInsertedFlag != 0 { t.Error(errors.New("AfterInsertedFlag is set")) } if p2.B4InsertViaExt == 0 { t.Error(errors.New("B4InsertViaExt not set")) } if p2.AfterInsertedViaExt != 0 { t.Error(errors.New("AfterInsertedViaExt is set")) } } // -- // test update processors b4UpdateFunc := func(bean interface{}) { if v, ok := (bean).(*ProcessorsStruct); ok { v.B4UpdateViaExt = 1 } else { t.Error(errors.New("cast to ProcessorsStruct failed, how can this be!?")) } } afterUpdateFunc := func(bean interface{}) { if v, ok := (bean).(*ProcessorsStruct); ok { v.AfterUpdatedViaExt = 1 } else { t.Error(errors.New("cast to ProcessorsStruct failed, how can this be!?")) } } p = p2 // reset _, err = engine.Before(b4UpdateFunc).After(afterUpdateFunc).Update(p) if err != nil { t.Error(err) panic(err) } else { if p.B4UpdateFlag == 0 { t.Error(errors.New("B4UpdateFlag not set")) } if p.AfterUpdatedFlag == 0 { t.Error(errors.New("AfterUpdatedFlag not set")) } if p.B4UpdateViaExt == 0 { t.Error(errors.New("B4UpdateViaExt not set")) } if p.AfterUpdatedViaExt == 0 { t.Error(errors.New("AfterUpdatedViaExt not set")) } } p2 = &ProcessorsStruct{} _, err = engine.Id(p.Id).Get(p2) if err != nil { t.Error(err) panic(err) } else { if p2.B4UpdateFlag == 0 { t.Error(errors.New("B4UpdateFlag not set")) } if p2.AfterUpdatedFlag != 0 { t.Error(errors.New("AfterUpdatedFlag is set: " + string(p.AfterUpdatedFlag))) } if p2.B4UpdateViaExt == 0 { t.Error(errors.New("B4UpdateViaExt not set")) } if p2.AfterUpdatedViaExt != 0 { t.Error(errors.New("AfterUpdatedViaExt is set: " + string(p.AfterUpdatedViaExt))) } } // -- // test delete processors b4DeleteFunc := func(bean interface{}) { if v, ok := (bean).(*ProcessorsStruct); ok { v.B4DeleteViaExt = 1 } else { t.Error(errors.New("cast to ProcessorsStruct failed, how can this be!?")) } } afterDeleteFunc := func(bean interface{}) { if v, ok := (bean).(*ProcessorsStruct); ok { v.AfterDeletedViaExt = 1 } else { t.Error(errors.New("cast to ProcessorsStruct failed, how can this be!?")) } } p = p2 // reset _, err = engine.Before(b4DeleteFunc).After(afterDeleteFunc).Delete(p) if err != nil { t.Error(err) panic(err) } else { if p.B4DeleteFlag == 0 { t.Error(errors.New("B4DeleteFlag not set")) } if p.AfterDeletedFlag == 0 { t.Error(errors.New("AfterDeletedFlag not set")) } if p.B4DeleteViaExt == 0 { t.Error(errors.New("B4DeleteViaExt not set")) } if p.AfterDeletedViaExt == 0 { t.Error(errors.New("AfterDeletedViaExt not set")) } } // -- // test insert multi pslice := make([]*ProcessorsStruct, 0) pslice = append(pslice, &ProcessorsStruct{}) pslice = append(pslice, &ProcessorsStruct{}) cnt, err := engine.Before(b4InsertFunc).After(afterInsertFunc).Insert(&pslice) if err != nil { t.Error(err) panic(err) } else { if cnt != 2 { t.Error(errors.New("incorrect insert count")) } for _, elem := range pslice { if elem.B4InsertFlag == 0 { t.Error(errors.New("B4InsertFlag not set")) } if elem.AfterInsertedFlag == 0 { t.Error(errors.New("B4InsertFlag not set")) } if elem.B4InsertViaExt == 0 { t.Error(errors.New("B4InsertFlag not set")) } if elem.AfterInsertedViaExt == 0 { t.Error(errors.New("AfterInsertedViaExt not set")) } } } for _, elem := range pslice { p = &ProcessorsStruct{} _, err = engine.Id(elem.Id).Get(p) if err != nil { t.Error(err) panic(err) } else { if p2.B4InsertFlag == 0 { t.Error(errors.New("B4InsertFlag not set")) } if p2.AfterInsertedFlag != 0 { t.Error(errors.New("AfterInsertedFlag is set")) } if p2.B4InsertViaExt == 0 { t.Error(errors.New("B4InsertViaExt not set")) } if p2.AfterInsertedViaExt != 0 { t.Error(errors.New("AfterInsertedViaExt is set")) } } } // -- }