123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- package weeklyhonor
- import (
- "context"
- "flag"
- "fmt"
- "path/filepath"
- "reflect"
- "testing"
- "time"
- "go-common/app/interface/main/creative/conf"
- upDao "go-common/app/interface/main/creative/dao/up"
- honDao "go-common/app/interface/main/creative/dao/weeklyhonor"
- honmdl "go-common/app/interface/main/creative/model/weeklyhonor"
- "go-common/app/interface/main/creative/service"
- upmdl "go-common/app/service/main/up/model"
- xtime "go-common/library/time"
- "github.com/bouk/monkey"
- "github.com/smartystreets/goconvey/convey"
- )
- var (
- s *Service
- )
- func init() {
- dir, _ := filepath.Abs("../../cmd/creative.toml")
- flag.Set("conf", dir)
- err := conf.Init()
- if err != nil {
- fmt.Printf("conf.Init() error(%v)", err)
- }
- rpcdaos := service.NewRPCDaos(conf.Conf)
- s = New(conf.Conf, rpcdaos)
- }
- func WithService(f func(s *Service)) func() {
- return func() {
- convey.Reset(func() {})
- f(s)
- }
- }
- func TestService_WeeklyHonor(t *testing.T) {
- var (
- mid int64 = 1
- uid int64 = 2
- token = s.genToken(2)
- mockStat = honmdl.HonorStat{
- Play: 100,
- PlayLastW: 100,
- Fans: 100,
- FansInc: 2000,
- CoinInc: 2000,
- Rank3: 50,
- }
- mockHls = map[int]*honmdl.HonorLog{
- 12: {
- ID: 1,
- MID: uid,
- HID: 12,
- Count: 1,
- MTime: xtime.Time(time.Now().AddDate(0, 0, -5).Unix()),
- },
- 23: {
- ID: 1,
- MID: uid,
- HID: 12,
- Count: 1,
- MTime: xtime.Time(honmdl.LatestSunday().Add(time.Hour).Unix()),
- },
- }
- )
- convey.Convey("test", t, WithService(func(s *Service) {
- // mock
- s.c.HonorDegradeSwitch = false
- monkey.PatchInstanceMethod(reflect.TypeOf(s.up), "UpInfo", func(_ *upDao.Dao, _ context.Context, _ int64, _ int, _ string) (*upmdl.UpInfo, error) {
- return &upmdl.UpInfo{IsAuthor: 1}, nil
- })
- monkey.PatchInstanceMethod(reflect.TypeOf(s.honDao), "StatMC", func(_ *honDao.Dao, _ context.Context, _ int64, _ string) (*honmdl.HonorStat, error) {
- return &mockStat, nil
- })
- monkey.PatchInstanceMethod(reflect.TypeOf(s.honDao), "HonorMC", func(_ *honDao.Dao, _ context.Context, _ int64, _ string) (*honmdl.HonorLog, error) {
- return nil, nil
- })
- monkey.PatchInstanceMethod(reflect.TypeOf(s.honDao), "HonorLogs", func(_ *honDao.Dao, _ context.Context, _ int64) (map[int]*honmdl.HonorLog, error) {
- return mockHls, nil
- })
- defer monkey.UnpatchAll()
- // test guest visit
- honor, err := s.WeeklyHonor(context.Background(), mid, uid, token)
- convey.ShouldBeNil(err)
- convey.So(honor.HID, convey.ShouldEqual, 20)
- convey.So(honor.SubState, convey.ShouldEqual, 0)
- // test up visit
- monkey.PatchInstanceMethod(reflect.TypeOf(s.honDao), "GetUpSwitch", func(_ *honDao.Dao, _ context.Context, _ int64) (uint8, error) {
- return 1, nil
- })
- honor, err = s.WeeklyHonor(context.Background(), uid, uid, token)
- convey.ShouldBeNil(err)
- convey.So(honor.HID, convey.ShouldEqual, 20)
- convey.So(honor.SubState, convey.ShouldEqual, 1)
- }))
- }
|