Browse Source

Add test case for endpoints/location_resolver

Jackson Tian 7 years ago
parent
commit
b4fdd46361
2 changed files with 44 additions and 2 deletions
  1. 2 2
      sdk/endpoints/location_resolver.go
  2. 42 0
      sdk/endpoints/location_resolver_test.go

+ 2 - 2
sdk/endpoints/location_resolver.go

@@ -88,12 +88,12 @@ func (resolver *LocationResolver) TryResolve(param *ResolveParam) (endpoint stri
 	}
 
 	response, err := param.CommonApi(getEndpointRequest)
-	var getEndpointResponse GetEndpointResponse
-	if !response.IsSuccess() {
+	if err != nil || !response.IsSuccess() {
 		support = false
 		return
 	}
 
+	var getEndpointResponse GetEndpointResponse
 	json.Unmarshal([]byte(response.GetHttpContentString()), &getEndpointResponse)
 	if !getEndpointResponse.Success || getEndpointResponse.Endpoints == nil {
 		support = false

+ 42 - 0
sdk/endpoints/location_resolver_test.go

@@ -0,0 +1,42 @@
+package endpoints
+
+import (
+  "testing"
+
+  "github.com/stretchr/testify/assert"
+
+  "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/sdk/responses"
+)
+
+func TestLocationResolver_GetName(t *testing.T) {
+  resolver := &LocationResolver{}
+  assert.Equal(t, resolver.GetName(), "location resolver")
+}
+
+func TestLocationResolver_TryResolve_EmptyLocationProduct(t *testing.T) {
+  resolver := &LocationResolver{}
+  resolveParam := &ResolveParam{}
+  endpoint, support, err := resolver.TryResolve(resolveParam)
+  assert.Nil(t, err)
+  assert.Equal(t, "", endpoint)
+  assert.Equal(t, false, support)
+}
+
+func TestLocationResolver_TryResolve_LocationWithError(t *testing.T) {
+  resolver := &LocationResolver{}
+  resolveParam := &ResolveParam{
+    LocationProduct: "ecs",
+    RegionId: "cn-hangzhou",
+    Product:  "ecs",
+    CommonApi: func(request *requests.CommonRequest) (response *responses.CommonResponse, err error) {
+      err = errors.NewClientError("SDK.MockError", "Mock error", nil)
+      return
+    },
+  }
+  endpoint, support, err := resolver.TryResolve(resolveParam)
+  assert.Equal(t, "", endpoint)
+  assert.Equal(t, false, support)
+  assert.Equal(t, "[SDK.MockError] Mock error", err.Error())
+}