Files
im_server/loadtest/im-pressure/agent_history_test.go
T

42 lines
1.2 KiB
Go

package main
import "testing"
func TestHistoryQueriesForMessagesGroupsRangesByTopic(t *testing.T) {
p2pClient := &WSClient{}
groupClient := &WSClient{}
run := &agentRun{clients: map[int]*WSClient{1: groupClient, 7: p2pClient}}
messages := make([]AcceptedMessage, 0, 207)
for seq := int64(205); seq >= 1; seq-- {
messages = append(messages, AcceptedMessage{Kind: "p2p", Topic: "p2p-a", PeerIndex: 7, Seq: seq})
}
messages = append(messages,
AcceptedMessage{Kind: "group", Topic: "grp-a", PeerIndex: 99, Seq: 11},
AcceptedMessage{Kind: "group", Topic: "grp-a", PeerIndex: 99, Seq: 12},
)
queries := run.historyQueriesForMessages(messages)
if len(queries) != 3 {
t.Fatalf("queries=%d want=3", len(queries))
}
p2pQueries := 0
groupQueries := 0
for _, query := range queries {
switch query.topic {
case "p2p-a":
p2pQueries++
if query.client != p2pClient || query.limit != 256 {
t.Fatalf("unexpected p2p query: %#v", query)
}
case "grp-a":
groupQueries++
if query.client != groupClient || query.since != 11 || query.before != 13 {
t.Fatalf("unexpected group query: %#v", query)
}
}
}
if p2pQueries != 2 || groupQueries != 1 {
t.Fatalf("p2p queries=%d group queries=%d", p2pQueries, groupQueries)
}
}