You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

tcc_service_test.go 2.2 kB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package test
  2. import (
  3. "context"
  4. "testing"
  5. "time"
  6. )
  7. import (
  8. "github.com/seata/seata-go/pkg/common/log"
  9. _ "github.com/seata/seata-go/pkg/imports"
  10. txapi "github.com/seata/seata-go/pkg/protocol/transaction/api"
  11. "github.com/seata/seata-go/pkg/rm/tcc"
  12. "github.com/seata/seata-go/pkg/rm/tcc/api"
  13. )
  14. type TestTCCServiceBusiness struct {
  15. }
  16. func (T TestTCCServiceBusiness) Prepare(ctx context.Context, params interface{}) error {
  17. log.Infof("TestTCCServiceBusiness Prepare, param %v", params)
  18. return nil
  19. }
  20. func (T TestTCCServiceBusiness) Commit(ctx context.Context, businessActionContext api.BusinessActionContext) error {
  21. log.Infof("TestTCCServiceBusiness Commit, param %v", businessActionContext)
  22. return nil
  23. }
  24. func (T TestTCCServiceBusiness) Rollback(ctx context.Context, businessActionContext api.BusinessActionContext) error {
  25. log.Infof("TestTCCServiceBusiness Rollback, param %v", businessActionContext)
  26. return nil
  27. }
  28. func (T TestTCCServiceBusiness) GetActionName() string {
  29. return "TestTCCServiceBusiness"
  30. }
  31. type TestTCCServiceBusiness2 struct {
  32. }
  33. func (T TestTCCServiceBusiness2) Prepare(ctx context.Context, params interface{}) error {
  34. log.Infof("TestTCCServiceBusiness2 Prepare, param %v", params)
  35. return nil
  36. }
  37. func (T TestTCCServiceBusiness2) Commit(ctx context.Context, businessActionContext api.BusinessActionContext) error {
  38. log.Infof("TestTCCServiceBusiness2 Commit, param %v", businessActionContext)
  39. return nil
  40. }
  41. func (T TestTCCServiceBusiness2) Rollback(ctx context.Context, businessActionContext api.BusinessActionContext) error {
  42. log.Infof("TestTCCServiceBusiness2 Rollback, param %v", businessActionContext)
  43. return nil
  44. }
  45. func (T TestTCCServiceBusiness2) GetActionName() string {
  46. return "TestTCCServiceBusiness2"
  47. }
  48. func TestNew(test *testing.T) {
  49. var err error
  50. ctx := txapi.Begin(context.Background(), "TestTCCServiceBusiness")
  51. defer func() {
  52. resp := txapi.CommitOrRollback(ctx, err)
  53. log.Infof("tx result %v", resp)
  54. }()
  55. tccService := tcc.NewTCCServiceProxy(TestTCCServiceBusiness{})
  56. err = tccService.Prepare(ctx, 1)
  57. tccService2 := tcc.NewTCCServiceProxy(TestTCCServiceBusiness2{})
  58. err = tccService2.Prepare(ctx, 3)
  59. time.Sleep(time.Second * 1000)
  60. }

Go Implementation For Seata