225 lines
5.4 KiB
Go
225 lines
5.4 KiB
Go
package dao
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"strconv"
|
|
"testing"
|
|
"time"
|
|
|
|
"go-common/app/service/main/push/model"
|
|
xtime "go-common/library/time"
|
|
|
|
. "github.com/smartystreets/goconvey/convey"
|
|
)
|
|
|
|
func Test_Task(t *testing.T) {
|
|
Convey("add task", t, WithDao(func(d *Dao) {
|
|
t := &model.Task{
|
|
Job: 1378138219873,
|
|
Type: model.TaskTypeBusiness,
|
|
APPID: 1,
|
|
BusinessID: 1,
|
|
Platform: []int{1, 2, 3},
|
|
Title: "test_tile",
|
|
Summary: "test_summary",
|
|
LinkType: model.LinkTypeBrowser,
|
|
LinkValue: "https://www.bilibili.com",
|
|
Build: map[int]*model.Build{2: {Build: 100, Condition: "gt"}},
|
|
Sound: 1,
|
|
Vibration: 1,
|
|
PassThrough: 1,
|
|
Progress: new(model.Progress),
|
|
MidFile: "xxx.txt",
|
|
PushTime: xtime.Time(1500000000),
|
|
ExpireTime: xtime.Time(1600000000),
|
|
Status: model.TaskStatusPrepared,
|
|
}
|
|
c := context.Background()
|
|
taskID, err := d.AddTask(c, t)
|
|
taskIDString := strconv.FormatInt(taskID, 10)
|
|
So(err, ShouldBeNil)
|
|
|
|
Convey("task info", func() {
|
|
task, err := d.Task(c, taskIDString)
|
|
So(err, ShouldBeNil)
|
|
task.ID = ""
|
|
So(task, ShouldResemble, t)
|
|
})
|
|
|
|
Convey("update task progress", func() {
|
|
p := &model.Progress{TokenTotal: 100}
|
|
err := d.UpdateTaskProgress(c, taskIDString, p)
|
|
So(err, ShouldBeNil)
|
|
|
|
task, err := d.Task(c, taskIDString)
|
|
So(err, ShouldBeNil)
|
|
So(task, ShouldNotBeEmpty)
|
|
So(task.Progress.TokenTotal, ShouldEqual, 100)
|
|
})
|
|
|
|
Convey("update task status", func() {
|
|
err := d.UpdateTaskStatus(c, taskIDString, model.TaskStatusDone)
|
|
So(err, ShouldBeNil)
|
|
|
|
task, err := d.Task(c, taskIDString)
|
|
So(err, ShouldBeNil)
|
|
So(task, ShouldNotBeEmpty)
|
|
So(task.Status, ShouldEqual, model.TaskStatusDone)
|
|
})
|
|
|
|
Convey("tx tokens by platform", func() {
|
|
tx, _ := d.BeginTx(context.Background())
|
|
_, err := d.TxTaskByPlatform(tx, model.PlatformIPad)
|
|
So(err, ShouldBeNil)
|
|
err = tx.Commit()
|
|
So(err, ShouldBeNil)
|
|
})
|
|
}))
|
|
}
|
|
|
|
func Test_Business(t *testing.T) {
|
|
Convey("get businesses", t, WithDao(func(d *Dao) {
|
|
res, err := d.Businesses(context.Background())
|
|
So(err, ShouldBeNil)
|
|
So(res, ShouldNotBeEmpty)
|
|
fmt.Println(res[1])
|
|
}))
|
|
}
|
|
|
|
func Test_Setting(t *testing.T) {
|
|
Convey("setting", t, WithDao(func(d *Dao) {
|
|
c := context.Background()
|
|
mid := int64(910819)
|
|
|
|
err := d.SetSetting(c, mid, model.Settings)
|
|
So(err, ShouldBeNil)
|
|
|
|
res, err := d.Setting(c, mid)
|
|
So(err, ShouldBeNil)
|
|
So(res, ShouldResemble, model.Settings)
|
|
}))
|
|
}
|
|
|
|
func Test_Report(t *testing.T) {
|
|
r := &model.Report{
|
|
APPID: model.APPIDBBPhone,
|
|
PlatformID: model.PlatformIPhone,
|
|
Mid: 910819,
|
|
Buvid: "b",
|
|
DeviceToken: strconv.FormatInt(time.Now().UnixNano(), 10),
|
|
Build: 2233,
|
|
TimeZone: 8,
|
|
NotifySwitch: model.SwitchOn,
|
|
DeviceBrand: "OPPO",
|
|
DeviceModel: "OPPO R9st",
|
|
OSVersion: "6.0.1",
|
|
}
|
|
c := context.Background()
|
|
Convey("report", t, WithDao(func(d *Dao) {
|
|
|
|
id, err := d.AddReport(c, r)
|
|
So(err, ShouldBeNil)
|
|
r.ID = id
|
|
|
|
rt, err := d.Report(c, r.DeviceToken)
|
|
So(err, ShouldBeNil)
|
|
So(rt, ShouldResemble, r)
|
|
|
|
_, err = d.ReportsByMid(c, r.Mid)
|
|
So(err, ShouldBeNil)
|
|
|
|
_, err = d.ReportsByMids(c, []int64{r.Mid})
|
|
So(err, ShouldBeNil)
|
|
|
|
rows, err := d.DelReport(c, r.DeviceToken)
|
|
So(err, ShouldBeNil)
|
|
So(rows, ShouldBeGreaterThan, 0)
|
|
|
|
res, err := d.ReportsByID(context.TODO(), []int64{1, 2, 3})
|
|
So(err, ShouldBeNil)
|
|
// t.Logf("ReportsByID res(%v)", res)
|
|
So(len(res), ShouldBeGreaterThan, 0)
|
|
|
|
res1, err := d.Reports(context.TODO(), []string{"742381013eb5fb21e003479d041369481ca861d41a9e489abe9d44c27dd43d74", "cidViiN2cwpUdlrQXXPJlyk47N69WDje3PA1+ISCGIA="})
|
|
So(err, ShouldBeNil)
|
|
t.Log(len(res1))
|
|
}))
|
|
}
|
|
|
|
func Test_UpdateReport(t *testing.T) {
|
|
Convey("update report", t, WithDao(func(d *Dao) {
|
|
ctx := context.Background()
|
|
r := &model.Report{
|
|
APPID: model.APPIDBBPhone,
|
|
PlatformID: model.PlatformIPhone,
|
|
Mid: 910819,
|
|
Buvid: "b",
|
|
DeviceToken: "dt",
|
|
Build: 2233,
|
|
TimeZone: 8,
|
|
NotifySwitch: model.SwitchOn,
|
|
DeviceBrand: "OPPO",
|
|
DeviceModel: "OPPO R9st",
|
|
OSVersion: "6.0.1",
|
|
}
|
|
|
|
_, err := d.db.Exec(context.Background(), "delete from push_reports where token_hash=?", model.HashToken(r.DeviceToken))
|
|
So(err, ShouldBeNil)
|
|
|
|
id, err := d.AddReport(ctx, r)
|
|
So(err, ShouldBeNil)
|
|
So(id, ShouldBeGreaterThan, 0)
|
|
r.ID = id
|
|
|
|
rt, err := d.Report(ctx, r.DeviceToken)
|
|
So(err, ShouldBeNil)
|
|
So(rt, ShouldResemble, r)
|
|
|
|
rt.APPID = 2
|
|
rt.PlatformID = 3
|
|
rt.NotifySwitch = model.SwitchOff
|
|
rt.Mid = 123
|
|
rt.Buvid = "buvidxxxx"
|
|
rt.Build = 1000000
|
|
rt.OSVersion = "x.x.x"
|
|
|
|
err = d.UpdateReport(ctx, rt)
|
|
So(err, ShouldBeNil)
|
|
|
|
rt2, err := d.Report(ctx, r.DeviceToken)
|
|
So(err, ShouldBeNil)
|
|
So(rt2, ShouldResemble, rt)
|
|
So(rt2, ShouldNotResemble, r)
|
|
}))
|
|
}
|
|
|
|
func Test_Callback(t *testing.T) {
|
|
Convey("add callback", t, WithDao(func(d *Dao) {
|
|
cb := &model.Callback{
|
|
Task: "task123",
|
|
APP: model.APPIDBBPhone,
|
|
Platform: model.PlatformXiaomi,
|
|
Mid: 91221505,
|
|
Pid: model.MobiAndroid,
|
|
Token: "token",
|
|
Buvid: "buvid",
|
|
Click: 1,
|
|
Extra: &model.CallbackExtra{
|
|
Status: 2,
|
|
},
|
|
}
|
|
err := d.AddCallback(context.TODO(), cb)
|
|
So(err, ShouldBeNil)
|
|
}))
|
|
}
|
|
|
|
func Test_ReportByID(t *testing.T) {
|
|
Convey("report by id", t, WithDao(func(d *Dao) {
|
|
r, err := d.ReportByID(context.TODO(), 1)
|
|
So(err, ShouldBeNil)
|
|
So(r, ShouldNotBeNil)
|
|
t.Logf("reportByID res(%+v)", r)
|
|
}))
|
|
}
|