bilibili-backup/app/service/openplatform/ticket-item/dao/seat_test.go
2019-04-22 02:59:20 +00:00

290 lines
6.3 KiB
Go

package dao
import (
"context"
"go-common/app/service/openplatform/ticket-item/model"
"strconv"
"testing"
"time"
. "github.com/smartystreets/goconvey/convey"
)
// TestDaoAreaSeats
func TestDaoAreaSeats(t *testing.T) {
var id int64
Convey("TxGetAreaSeats", t, func() {
once.Do(startService)
c := context.TODO()
tx, _ := d.BeginTran(c)
So(tx, ShouldNotBeNil)
area := &model.Area{
AID: "test" + strconv.FormatInt(time.Now().Unix(), 10),
Name: "可删",
Place: 132,
}
err := d.TxAddArea(c, tx, area)
So(err, ShouldBeNil)
So(area.ID, ShouldNotEqual, 0)
id = area.ID
res, err := d.TxGetAreaSeats(c, tx, id)
So(err, ShouldBeNil)
So(len(res), ShouldEqual, 0)
err = d.CommitTran(c, tx)
So(err, ShouldBeNil)
})
var seatsIDs []int64
Convey("TxBatchAddAreaSeats", t, func() {
once.Do(startService)
c := context.TODO()
tx, _ := d.BeginTran(c)
So(tx, ShouldNotBeNil)
seatsArr := []*model.AreaSeats{
{
X: 1,
Y: 2,
Label: "3",
Bgcolor: "#FFFFFF",
Area: id,
Dstatus: 0,
},
{
X: 2,
Y: 2,
Label: "4",
Bgcolor: "#FFFFFF",
Area: id,
Dstatus: 0,
},
}
err := d.TxBatchAddAreaSeats(c, tx, seatsArr)
So(err, ShouldBeNil)
err = d.CommitTran(c, tx)
So(err, ShouldBeNil)
tx, _ = d.BeginTran(c)
So(tx, ShouldNotBeNil)
res, err := d.TxGetAreaSeats(c, tx, id)
So(err, ShouldBeNil)
So(len(res), ShouldEqual, 2)
seatsIDs = []int64{res[0].ID, res[1].ID}
err = d.CommitTran(c, tx)
So(err, ShouldBeNil)
})
Convey("TxBatchDeleteAreaSeats", t, func() {
once.Do(startService)
c := context.TODO()
tx, _ := d.BeginTran(c)
So(tx, ShouldNotBeNil)
err := d.TxBatchDeleteAreaSeats(c, tx, id)
So(err, ShouldBeNil)
err = d.CommitTran(c, tx)
So(err, ShouldBeNil)
tx, _ = d.BeginTran(c)
So(tx, ShouldNotBeNil)
res, err := d.TxGetAreaSeats(c, tx, id)
So(err, ShouldBeNil)
So(len(res), ShouldEqual, 2)
So(res[0].Dstatus, ShouldEqual, 1)
So(res[1].Dstatus, ShouldEqual, 1)
err = d.CommitTran(c, tx)
So(err, ShouldBeNil)
})
Convey("TxBatchRecoverAreaSeats", t, func() {
once.Do(startService)
c := context.TODO()
tx, _ := d.BeginTran(c)
So(tx, ShouldNotBeNil)
err := d.TxBatchRecoverAreaSeats(c, tx, seatsIDs)
So(err, ShouldBeNil)
err = d.CommitTran(c, tx)
So(err, ShouldBeNil)
tx, _ = d.BeginTran(c)
So(tx, ShouldNotBeNil)
res, err := d.TxGetAreaSeats(c, tx, id)
So(err, ShouldBeNil)
So(len(res), ShouldEqual, 2)
So(res[0].Dstatus, ShouldEqual, 0)
So(res[1].Dstatus, ShouldEqual, 0)
err = d.CommitTran(c, tx)
So(err, ShouldBeNil)
})
}
// TestDaoAreaSeats
func TestDaoAreaSeatmap(t *testing.T) {
once.Do(startService)
c := context.TODO()
tx, _ := d.BeginTran(c)
Convey("TxRawAreaSeatmap", t, func() {
So(tx, ShouldNotBeNil)
asm, err := d.TxRawAreaSeatmap(c, tx, 239)
So(asm.ID, ShouldEqual, 239)
So(asm.SeatMap, ShouldNotBeBlank)
So(err, ShouldBeNil)
})
Convey("TxRawAreaSeatmap", t, func() {
So(tx, ShouldNotBeNil)
asm := &model.AreaSeatmap{
ID: 239,
SeatMap: "[\"abc\"]",
}
err := d.TxSaveAreaSeatmap(c, tx, asm)
So(err, ShouldBeNil)
asm, err = d.TxRawAreaSeatmap(c, tx, 239)
So(asm.ID, ShouldEqual, 239)
So(asm.SeatMap, ShouldEqual, "[\"abc\"]")
So(err, ShouldBeNil)
})
tx.Rollback()
}
func TestSeatSet(t *testing.T) {
once.Do(startService)
c := context.TODO()
tx, _ := d.BeginTran(c)
Convey("TxGetSeatChart", t, func() {
So(tx, ShouldNotBeNil)
sc, err := d.TxGetSeatChart(c, tx, 1633, 239)
So(sc.ID, ShouldBeZeroValue)
So(sc.SeatChart, ShouldBeEmpty)
So(err, ShouldBeNil)
})
Convey("TxGetSeatCharts", t, func() {
So(tx, ShouldNotBeNil)
scs, err := d.TxGetSeatCharts(c, tx, 1633, []int64{239})
So(len(scs), ShouldBeZeroValue)
So(err, ShouldBeNil)
})
Convey("TxAddSeatChart", t, func() {
So(tx, ShouldNotBeNil)
err := d.TxAddSeatChart(c, tx, &model.SeatSet{
AreaID: 239,
ScreenID: 1633,
})
So(err, ShouldBeNil)
})
var id int64
Convey("TxGetSeatCharts", t, func() {
So(tx, ShouldNotBeNil)
scs, err := d.TxGetSeatCharts(c, tx, 1633, []int64{239})
So(len(scs), ShouldEqual, 1)
So(scs[0].SeatChart, ShouldBeEmpty)
So(err, ShouldBeNil)
id = scs[0].ID
})
Convey("TxUpdateSeatChart", t, func() {
So(tx, ShouldNotBeNil)
err := d.TxUpdateSeatChart(c, tx, id, "[\"_______aaaaaaaaaaaaa\",\"_______aaaaaaaaaaaaa\",\"______aaaaaaaaaaaaaa\",\"______aaaaaaaaaaaaaa\",\"_____aaaaaaaaaaaaaaa\",\"_____aaaaaaaaaaaaaaa\",\"____aaaaaaaaaaaaaaaa\",\"____aaaaaaaaaaaaaaaa\",\"___aaaaaaaaaaaaaaaaa\",\"___aaaaaaaaaaaaaaaaa\",\"__aaaaaaaaaaaaaaaaaa\",\"__aaaaaaaaaaaaaaaaaa\",\"aaaaaaaaaaaaaaaaaaaa\",\"aaaaaaaaaaaaaaaaaaaa\",\"___aaaaaaaaaaaaaa___\",\"_aaaaaaaaaaaaaaaaaa_\"]")
So(err, ShouldBeNil)
})
Convey("TxGetSeatChart", t, func() {
So(tx, ShouldNotBeNil)
sc, err := d.TxGetSeatChart(c, tx, 1633, 239)
So(sc.ID, ShouldEqual, id)
So(sc.SeatChart, ShouldNotBeEmpty)
So(err, ShouldBeNil)
})
tx.Rollback()
}
// TestSeatOrder
func TestSeatOrder(t *testing.T) {
once.Do(startService)
c := context.TODO()
tx, _ := d.BeginTran(c)
Convey("TxBatchAddSeatOrder", t, func() {
So(tx, ShouldNotBeNil)
err := d.TxBatchAddSeatOrder(c, tx, []*model.SeatOrder{
{
AreaID: 239,
ScreenID: 1633,
Row: 1,
Col: 1,
PriceID: 36093,
Price: 123456,
}, {
AreaID: 239,
ScreenID: 1633,
Row: 2,
Col: 2,
PriceID: 36093,
Price: 123456,
}, {
AreaID: 239,
ScreenID: 1633,
Row: 3,
Col: 3,
PriceID: 36093,
Price: 123456,
},
})
So(err, ShouldBeNil)
})
Convey("TxGetUnsaleableSeatOrders", t, func() {
res, err := d.TxGetUnsaleableSeatOrders(c, tx, 1633, 239)
So(err, ShouldBeNil)
So(len(res), ShouldEqual, 0)
})
var ids [3]int64
Convey("TxGetSaleableSeatOrders", t, func() {
res, err := d.TxGetSaleableSeatOrders(c, tx, 1633, 36093)
So(err, ShouldBeNil)
So(len(res), ShouldEqual, 3)
for i, so := range res {
ids[i] = so.ID
}
})
Convey("TxBatchDeleteSeatOrder", t, func() {
err := d.TxBatchDeleteSeatOrder(c, tx, ids[:])
So(err, ShouldBeNil)
})
tx.Commit()
tx, _ = d.BeginTran(c)
Convey("TxGetSaleableSeatOrders", t, func() {
res, err := d.TxGetSaleableSeatOrders(c, tx, 1633, 36093)
So(err, ShouldBeNil)
So(len(res), ShouldEqual, 0)
})
tx.Rollback()
}