diff --git a/client/client.go b/client/client.go index 8659e1a..d7fbfa4 100644 --- a/client/client.go +++ b/client/client.go @@ -1,6 +1,7 @@ package client import ( + "net/http" "time" "github.com/foomo/contentserver/content" @@ -18,16 +19,26 @@ func NewClient( server string, connectionPoolSize int, waitTimeout time.Duration, +) (c *Client, err error) { + return NewClientWithTransport(NewSocketTransport(server, connectionPoolSize, waitTimeout)) +} + +func NewClientWithTransport( + transport transport, ) (c *Client, err error) { c = &Client{ - t: newSocketTransport(server, connectionPoolSize, waitTimeout), + t: transport, } return } func NewHTTPClient(server string) (c *Client, err error) { + return NewHTTPClientWithTransport(NewHTTPTransport(server, http.DefaultClient)) +} + +func NewHTTPClientWithTransport(transport transport) (c *Client, err error) { c = &Client{ - t: newHTTPTransport(server), + t: transport, } return } diff --git a/client/httptransport.go b/client/httptransport.go index a63c21d..0e6c6c1 100644 --- a/client/httptransport.go +++ b/client/httptransport.go @@ -14,10 +14,10 @@ type httpTransport struct { endpoint string } -func newHTTPTransport(server string) transport { +func NewHTTPTransport(server string, client *http.Client) transport { return &httpTransport{ endpoint: server, - client: http.DefaultClient, + client: client, } } diff --git a/client/sockettransport.go b/client/sockettransport.go index ff4707f..84ff550 100644 --- a/client/sockettransport.go +++ b/client/sockettransport.go @@ -24,7 +24,7 @@ type socketTransport struct { connPool *connectionPool } -func newSocketTransport(server string, connectionPoolSize int, waitTimeout time.Duration) transport { +func NewSocketTransport(server string, connectionPoolSize int, waitTimeout time.Duration) transport { return &socketTransport{ connPool: newConnectionPool(server, connectionPoolSize, waitTimeout), }