Files
lislgosms/gateway/internal/inbound/submit_idempotency_test.go

28 lines
1.2 KiB
Go

package inbound
import "testing"
func TestInboundSubmitRequestIDIsStableForRetry(t *testing.T) {
fragment := &inboundLongMessageFragment{Reference: 7, Total: 2, Index: 1, Format: 8}
first := inboundSubmitRequestID("connection-1", 42, []string{"13800000001"}, "【测试】内容", "1069", fragment)
second := inboundSubmitRequestID("connection-1", 42, []string{"13800000001"}, "【测试】内容", "1069", fragment)
if first != second {
t.Fatalf("retry key changed: %q != %q", first, second)
}
}
func TestInboundSubmitRequestIDSeparatesPayloadAndSession(t *testing.T) {
base := inboundSubmitRequestID("connection-1", 42, []string{"13800000001"}, "content", "1069", nil)
cases := []string{
inboundSubmitRequestID("connection-2", 42, []string{"13800000001"}, "content", "1069", nil),
inboundSubmitRequestID("connection-1", 43, []string{"13800000001"}, "content", "1069", nil),
inboundSubmitRequestID("connection-1", 42, []string{"13800000002"}, "content", "1069", nil),
inboundSubmitRequestID("connection-1", 42, []string{"13800000001"}, "other", "1069", nil),
}
for _, candidate := range cases {
if candidate == base {
t.Fatalf("different submit produced duplicate key %q", base)
}
}
}