payment quotation v2 + payment orchestration v2 draft

This commit is contained in:
Stephan D
2026-02-24 13:01:35 +01:00
parent 0646f55189
commit 6444813f38
289 changed files with 17005 additions and 16065 deletions

View File

@@ -0,0 +1,49 @@
package model
import (
"testing"
"github.com/shopspring/decimal"
)
func TestIsGatewayEligible_AllowsMatchingGateway(t *testing.T) {
gw := &GatewayInstanceDescriptor{
ID: "gw-1",
InstanceID: "inst-1",
Rail: RailCrypto,
Network: "TRON",
Currencies: []string{"USDT"},
Operations: []RailOperation{RailOperationSend, RailOperationExternalCredit},
IsEnabled: true,
}
err := IsGatewayEligible(gw, RailCrypto, "TRON", "USDT", RailOperationSend, GatewayDirectionOut, decimal.RequireFromString("10"))
if err != nil {
t.Fatalf("expected gateway to be eligible, got err=%v", err)
}
}
func TestIsGatewayEligible_RejectsNetworkMismatch(t *testing.T) {
gw := &GatewayInstanceDescriptor{
ID: "gw-1",
InstanceID: "inst-1",
Rail: RailCrypto,
Network: "ETH",
Currencies: []string{"USDT"},
Operations: []RailOperation{RailOperationSend},
IsEnabled: true,
}
err := IsGatewayEligible(gw, RailCrypto, "TRON", "USDT", RailOperationSend, GatewayDirectionOut, decimal.RequireFromString("10"))
if err == nil {
t.Fatalf("expected network mismatch error")
}
}
func TestNoEligibleGatewayMessage(t *testing.T) {
got := NoEligibleGatewayMessage("tron", "usdt", RailOperationSend, GatewayDirectionOut)
want := "plan builder: no eligible gateway found for TRON USDT SEND for direction out"
if got != want {
t.Fatalf("unexpected message: got=%q want=%q", got, want)
}
}