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 // }