github.com/Axway/agent-sdk@v1.1.101/pkg/authz/oauth/providerregistry_test.go (about) 1 package oauth 2 3 import ( 4 "context" 5 "net/http" 6 "testing" 7 "time" 8 9 "github.com/Axway/agent-sdk/pkg/config" 10 "github.com/stretchr/testify/assert" 11 ) 12 13 func createIDPConfig(name, metadataURL string) *config.IDPConfiguration { 14 return &config.IDPConfiguration{ 15 Name: name, 16 MetadataURL: metadataURL, 17 } 18 } 19 20 func TestProviderRegistry(t *testing.T) { 21 idpServer := NewMockIDPServer() 22 defer idpServer.Close() 23 providerReg := NewProviderRegistry() 24 idpRegistry := NewIdpRegistry(WithProviderRegistry(providerReg)) 25 idCfg := createIDPConfig("test", idpServer.GetMetadataURL()) 26 idpServer.SetMetadataResponseCode(http.StatusBadRequest) 27 err := idpRegistry.RegisterProvider(context.Background(), idCfg, config.NewTLSConfig(), "", 30*time.Second) 28 assert.NotNil(t, err) 29 30 idCfg = createIDPConfig("test", idpServer.GetMetadataURL()) 31 err = idpRegistry.RegisterProvider(context.Background(), idCfg, config.NewTLSConfig(), "", 30*time.Second) 32 assert.Nil(t, err) 33 34 p, err := idpRegistry.GetProviderByName(context.Background(), "test") 35 assert.Nil(t, err) 36 assert.NotNil(t, p) 37 38 p, err = idpRegistry.GetProviderByName(context.Background(), "test1") 39 assert.NotNil(t, err) 40 assert.Nil(t, p) 41 42 p, err = idpRegistry.GetProviderByIssuer(context.Background(), idpServer.GetIssuer()) 43 assert.Nil(t, err) 44 assert.NotNil(t, p) 45 46 p, err = idpRegistry.GetProviderByIssuer(context.Background(), "invalid-issuer") 47 assert.NotNil(t, err) 48 assert.Nil(t, p) 49 50 p, err = idpRegistry.GetProviderByTokenEndpoint(context.Background(), idpServer.GetTokenURL()) 51 assert.Nil(t, err) 52 assert.NotNil(t, p) 53 54 p, err = idpRegistry.GetProviderByTokenEndpoint(context.Background(), "invalid-token-url") 55 assert.NotNil(t, err) 56 assert.Nil(t, p) 57 58 p, err = idpRegistry.GetProviderByAuthorizationEndpoint(context.Background(), idpServer.GetAuthEndpoint()) 59 assert.Nil(t, err) 60 assert.NotNil(t, p) 61 62 p, err = idpRegistry.GetProviderByAuthorizationEndpoint(context.Background(), "invalid-auth-url") 63 assert.NotNil(t, err) 64 assert.Nil(t, p) 65 66 p, err = idpRegistry.GetProviderByMetadataURL(context.Background(), idpServer.GetMetadataURL()) 67 assert.Nil(t, err) 68 assert.NotNil(t, p) 69 70 p, err = idpRegistry.GetProviderByMetadataURL(context.Background(), "invalid-auth-url") 71 assert.NotNil(t, err) 72 assert.Nil(t, p) 73 74 pr, _ := providerReg.(*providerRegistry) 75 pr.providerMap.Set("test1", "") 76 pr.providerMap.SetSecondaryKey("test1", "issuer:test1") 77 pr.providerMap.SetSecondaryKey("test1", "tokenEp:test1") 78 pr.providerMap.SetSecondaryKey("test1", "authEp:test1") 79 80 p, err = idpRegistry.GetProviderByName(context.Background(), "test1") 81 assert.NotNil(t, err) 82 assert.Nil(t, p) 83 84 p, err = idpRegistry.GetProviderByIssuer(context.Background(), "test1") 85 assert.NotNil(t, err) 86 assert.Nil(t, p) 87 88 p, err = idpRegistry.GetProviderByTokenEndpoint(context.Background(), "test1") 89 assert.NotNil(t, err) 90 assert.Nil(t, p) 91 92 p, err = idpRegistry.GetProviderByAuthorizationEndpoint(context.Background(), "test1") 93 assert.NotNil(t, err) 94 assert.Nil(t, p) 95 }