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  }