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.
159 lines
4.0 KiB
159 lines
4.0 KiB
package dao |
|
|
|
import ( |
|
"context" |
|
"flag" |
|
"fmt" |
|
"os" |
|
"testing" |
|
"time" |
|
|
|
"go-common/app/admin/main/spy/conf" |
|
"go-common/app/admin/main/spy/model" |
|
|
|
. "github.com/smartystreets/goconvey/convey" |
|
) |
|
|
|
var ( |
|
dataMID = int64(15555180) |
|
noDataMID = int64(1) |
|
d *Dao |
|
) |
|
|
|
const ( |
|
_cleanFactorSQL = "delete from spy_factor where nick_name = ? AND service_id = ? AND event_id = ? AND risk_level = ?" |
|
_cleanEventSQL = "delete from spy_event where name = ? AND service_id = ? AND status = ?" |
|
_cleanServiceSQL = "delete from spy_service where name = ? AND status = ?" |
|
_cleanGroupSQL = "delete from spy_factor_group where name = ?" |
|
) |
|
|
|
func CleanMysql() { |
|
ctx := context.Background() |
|
d.db.Exec(ctx, _cleanFactorSQL, "test", 1, 1, 2) |
|
d.db.Exec(ctx, _cleanEventSQL, "test", 1, 1) |
|
d.db.Exec(ctx, _cleanServiceSQL, "test", 1) |
|
d.db.Exec(ctx, _cleanGroupSQL, "test") |
|
} |
|
|
|
func TestMain(m *testing.M) { |
|
if os.Getenv("DEPLOY_ENV") != "" { |
|
flag.Set("app_id", "main.account-law.spy-admin") |
|
flag.Set("conf_token", "bc3d60c2bb2b08a1b690b004a1953d3c") |
|
flag.Set("tree_id", "2857") |
|
flag.Set("conf_version", "docker-1") |
|
flag.Set("deploy_env", "uat") |
|
flag.Set("conf_host", "config.bilibili.co") |
|
flag.Set("conf_path", "/tmp") |
|
flag.Set("region", "sh") |
|
flag.Set("zone", "sh001") |
|
} else { |
|
flag.Set("conf", "../cmd/spy-admin-test.toml") |
|
} |
|
flag.Parse() |
|
if err := conf.Init(); err != nil { |
|
panic(err) |
|
} |
|
d = New(conf.Conf) |
|
CleanMysql() |
|
m.Run() |
|
os.Exit(0) |
|
} |
|
|
|
func WithMysql(f func(d *Dao)) func() { |
|
return func() { |
|
f(d) |
|
} |
|
} |
|
|
|
func Test_Mysql(t *testing.T) { |
|
Convey("get user info", t, WithMysql(func(d *Dao) { |
|
res, err := d.Info(context.TODO(), dataMID) |
|
So(err, ShouldBeNil) |
|
So(res, ShouldNotBeEmpty) |
|
})) |
|
Convey("get user info no data ", t, WithMysql(func(d *Dao) { |
|
res, err := d.Info(context.TODO(), noDataMID) |
|
So(err, ShouldBeNil) |
|
So(res, ShouldNotBeEmpty) |
|
})) |
|
Convey("get event history", t, WithMysql(func(d *Dao) { |
|
hpConf := &model.HisParamReq{ |
|
Mid: 46333, |
|
Ps: 10, |
|
Pn: 1, |
|
} |
|
res, err := d.HistoryPage(context.TODO(), hpConf) |
|
So(err, ShouldBeNil) |
|
So(res, ShouldNotBeEmpty) |
|
})) |
|
Convey("get event history count", t, WithMysql(func(d *Dao) { |
|
hpConf := &model.HisParamReq{ |
|
Mid: 46333, |
|
Ps: 10, |
|
Pn: 1, |
|
} |
|
res, err := d.HistoryPageTotalC(context.TODO(), hpConf) |
|
So(err, ShouldBeNil) |
|
fmt.Printf("history count : %d\n", res) |
|
So(res, ShouldNotBeEmpty) |
|
})) |
|
Convey("get setting list", t, WithMysql(func(d *Dao) { |
|
res, err := d.SettingList(context.TODO()) |
|
So(err, ShouldBeNil) |
|
So(res, ShouldNotBeEmpty) |
|
})) |
|
Convey("update setting", t, WithMysql(func(d *Dao) { |
|
list, err := d.SettingList(context.TODO()) |
|
So(err, ShouldBeNil) |
|
setting := list[0] |
|
res, err := d.UpdateSetting(context.TODO(), setting.Val, setting.Property) |
|
So(err, ShouldBeNil) |
|
fmt.Println(res) |
|
})) |
|
Convey(" add factor ", t, WithMysql(func(d *Dao) { |
|
res, err := d.AddFactor(context.TODO(), &model.Factor{ |
|
NickName: "test", |
|
ServiceID: int64(1), |
|
EventID: int64(1), |
|
GroupID: int64(1), |
|
RiskLevel: int8(2), |
|
FactorVal: float32(1), |
|
CategoryID: int8(1), |
|
CTime: time.Now(), |
|
MTime: time.Now(), |
|
}) |
|
So(err, ShouldBeNil) |
|
So(res == 1, ShouldBeTrue) |
|
})) |
|
Convey(" add event ", t, WithMysql(func(d *Dao) { |
|
res, err := d.AddEvent(context.TODO(), &model.Event{ |
|
Name: "test", |
|
NickName: "nickname", |
|
ServiceID: 1, |
|
Status: 1, |
|
CTime: time.Now(), |
|
MTime: time.Now(), |
|
}) |
|
So(err, ShouldBeNil) |
|
So(res == 1, ShouldBeTrue) |
|
})) |
|
Convey(" add service ", t, WithMysql(func(d *Dao) { |
|
res, err := d.AddService(context.TODO(), &model.Service{ |
|
Name: "test", |
|
NickName: "nickname", |
|
Status: 1, |
|
CTime: time.Now(), |
|
MTime: time.Now(), |
|
}) |
|
So(err, ShouldBeNil) |
|
So(res == 1, ShouldBeTrue) |
|
})) |
|
Convey(" add group ", t, WithMysql(func(d *Dao) { |
|
res, err := d.AddGroup(context.TODO(), &model.FactorGroup{ |
|
Name: "test", |
|
CTime: time.Now(), |
|
}) |
|
So(err, ShouldBeNil) |
|
So(res == 1, ShouldBeTrue) |
|
})) |
|
}
|
|
|