From 0027d998555d47f9a75a896d8c6c85a8b4645ad0 Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Fri, 7 Sep 2018 09:24:18 -0400 Subject: MM-11855 Add App.HTTPService to allow mocking of HTTP client (#9359) * MM-11855 Add App.HTTPService to allow mocking of HTTP client * Initialize HTTPService earlier --- app/apptestlib.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'app/apptestlib.go') diff --git a/app/apptestlib.go b/app/apptestlib.go index 48783f49c..c0d2cfaa2 100644 --- a/app/apptestlib.go +++ b/app/apptestlib.go @@ -6,6 +6,8 @@ package app import ( "io" "io/ioutil" + "net/http" + "net/http/httptest" "os" "path/filepath" "time" @@ -33,6 +35,8 @@ type TestHelper struct { tempConfigPath string tempWorkspace string + + MockedHTTPService *MockedHTTPService } type persistentTestStore struct { @@ -163,6 +167,13 @@ func (me *TestHelper) InitSystemAdmin() *TestHelper { return me } +func (me *TestHelper) MockHTTPService(handler http.Handler) *TestHelper { + me.MockedHTTPService = MakeMockedHTTPService(handler) + me.App.HTTPService = me.MockedHTTPService + + return me +} + func (me *TestHelper) MakeEmail() string { return "success_" + model.NewId() + "@simulator.amazonses.com" } @@ -503,3 +514,22 @@ func (me *FakeClusterInterface) sendClearRoleCacheMessage() { Event: model.CLUSTER_EVENT_INVALIDATE_CACHE_FOR_ROLES, }) } + +type MockedHTTPService struct { + Server *httptest.Server +} + +func MakeMockedHTTPService(handler http.Handler) *MockedHTTPService { + return &MockedHTTPService{ + Server: httptest.NewServer(handler), + } +} + +func (h *MockedHTTPService) MakeClient(trustURLs bool) *http.Client { + return h.Server.Client() +} + +func (h *MockedHTTPService) Close() { + h.Server.CloseClientConnections() + h.Server.Close() +} -- cgit v1.2.3-1-g7c22