From e2a8db4cd831fd94e4e7effc06eee1f798b60767 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E4=BA=91=E9=87=91YunjinXu?= Date: Sun, 25 Jun 2023 09:59:23 +0800 Subject: [PATCH] reset trans corntime once - unit test --- test/api_test.go | 29 +++++++++++++++++++++++++++++ test/store_test.go | 20 ++++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/test/api_test.go b/test/api_test.go index 16702b7..7753236 100644 --- a/test/api_test.go +++ b/test/api_test.go @@ -15,6 +15,7 @@ import ( "github.com/dtm-labs/dtm/client/dtmcli" "github.com/dtm-labs/dtm/client/dtmcli/dtmimp" + "github.com/dtm-labs/dtm/dtmsvr/storage/registry" "github.com/dtm-labs/dtm/dtmutil" "github.com/dtm-labs/dtm/test/busi" "github.com/stretchr/testify/assert" @@ -248,3 +249,31 @@ func TestAPIForceStoppedAbnormal(t *testing.T) { assert.Nil(t, err) assert.Equal(t, resp.StatusCode(), http.StatusConflict) } + +func TestAPIResetNextCronTime(t *testing.T) { + saga := genSaga(dtmimp.GetFuncName(), false, false) + saga.Submit() + waitTransProcessed(saga.Gid) + assert.Equal(t, []string{StatusPrepared, StatusSucceed, StatusPrepared, StatusSucceed}, getBranchesStatus(saga.Gid)) + assert.Equal(t, StatusSucceed, getTransStatus(saga.Gid)) + gid := saga.Gid + + s := registry.GetStore() + g := s.FindTransGlobalStore(saga.Gid) + + // reset + resp, err := dtmcli.GetRestyClient().R().SetBody(map[string]string{ + "gid": saga.Gid, + }).Post(dtmutil.DefaultHTTPServer + "/resetNextCronTime") + assert.Nil(t, err) + assert.Equal(t, resp.StatusCode(), http.StatusOK) + + // after reset assert + g2 := s.FindTransGlobalStore(gid) + assert.NotNil(t, g2) + assert.Equal(t, gid, g2.Gid) + assert.Greater(t, time.Now().Add(3*time.Second), *g2.NextCronTime) + assert.Equal(t, g2.UpdateTime, g2.NextCronTime) + assert.NotEqual(t, g.UpdateTime, g2.UpdateTime) + assert.NotEqual(t, g.NextCronTime, g2.NextCronTime) +} diff --git a/test/store_test.go b/test/store_test.go index 68a6daa..18e9285 100644 --- a/test/store_test.go +++ b/test/store_test.go @@ -178,3 +178,23 @@ func TestUpdateBranches(t *testing.T) { assert.Nil(t, err) } } + +func TestResetTransGlobalCronTime(t *testing.T) { + gid := dtmimp.GetFuncName() + g, _ := initTransGlobal(gid) + + s := registry.GetStore() + g2 := s.FindTransGlobalStore(gid) + assert.NotNil(t, g2) + assert.Equal(t, gid, g2.Gid) + + s.ResetTransGlobalCronTime(g2) + + g2 = s.FindTransGlobalStore(gid) + assert.NotNil(t, g2) + assert.Equal(t, gid, g2.Gid) + assert.Greater(t, time.Now().Add(3*time.Second), *g2.NextCronTime) + assert.Equal(t, g2.UpdateTime, g2.NextCronTime) + assert.NotEqual(t, g.UpdateTime, g2.UpdateTime) + assert.NotEqual(t, g.NextCronTime, g2.NextCronTime) +}