bilibili-backup/app/service/main/account/dao/mc_test.go
2019-04-22 02:59:20 +00:00

398 lines
9.8 KiB
Go

package dao
import (
"context"
"testing"
"go-common/app/service/main/account/model"
mc "go-common/library/cache/memcache"
"github.com/smartystreets/goconvey/convey"
)
func TestDaokeyInfo(t *testing.T) {
var (
mid = int64(2205)
)
convey.Convey("Generate info-key", t, func(ctx convey.C) {
p1 := keyInfo(mid)
ctx.Convey("Then info-key should contains info prefix.", func(ctx convey.C) {
ctx.So(p1, convey.ShouldContainSubstring, _prefixInfo)
})
})
}
func TestDaokeyCard(t *testing.T) {
var (
mid = int64(2205)
)
convey.Convey("Generate card-info-key", t, func(ctx convey.C) {
p1 := keyCard(mid)
ctx.Convey("Then card-info-key should contains card prefix.", func(ctx convey.C) {
ctx.So(p1, convey.ShouldContainSubstring, _prefixCard)
})
})
}
func TestDaokeyVip(t *testing.T) {
var (
mid = int64(2205)
)
convey.Convey("Generate vip-info-key", t, func(ctx convey.C) {
p1 := keyVip(mid)
ctx.Convey("Then vip-info-key should contains vip prefix.", func(ctx convey.C) {
ctx.So(p1, convey.ShouldContainSubstring, _prefixVip)
})
})
}
func TestDaokeyProfile(t *testing.T) {
var (
mid = int64(2205)
)
convey.Convey("Generate profile-key", t, func(ctx convey.C) {
p1 := keyProfile(mid)
ctx.Convey("Then profile-key should contains profile prefix.", func(ctx convey.C) {
ctx.So(p1, convey.ShouldContainSubstring, _prefixProfile)
})
})
}
func TestDaoCacheInfo(t *testing.T) {
var (
c = context.TODO()
mid = int64(2205)
)
convey.Convey("Get member base-info from cache", t, func(ctx convey.C) {
_, err := d.CacheInfo(c, mid)
ctx.Convey("Then err should be nil.", func(ctx convey.C) {
ctx.So(err, convey.ShouldBeNil)
})
})
}
func TestDaoAddCacheInfo(t *testing.T) {
var (
c = context.TODO()
mid = int64(2205)
v = &model.Info{
Mid: 2205,
Name: "Haha",
Sex: "男",
Face: "http://i1.hdslb.com/bfs/face/4b12a3e65d344e31a11e6425767863019738c7bc.jpg",
Sign: "来电只是",
Rank: 500,
}
)
convey.Convey("Add member base-info to cache", t, func(ctx convey.C) {
err := d.AddCacheInfo(c, mid, v)
ctx.Convey("Then err should be nil.", func(ctx convey.C) {
ctx.So(err, convey.ShouldBeNil)
})
})
}
func TestDaoCacheInfos(t *testing.T) {
var (
c = context.TODO()
mids = []int64{2205, 2805}
)
convey.Convey("Batch get members' base-info", t, func(ctx convey.C) {
res, err := d.CacheInfos(c, mids)
ctx.Convey("Then err should be nil.", func(ctx convey.C) {
ctx.So(err, convey.ShouldBeNil)
ctx.So(res, convey.ShouldNotBeNil)
})
})
}
func TestDaoAddCacheInfos(t *testing.T) {
var (
c = context.TODO()
im = map[int64]*model.Info{
2205: {
Mid: 2205,
Name: "板桥真菜",
Sex: "2",
Face: "/bfs/face/e93098c3aa8c18b24001740e707ebe2df180f5f7.jpg",
Sign: "没有",
Rank: 10000,
},
3305: {
Mid: 3305,
Name: "FGNB",
Sex: "1",
Face: "/bfs/face/e93098c3aa8c18b24001740e707ebe2df180f5f7.jpg",
Sign: "啦啦",
Rank: 5000,
},
}
)
convey.Convey("Batch set members' base-info to cache", t, func(ctx convey.C) {
err := d.AddCacheInfos(c, im)
ctx.Convey("Then err should be nil.", func(ctx convey.C) {
ctx.So(err, convey.ShouldBeNil)
})
})
}
func TestDaoCacheCard(t *testing.T) {
var (
c = context.TODO()
mid = int64(2805)
)
convey.Convey("Get card-info from cache", t, func(ctx convey.C) {
_, err := d.CacheCard(c, mid)
ctx.Convey("Then err should be nil.", func(ctx convey.C) {
ctx.So(err, convey.ShouldBeNil)
})
})
}
func TestDaoAddCacheCard(t *testing.T) {
var (
c = context.TODO()
mid = int64(2805)
v = &model.Card{
Mid: 10920044,
Name: "冠冠爱看书",
Sex: "男",
Face: "http://i1.hdslb.com/bfs/face/4b12a3e65d344e31a11e6425767863019738c7bc.jpg",
Sign: "来点字",
Rank: 10000,
Level: 5, //等级
Silence: 0,
Vip: model.VipInfo{
Type: 2,
Status: 1,
DueDate: 162930240,
},
Pendant: model.PendantInfo{
Pid: 159,
Name: "2018拜年祭",
Image: "http://i2.hdslb.com/bfs/face/aace621fa64a698f2ca94d13645a26e9a7a99ed2.png",
Expire: 1566367231,
},
Nameplate: model.NameplateInfo{
Nid: 7,
Name: "见习搬运工",
Image: "http://i1.hdslb.com/bfs/face/8478fb7c54026cd47f09daa493a1b1683113a90d.png",
ImageSmall: "http://i0.hdslb.com/bfs/face/50eef47c3a30a75659d3cc298cfb09031d1a2ce5.png",
Level: "普通勋章",
Condition: "转载视频",
},
}
)
convey.Convey("Add card-info to cache", t, func(ctx convey.C) {
err := d.AddCacheCard(c, mid, v)
ctx.Convey("Then err should be nil.", func(ctx convey.C) {
ctx.So(err, convey.ShouldBeNil)
})
})
}
func TestDaoCacheCards(t *testing.T) {
var (
c = context.TODO()
mids = []int64{110017381, 110019061, 110020081}
)
convey.Convey("Batch get card-info from cache", t, func(ctx convey.C) {
res, err := d.CacheCards(c, mids)
ctx.Convey("Then err should be nil and res should not be nil.", func(ctx convey.C) {
ctx.So(err, convey.ShouldBeNil)
ctx.So(res, convey.ShouldNotBeNil)
})
})
}
func TestDaoAddCacheCards(t *testing.T) {
var (
c = context.TODO()
card1 = &model.Card{
Mid: 10920044,
Name: "冠冠爱看书",
Sex: "男",
Face: "http://i1.hdslb.com/bfs/face/4b12a3e65d344e31a11e6425767863019738c7bc.jpg",
Sign: "来点字",
Rank: 10000,
Level: 5, //等级
Silence: 0,
Vip: model.VipInfo{
Type: 2,
Status: 1,
DueDate: 162930240,
},
Pendant: model.PendantInfo{
Pid: 159,
Name: "2018拜年祭",
Image: "http://i2.hdslb.com/bfs/face/aace621fa64a698f2ca94d13645a26e9a7a99ed2.png",
Expire: 1566367231,
},
Nameplate: model.NameplateInfo{
Nid: 7,
Name: "见习搬运工",
Image: "http://i1.hdslb.com/bfs/face/8478fb7c54026cd47f09daa493a1b1683113a90d.png",
ImageSmall: "http://i0.hdslb.com/bfs/face/50eef47c3a30a75659d3cc298cfb09031d1a2ce5.png",
Level: "普通勋章",
Condition: "转载视频",
},
}
cm = map[int64]*model.Card{
card1.Mid: card1,
}
)
convey.Convey("Batch set card-info to cache", t, func(ctx convey.C) {
err := d.AddCacheCards(c, cm)
ctx.Convey("Then err should be nil.", func(ctx convey.C) {
ctx.So(err, convey.ShouldBeNil)
})
})
}
func TestDaoCacheVip(t *testing.T) {
var (
c = context.TODO()
mid = int64(110003731)
)
convey.Convey("Get vip-info from cache", t, func(ctx convey.C) {
_, err := d.CacheVip(c, mid)
ctx.Convey("Then err should be nil.", func(ctx convey.C) {
ctx.So(err, convey.ShouldBeNil)
})
})
}
func TestDaoAddCacheVip(t *testing.T) {
var (
c = context.TODO()
mid = int64(110003731)
v = &model.VipInfo{
Type: 2,
Status: 1,
DueDate: 162930240,
}
)
convey.Convey("Set vip-cache to cache", t, func(ctx convey.C) {
err := d.AddCacheVip(c, mid, v)
ctx.Convey("Then err should be nil.", func(ctx convey.C) {
ctx.So(err, convey.ShouldBeNil)
})
})
}
func TestDaoCacheVips(t *testing.T) {
var (
c = context.TODO()
mids = []int64{110002741, 110004601, 110006251}
)
convey.Convey("Batch get vip-infos from cache", t, func(ctx convey.C) {
res, err := d.CacheVips(c, mids)
ctx.Convey("Then err should be nil.", func(ctx convey.C) {
ctx.So(err, convey.ShouldBeNil)
ctx.So(res, convey.ShouldNotBeNil)
})
})
}
func TestDaoAddCacheVips(t *testing.T) {
var (
c = context.TODO()
vm = map[int64]*model.VipInfo{
110007391: {
Type: 2,
Status: 1,
DueDate: 162930240,
},
110010271: {
Type: 2,
Status: 1,
DueDate: 162930240,
},
}
)
convey.Convey("Batch set vip-infos to cache", t, func(ctx convey.C) {
err := d.AddCacheVips(c, vm)
ctx.Convey("Then err should be nil.", func(ctx convey.C) {
ctx.So(err, convey.ShouldBeNil)
})
})
}
func TestDaoCacheProfile(t *testing.T) {
var (
c = context.TODO()
mid = int64(110011831)
)
convey.Convey("Get profile-info from cache", t, func(ctx convey.C) {
_, err := d.CacheProfile(c, mid)
ctx.Convey("Then err should be nil.", func(ctx convey.C) {
ctx.So(err, convey.ShouldBeNil)
})
})
}
func TestDaoAddCacheProfile(t *testing.T) {
var (
c = context.TODO()
mid = int64(110011951)
v = &model.Profile{
Mid: 10920044,
Name: "冠冠爱看书",
Sex: "男",
Face: "http://i1.hdslb.com/bfs/face/4b12a3e65d344e31a11e6425767863019738c7bc.jpg",
Sign: "来点字",
Rank: 10000,
Level: 5,
JoinTime: 1503296503,
Moral: 71,
Silence: 0,
EmailStatus: 1,
TelStatus: 1,
Identification: 0,
Vip: model.VipInfo{
Type: 2,
Status: 1,
DueDate: 1629302400000,
},
Pendant: model.PendantInfo{
Pid: 159,
Name: "2018拜年祭",
Image: "http://i2.hdslb.com/bfs/face/aace621fa64a698f2ca94d13645a26e9a7a99ed2.png",
Expire: 1551413548,
},
Nameplate: model.NameplateInfo{
Nid: 7,
Name: "见习搬运工",
Image: "http://i1.hdslb.com/bfs/face/8478fb7c54026cd47f09daa493a1b1683113a90d.png",
ImageSmall: "http://i0.hdslb.com/bfs/face/50eef47c3a30a75659d3cc298cfb09031d1a2ce5.png",
Level: "普通勋章",
Condition: "转载视频投稿通过总数>=10",
},
}
)
convey.Convey("Set profile-info to cache", t, func(ctx convey.C) {
err := d.AddCacheProfile(c, mid, v)
ctx.Convey("Then err should be nil.", func(ctx convey.C) {
ctx.So(err, convey.ShouldBeNil)
})
})
}
func TestDaoDelCache(t *testing.T) {
var (
c = context.TODO()
mid = int64(110014081)
)
convey.Convey("Delete member's cache", t, func(ctx convey.C) {
errs := d.DelCache(c, mid)
ctx.Convey("Then err should be nil.", func(ctx convey.C) {
for _, e := range errs {
if e != mc.ErrNotFound {
ctx.So(e, convey.ShouldBeNil)
}
}
})
})
}