105 lines
2.4 KiB
Go
105 lines
2.4 KiB
Go
package weeklyhonor
|
|
|
|
import (
|
|
"bytes"
|
|
"context"
|
|
"encoding/binary"
|
|
"reflect"
|
|
"testing"
|
|
|
|
"go-common/library/database/hbase.v2"
|
|
|
|
"github.com/bouk/monkey"
|
|
"github.com/smartystreets/goconvey/convey"
|
|
"github.com/tsuna/gohbase/hrpc"
|
|
)
|
|
|
|
func TestWeeklyhonorreverseString(t *testing.T) {
|
|
convey.Convey("reverseString", t, func(ctx convey.C) {
|
|
var (
|
|
s = ""
|
|
)
|
|
ctx.Convey("When everything goes positive", func(ctx convey.C) {
|
|
p1 := reverseString(s)
|
|
ctx.Convey("Then p1 should not be nil.", func(ctx convey.C) {
|
|
ctx.So(p1, convey.ShouldNotBeNil)
|
|
})
|
|
})
|
|
})
|
|
}
|
|
|
|
func TestWeeklyhonorhonorRowKey(t *testing.T) {
|
|
convey.Convey("honorRowKey", t, func(ctx convey.C) {
|
|
var (
|
|
id = int64(0)
|
|
date = ""
|
|
)
|
|
ctx.Convey("When everything goes positive", func(ctx convey.C) {
|
|
p1 := honorRowKey(id, date)
|
|
ctx.Convey("Then p1 should not be nil.", func(ctx convey.C) {
|
|
ctx.So(p1, convey.ShouldNotBeNil)
|
|
})
|
|
})
|
|
})
|
|
}
|
|
|
|
func TestWeeklyhonorHonorStat(t *testing.T) {
|
|
var (
|
|
c = context.Background()
|
|
mid = int64(0)
|
|
date = "20181112"
|
|
val1 int32 = 500
|
|
val2 int32 = -2
|
|
cs = getMockCells(val1, val2)
|
|
)
|
|
guard := monkey.PatchInstanceMethod(reflect.TypeOf(d.hbase), "GetStr", func(_ *hbase.Client, _ context.Context, _, _ string, _ ...func(hrpc.Call) error) (*hrpc.Result, error) {
|
|
res := &hrpc.Result{
|
|
Cells: cs,
|
|
}
|
|
return res, nil
|
|
})
|
|
defer guard.Unpatch()
|
|
convey.Convey("honorStat", t, func() {
|
|
stat, err := d.HonorStat(c, mid, date)
|
|
convey.So(err, convey.ShouldBeNil)
|
|
convey.So(stat, convey.ShouldNotBeNil)
|
|
convey.So(stat.Play, convey.ShouldEqual, val1)
|
|
convey.So(stat.FansInc, convey.ShouldEqual, val2)
|
|
convey.So(stat.Rank0, convey.ShouldEqual, val1)
|
|
})
|
|
}
|
|
|
|
func getMockCells(v1, v2 int32) []*hrpc.Cell {
|
|
s1 := make([]byte, 0)
|
|
buf1 := bytes.NewBuffer(s1)
|
|
s2 := make([]byte, 0)
|
|
buf2 := bytes.NewBuffer(s2)
|
|
|
|
binary.Write(buf1, binary.BigEndian, v1)
|
|
binary.Write(buf2, binary.BigEndian, v2)
|
|
cells := []*hrpc.Cell{
|
|
{
|
|
Qualifier: []byte("play"),
|
|
Value: buf1.Bytes(),
|
|
Family: []byte("f"),
|
|
},
|
|
{
|
|
Qualifier: []byte("play_last_w"),
|
|
Value: buf1.Bytes(),
|
|
Family: []byte("f"),
|
|
},
|
|
{
|
|
Qualifier: []byte("fans_inc"),
|
|
Value: buf2.Bytes(),
|
|
Family: []byte("f"),
|
|
},
|
|
{
|
|
Qualifier: []byte("rank0"),
|
|
Value: buf1.Bytes(),
|
|
Family: []byte("r"),
|
|
},
|
|
}
|
|
|
|
return cells
|
|
}
|