68 lines
1.9 KiB
Go
68 lines
1.9 KiB
Go
package internal
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"github.com/go-playground/assert/v2"
|
|
"strconv"
|
|
"testing"
|
|
)
|
|
|
|
var count = []int{123, 1, 10, 31, 1} // 120,3+1+6,4+6,10,10,5+1
|
|
|
|
var serverInfoList1 = make(ServerInfoList, 0)
|
|
|
|
func init() {
|
|
for i, c := range count {
|
|
serverInfoList1 = append(serverInfoList1, &ServerInfo{
|
|
ServerId: strconv.Itoa(i),
|
|
TotalAccountCount: c,
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestServer(t *testing.T) {
|
|
totalCount, pageList := serverInfoList1.TidyToPageList(10, func(info *ServerInfo) int { return info.TotalAccountCount })
|
|
assert.Equal(t, totalCount, 166)
|
|
|
|
data, _ := json.MarshalIndent(pageList, "", " ")
|
|
fmt.Printf("%v", string(data))
|
|
|
|
// 头尾
|
|
assert.Equal(t, len(pageList), 17)
|
|
page1 := pageList[0]
|
|
assert.Equal(t, page1.PageNo, 1)
|
|
assert.Equal(t, page1.Count, 10)
|
|
page17 := pageList[16]
|
|
assert.Equal(t, page17.PageNo, 17)
|
|
assert.Equal(t, page17.Count, 6)
|
|
|
|
// 第13个有3+1+6三个服务器数量组成
|
|
page13 := pageList[12]
|
|
assert.Equal(t, len(page13.ServerList), 3)
|
|
assert.Equal(t, page13.ServerList[0].Offset, 120)
|
|
assert.Equal(t, page13.ServerList[0].Count, 3)
|
|
assert.Equal(t, page13.ServerList[1].Offset, 0)
|
|
assert.Equal(t, page13.ServerList[1].Count, 1)
|
|
assert.Equal(t, page13.ServerList[2].Offset, 0)
|
|
assert.Equal(t, page13.ServerList[2].Count, 6)
|
|
|
|
// 第14个有6+4
|
|
page14 := pageList[13]
|
|
assert.Equal(t, len(page14.ServerList), 2)
|
|
assert.Equal(t, page14.ServerList[0].Offset, 6)
|
|
assert.Equal(t, page14.ServerList[0].Count, 4)
|
|
assert.Equal(t, page14.ServerList[1].Offset, 0)
|
|
assert.Equal(t, page14.ServerList[1].Count, 6)
|
|
|
|
page15 := pageList[14]
|
|
assert.Equal(t, len(page15.ServerList), 1)
|
|
assert.Equal(t, page15.ServerList[0].Offset, 6)
|
|
assert.Equal(t, page15.ServerList[0].Count, 10)
|
|
|
|
page16 := pageList[15]
|
|
assert.Equal(t, len(page16.ServerList), 1)
|
|
assert.Equal(t, page16.ServerList[0].Offset, 16)
|
|
assert.Equal(t, page16.ServerList[0].Count, 10)
|
|
}
|