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.
127 lines
3.3 KiB
127 lines
3.3 KiB
package ugc |
|
|
|
import ( |
|
"fmt" |
|
"testing" |
|
|
|
"go-common/app/job/main/tv/model/ugc" |
|
arccli "go-common/app/service/main/archive/api" |
|
|
|
. "github.com/smartystreets/goconvey/convey" |
|
) |
|
|
|
func TestUgcTxDelArc(t *testing.T) { |
|
var ( |
|
tx, _ = d.DB.Begin(ctx) |
|
aid = int64(0) |
|
) |
|
Convey("TxDelArc", t, func(ctx C) { |
|
err := d.TxDelArc(tx, aid) |
|
ctx.Convey("Then err should be nil.", func(ctx C) { |
|
ctx.So(err, ShouldBeNil) |
|
}) |
|
}) |
|
} |
|
|
|
func TestUgcTxDelVideos(t *testing.T) { |
|
var ( |
|
tx, _ = d.DB.Begin(ctx) |
|
aid = int64(0) |
|
) |
|
Convey("TxDelVideos", t, func(ctx C) { |
|
err := d.TxDelVideos(tx, aid) |
|
ctx.Convey("Then err should be nil.", func(ctx C) { |
|
ctx.So(err, ShouldBeNil) |
|
}) |
|
}) |
|
} |
|
|
|
func TestUgcTxDelVideo(t *testing.T) { |
|
var ( |
|
tx, _ = d.DB.Begin(ctx) |
|
cid = int64(0) |
|
) |
|
Convey("TxDelVideo", t, func(ctx C) { |
|
err := d.TxDelVideo(tx, cid) |
|
ctx.Convey("Then err should be nil.", func(ctx C) { |
|
ctx.So(err, ShouldBeNil) |
|
}) |
|
}) |
|
} |
|
|
|
func TestDao_DelVideoArc(t *testing.T) { |
|
Convey("TestDao_DelVideoArc", t, WithDao(func(d *Dao) { |
|
var ( |
|
aid = int64(99998888) |
|
cid1 = int64(999988881) |
|
cid2 = int64(999988882) |
|
tx, _ = d.DB.Begin(ctx) |
|
arc = &arccli.Arc{Aid: aid} |
|
countVQ = "SELECT COUNT(1) FROM ugc_video WHERE aid = ? AND deleted = 0" |
|
countAQ = "SELECT COUNT(1) FROM ugc_archive WHERE aid = ? AND deleted = 0" |
|
countV, countA int |
|
arcValid bool |
|
) |
|
// add archive and two videos |
|
d.TxImportArc(tx, &arccli.Arc{Aid: aid}) |
|
d.TxMnlVideos(tx, &arccli.ViewReply{ |
|
Arc: arc, |
|
Pages: []*arccli.Page{ |
|
{ |
|
Cid: cid1, |
|
}, |
|
{ |
|
Cid: cid2, |
|
}, |
|
}, |
|
}) |
|
tx.Commit() |
|
d.DB.QueryRow(ctx, countVQ, aid).Scan(&countV) |
|
So(countV, ShouldEqual, 2) |
|
// delete one video, still one active video under the archive, we keep the archive |
|
_, err := d.DelVideoArc(ctx, &ugc.DelVideos{ |
|
AID: aid, |
|
CIDs: []int64{cid1}, |
|
}) |
|
So(err, ShouldBeNil) |
|
d.DB.QueryRow(ctx, countVQ, aid).Scan(&countV) |
|
d.DB.QueryRow(ctx, countAQ, aid).Scan(&countA) |
|
So(countV, ShouldEqual, 1) |
|
So(countA, ShouldEqual, 1) |
|
So(err, ShouldBeNil) |
|
// delete the last video, the archive should also be deleted |
|
arcValid, err = d.DelVideoArc(ctx, &ugc.DelVideos{ |
|
AID: aid, |
|
CIDs: []int64{cid2}, |
|
}) |
|
So(err, ShouldBeNil) |
|
So(arcValid, ShouldBeFalse) |
|
d.DB.QueryRow(ctx, countVQ, aid).Scan(&countV) |
|
d.DB.QueryRow(ctx, countAQ, aid).Scan(&countA) |
|
So(countV, ShouldEqual, 0) |
|
So(countA, ShouldEqual, 0) |
|
})) |
|
} |
|
|
|
func TestDao_DelVideos(t *testing.T) { |
|
Convey("TestDao_DelVideos", t, WithDao(func(d *Dao) { |
|
var ( |
|
aid = int64(99998888) |
|
cid1 = 99998887 |
|
cid2 = 99998886 |
|
insertSQL = "REPLACE INTO ugc_video (aid, cid) VALUES (%d, %d)" |
|
) |
|
ress, err2 := d.DB.Exec(ctx, fmt.Sprintf(insertSQL, aid, cid1)) |
|
fmt.Println(fmt.Sprintf(insertSQL, aid, cid1)) |
|
fmt.Println(err2) |
|
fmt.Println(ress.RowsAffected()) |
|
d.DB.Exec(ctx, fmt.Sprintf(insertSQL, aid, cid2)) |
|
var count int |
|
d.DB.QueryRow(ctx, "SELECT COUNT(1) FROM ugc_video WHERE aid = ? AND deleted = 0", aid).Scan(&count) |
|
So(count, ShouldEqual, 2) |
|
err := d.DelVideos(ctx, aid) |
|
So(err, ShouldBeNil) |
|
d.DB.QueryRow(ctx, "SELECT COUNT(1) FROM ugc_video WHERE aid = ? AND deleted = 0", aid).Scan(&count) |
|
So(count, ShouldEqual, 0) |
|
})) |
|
}
|
|
|