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.
144 lines
4.7 KiB
144 lines
4.7 KiB
package dao |
|
|
|
import ( |
|
"context" |
|
"net/http" |
|
"testing" |
|
|
|
"github.com/smartystreets/goconvey/convey" |
|
|
|
"gopkg.in/h2non/gock.v1" |
|
) |
|
|
|
func TestDaoParseUTFiles(t *testing.T) { |
|
convey.Convey("ParseUTFiles", t, func(ctx convey.C) { |
|
var ( |
|
c = context.Background() |
|
url = "http://uat-i0.hdslb.com/bfs/test/03af5d0707e4c6ec41a3eb797c8e9897f124515c.html" |
|
) |
|
gock.Off() |
|
d.client.SetTransport(http.DefaultClient.Transport) |
|
ctx.Convey("When everything goes positive", func(ctx convey.C) { |
|
pkgs, err := d.ParseUTFiles(c, url) |
|
//t.Logf("the pkg[0] is PKG: %s, Coverage: %v, HTMLURL: %s", pkgs[0].PKG, pkgs[0].Coverage, pkgs[0].HTMLURL) |
|
ctx.Convey("Then err should be nil.pkgs should not be nil.", func(ctx convey.C) { |
|
ctx.So(pkgs, convey.ShouldNotBeNil) |
|
ctx.So(err, convey.ShouldBeNil) |
|
}) |
|
}) |
|
}) |
|
} |
|
|
|
func TestDaoGitCommitInfo(t *testing.T) { |
|
convey.Convey("GitCommitInfo", t, func(ctx convey.C) { |
|
var ( |
|
c = context.Background() |
|
commitID = "ae1377033a11ca85a19bca365af32a5b0ebea31c" |
|
) |
|
gock.Off() |
|
d.client.SetTransport(http.DefaultClient.Transport) |
|
ctx.Convey("When everything goes positive", func(ctx convey.C) { |
|
commit, err := d.GitLabCommits(c, commitID) |
|
ctx.Convey("Then err should be nil. gitcommit should not be nil.", func(ctx convey.C) { |
|
ctx.So(err, convey.ShouldBeNil) |
|
ctx.So(commit, convey.ShouldNotBeNil) |
|
}) |
|
}) |
|
}) |
|
} |
|
|
|
func TestDaoSendWechatToUsers(t *testing.T) { |
|
convey.Convey("SendWechatToUsers", t, func(ctx convey.C) { |
|
var ( |
|
c = context.Background() |
|
users = []string{"zhaobingqing"} |
|
msg = "给你我的小心心❤" |
|
) |
|
d.client.SetTransport(gock.DefaultTransport) |
|
ctx.Convey("When everything gose postive", func(ctx convey.C) { |
|
httpMock("POST", _sagaWechatURL+"/message/send").Reply(200).JSON(`{"code":0,"message":"0"}`) |
|
err := d.SendWechatToUsers(c, users, msg) |
|
ctx.Convey("Then err should be nil", func(ctx convey.C) { |
|
ctx.So(err, convey.ShouldBeNil) |
|
}) |
|
}) |
|
ctx.Convey("When http status != 200", func(ctx convey.C) { |
|
httpMock("POST", _sagaWechatURL+"/message/send").Reply(404) |
|
err := d.SendWechatToUsers(c, users, msg) |
|
ctx.Convey("Then err should not be nil", func(ctx convey.C) { |
|
ctx.So(err, convey.ShouldNotBeNil) |
|
}) |
|
}) |
|
ctx.Convey("When http response code != 0", func(ctx convey.C) { |
|
httpMock("POST", _sagaWechatURL+"/message/send").Reply(200).JSON(`{"code":-401,"message":"0"}`) |
|
err := d.SendWechatToUsers(c, users, msg) |
|
ctx.Convey("Then err should not be nil", func(ctx convey.C) { |
|
ctx.So(err, convey.ShouldNotBeNil) |
|
}) |
|
}) |
|
ctx.Reset(func() { |
|
gock.Off() |
|
d.client.SetTransport(http.DefaultClient.Transport) |
|
}) |
|
}) |
|
} |
|
|
|
func TestDaoSendWechatToGroup(t *testing.T) { |
|
convey.Convey("SendWechatToGroup", t, func(ctx convey.C) { |
|
var ( |
|
msg = "信息测试~@002157" |
|
c = context.Background() |
|
) |
|
d.client.SetTransport(gock.DefaultTransport) |
|
ctx.Convey("When everything gose postive", func(ctx convey.C) { |
|
httpMock("POST", _sagaWechatURL+"/appchat/send").Reply(200).JSON(`{"code":0,"message":"0"}`) |
|
err := d.SendWechatToGroup(c, d.c.WeChat.ChatID, msg) |
|
ctx.Convey("Then err should be nil", func(ctx convey.C) { |
|
ctx.So(err, convey.ShouldBeNil) |
|
}) |
|
}) |
|
ctx.Convey("When http status != 200", func(ctx convey.C) { |
|
httpMock("POST", _sagaWechatURL+"/appchat/send").Reply(404) |
|
err := d.SendWechatToGroup(c, d.c.WeChat.ChatID, msg) |
|
ctx.Convey("Then err should not be nil", func(ctx convey.C) { |
|
ctx.So(err, convey.ShouldNotBeNil) |
|
}) |
|
}) |
|
ctx.Convey("When http response code != 0", func(ctx convey.C) { |
|
httpMock("POST", _sagaWechatURL+"/appchat/send").Reply(200).JSON(`{"code":-401,"message":"0"}`) |
|
err := d.SendWechatToGroup(c, d.c.WeChat.ChatID, msg) |
|
ctx.Convey("Then err should not be nil", func(ctx convey.C) { |
|
ctx.So(err, convey.ShouldNotBeNil) |
|
}) |
|
}) |
|
ctx.Reset(func() { |
|
gock.Off() |
|
d.client.SetTransport(http.DefaultClient.Transport) |
|
}) |
|
}) |
|
} |
|
|
|
func TestDaoGetCoverage(t *testing.T) { |
|
convey.Convey("GetCoverage", t, func(ctx convey.C) { |
|
var ( |
|
c = context.Background() |
|
commitID = "8d2f1b49661c7089e2b595eafff326033a138c23" |
|
pkg = "go-common/app/admin/main/apm" |
|
) |
|
ctx.Convey("When everything goes positive", func(ctx convey.C) { |
|
cov, err := d.GetCoverage(c, commitID, pkg) |
|
ctx.Convey("Then err should be nil.cov should not be nil.", func(ctx convey.C) { |
|
// t.Logf("the cov of %s is %.2f", pkg, cov) |
|
ctx.So(cov, convey.ShouldNotBeNil) |
|
ctx.So(err, convey.ShouldBeNil) |
|
}) |
|
}) |
|
ctx.Convey("When the pkg is empty string", func(ctx convey.C) { |
|
pkg = "" |
|
_, err := d.GetCoverage(c, commitID, pkg) |
|
ctx.Convey("Then err should not be nil.", func(ctx convey.C) { |
|
ctx.So(err, convey.ShouldNotBeNil) |
|
}) |
|
}) |
|
}) |
|
}
|
|
|