Преглед изворни кода

Common request (#113)

* Add test case for CommonRequest String()
Jackson Tian пре 7 година
родитељ
комит
bd5368a8a4
2 измењених фајлова са 30 додато и 10 уклоњено
  1. 11 3
      sdk/requests/common_request.go
  2. 19 7
      sdk/requests/common_request_test.go

+ 11 - 3
sdk/requests/common_request.go

@@ -4,6 +4,7 @@ import (
 	"bytes"
 	"bytes"
 	"fmt"
 	"fmt"
 	"io"
 	"io"
+	"sort"
 	"strings"
 	"strings"
 )
 )
 
 
@@ -37,14 +38,21 @@ func (request *CommonRequest) String() string {
 
 
 	mapOutput := func(m map[string]string) {
 	mapOutput := func(m map[string]string) {
 		if len(m) > 0 {
 		if len(m) > 0 {
-			for key, value := range m {
-				resultBuilder.WriteString(key + ": " + value + "\n")
+			sortedKeys := make([]string, 0)
+			for k := range m {
+				sortedKeys = append(sortedKeys, k)
+			}
+
+			// sort 'string' key in increasing order
+			sort.Strings(sortedKeys)
+
+			for _, key := range sortedKeys {
+				resultBuilder.WriteString(key + ": " + m[key] + "\n")
 			}
 			}
 		}
 		}
 	}
 	}
 
 
 	// Request Line
 	// Request Line
-	resultBuilder.WriteString("\n")
 	resultBuilder.WriteString(fmt.Sprintf("%s %s %s/1.1\n", request.Method, request.BuildQueries(), strings.ToUpper(request.Scheme)))
 	resultBuilder.WriteString(fmt.Sprintf("%s %s %s/1.1\n", request.Method, request.BuildQueries(), strings.ToUpper(request.Scheme)))
 
 
 	// Headers
 	// Headers

+ 19 - 7
sdk/requests/common_request_test.go

@@ -36,16 +36,28 @@ func Test_CommonRequest_TransToAcsRequest(t *testing.T) {
 func Test_CommonRequest_String(t *testing.T) {
 func Test_CommonRequest_String(t *testing.T) {
 	r := NewCommonRequest()
 	r := NewCommonRequest()
 	assert.NotNil(t, r)
 	assert.NotNil(t, r)
-	r.TransToAcsRequest()
+	r.SetDomain("domain")
 
 
-	assert.Equal(t, "RPC", r.GetStyle())
+	expected := `GET /? /1.1
+Host: domain
+Accept-Encoding: identity
+x-sdk-client: golang/1.0.0
+x-sdk-invoke-type: common
 
 
-	r2 := NewCommonRequest()
-	assert.NotNil(t, r2)
-	r2.PathPattern = "/users/[user]"
-	r2.TransToAcsRequest()
+`
+	assert.Equal(t, expected, r.String())
 
 
-	assert.Equal(t, "ROA", r2.GetStyle())
+	r.SetContent([]byte("content"))
+
+	expected = `GET /? /1.1
+Host: domain
+Accept-Encoding: identity
+x-sdk-client: golang/1.0.0
+x-sdk-invoke-type: common
+
+content
+`
+	assert.Equal(t, expected, r.String())
 }
 }
 
 
 func Test_CommonRequest_BuildUrl(t *testing.T) {
 func Test_CommonRequest_BuildUrl(t *testing.T) {