github.com/kyma-incubator/compass/components/director@v0.0.0-20230623144113-d764f56ff805/pkg/auth/basic_provider_test.go (about) 1 /* 2 * Copyright 2020 The Compass Authors 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package auth_test 18 19 import ( 20 "context" 21 "encoding/base64" 22 "testing" 23 24 "github.com/kyma-incubator/compass/components/director/pkg/apperrors" 25 "github.com/kyma-incubator/compass/components/director/pkg/auth" 26 "github.com/stretchr/testify/suite" 27 ) 28 29 func TestBasicAuthorizationProviderTestSuite(t *testing.T) { 30 suite.Run(t, new(BasicAuthorizationProviderTestSuite)) 31 } 32 33 type BasicAuthorizationProviderTestSuite struct { 34 suite.Suite 35 } 36 37 func (suite *BasicAuthorizationProviderTestSuite) TestBasicAuthorizationProvider_New() { 38 provider := auth.NewBasicAuthorizationProvider() 39 suite.Require().NotNil(provider) 40 } 41 42 func (suite *BasicAuthorizationProviderTestSuite) TestBasicAuthorizationProvider_Name() { 43 provider := auth.NewBasicAuthorizationProvider() 44 45 name := provider.Name() 46 47 suite.Require().Equal(name, "BasicAuthorizationProvider") 48 } 49 50 func (suite *BasicAuthorizationProviderTestSuite) TestBasicAuthorizationProvider_Matches() { 51 provider := auth.NewBasicAuthorizationProvider() 52 53 matches := provider.Matches(auth.SaveToContext(context.Background(), &auth.BasicCredentials{})) 54 suite.Require().Equal(matches, true) 55 } 56 57 func (suite *BasicAuthorizationProviderTestSuite) TestBasicAuthorizationProvider_DoesNotMatchWhenOAuthCredentialsInContext() { 58 provider := auth.NewBasicAuthorizationProvider() 59 60 matches := provider.Matches(auth.SaveToContext(context.Background(), &auth.OAuthCredentials{})) 61 suite.Require().Equal(matches, false) 62 } 63 64 func (suite *BasicAuthorizationProviderTestSuite) TestBasicAuthorizationProvider_DoesNotMatchNoCredentialsInContext() { 65 provider := auth.NewBasicAuthorizationProvider() 66 67 matches := provider.Matches(context.TODO()) 68 suite.Require().Equal(matches, false) 69 } 70 71 func (suite *BasicAuthorizationProviderTestSuite) TestBasicAuthorizationProvider_GetAuthorization() { 72 provider := auth.NewBasicAuthorizationProvider() 73 74 username, password := "user", "pass" 75 ctx := auth.SaveToContext(context.Background(), &auth.BasicCredentials{ 76 Username: username, 77 Password: password, 78 }) 79 authorization, err := provider.GetAuthorization(ctx) 80 81 suite.Require().NoError(err) 82 suite.Require().NotEmpty(authorization) 83 84 auth := username + ":" + password 85 base64Creds := base64.StdEncoding.EncodeToString([]byte(auth)) 86 suite.Require().Equal("Basic "+base64Creds, authorization) 87 } 88 89 func (suite *BasicAuthorizationProviderTestSuite) TestBasicAuthorizationProvider_GetAuthorizationFailsWhenNoCredentialsInContext() { 90 provider := auth.NewBasicAuthorizationProvider() 91 92 authorization, err := provider.GetAuthorization(context.TODO()) 93 94 suite.Require().Error(err) 95 suite.Require().True(apperrors.IsNotFoundError(err)) 96 suite.Require().Empty(authorization) 97 } 98 99 func (suite *BasicAuthorizationProviderTestSuite) TestBasicAuthorizationProvider_GetAuthorizationFailsWhenOAuthCredentialsAreInContext() { 100 provider := auth.NewBasicAuthorizationProvider() 101 102 authorization, err := provider.GetAuthorization(auth.SaveToContext(context.Background(), &auth.OAuthCredentials{})) 103 104 suite.Require().Error(err) 105 suite.Require().Contains(err.Error(), "failed to cast credentials to basic credentials type") 106 suite.Require().Empty(authorization) 107 }