added a test case with no nil transport wrapper
This commit is contained in:
@@ -151,3 +151,45 @@ func TestHttpClientConfigPerformanceValues(t *testing.T) {
|
|||||||
t.Errorf("Expected ResponseHeaderTimeout=5s, got %v", transport.ResponseHeaderTimeout)
|
t.Errorf("Expected ResponseHeaderTimeout=5s, got %v", transport.ResponseHeaderTimeout)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestNewHTTPClientWithTransportWrapper(t *testing.T) {
|
||||||
|
wrappedTransport := &mockRoundTripper{}
|
||||||
|
wrapper := &mockTransportWrapper{
|
||||||
|
returnTransport: wrappedTransport,
|
||||||
|
}
|
||||||
|
|
||||||
|
client := newHTTPClient(&HttpClientConfig{}, wrapper)
|
||||||
|
|
||||||
|
if !wrapper.wrapCalled {
|
||||||
|
t.Fatal("expected transport wrapper to be invoked")
|
||||||
|
}
|
||||||
|
|
||||||
|
if wrapper.wrappedTransport == nil {
|
||||||
|
t.Fatal("expected base transport to be passed to wrapper")
|
||||||
|
}
|
||||||
|
|
||||||
|
if client.Transport != wrappedTransport {
|
||||||
|
t.Errorf("expected client transport to use wrapper transport")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type mockTransportWrapper struct {
|
||||||
|
wrapCalled bool
|
||||||
|
wrappedTransport http.RoundTripper
|
||||||
|
returnTransport http.RoundTripper
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *mockTransportWrapper) Wrap(base http.RoundTripper) http.RoundTripper {
|
||||||
|
m.wrapCalled = true
|
||||||
|
m.wrappedTransport = base
|
||||||
|
if m.returnTransport != nil {
|
||||||
|
return m.returnTransport
|
||||||
|
}
|
||||||
|
return base
|
||||||
|
}
|
||||||
|
|
||||||
|
type mockRoundTripper struct{}
|
||||||
|
|
||||||
|
func (m *mockRoundTripper) RoundTrip(_ *http.Request) (*http.Response, error) {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user