X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=test%2Fusecases%2Foruclosedlooprecovery%2Fgoversion%2Finternal%2Frestclient%2Fclient_test.go;h=2c915fdaef216404698acfefed0fa428d45eb4d1;hb=46a0fd717e5f49ebae6cb2c4fbcf54f0e329dc86;hp=4b2f7fe4ee1bed82d34a46cd0f23ccbcd61ed91b;hpb=0af0d6013c831bfea032c34ce85e1dcf28b10855;p=nonrtric.git diff --git a/test/usecases/oruclosedlooprecovery/goversion/internal/restclient/client_test.go b/test/usecases/oruclosedlooprecovery/goversion/internal/restclient/client_test.go index 4b2f7fe4..2c915fda 100644 --- a/test/usecases/oruclosedlooprecovery/goversion/internal/restclient/client_test.go +++ b/test/usecases/oruclosedlooprecovery/goversion/internal/restclient/client_test.go @@ -21,11 +21,16 @@ package restclient import ( "bytes" + "crypto/tls" "fmt" "io/ioutil" + "math" "net/http" + "reflect" "testing" + "time" + "github.com/hashicorp/go-retryablehttp" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" "oransc.org/usecase/oruclosedloop/mocks" @@ -38,7 +43,7 @@ func TestRequestError_Error(t *testing.T) { StatusCode: http.StatusBadRequest, Body: []byte("error"), } - assertions.Equal("Request failed due to error response with status: 400 and body: error", actualError.Error()) + assertions.Equal("error response with status: 400 and body: error", actualError.Error()) } func TestPutWithoutAuth(t *testing.T) { @@ -139,7 +144,6 @@ func Test_doErrorCases(t *testing.T) { url: "badRequest", mockReturnStatus: http.StatusBadRequest, mockReturnBody: []byte("bad request"), - mockReturnError: nil, }, wantErr: RequestError{ StatusCode: http.StatusBadRequest, @@ -168,3 +172,63 @@ func Test_doErrorCases(t *testing.T) { }) } } + +func Test_createClientCertificate(t *testing.T) { + assertions := require.New(t) + wantedCert, _ := tls.LoadX509KeyPair("../../security/consumer.crt", "../../security/consumer.key") + type args struct { + certPath string + keyPath string + } + tests := []struct { + name string + args args + wantCert tls.Certificate + wantErr error + }{ + { + name: "Paths to cert info ok should return cerftificate", + args: args{ + certPath: "../../security/consumer.crt", + keyPath: "../../security/consumer.key", + }, + wantCert: wantedCert, + }, + { + name: "Paths to cert info not ok should return error with info about error", + args: args{ + certPath: "wrong_cert", + keyPath: "wrong_key", + }, + wantErr: fmt.Errorf("cannot create x509 keypair from cert file wrong_cert and key file wrong_key due to: open wrong_cert: no such file or directory"), + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + cert, err := CreateClientCertificate(tt.args.certPath, tt.args.keyPath) + assertions.Equal(tt.wantCert, cert, tt.name) + assertions.Equal(tt.wantErr, err, tt.name) + }) + } +} + +func Test_CreateRetryClient(t *testing.T) { + assertions := require.New(t) + + client := CreateRetryClient(tls.Certificate{}) + + transport := client.Transport + assertions.Equal("*retryablehttp.RoundTripper", reflect.TypeOf(transport).String()) + retryableTransport := transport.(*retryablehttp.RoundTripper) + retryableClient := retryableTransport.Client + assertions.Equal(time.Minute, retryableClient.RetryWaitMax) + assertions.Equal(math.MaxInt, retryableClient.RetryMax) +} + +func TestIsUrlSecured(t *testing.T) { + assertions := require.New(t) + + assertions.True(IsUrlSecure("https://url")) + + assertions.False(IsUrlSecure("http://url")) +}