ooni-probe-cli/internal/model/mocks/http.go
Simone Basso d419ed8ac8
refactor(oohelperd): improve tests implementation (#835)
After this diff has landed, we have addressed all the points
originally published at https://github.com/ooni/probe/issues/2134.
2022-07-05 20:25:18 +02:00

66 lines
1.5 KiB
Go

package mocks
import "net/http"
// HTTPTransport mocks netxlite.HTTPTransport.
type HTTPTransport struct {
MockNetwork func() string
MockRoundTrip func(req *http.Request) (*http.Response, error)
MockCloseIdleConnections func()
}
// Network calls MockNetwork.
func (txp *HTTPTransport) Network() string {
return txp.MockNetwork()
}
// RoundTrip calls MockRoundTrip.
func (txp *HTTPTransport) RoundTrip(req *http.Request) (*http.Response, error) {
return txp.MockRoundTrip(req)
}
// CloseIdleConnections calls MockCloseIdleConnections.
func (txp *HTTPTransport) CloseIdleConnections() {
txp.MockCloseIdleConnections()
}
// HTTPClient allows mocking an http.Client.
type HTTPClient struct {
MockDo func(req *http.Request) (*http.Response, error)
MockCloseIdleConnections func()
}
// Do calls MockDo.
func (txp *HTTPClient) Do(req *http.Request) (*http.Response, error) {
return txp.MockDo(req)
}
// CloseIdleConnections calls MockCloseIdleConnections.
func (txp *HTTPClient) CloseIdleConnections() {
txp.MockCloseIdleConnections()
}
// HTTPResponseWriter allows mocking http.ResponseWriter.
type HTTPResponseWriter struct {
MockHeader func() http.Header
MockWrite func(b []byte) (int, error)
MockWriteHeader func(statusCode int)
}
var _ http.ResponseWriter = &HTTPResponseWriter{}
func (w *HTTPResponseWriter) Header() http.Header {
return w.MockHeader()
}
func (w *HTTPResponseWriter) Write(b []byte) (int, error) {
return w.MockWrite(b)
}
func (w *HTTPResponseWriter) WriteHeader(statusCode int) {
w.MockWriteHeader(statusCode)
}