github.com/Axway/agent-sdk@v1.1.101/pkg/authz/oauth/clientmetadata_test.go (about) 1 package oauth 2 3 import ( 4 "encoding/json" 5 "strings" 6 "testing" 7 8 "github.com/Axway/agent-sdk/pkg/config" 9 "github.com/stretchr/testify/assert" 10 ) 11 12 func TestClientMetadataSerialization(t *testing.T) { 13 c, err := NewClientMetadataBuilder(). 14 SetClientName("test"). 15 SetGrantTypes([]string{GrantTypeClientCredentials, GrantTypeAuthorizationCode}). 16 SetTokenEndpointAuthMethod(config.ClientSecretJWT). 17 SetResponseType([]string{AuthResponseToken}). 18 SetRedirectURIs([]string{"http://localhost"}). 19 SetScopes([]string{"scope1", "scope2"}). 20 SetLogoURI("http://localhost"). 21 SetJWKSURI("http://localhost"). 22 SetExtraProperties(map[string]string{"key": "value"}). 23 Build() 24 assert.Nil(t, err) 25 assert.NotNil(t, c) 26 27 cm := c.(*clientMetadata) 28 cm.ClientID = "test" 29 cm.ClientSecret = "test" 30 var now Time 31 cm.ClientIDIssuedAt = &now 32 cm.ClientSecretExpiresAt = &now 33 34 buf, err := json.Marshal(c) 35 assert.Nil(t, err) 36 assert.NotNil(t, buf) 37 38 scm := &clientMetadata{} 39 err = json.Unmarshal(buf, scm) 40 assert.Nil(t, err) 41 42 assert.Equal(t, c.GetClientName(), scm.GetClientName()) 43 assert.Equal(t, c.GetClientID(), scm.GetClientID()) 44 assert.Equal(t, c.GetClientSecret(), scm.GetClientSecret()) 45 assert.Equal(t, c.GetClientIDIssuedAt().Unix(), scm.GetClientIDIssuedAt().Unix()) 46 assert.Equal(t, c.GetClientSecretExpiresAt().Unix(), scm.GetClientSecretExpiresAt().Unix()) 47 assert.Equal(t, strings.Join(c.GetGrantTypes(), ","), strings.Join(scm.GetGrantTypes(), ",")) 48 assert.Equal(t, c.GetTokenEndpointAuthMethod(), scm.GetTokenEndpointAuthMethod()) 49 assert.Equal(t, strings.Join(c.GetResponseTypes(), ","), strings.Join(scm.GetResponseTypes(), ",")) 50 assert.Equal(t, strings.Join(c.GetRedirectURIs(), ","), strings.Join(scm.GetRedirectURIs(), ",")) 51 assert.Equal(t, strings.Join(c.GetScopes(), ","), strings.Join(scm.GetScopes(), ",")) 52 assert.Equal(t, c.GetLogoURI(), scm.GetLogoURI()) 53 assert.Equal(t, c.GetJwksURI(), scm.GetJwksURI()) 54 assert.Equal(t, len(c.GetExtraProperties()), len(scm.GetExtraProperties())) 55 56 }