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  }