@@ -1487,7 +1487,9 @@ func TestHTTPClientReqRspDifferentContentType(t *testing.T) {
1487
1487
func TestHTTPGotConnectionRemoteAddr (t * testing.T ) {
1488
1488
ctx := context .Background ()
1489
1489
for i := 0 ; i < 3 ; i ++ {
1490
- proxy := thttp .NewClientProxy (t .Name (), client .WithTarget ("dns://new.qq.com/" ))
1490
+ proxy := thttp .NewClientProxy (t .Name (),
1491
+ client .WithTarget ("dns://new.qq.com/" ),
1492
+ client .WithTransport (& mockTransport {}))
1491
1493
rsp := & codec.Body {}
1492
1494
require .Nil (t , proxy .Get (ctx , "/" , rsp ,
1493
1495
client .WithSerializationType (codec .SerializationTypeNoop ),
@@ -1551,3 +1553,18 @@ type errHeaderHandler struct{}
1551
1553
func (* errHeaderHandler ) Handle (ctx context.Context , reqBuf []byte ) (rsp []byte , err error ) {
1552
1554
return nil , thttp .ErrEncodeMissingHeader
1553
1555
}
1556
+
1557
+ type mockTransport struct {}
1558
+
1559
+ func (t * mockTransport ) RoundTrip (ctx context.Context , req []byte , opts ... transport.RoundTripOption ) (rsp []byte , err error ) {
1560
+ msg := codec .Message (ctx )
1561
+ msg .WithClientRspHead (& thttp.ClientRspHeader {
1562
+ Response : & http.Response {},
1563
+ })
1564
+ raddr , err := net .ResolveTCPAddr ("tcp" , "127.0.0.1:8080" )
1565
+ if err != nil {
1566
+ return nil , err
1567
+ }
1568
+ msg .WithRemoteAddr (raddr )
1569
+ return []byte ("mock transport" ), nil
1570
+ }
0 commit comments