github.com/angryronald/go-kit@v0.0.0-20240505173814-ff2bd9c79dbf/test/docker/mockserver/mockserver.service.go (about)

     1  package mockserver
     2  
     3  import (
     4  	"strconv"
     5  
     6  	mockserver "github.com/BraspagDevelopers/mock-server-client"
     7  
     8  	"github.com/angryronald/go-kit/test/docker"
     9  )
    10  
    11  // ref: https://github.com/BraspagDevelopers/mock-server-client/blob/v0.2.2/README.md
    12  
    13  var msc mockserver.MockServerClient
    14  
    15  var port int
    16  var host string
    17  
    18  func init() {
    19  	portInstring := docker.GetAvailablePort(1111)
    20  	host = "localhost"
    21  	port, _ = strconv.Atoi(portInstring)
    22  	msc = mockserver.NewClient(host, port)
    23  	StartMockServer()
    24  }
    25  
    26  func GetPort() int {
    27  	return port
    28  }
    29  
    30  func MockRequest(method string, path string, jsonBody map[string]interface{}, headers map[string]string) error {
    31  	requestMatcher := mockserver.RequestMatcher{
    32  		Method: method,
    33  		Path:   path,
    34  	}.WithJSONFields(jsonBody)
    35  	for k, v := range headers {
    36  		requestMatcher.WithHeader(k, v)
    37  	}
    38  	expectation := mockserver.NewExpectation(requestMatcher)
    39  
    40  	if err := msc.RegisterExpectation(*expectation); err != nil {
    41  		return err
    42  	}
    43  	return nil
    44  }
    45  
    46  // INFO: this clear function from mockserver just removing the log not the mock
    47  // func RemoveMockRequest(method string, path string, jsonBody map[string]interface{}, headers map[string]string) error {
    48  // 	requestMatcher := mockserver.RequestMatcher{
    49  // 		Method: method,
    50  // 		Path:   path,
    51  // 	}.WithJSONFields(jsonBody)
    52  // 	for k, v := range headers {
    53  // 		requestMatcher.WithHeader(k, v)
    54  // 	}
    55  
    56  // 	if err := msc.Clear(requestMatcher); err != nil {
    57  // 		return err
    58  // 	}
    59  // 	return nil
    60  // }