You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

121 lines
3.1 KiB

package cos
import (
"context"
"encoding/xml"
"fmt"
"net/http"
"reflect"
"testing"
)
func TestBucketService_ListMultipartUploads(t *testing.T) {
setup()
defer teardown()
mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, "GET")
vs := values{
"uploads": "",
"prefix": "t",
}
testFormValues(t, r, vs)
fmt.Fprint(w, `<ListMultipartUploadsResult>
<Bucket>test-1253846586</Bucket>
<Encoding-Type/>
<KeyMarker/>
<UploadIdMarker/>
<MaxUploads>1000</MaxUploads>
<Prefix>t</Prefix>
<Delimiter>/</Delimiter>
<IsTruncated>false</IsTruncated>
<CommonPrefixs>
<Prefix>test/</Prefix>
</CommonPrefixs>
<Upload>
<Key>test_multipart.txt</Key>
<UploadId>14972623850a5de3f4f10605ab9f339c8bdf1b77e06f03fb981e7e76c86554b7bdb6072b36</UploadId>
<Initiator>
<ID>100000760461/100000760461</ID>
<DisplayName/>
</Initiator>
<Owner>
<ID>100000760461/100000760461</ID>
<DisplayName/>
</Owner>
<StorageClass>STANDARD</StorageClass>
<Initiated>2017-06-12T10:13:05.000Z</Initiated>
</Upload>
<Upload>
<Key>test_multipar2t.txt</Key>
<UploadId>1497515958744e899fc341bfbb995ebd57b395f63930411d855aaac1b5cd7d834a15442831</UploadId>
<Initiator>
<ID>qcs::cam::uin/100000760461:uin/100000760461</ID>
<DisplayName>100000760461</DisplayName>
</Initiator>
<Owner>
<ID>qcs::cam::uin/100000760461:uin/100000760461</ID>
<DisplayName>100000760461</DisplayName>
</Owner>
<StorageClass>STANDARD</StorageClass>
<Initiated>2017-06-15T08:39:18.000Z</Initiated>
</Upload>
</ListMultipartUploadsResult>`)
})
opt := &ListMultipartUploadsOptions{
Prefix: "t",
}
ref, _, err := client.Bucket.ListMultipartUploads(context.Background(), opt)
if err != nil {
t.Fatalf("Bucket.ListMultipartUploads returned error: %v", err)
}
want := &ListMultipartUploadsResult{
XMLName: xml.Name{Local: "ListMultipartUploadsResult"},
Bucket: "test-1253846586",
MaxUploads: 1000,
IsTruncated: false,
Uploads: []struct {
Key string
UploadID string `xml:"UploadId"`
StorageClass string
Initiator *Initiator
Owner *Owner
Initiated string
}{
{
Key: "test_multipart.txt",
UploadID: "14972623850a5de3f4f10605ab9f339c8bdf1b77e06f03fb981e7e76c86554b7bdb6072b36",
Initiator: &Initiator{
ID: "100000760461/100000760461",
},
Owner: &Owner{
ID: "100000760461/100000760461",
},
StorageClass: "STANDARD",
Initiated: "2017-06-12T10:13:05.000Z",
},
{
Key: "test_multipar2t.txt",
UploadID: "1497515958744e899fc341bfbb995ebd57b395f63930411d855aaac1b5cd7d834a15442831",
Initiator: &Initiator{
ID: "qcs::cam::uin/100000760461:uin/100000760461",
DisplayName: "100000760461",
},
Owner: &Owner{
ID: "qcs::cam::uin/100000760461:uin/100000760461",
DisplayName: "100000760461",
},
StorageClass: "STANDARD",
Initiated: "2017-06-15T08:39:18.000Z",
},
},
Prefix: "t",
CommonPrefixes: []string{"test/"},
}
if !reflect.DeepEqual(ref, want) {
t.Errorf("Bucket.ListMultipartUploads returned \n%+v, want \n%+v", ref, want)
}
}