优化结构
This commit is contained in:
@@ -157,6 +157,33 @@ func testBizPaymentOrder() *PaymentOrder {
|
||||
return &PaymentOrder{Provider: PaymentAlipay, TradeNo: "order-1", BusinessType: "game_item", BusinessID: "item-1", Subject: "item", Amount: 100, Currency: "CNY", PaymentStatus: PaymentStatusPending, FulfillmentStatus: FulfillmentStatusPending, RefundStatus: RefundStatusNone, ConfirmationID: "11111111-1111-1111-1111-111111111111"}
|
||||
}
|
||||
|
||||
func TestDemoPaymentOperationsNeverReachExternalProviderOrFulfillment(t *testing.T) {
|
||||
repo := &paymentRepoStub{query: successPaymentResult(), refund: successPaymentResult()}
|
||||
order := testBizPaymentOrder()
|
||||
order.TradeNo = "DEMO-PAY-01"
|
||||
order.BusinessType = DemoBusinessType
|
||||
order.PaymentStatus = PaymentStatusPaid
|
||||
orders := &paymentOrderRepoStub{order: order}
|
||||
registry := NewPaymentFulfillmentRegistry()
|
||||
handler := &paymentFulfillmentStub{}
|
||||
if err := registry.Register(handler); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
logger := slog.New(slog.NewTextHandler(io.Discard, nil))
|
||||
uc := NewPaymentUsecase(repo, orders, nil, nil, registry, logger)
|
||||
|
||||
result, err := uc.Query(context.Background(), order.Provider, order.TradeNo)
|
||||
if err != nil || result == nil || repo.queryCalls != 0 {
|
||||
t.Fatalf("demo query result=%#v calls=%d err=%v", result, repo.queryCalls, err)
|
||||
}
|
||||
if _, err = uc.Refund(context.Background(), order.Provider, order.TradeNo, 10); err == nil || repo.refundedReq != nil {
|
||||
t.Fatalf("demo refund reached provider: req=%#v err=%v", repo.refundedReq, err)
|
||||
}
|
||||
if _, err = uc.Fulfill(context.Background(), order.Provider, order.TradeNo); err == nil || handler.calls != 0 {
|
||||
t.Fatalf("demo fulfillment reached handler: calls=%d err=%v", handler.calls, err)
|
||||
}
|
||||
}
|
||||
|
||||
func successPaymentResult() *PaymentResult {
|
||||
return &PaymentResult{
|
||||
Provider: PaymentAlipay,
|
||||
|
||||
Reference in New Issue
Block a user