github.com/billybanfield/evergreen@v0.0.0-20170525200750-eeee692790f7/apiv3/route/mocks.go (about) 1 package route 2 3 import ( 4 "net/http" 5 6 "github.com/evergreen-ci/evergreen/apiv3/model" 7 "github.com/evergreen-ci/evergreen/apiv3/servicecontext" 8 ) 9 10 type mockRequestHandler struct { 11 storedMetadata interface{} 12 storedModels []model.Model 13 parseValidateErr error 14 executeErr error 15 } 16 17 func (m *mockRequestHandler) Handler() RequestHandler { 18 return &mockRequestHandler{ 19 storedMetadata: m.storedMetadata, 20 storedModels: m.storedModels, 21 parseValidateErr: m.parseValidateErr, 22 executeErr: m.executeErr, 23 } 24 } 25 func (m *mockRequestHandler) ParseAndValidate(h *http.Request) error { 26 return m.parseValidateErr 27 } 28 29 func (m *mockRequestHandler) Execute(sc servicecontext.ServiceContext) (ResponseData, error) { 30 return ResponseData{ 31 Result: m.storedModels, 32 Metadata: m.storedMetadata, 33 }, m.executeErr 34 } 35 36 // MockAuthenticator is an authenticator for testing uses of authenticators. 37 // It returns whatever is stored within it. 38 type mockAuthenticator struct { 39 err error 40 } 41 42 // Authenticate returns the error embedded in the mock authenticator. 43 func (m *mockAuthenticator) Authenticate(sc servicecontext.ServiceContext, r *http.Request) error { 44 return m.err 45 } 46 47 // mockPaginatorFuncGenerator generates a PaginatorFunc which packages and 48 // returns the passed in parameters. 49 func mockPaginatorFuncGenerator(result []model.Model, nextKey, prevKey string, 50 nextLimit, prevLimit int, errResult error) PaginatorFunc { 51 return func(key string, limit int, args interface{}, 52 sc servicecontext.ServiceContext) ([]model.Model, *PageResult, error) { 53 54 nextPage := Page{ 55 Limit: nextLimit, 56 Key: nextKey, 57 Relation: "next", 58 } 59 60 prevPage := Page{ 61 Limit: prevLimit, 62 Key: prevKey, 63 Relation: "prev", 64 } 65 66 return result, &PageResult{&nextPage, &prevPage}, errResult 67 68 } 69 }