Browse Source

Add test cases for sdk/endpoints/local_regional_resolver.go

Jackson Tian 7 years ago
parent
commit
ef9d02f4e8

+ 0 - 17
sdk/endpoints/local_global_resolver_test.go

@@ -37,20 +37,3 @@ func TestLocalGlobalResolver_TryResolve(t *testing.T) {
   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())
-// }

+ 3 - 2
sdk/endpoints/local_regional_resolver.go

@@ -34,11 +34,12 @@ func (resolver *LocalRegionalResolver) TryResolve(param *ResolveParam) (endpoint
 	regionalData, err := jmespath.Search(regionalExpression, getEndpointConfigData())
 	if err == nil && regionalData != nil && len(regionalData.([]interface{})) > 0 {
 		endpointExpression := fmt.Sprintf("[0][?region=='%s'].endpoint", strings.ToLower(param.RegionId))
-		endpointData, err := jmespath.Search(endpointExpression, regionalData)
+		var endpointData interface{}
+		endpointData, err = jmespath.Search(endpointExpression, regionalData)
 		if err == nil && endpointData != nil && len(endpointData.([]interface{})) > 0 {
 			endpoint = endpointData.([]interface{})[0].(string)
 			support = len(endpoint) > 0
-			return endpoint, support, nil
+			return
 		}
 	}
 	support = false

+ 41 - 0
sdk/endpoints/local_regional_resolver_test.go

@@ -0,0 +1,41 @@
+package endpoints
+
+import (
+  "testing"
+
+  "github.com/stretchr/testify/assert"
+)
+
+func TestLocalRegionalResolver_GetName(t *testing.T) {
+  resolver := &LocalRegionalResolver{}
+  assert.Equal(t, resolver.GetName(), "local regional resolver")
+}
+
+func TestLocalRegionalResolver_TryResolve(t *testing.T) {
+  resolver := &LocalRegionalResolver{}
+  resolveParam := &ResolveParam{
+		Product: "ecs",
+		RegionId: "cn-beijing",
+	}
+  endpoint, support, err := resolver.TryResolve(resolveParam)
+  assert.Nil(t, err)
+  assert.Equal(t, "", endpoint)
+	assert.Equal(t, false, support)
+
+	resolveParam = &ResolveParam{
+		Product: "arms",
+		RegionId: "cn-beijing",
+	}
+  endpoint, support, err = resolver.TryResolve(resolveParam)
+  assert.Nil(t, err)
+  assert.Equal(t, "arms.cn-beijing.aliyuncs.com", endpoint)
+	assert.Equal(t, true, support)
+
+	// resolveParam = &ResolveParam{
+	// 	Product: "inexist",
+	// }
+  // endpoint, support, err = resolver.TryResolve(resolveParam)
+  // assert.Nil(t, err)
+  // assert.Equal(t, "", endpoint)
+	// assert.Equal(t, false, support)
+}