github.com/alibabacloud-go/tea@v1.3.10/dara/form_test.go (about) 1 package dara 2 3 import ( 4 "io/ioutil" 5 "strings" 6 "testing" 7 8 "github.com/alibabacloud-go/tea/utils" 9 ) 10 11 func Test_ToFormString(t *testing.T) { 12 str := ToFormString(nil) 13 utils.AssertEqual(t, "", str) 14 15 a := map[string]interface{}{ 16 "key1": "value1", 17 "key2": "value2", 18 } 19 str = ToFormString(a) 20 utils.AssertEqual(t, str, "key1=value1&key2=value2") 21 } 22 23 type TestForm struct { 24 Ak *string `json:"ak"` 25 File1 *FileField `json:"file1"` 26 File2 *FileField `json:"file2"` 27 } 28 29 func Test_ToFileForm(t *testing.T) { 30 file1 := new(FileField). 31 SetContent(strings.NewReader("ok")). 32 SetContentType("jpg"). 33 SetFilename("a.jpg") 34 body := map[string]interface{}{ 35 "ak": "accesskey", 36 "file1": file1, 37 } 38 res := ToFileForm(ToMap(body), "28802961715230") 39 byt, err := ioutil.ReadAll(res) 40 utils.AssertNil(t, err) 41 utils.AssertEqual(t, string(byt), "--28802961715230\r\nContent-Disposition: "+ 42 "form-data; name=\"ak\"\r\n\r\naccesskey\r\n--28802961715230\r\nContent-Disposition: "+ 43 "form-data; name=\"file1\"; filename=\"a.jpg\"\r\nContent-Type: jpg\r\n\r\nok\r\n\r\n--28802961715230--\r\n") 44 45 body1 := &TestForm{ 46 Ak: String("accesskey"), 47 File1: &FileField{ 48 Filename: String("a.jpg"), 49 ContentType: String("jpg"), 50 Content: strings.NewReader("ok"), 51 }, 52 } 53 res = ToFileForm(ToMap(body1), "28802961715230") 54 byt, err = ioutil.ReadAll(res) 55 utils.AssertNil(t, err) 56 utils.AssertEqual(t, string(byt), "--28802961715230\r\nContent-Disposition: form-data; "+ 57 "name=\"ak\"\r\n\r\naccesskey\r\n--28802961715230\r\nContent-Disposition: "+ 58 "form-data; name=\"file1\"; filename=\"a.jpg\"\r\nContent-Type: jpg\r\n\r\n\r\n\r\n--28802961715230--\r\n") 59 } 60 61 func Test_GetBoundary(t *testing.T) { 62 bound := GetBoundary() 63 utils.AssertEqual(t, len(bound), 14) 64 }