| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package service
- import (
- "testing"
- "github.com/glebarez/sqlite"
- "github.com/stretchr/testify/require"
- "gorm.io/gorm"
- "wails-app/internal/dao"
- "wails-app/internal/global"
- )
- func setupTicketServiceTest(t *testing.T) *TicketService {
- db, err := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{})
- require.NoError(t, err)
- global.GVA_DB = db
- require.NoError(t, db.AutoMigrate(&dao.VehicleRecord{}, &dao.DigitalTicket{}))
- return NewTicketService()
- }
- func TestMarkPaidAndExitedUsesTheActualPaymentEntry(t *testing.T) {
- svc := setupTicketServiceTest(t)
- record := &dao.VehicleRecord{PlateNumber: "TEST001"}
- require.NoError(t, global.GVA_DB.Create(record).Error)
- _, err := svc.Create("TEST001", "manual", record.ID)
- require.NoError(t, err)
- require.NoError(t, svc.MarkPaidAndExitedTx(global.GVA_DB, record.ID,
- "central_payment_machine", "pos", "ORDER-001", 10, 10))
- ticket, err := svc.repo.GetByVehicleRecordID(record.ID)
- require.NoError(t, err)
- require.Equal(t, StateExited, ticket.State)
- require.Equal(t, "central_payment_machine", ticket.PaymentEntry)
- require.Equal(t, "pos", ticket.PaymentMethod)
- require.Equal(t, "ORDER-001", ticket.PaymentOrderNo)
- }
- func TestMarkPaidAndExitedRequiresATicket(t *testing.T) {
- svc := setupTicketServiceTest(t)
- record := &dao.VehicleRecord{PlateNumber: "TEST002"}
- require.NoError(t, global.GVA_DB.Create(record).Error)
- require.EqualError(t,
- svc.MarkPaidAndExitedTx(global.GVA_DB, record.ID, "counter", "cash", "", 0, 0),
- "车辆对应的数字票不存在")
- }
|