package upstream import ( "context" "testing" "time" ) func TestUnavailableConnectionNeverClaimsWireSubmitTime(t *testing.T) { conn := &connection{closed: true} cmd := submitCommandForPacketTest("3.0") parts, err := splitSubmitContent(cmd.CMPP.MsgFmt, cmd.Content) if err != nil { t.Fatal(err) } _, _, result, err := conn.submitPart(context.Background(), cmd, parts[0]) if err == nil || result.FirstWireSubmitAt != nil || result.WireTimeSource != "not_written" { t.Fatalf("invalid pre-write timing: %+v / %v", result, err) } } func TestSegmentCarriesActualWireTimeAndReceiptRequest(t *testing.T) { cmd := submitCommandForPacketTest("3.0") cmd.CMPP.RegisteredDelivery = 1 result := submitResult(cmd, 1, "upstream-1", "timeout", "SUBMIT_TIMEOUT", "no response") at := time.Now().UTC().Add(-5 * time.Second) result.FirstWireSubmitAt = &at result.WireTimeSource = "gateway_write_complete" segment := submitSegmentResult(submitPart{PkTotal: 2, PkNumber: 1}, 1, "upstream-1", result) if segment.FirstWireSubmitAt == nil || !segment.FirstWireSubmitAt.Equal(at) || segment.WireTimeSource != "gateway_write_complete" || !segment.ReceiptRequested { t.Fatalf("wire timing was lost: %+v", segment) } if !segment.SubmittedAt.After(*segment.FirstWireSubmitAt) { t.Fatal("response timestamp must not replace earlier wire timestamp") } }