Browse Source

add test case for reset cron time back

alpha
yedf2 3 years ago
parent
commit
a1a63c9e1e
  1. 2
      helper/test-cover.sh
  2. 55
      test/api_test.go
  3. 39
      test/store_test.go

2
helper/test-cover.sh

@ -9,6 +9,8 @@ for store in redis boltdb mysql postgres; do
echo > profile.out
fi
done
## for local unit test, you may use following command
# SKIP_MONGO=1 TEST_STORE=redis GOARCH=amd64 go test -v -failfast -count=1 -gcflags=all=-l ./...
# go tool cover -html=coverage.txt

55
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"
@ -249,30 +250,30 @@ func TestAPIForceStoppedAbnormal(t *testing.T) {
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)
// }
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)
}

39
test/store_test.go

@ -179,22 +179,23 @@ func TestUpdateBranches(t *testing.T) {
}
}
// 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)
// }
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)
s.ChangeGlobalStatus(g, "succeed", []string{}, true)
}

Loading…
Cancel
Save