Przeglądaj źródła

add test cases for signer.go

Jackson Tian 7 lat temu
rodzic
commit
9e35fa8d02
3 zmienionych plików z 91 dodań i 11 usunięć
  1. 1 1
      sdk/auth/signer.go
  2. 80 0
      sdk/auth/signer_test.go
  3. 10 10
      sdk/client_test.go

+ 1 - 1
sdk/auth/signer.go

@@ -80,7 +80,7 @@ func Sign(request requests.AcsRequest, signer Signer, regionId string) (err erro
 	switch request.GetStyle() {
 	case requests.ROA:
 		{
-			signRoaRequest(request, signer, regionId)
+			err = signRoaRequest(request, signer, regionId)
 		}
 	case requests.RPC:
 		{

+ 80 - 0
sdk/auth/signer_test.go

@@ -0,0 +1,80 @@
+package auth
+
+import (
+	"testing"
+
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/signers"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/stretchr/testify/assert"
+)
+
+func TestSigner_AccessKeySigner(t *testing.T) {
+	c := credentials.NewAccessKeyCredential("accessKeyId", "accessKeySecret")
+	signer, err := NewSignerWithCredential(c, nil)
+	assert.Nil(t, err)
+	_, ok := signer.(*signers.AccessKeySigner)
+	assert.True(t, ok)
+}
+func TestSigner_StsTokenSigner(t *testing.T) {
+	c := credentials.NewStsTokenCredential("accessKeyId", "accessKeySecret", "token")
+	signer, err := NewSignerWithCredential(c, nil)
+	assert.Nil(t, err)
+	_, ok := signer.(*signers.StsTokenSigner)
+	assert.True(t, ok)
+}
+
+func TestSigner_RamRoleArnSigner(t *testing.T) {
+	c := credentials.NewRamRoleArnCredential("accessKeyId", "accessKeySecret", "roleArn", "roleSessionName", 3600)
+	signer, err := NewSignerWithCredential(c, nil)
+	assert.Nil(t, err)
+	_, ok := signer.(*signers.RamRoleArnSigner)
+	assert.True(t, ok)
+}
+
+func TestSigner_NewSignerKeyPair(t *testing.T) {
+	c := credentials.NewRsaKeyPairCredential("publicKeyId", "privateKeyId", 3600)
+	signer, err := NewSignerWithCredential(c, nil)
+	assert.Nil(t, err)
+	_, ok := signer.(*signers.SignerKeyPair)
+	assert.True(t, ok)
+}
+
+func TestSigner_EcsRamRoleSigner(t *testing.T) {
+	c := credentials.NewEcsRamRoleCredential("roleName")
+	signer, err := NewSignerWithCredential(c, nil)
+	assert.Nil(t, err)
+	_, ok := signer.(*signers.EcsRamRoleSigner)
+	assert.True(t, ok)
+}
+
+type OtherCredential struct {
+}
+
+func TestSigner_OtherSigner(t *testing.T) {
+	c := &OtherCredential{}
+	_, err := NewSignerWithCredential(c, nil)
+	assert.NotNil(t, err)
+	assert.Equal(t, "[SDK.UnsupportedCredential] Specified credential (type = *auth.OtherCredential) is not supported, please check", err.Error())
+}
+
+func Test_Sign_ROA(t *testing.T) {
+	request := requests.NewCommonRequest()
+	request.PathPattern = "/users/:user"
+	request.TransToAcsRequest()
+	c := credentials.NewAccessKeyCredential("accessKeyId", "accessKeySecret")
+	signer := signers.NewAccessKeySigner(c)
+
+	err := Sign(request, signer, "regionId")
+	assert.Nil(t, err)
+}
+
+func Test_Sign_RPC(t *testing.T) {
+	request := requests.NewCommonRequest()
+	request.TransToAcsRequest()
+	c := credentials.NewAccessKeyCredential("accessKeyId", "accessKeySecret")
+	signer := signers.NewAccessKeySigner(c)
+
+	err := Sign(request, signer, "regionId")
+	assert.Nil(t, err)
+}

+ 10 - 10
sdk/client_test.go

@@ -17,16 +17,16 @@ package sdk
 import (
 	"crypto/tls"
 	"encoding/json"
-	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
-	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
-	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
-	"github.com/stretchr/testify/assert"
 	"io/ioutil"
 	"net/http"
 	"os"
 	"os/user"
 	"testing"
-	// "fmt"
+
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
+	"github.com/stretchr/testify/assert"
 )
 
 var client, clientKeyPair, clientEcs, clientRoleArn, clientSts *Client
@@ -170,11 +170,11 @@ func TestRoaGet(t *testing.T) {
 	assert.Nil(t, err)
 	assert.Equal(t, http.StatusOK, response.GetHttpStatus(), response.GetHttpContentString())
 	assert.NotNil(t, response.GetHttpContentString())
-	var responseBean struct{
-		Regions[] struct{
-			LocalName string;
-			RegionId string;
-		};
+	var responseBean struct {
+		Regions []struct {
+			LocalName string
+			RegionId  string
+		}
 	}
 	json.Unmarshal([]byte(response.GetHttpContentString()), &responseBean)
 	assert.NotNil(t, responseBean.Regions)