github.com/Axway/agent-sdk@v1.1.101/pkg/agent/provisioning_test.go (about) 1 package agent 2 3 import ( 4 "net/http" 5 "net/http/httptest" 6 "testing" 7 "time" 8 9 v1 "github.com/Axway/agent-sdk/pkg/apic/apiserver/models/api/v1" 10 management "github.com/Axway/agent-sdk/pkg/apic/apiserver/models/management/v1alpha1" 11 "github.com/Axway/agent-sdk/pkg/apic/mock" 12 "github.com/Axway/agent-sdk/pkg/authz/oauth" 13 "github.com/Axway/agent-sdk/pkg/config" 14 "github.com/stretchr/testify/assert" 15 ) 16 17 func TestNewCredentialRequestBuilder(t *testing.T) { 18 idp := oauth.NewMockIDPServer() 19 defer idp.Close() 20 21 s := httptest.NewServer(http.HandlerFunc(func(_ http.ResponseWriter, _ *http.Request) {})) 22 defer s.Close() 23 cfg := createCentralCfg(s.URL, "test") 24 InitializeWithAgentFeatures(cfg, &config.AgentFeaturesConfiguration{}) 25 26 agent.apicClient = &mock.Client{ 27 CreateOrUpdateResourceMock: func(data v1.Interface) (*v1.ResourceInstance, error) { 28 ri, _ := data.AsInstance() 29 return ri, nil 30 }, 31 UpdateResourceInstanceMock: func(data v1.Interface) (*v1.ResourceInstance, error) { 32 ri, _ := data.AsInstance() 33 return ri, nil 34 }, 35 } 36 37 tests := []struct { 38 name string 39 expectedName string 40 }{ 41 { 42 name: "Test Basic Auth Helper", 43 expectedName: "http-basic", 44 }, 45 { 46 name: "Test APIKey Helper", 47 expectedName: "api-key", 48 }, 49 { 50 name: "Test OAuth Helper", 51 expectedName: "oauth", 52 }, 53 { 54 name: "Test OAuth External Helper", 55 expectedName: "oauth-external", 56 }, 57 } 58 59 for _, test := range tests { 60 t.Run(test.name, func(t *testing.T) { 61 var err error 62 var crd *management.CredentialRequestDefinition 63 switch test.expectedName { 64 case "http-basic": 65 crd, err = NewBasicAuthCredentialRequestBuilder().Register() 66 case "api-key": 67 crd, err = NewAPIKeyCredentialRequestBuilder().Register() 68 case "oauth": 69 crd, err = NewOAuthCredentialRequestBuilder().Register() 70 case "oauth-external": 71 cfg := &config.IDPConfiguration{ 72 Name: "test", 73 Type: "okta", 74 MetadataURL: idp.GetMetadataURL(), 75 AuthConfig: &config.IDPAuthConfiguration{ 76 Type: "client", 77 ClientID: "test", 78 ClientSecret: "test", 79 }, 80 GrantType: oauth.GrantTypeClientCredentials, 81 ClientScopes: "read,write", 82 AuthMethod: config.ClientSecretBasic, 83 AuthResponseType: "token", 84 ExtraProperties: config.ExtraProperties{"key": "value"}, 85 } 86 87 p, _ := oauth.NewProvider(cfg, config.NewTLSConfig(), "", 30*time.Second) 88 crd, err = NewOAuthCredentialRequestBuilder( 89 WithCRDOAuthSecret(), 90 WithCRDForIDP(p, []string{}), 91 ).Register() 92 default: 93 crd, err = NewCredentialRequestBuilder().Register() 94 } 95 assert.NotNil(t, crd) 96 assert.Nil(t, err) 97 }) 98 } 99 }