mdbc/transaction_scope_test.go

151 lines
4.1 KiB
Go
Raw Permalink Normal View History

2022-02-23 08:59:45 +00:00
package mdbc
//func TestTransaction(t *testing.T) {
// cfg := &Config{
// URI: "mongodb://10.0.0.135:27117/mdbc",
// MinPoolSize: 32,
// ConnTimeout: 10,
// }
// cfg.RegistryBuilder = RegisterTimestampCodec(nil)
// client, err := ConnInit(cfg)
//
// if err != nil {
// logrus.Fatalf("get err: %+v", err)
// }
// var m = NewModel(&ModelWsConnectRecord{})
//
// ctx := context.Background()
//
// cli := client.Client
// stx, err := cli.StartSession()
// if err != nil {
// panic(err)
// }
//
// // ef6e39c011ee4ed8bd0f82efb0fbccee
// // 80a850d0d8584668b89809e1308a9878
// // 457188bf227341e5a4a6c3d0242d425a
// _, uuid := stx.ID().Lookup("id").Binary()
// logrus.Infof("id: %+v", hex.EncodeToString(uuid))
//
// col := client.Database("mdbc").Collection(m.GetTableName())
//
// if err := stx.StartTransaction(); err != nil {
// panic(err)
// }
//
// logrus.Infof("id: %+v", stx.ID().Lookup("id").String())
//
// err = mongo.WithSession(ctx, stx, func(tx mongo.SessionContext) error {
// logrus.Infof("id: %+v", tx.ID())
// var record ModelWsConnectRecord
// if err := col.FindOne(tx, bson.M{"_id": "87c9c841b078bd213c79b682ffbdbec7"}).Decode(&record); err != nil {
// logrus.Errorf("err: %+v", err)
// panic(err)
// }
//
// logrus.Infof("record: %+v", &record)
//
// record.BindId = "myidsssssssssss"
// if err := col.FindOneAndUpdate(tx, bson.M{"_id": "87c9c841b078bd213c79b682ffbdbec7"}, bson.M{
// "$set": &record,
// }).Err(); err != nil {
// if err := stx.AbortTransaction(tx); err != nil {
// panic(err)
// }
//
// return err
// }
//
// if err := stx.CommitTransaction(tx); err != nil {
// panic(err)
// }
//
// logrus.Infof("id: %+v", tx.ID().Lookup("id").String())
//
// return nil
// })
//
// if err != nil {
// panic(err)
// }
//
// stx.EndSession(ctx)
//}
//
//func TestNewTransaction(t *testing.T) {
// cfg := &Config{
// URI: "mongodb://mdbc:mdbc@10.0.0.135:27117/mdbc",
// MinPoolSize: 32,
// ConnTimeout: 10,
// }
// cfg.RegistryBuilder = RegisterTimestampCodec(nil)
// client, err := ConnInit(cfg)
// client.Database("")
//
// if err != nil {
// logrus.Fatalf("get err: %+v", err)
// }
// var m = NewModel(&ModelWsConnectRecord{})
//
// err = m.Transaction().StartSession().AddHook(&OpentracingHook{}).RollbackOnError(func(tx *TransactionScope) error {
// ctx := tx.getSessionContext()
// coll := tx.scope
// var record ModelWsConnectRecord
// if err := coll.FindOne().SetContext(ctx).SetFilter(bson.M{"_id": "d1ef466f75b9a03256a8c2a3da0409a3"}).Get(&record); err != nil {
// logrus.Errorf("update err: %+v", err)
// return err
// }
// record.BindId = uuid.New().String()
// logrus.Infof("bind_id: %+v", record.BindId)
// if _, err := coll.Update().SetID("d1ef466f75b9a03256a8c2a3da0409a3").One(&record); err != nil {
// logrus.Errorf("update err: %+v", err)
// return err
// }
// return nil
// })
// if err != nil {
// panic(err)
// }
//
// time.Sleep(3 * time.Second)
//}
//
//func TestNewWithTransaction(t *testing.T) {
// cfg := &Config{
// URI: "mongodb://10.0.0.135:27117/mdbc",
// MinPoolSize: 32,
// ConnTimeout: 10,
// }
// cfg.RegistryBuilder = RegisterTimestampCodec(nil)
// client, err := ConnInit(cfg)
// client.Database("")
//
// if err != nil {
// logrus.Fatalf("get err: %+v", err)
// }
// var m = NewModel(&ModelWsConnectRecord{})
// err = m.Transaction().SetContext(context.Background()).StartSession().SingleRollbackOnError(func(tx *TransactionScope) error {
// ctx := tx.getSessionContext()
// coll := tx.scope
// var record ModelWsConnectRecord
// if err := coll.FindOne().SetContext(ctx).SetFilter(bson.M{"_id": "697022b263e2c1528f32a26e704e63d6"}).Get(&record); err != nil {
// logrus.Errorf("get err: %+v", err)
// return err
// }
// record.BindId = uuid.New().String()
// logrus.Infof("bind_id: %+v", record.BindId)
// if res, err := coll.Update().SetContext(ctx).SetID("697022b263e2c1528f32a26e704e63d6").One(&record); err != nil {
// logrus.Errorf("update err: %+v", err)
// return err
// } else if res.MatchedCount != 2 {
// //return errors.New("no match")
// return nil
// }
// return nil
// }).CloseSession().Error()
// if err != nil {
// panic(err)
// }
//}