github.com/kyma-incubator/compass/components/director@v0.0.0-20230623144113-d764f56ff805/internal/selfregmanager/selfregmngrtest/caller.go (about) 1 package selfregmngrtest 2 3 import ( 4 "bytes" 5 "errors" 6 "fmt" 7 "net/http" 8 "net/http/httptest" 9 "testing" 10 11 "github.com/kyma-incubator/compass/components/director/internal/selfregmanager/automock" 12 13 "github.com/kyma-incubator/compass/components/director/pkg/config" 14 15 "github.com/stretchr/testify/mock" 16 ) 17 18 const ( 19 // ResponseLabelKey is a testing label key 20 ResponseLabelKey = "test-response-label-key" 21 // ResponseLabelValue is a testing label value 22 ResponseLabelValue = "test-label-val" 23 ) 24 25 // TestError is a testing error 26 var TestError = errors.New("test-error") 27 28 // CallerThatDoesNotGetCalled missing godoc 29 func CallerThatDoesNotGetCalled(t *testing.T, _ config.SelfRegConfig, _ string) *automock.ExternalSvcCallerProvider { 30 svcCaller := &automock.ExternalSvcCaller{} 31 svcCaller.AssertNotCalled(t, "Call", mock.Anything) 32 33 svcCallerProvider := &automock.ExternalSvcCallerProvider{} 34 svcCallerProvider.AssertNotCalled(t, "GetCaller", mock.Anything, mock.Anything) 35 return svcCallerProvider 36 } 37 38 // CallerThatDoesNotSucceed missing godoc 39 func CallerThatDoesNotSucceed(_ *testing.T, cfg config.SelfRegConfig, region string) *automock.ExternalSvcCallerProvider { 40 svcCaller := &automock.ExternalSvcCaller{} 41 svcCaller.On("Call", mock.Anything).Return(nil, TestError).Once() 42 43 svcCallerProvider := &automock.ExternalSvcCallerProvider{} 44 svcCallerProvider.On("GetCaller", cfg, region).Return(svcCaller, nil).Once() 45 return svcCallerProvider 46 } 47 48 // CallerThatReturnsBadStatus missing godoc 49 func CallerThatReturnsBadStatus(_ *testing.T, cfg config.SelfRegConfig, region string) *automock.ExternalSvcCallerProvider { 50 svcCaller := &automock.ExternalSvcCaller{} 51 response := httptest.ResponseRecorder{ 52 Code: http.StatusBadRequest, 53 Body: bytes.NewBufferString(""), 54 } 55 svcCaller.On("Call", mock.Anything).Return(response.Result(), nil).Once() 56 57 svcCallerProvider := &automock.ExternalSvcCallerProvider{} 58 svcCallerProvider.On("GetCaller", cfg, region).Return(svcCaller, nil).Once() 59 return svcCallerProvider 60 } 61 62 // CallerThatGetsCalledOnce missing godoc 63 func CallerThatGetsCalledOnce(statusCode int) func(*testing.T, config.SelfRegConfig, string) *automock.ExternalSvcCallerProvider { 64 return func(t *testing.T, cfg config.SelfRegConfig, region string) *automock.ExternalSvcCallerProvider { 65 svcCaller := &automock.ExternalSvcCaller{} 66 response := httptest.ResponseRecorder{ 67 Code: statusCode, 68 Body: bytes.NewBufferString(fmt.Sprintf(`{"%s":"%s"}`, ResponseLabelKey, ResponseLabelValue)), 69 } 70 svcCaller.On("Call", mock.Anything).Return(response.Result(), nil).Once() 71 72 svcCallerProvider := &automock.ExternalSvcCallerProvider{} 73 svcCallerProvider.On("GetCaller", cfg, region).Return(svcCaller, nil).Once() 74 return svcCallerProvider 75 } 76 } 77 78 // CallerProviderThatFails missing godoc 79 func CallerProviderThatFails(_ *testing.T, cfg config.SelfRegConfig, region string) *automock.ExternalSvcCallerProvider { 80 svcCallerProvider := &automock.ExternalSvcCallerProvider{} 81 svcCallerProvider.On("GetCaller", cfg, region).Return(nil, TestError).Once() 82 return svcCallerProvider 83 }