bilibili-backup/app/service/main/resource/rpc/server/server_test.go

240 lines
5.5 KiB
Go
Raw Normal View History

2019-04-22 10:59:20 +08:00
package server
import (
"fmt"
"net/rpc"
"testing"
"time"
"go-common/app/service/main/resource/conf"
"go-common/app/service/main/resource/model"
"go-common/app/service/main/resource/service"
)
// rpc server const
const (
addr = "127.0.0.1:6429"
_resourceAll = "RPC.ResourceAll"
_assignmentAll = "RPC.AssignmentAll"
_defBanner = "RPC.DefBanner"
_resource = "RPC.Resource"
_resources = "RPC.Resources"
_assignment = "RPC.Assignment"
_banners = "RPC.Banners"
_pasterAPP = "RPC.PasterAPP"
_indexIcon = "RPC.IndexIcon"
_playerIcon = "RPC.playerIcon"
_cmtbox = "RPC.Cmtbox"
_sidebars = "RPC.SideBars"
_abtest = "RPC.AbTest"
_pasterCID = "RPC.PasterCID"
)
// TestResource test rpc server
func TestResource(t *testing.T) {
if err := conf.Init(); err != nil {
t.Errorf("conf.Init() error(%v)", err)
t.FailNow()
}
svr := service.New(conf.Conf)
New(conf.Conf, svr)
time.Sleep(time.Second * 3)
client, err := rpc.Dial("tcp", addr)
defer client.Close()
if err != nil {
t.Errorf("rpc.Dial(tcp, \"%s\") error(%v)", addr, err)
t.FailNow()
}
resourceAllRPC(client, t)
assignmentAllRPC(client, t)
defBannerRPC(client, t)
resourceRPC(client, t)
resourcesRPC(client, t)
assignmentRPC(client, t)
bannersRPC(client, t)
pasterAPPRpc(client, t)
indexIconRPC(client, t)
playerIconRPC(client, t)
cmtboxRPC(client, t)
sideBarsRPC(client, t)
abTestRPC(client, t)
pasterCIDRPC(client, t)
}
func resourceAllRPC(client *rpc.Client, t *testing.T) {
var res []*model.Resource
arg := &struct{}{}
if err := client.Call(_resourceAll, arg, &res); err != nil {
t.Errorf("err: %v.", err)
} else {
result("resourceAll", t, res)
}
}
func assignmentAllRPC(client *rpc.Client, t *testing.T) {
var res []*model.Assignment
arg := &struct{}{}
if err := client.Call(_assignmentAll, arg, &res); err != nil {
t.Errorf("err: %v.", err)
} else {
result("assignmentAll", t, res)
}
}
func defBannerRPC(client *rpc.Client, t *testing.T) {
var res model.Assignment
arg := &struct{}{}
if err := client.Call(_defBanner, arg, &res); err != nil {
t.Errorf("err: %v.", err)
} else {
result("defBanner", t, res)
}
}
func resourceRPC(client *rpc.Client, t *testing.T) {
var res model.Resource
arg := &model.ArgRes{
ResID: 1187,
}
if err := client.Call(_resource, arg, &res); err != nil {
t.Errorf("err: %v.", err)
} else {
result("resource", t, res)
}
}
func resourcesRPC(client *rpc.Client, t *testing.T) {
var res map[int]*model.Resource
arg := &model.ArgRess{
ResIDs: []int{1187, 1639},
}
if err := client.Call(_resources, arg, &res); err != nil {
t.Errorf("err: %v.", err)
} else {
result("resources", t, res)
}
}
func assignmentRPC(client *rpc.Client, t *testing.T) {
var res []*model.Assignment
arg := &model.ArgRes{
ResID: 1187,
}
if err := client.Call(_assignment, arg, &res); err != nil {
t.Errorf("err: %v.", err)
} else {
result("assignment", t, res)
}
}
func bannersRPC(client *rpc.Client, t *testing.T) {
var res *model.Banners
arg := &model.ArgBanner{
Plat: 1,
ResIDs: "454,467",
Build: 508000,
MID: 1493031,
Channel: "abc",
IP: "211.139.80.6",
Buvid: "123",
Network: "wifi",
MobiApp: "iphone",
Device: "test",
IsAd: true,
OpenEvent: "abc",
}
if err := client.Call(_banners, arg, &res); err != nil {
t.Errorf("err: %v.", err)
} else {
result("banners", t, res)
}
}
func pasterAPPRpc(client *rpc.Client, t *testing.T) {
var res model.Paster
arg := &model.ArgPaster{
Platform: int8(1),
AdType: int8(1),
Aid: "666666",
TypeId: "11",
Buvid: "666666",
}
if err := client.Call(_pasterAPP, arg, &res); err != nil {
t.Errorf("err: %v.", err)
} else {
result("pasterAPPRpc", t, res)
}
}
func indexIconRPC(client *rpc.Client, t *testing.T) {
var res map[string][]*model.IndexIcon
arg := &struct{}{}
if err := client.Call(_indexIcon, arg, &res); err != nil {
t.Errorf("err: %v.", err)
} else {
result("indexIconRpc", t, res)
}
}
func playerIconRPC(client *rpc.Client, t *testing.T) {
var res *model.PlayerIcon
arg := &struct{}{}
if err := client.Call(_playerIcon, arg, &res); err != nil {
t.Errorf("err: %v.", err)
} else {
result("playerIconRPC", t, res)
}
}
func cmtboxRPC(client *rpc.Client, t *testing.T) {
var res model.Cmtbox
arg := &model.ArgCmtbox{
ID: 1,
}
if err := client.Call(_cmtbox, arg, &res); err != nil {
t.Errorf("err: %v.", err)
} else {
result("resource", t, res)
}
}
func sideBarsRPC(client *rpc.Client, t *testing.T) {
var res []*model.SideBars
arg := &struct{}{}
if err := client.Call(_sidebars, arg, &res); err != nil {
t.Errorf("err: %v.", err)
} else {
result("sideBars", t, res)
}
}
func abTestRPC(client *rpc.Client, t *testing.T) {
var res map[string]*model.AbTest
arg := &model.ArgAbTest{
Groups: "不显示热门tab,显示热门tab",
IP: "127.0.0.1",
}
if err := client.Call(_abtest, arg, &res); err != nil {
t.Errorf("err: %v.", err)
} else {
result("abTest", t, res)
}
}
func pasterCIDRPC(client *rpc.Client, t *testing.T) {
var res map[int64]int64
arg := &struct{}{}
if err := client.Call(_pasterCID, arg, &res); err != nil {
t.Errorf("err: %v.", err)
} else {
result("pasterCID", t, res)
}
}
func result(name string, t *testing.T, res interface{}) {
fmt.Printf("res : %+v \n", res)
t.Log("[==========" + name + "单元测试结果==========]")
t.Log(res)
t.Log("[↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑]\r\n")
}