github.com/0chain/gosdk@v1.17.11/dev/mock/response.go (about)

     1  package mock
     2  
     3  import "net/http"
     4  
     5  type ResponseMap map[string]Response
     6  
     7  type Response struct {
     8  	StatusCode int
     9  	Body       []byte
    10  }
    11  
    12  // WithResponse mock respone
    13  func WithResponse(m ResponseMap) func(w http.ResponseWriter, r *http.Request) {
    14  	return func(w http.ResponseWriter, r *http.Request) {
    15  		defer w.Header().Set("Content-Type", "application/json")
    16  
    17  		if m != nil {
    18  			key := r.Method + ":" + r.URL.Path
    19  			resp, ok := m[key]
    20  
    21  			if ok {
    22  
    23  				w.WriteHeader(resp.StatusCode)
    24  				if resp.Body != nil {
    25  					w.Write(resp.Body) //nolint: errcheck
    26  				}
    27  
    28  				return
    29  			}
    30  		}
    31  
    32  		w.WriteHeader(http.StatusNotFound)
    33  	}
    34  }