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  }