|
|
|
@ -11,6 +11,7 @@ import ( |
|
|
|
"net/http" |
|
|
|
"strconv" |
|
|
|
"testing" |
|
|
|
"time" |
|
|
|
|
|
|
|
"github.com/dtm-labs/dtm/client/dtmcli" |
|
|
|
"github.com/dtm-labs/dtm/client/dtmcli/dtmimp" |
|
|
|
@ -51,12 +52,15 @@ func TestAPIQuery(t *testing.T) { |
|
|
|
} |
|
|
|
|
|
|
|
func TestAPIAll(t *testing.T) { |
|
|
|
startTime := time.Now() |
|
|
|
for i := 0; i < 3; i++ { // add three
|
|
|
|
gid := dtmimp.GetFuncName() + fmt.Sprintf("%d", i) |
|
|
|
err := genMsg(gid).Submit() |
|
|
|
assert.Nil(t, err) |
|
|
|
waitTransProcessed(gid) |
|
|
|
} |
|
|
|
endTime := time.Now() |
|
|
|
|
|
|
|
resp, err := dtmcli.GetRestyClient().R().SetQueryParam("limit", "1").Get(dtmutil.DefaultHTTPServer + "/all") |
|
|
|
assert.Nil(t, err) |
|
|
|
m := map[string]interface{}{} |
|
|
|
@ -92,6 +96,40 @@ func TestAPIAll(t *testing.T) { |
|
|
|
assert.Equal(t, "", nextPos3) |
|
|
|
// assert.Equal(t, 2, len(m["transactions"].([]interface{}))) // the left 2.
|
|
|
|
|
|
|
|
// filter test
|
|
|
|
resp, err = dtmcli.GetRestyClient().R().SetQueryParams(map[string]string{ |
|
|
|
"limit": "10", |
|
|
|
"status": "succeed", |
|
|
|
"transType": "msg", |
|
|
|
"createTimeStart": strconv.Itoa(int(startTime.Add(time.Minute*-1).Unix() * 1000)), |
|
|
|
"createTimeEnd": strconv.Itoa(int(endTime.Add(time.Minute*1).Unix() * 1000)), |
|
|
|
}).Get(dtmutil.DefaultHTTPServer + "/all") |
|
|
|
assert.Nil(t, err) |
|
|
|
dtmimp.MustUnmarshalString(resp.String(), &m) |
|
|
|
nextPos1 := m["next_position"].(string) |
|
|
|
// assert.Equal(t, 3, len(m["transactions"].([]interface{})))
|
|
|
|
assert.GreaterOrEqual(t, len(m["transactions"].([]interface{})), 3) // Be disturbed by something else test case, so use >=3 instead of =3.
|
|
|
|
assert.Empty(t, nextPos1) // is over
|
|
|
|
for _, item := range m["transactions"].([]interface{}) { |
|
|
|
g := item.(map[string]interface{}) |
|
|
|
assert.Equal(t, "msg", g["trans_type"]) |
|
|
|
assert.Equal(t, "succeed", g["status"]) |
|
|
|
} |
|
|
|
|
|
|
|
// filter, five minutes ago
|
|
|
|
resp, err = dtmcli.GetRestyClient().R().SetQueryParams(map[string]string{ |
|
|
|
"limit": "10", |
|
|
|
"status": "succeed", |
|
|
|
"transType": "msg", |
|
|
|
"createTimeStart": strconv.Itoa(int(startTime.Add(time.Minute*-10).Unix() * 1000)), |
|
|
|
"createTimeEnd": strconv.Itoa(int(endTime.Add(time.Minute*-5).Unix() * 1000)), |
|
|
|
}).Get(dtmutil.DefaultHTTPServer + "/all") |
|
|
|
assert.Nil(t, err) |
|
|
|
dtmimp.MustUnmarshalString(resp.String(), &m) |
|
|
|
nextPos1 = m["next_position"].(string) |
|
|
|
assert.Equal(t, 0, len(m["transactions"].([]interface{}))) |
|
|
|
assert.Empty(t, nextPos1) // is over
|
|
|
|
|
|
|
|
//fmt.Printf("pos1:%s,pos2:%s,pos3:%s", nextPos, nextPos2, nextPos3)
|
|
|
|
} |
|
|
|
|
|
|
|
|