Browse Source

add msg prepare query failed test case

pull/43/head
yedf2 5 years ago
parent
commit
db347cf1a3
  1. 2
      dtmsvr/trans_msg.go
  2. 14
      test/msg_test.go

2
dtmsvr/trans_msg.go

@ -39,6 +39,8 @@ func (t *TransGlobal) mayQueryPrepared(db *common.DB) {
body := t.getURLResult(t.QueryPrepared, "", "", nil)
if strings.Contains(body, dtmcli.ResultSuccess) {
t.changeStatus(db, dtmcli.StatusSubmitted)
} else if strings.Contains(body, dtmcli.ResultFailure) {
t.changeStatus(db, dtmcli.StatusFailed)
} else {
t.touch(db, t.NextCronInterval*2)
}

14
test/msg_test.go

@ -12,6 +12,7 @@ func TestMsg(t *testing.T) {
msgNormal(t)
msgPending(t)
msgPendingFailed(t)
}
func msgNormal(t *testing.T) {
@ -37,3 +38,16 @@ func msgPending(t *testing.T) {
assert.Equal(t, []string{dtmcli.StatusSucceed, dtmcli.StatusSucceed}, getBranchesStatus(msg.Gid))
assert.Equal(t, dtmcli.StatusSucceed, getTransStatus(msg.Gid))
}
func msgPendingFailed(t *testing.T) {
msg := genMsg("gid-msg-pending-failed")
msg.Prepare("")
assert.Equal(t, dtmcli.StatusPrepared, getTransStatus(msg.Gid))
examples.MainSwitch.CanSubmitResult.SetOnce("PENDING")
CronTransOnce()
assert.Equal(t, dtmcli.StatusPrepared, getTransStatus(msg.Gid))
examples.MainSwitch.CanSubmitResult.SetOnce(dtmcli.ResultFailure)
CronTransOnce()
assert.Equal(t, []string{dtmcli.StatusPrepared, dtmcli.StatusPrepared}, getBranchesStatus(msg.Gid))
assert.Equal(t, dtmcli.StatusFailed, getTransStatus(msg.Gid))
}

Loading…
Cancel
Save