bilibili-backup/app/admin/main/reply/service/reply_test.go
2019-04-22 02:59:20 +00:00

119 lines
3.5 KiB
Go

package service
import (
"context"
"encoding/json"
"go-common/app/admin/main/reply/conf"
"go-common/app/admin/main/reply/model"
"testing"
. "github.com/smartystreets/goconvey/convey"
)
func TestReply(t *testing.T) {
c := context.Background()
Convey("reply del and recover", t, WithService(func(s *Service) {
sub, err := s.subject(c, 5464686, 1)
So(err, ShouldBeNil)
rp, err := s.reply(c, 5464686, 894717392)
So(err, ShouldBeNil)
err = s.adminDeleteReply(c, 23, []int64{5464686, 5464686}, []int64{894733824, 894733816}, 0, 1, 0, true, "test", "test", 0, 0)
So(err, ShouldBeNil)
rp2, err := s.reply(c, 5464686, 894733824)
So(err, ShouldBeNil)
So(rp2.State, ShouldEqual, 3)
rp2, err = s.reply(c, 5464686, 894733816)
So(err, ShouldBeNil)
So(rp2.State, ShouldEqual, 3)
rp2, err = s.reply(c, 5464686, 894717392)
So(err, ShouldBeNil)
So((rp2.RCount - rp.RCount), ShouldEqual, -2)
sub2, err := s.subject(c, 5464686, 1)
So(err, ShouldBeNil)
So((sub2.ACount - sub.ACount), ShouldEqual, -2)
err = s.AdminRecoverReply(c, 23, "asd", 5464686, 894733824, 1, "test")
So(err, ShouldBeNil)
err = s.AdminRecoverReply(c, 23, "sad", 5464686, 894733816, 1, "test")
So(err, ShouldBeNil)
rp2, err = s.reply(c, 5464686, 894733824)
So(err, ShouldBeNil)
So(rp2.State, ShouldEqual, 0)
rp2, err = s.reply(c, 5464686, 894733816)
So(err, ShouldBeNil)
So(rp2.State, ShouldEqual, 0)
rp2, err = s.reply(c, 5464686, 894717392)
So(err, ShouldBeNil)
So((rp2.RCount - rp.RCount), ShouldEqual, 0)
sub2, err = s.subject(c, 5464686, 1)
So(err, ShouldBeNil)
So((sub2.ACount - sub.ACount), ShouldEqual, 0)
alog, err := s.dao.AdminLog(c, 894733824)
So(err, ShouldBeNil)
So(alog.State, ShouldEqual, 3)
alog, err = s.dao.AdminLog(c, 894733816)
So(err, ShouldBeNil)
So(alog.State, ShouldEqual, 3)
}))
Convey("reply top", t, WithService(func(s *Service) {
err := s.AddTop(c, 23, "asd", 5464686, 894717392, 1, 1)
So(err, ShouldBeNil)
rp, err := s.reply(c, 5464686, 894717392)
So(err, ShouldBeNil)
So(rp.IsTop(), ShouldBeTrue)
sub, err := s.subject(c, 5464686, 1)
So(err, ShouldBeNil)
So(sub.AttrVal(model.SubAttrTopAdmin), ShouldEqual, model.AttrYes)
err = s.AddTop(c, 23, "asd", 5464686, 894717392, 1, 0)
So(err, ShouldBeNil)
rp, err = s.reply(c, 5464686, 894717392)
So(err, ShouldBeNil)
So(rp.IsTop(), ShouldBeFalse)
sub, err = s.subject(c, 5464686, 1)
So(err, ShouldBeNil)
So(sub.AttrVal(model.SubAttrTopAdmin), ShouldEqual, model.AttrNo)
}))
Convey("reply pass", t, WithService(func(s *Service) {
s.dao.UpdateReplyState(c, 5464686, 894717384, model.StatePending)
err := s.adminPassReply(c, 23, "sds", []int64{5464686}, []int64{894717384}, 1, "test")
So(err, ShouldBeNil)
rp, err := s.reply(c, 5464686, 894717392)
So(err, ShouldBeNil)
So(rp.State, ShouldEqual, model.StateNormal)
}))
}
func TestAddReplyConfig(t *testing.T) {
var (
bs []byte
err error
id int64
typ = int32(1)
oid = int64(1)
adminID = int64(1)
category = int32(1)
operator = string("管理员001")
c = context.Background()
config = &model.Config{}
)
s := New(conf.Conf)
config.Oid = oid
config.Type = typ
config.Category = category
config.AdminID = adminID
config.Operator = operator
configValue := map[string]int64{
"showentry": 0,
"showadmin": 1,
}
if bs, err = json.Marshal(configValue); err == nil {
config.Config = string(bs)
}
if id, err = s.AddReplyConfig(c, config); err != nil {
t.Errorf("d.AddConfig error(%v)", err)
}
t.Logf("d.AddReplyConfig result(%d)", id)
}