Procházet zdrojové kódy

Add client.SetSigner to allow user change signer after init

mozillazg před 5 roky
rodič
revize
e7576c3a7a
2 změnil soubory, kde provedl 19 přidání a 0 odebrání
  1. 4 0
      sdk/client.go
  2. 15 0
      sdk/client_test.go

+ 4 - 0
sdk/client.go

@@ -707,6 +707,10 @@ func (client *Client) GetSigner() auth.Signer {
 	return client.signer
 }
 
+func (client *Client) SetSigner(signer auth.Signer) {
+	client.signer = signer
+}
+
 func NewClient() (client *Client, err error) {
 	client = &Client{}
 	err = client.Init()

+ 15 - 0
sdk/client_test.go

@@ -846,3 +846,18 @@ func TestClient_GetSigner(t *testing.T) {
 	assert.Equal(t, client.signer, signer)
 	assert.True(t, client.signer == signer)
 }
+
+func TestClient_SetSigner(t *testing.T) {
+	c1, err := NewClientWithBearerToken("cn-hangzhou", "Bearer.Token")
+	assert.Nil(t, err)
+	oldSinger := c1.GetSigner()
+
+	c2, err := NewClientWithBearerToken("cn-hangzhou", "Bearer.Token")
+	assert.Nil(t, err)
+	newSinger := c2.GetSigner()
+
+	c1.SetSigner(newSinger)
+	assert.Equal(t, newSinger, c1.signer)
+	assert.True(t, c1.signer == newSinger)
+	assert.True(t, c1.signer != oldSinger)
+}