You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
2.4 KiB
104 lines
2.4 KiB
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 |
|
}
|
|
|