Browse Source

Add unit test(assert list length >= instead of =)

pull/428/head
徐云金YunjinXu 3 years ago
parent
commit
2a596ae346
  1. 38
      test/api_test.go

38
test/api_test.go

@ -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)
}

Loading…
Cancel
Save