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  }