| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- package integration
- import (
- "github.com/aliyun/alibaba-cloud-sdk-go/sdk"
- "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
- "github.com/aliyun/alibaba-cloud-sdk-go/sdk/errors"
- "github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
- "github.com/aliyun/alibaba-cloud-sdk-go/services/ecs"
- "github.com/stretchr/testify/assert"
- "os"
- "strings"
- "testing"
- )
- func Test_DescribeRegionsWithParameterError(t *testing.T) {
- request := requests.NewCommonRequest()
- request.Version = "2014-05-26"
- request.Product = "Ecs"
- request.ApiName = "Describe"
- request.SetDomain("ecs.aliyuncs.com")
- request.TransToAcsRequest()
- client, err := sdk.NewClientWithAccessKey(os.Getenv("REGION_ID"), os.Getenv("ACCESS_KEY_ID"), os.Getenv("ACCESS_KEY_SECRET"))
- assert.Nil(t, err)
- _, err = client.ProcessCommonRequest(request)
- realerr := err.(errors.Error)
- assert.Equal(t, "InvalidParameter", realerr.ErrorCode())
- assert.Equal(t, "The specified parameter \"Action or Version\" is not valid.", realerr.Message())
- }
- func Test_DescribeRegionsWithUnreachableError(t *testing.T) {
- request := requests.NewCommonRequest()
- request.Version = "2014-05-26"
- request.Product = "Ecs"
- request.ApiName = "DescribeRegions"
- request.SetDomain("www.aliyun-hangzhou.com")
- request.TransToAcsRequest()
- client, err := sdk.NewClientWithAccessKey(os.Getenv("REGION_ID"), os.Getenv("ACCESS_KEY_ID"), os.Getenv("ACCESS_KEY_SECRET"))
- assert.Nil(t, err)
- response, err := client.ProcessCommonRequest(request)
- assert.Equal(t, 0, response.GetHttpStatus())
- realerr := err.(errors.Error)
- assert.True(t, strings.Contains(realerr.OriginError().Error(), "www.aliyun-hangzhou.com"))
- }
- func Test_DescribeRegionsWithTimeout(t *testing.T) {
- credentail := credentials.NewAccessKeyCredential(os.Getenv("ACCESS_KEY_ID"), os.Getenv("ACCESS_KEY_SECRET"))
- config := &sdk.Config{
- Timeout: 100,
- }
- request := ecs.CreateDescribeRegionsRequest()
- request.Scheme = "https"
- request.SetDomain("ecs.aliyuncs.com")
- client, err := ecs.NewClientWithOptions(os.Getenv("REGION_ID"), config, credentail)
- response, err := client.DescribeRegions(request)
- assert.Equal(t, 0, response.GetHttpStatus())
- assert.Contains(t, err.Error(), "https://ecs.aliyuncs.com")
- assert.Contains(t, err.Error(), "Client.Timeout exceeded while awaiting headers")
- }
- func Test_DescribeRegionsWithNilbody(t *testing.T) {
- request := requests.NewCommonRequest()
- request.Version = "2014-05-26"
- request.Product = "Ecs"
- request.ApiName = "DescribeRegions"
- ts := mockServer(400, ``)
- defer ts.Close()
- domain := strings.Replace(ts.URL, "http://", "", 1)
- request.Domain = domain
- request.TransToAcsRequest()
- client, err := sdk.NewClientWithAccessKey(os.Getenv("REGION_ID"), os.Getenv("ACCESS_KEY_ID"), os.Getenv("ACCESS_KEY_SECRET"))
- assert.Nil(t, err)
- response, err := client.ProcessCommonRequest(request)
- assert.Equal(t, 400, response.GetHttpStatus())
- assert.NotNil(t, err)
- }
- func Test_DescribeRegionsWithFormatError(t *testing.T) {
- request := requests.NewCommonRequest()
- request.Version = "2014-05-26"
- request.Product = "Ecs"
- request.ApiName = "DescribeRegions"
- ts := mockServer(400, `bad json`)
- defer ts.Close()
- domain := strings.Replace(ts.URL, "http://", "", 1)
- request.Domain = domain
- request.TransToAcsRequest()
- client, err := sdk.NewClientWithAccessKey(os.Getenv("REGION_ID"), os.Getenv("ACCESS_KEY_ID"), os.Getenv("ACCESS_KEY_SECRET"))
- assert.Nil(t, err)
- response, err := client.ProcessCommonRequest(request)
- assert.Equal(t, 400, response.GetHttpStatus())
- assert.Contains(t, err.Error(), "bad json")
- }
|