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.
136 lines
4.1 KiB
136 lines
4.1 KiB
package service |
|
|
|
import ( |
|
"context" |
|
"testing" |
|
|
|
artmdl "go-common/app/interface/openplatform/article/model" |
|
xtime "go-common/library/time" |
|
|
|
. "github.com/smartystreets/goconvey/convey" |
|
) |
|
|
|
func Test_Article(t *testing.T) { |
|
Convey("get data", t, WithService(func(s *Service) { |
|
res, err := s.Article(context.TODO(), dataID) |
|
So(err, ShouldBeNil) |
|
So(res, ShouldNotBeNil) |
|
So(res, ShouldNotBeEmpty) |
|
})) |
|
Convey("no data", t, WithService(func(s *Service) { |
|
res, err := s.Article(context.TODO(), noDataID) |
|
So(err, ShouldBeNil) |
|
So(res, ShouldBeNil) |
|
})) |
|
Convey("ArticleRemainCount", t, WithService(func(s *Service) { |
|
_, err := s.ArticleRemainCount(context.TODO(), art.Author.Mid) |
|
So(err, ShouldBeNil) |
|
})) |
|
} |
|
|
|
func Test_ArticleMetas(t *testing.T) { |
|
Convey("get data", t, WithService(func(s *Service) { |
|
res, err := s.ArticleMetas(context.TODO(), []int64{dataID}) |
|
So(err, ShouldBeNil) |
|
So(res, ShouldNotBeNil) |
|
So(res, ShouldNotBeEmpty) |
|
})) |
|
Convey("no data", t, WithService(func(s *Service) { |
|
res, err := s.ArticleMetas(context.TODO(), []int64{noDataID}) |
|
So(err, ShouldBeNil) |
|
So(res, ShouldBeEmpty) |
|
})) |
|
} |
|
|
|
func Test_AddArticleCache(t *testing.T) { |
|
Convey("add data", t, WithService(func(s *Service) { |
|
var c = context.TODO() |
|
err := s.AddArticleCache(context.TODO(), dataID) |
|
So(err, ShouldBeNil) |
|
|
|
Convey("del cache", func() { |
|
err := s.DelArticleCache(c, 175, dataID) |
|
So(err, ShouldBeNil) |
|
Convey("delete twice return null", func() { |
|
err := s.DelArticleCache(c, 175, dataID) |
|
So(err, ShouldBeNil) |
|
}) |
|
}) |
|
})) |
|
} |
|
|
|
func Test_FilterNoDistributeArts(t *testing.T) { |
|
a1 := artmdl.Meta{ID: 1} |
|
a2 := artmdl.Meta{ID: 2} |
|
a3 := artmdl.Meta{ID: 3} |
|
a2.AttrSet(int32(1), artmdl.AttrBitNoDistribute) |
|
|
|
Convey("array work", t, WithService(func(s *Service) { |
|
res := filterNoDistributeArts([]*artmdl.Meta{&a1, &a2, &a3}) |
|
So(res, ShouldResemble, []*artmdl.Meta{&a1, &a3}) |
|
})) |
|
|
|
Convey("map work", t, WithService(func(s *Service) { |
|
arg := map[int64]*artmdl.Meta{1: &a1, 2: &a2, 3: &a3} |
|
res := map[int64]*artmdl.Meta{1: &a1, 3: &a3} |
|
filterNoDistributeArtsMap(arg) |
|
So(res, ShouldResemble, res) |
|
})) |
|
} |
|
|
|
func Test_fmtMoreArts(t *testing.T) { |
|
a1 := &artmdl.Meta{ID: 1, PublishTime: xtime.Time(1)} |
|
a2 := &artmdl.Meta{ID: 2, PublishTime: xtime.Time(2)} |
|
a3 := &artmdl.Meta{ID: 3, PublishTime: xtime.Time(3)} |
|
a4 := &artmdl.Meta{ID: 4, PublishTime: xtime.Time(4)} |
|
a5 := &artmdl.Meta{ID: 5, PublishTime: xtime.Time(5)} |
|
m := map[int64]*artmdl.Meta{1: a1, 2: a2, 3: a3, 4: a4, 5: a5} |
|
Convey("position: x5432", t, func() { |
|
res := fmtMoreArts([]int64{2, 3, 4, 5}, []int64{}, m) |
|
So(res, ShouldResemble, []*artmdl.Meta{a5, a4, a3, a2}) |
|
}) |
|
Convey("position: x32", t, func() { |
|
res := fmtMoreArts([]int64{2, 3}, []int64{}, m) |
|
So(res, ShouldResemble, []*artmdl.Meta{a3, a2}) |
|
}) |
|
Convey("position: 54x321", t, func() { |
|
res := fmtMoreArts([]int64{3, 2, 1}, []int64{5, 4}, m) |
|
So(res, ShouldResemble, []*artmdl.Meta{a4, a3, a2, a1}) |
|
}) |
|
Convey("position: 5432x1", t, func() { |
|
res := fmtMoreArts([]int64{1}, []int64{5, 4, 3, 2}, m) |
|
So(res, ShouldResemble, []*artmdl.Meta{a4, a3, a2, a1}) |
|
}) |
|
Convey("position: 4321x", t, func() { |
|
res := fmtMoreArts([]int64{}, []int64{4, 3, 2, 1}, m) |
|
So(res, ShouldResemble, []*artmdl.Meta{a4, a3, a2, a1}) |
|
}) |
|
Convey("position: 2x1", t, func() { |
|
res := fmtMoreArts([]int64{1}, []int64{2}, m) |
|
So(res, ShouldResemble, []*artmdl.Meta{a2, a1}) |
|
}) |
|
} |
|
|
|
func Test_splitAids(t *testing.T) { |
|
aids := []int64{4, 3, 2, 1} |
|
Convey("position: 4", t, func() { |
|
before, after := splitAids(aids, 4) |
|
So(after, ShouldResemble, []int64{}) |
|
So(before, ShouldResemble, []int64{3, 2, 1}) |
|
}) |
|
Convey("position: 3", t, func() { |
|
before, after := splitAids(aids, 3) |
|
So(after, ShouldResemble, []int64{4}) |
|
So(before, ShouldResemble, []int64{2, 1}) |
|
}) |
|
Convey("position: 2", t, func() { |
|
before, after := splitAids(aids, 2) |
|
So(after, ShouldResemble, []int64{4, 3}) |
|
So(before, ShouldResemble, []int64{1}) |
|
}) |
|
Convey("position: 1", t, func() { |
|
before, after := splitAids(aids, 1) |
|
So(after, ShouldResemble, []int64{4, 3, 2}) |
|
So(before, ShouldResemble, []int64{}) |
|
}) |
|
}
|
|
|