Test to delete multiple objects (#1479)
This commit is contained in:
committed by
GitHub
parent
d62235ee58
commit
c52ba1f859
@@ -458,6 +458,45 @@ func UploadAnObject(bucketName string, fileName string) (*http.Response, error)
|
||||
return response, err
|
||||
}
|
||||
|
||||
func DeleteMultipleObjects(bucketName string, files []map[string]interface{}) (*http.Response, error) {
|
||||
/*
|
||||
Helper function to delete multiple objects in a container.
|
||||
POST: /buckets/{bucket_name}/delete-objects
|
||||
files: [
|
||||
{
|
||||
"path": "veniam tempor in",
|
||||
"versionID": "ea dolor Duis",
|
||||
"recursive": false
|
||||
},
|
||||
{
|
||||
"path": "proident eu esse",
|
||||
"versionID": "eiusmod amet commodo",
|
||||
"recursive": true
|
||||
}
|
||||
]
|
||||
*/
|
||||
requestDataAdd := map[string]interface{}{
|
||||
"files": files,
|
||||
}
|
||||
requestDataJSON, _ := json.Marshal(requestDataAdd)
|
||||
requestDataBody := bytes.NewReader(requestDataJSON)
|
||||
request, err := http.NewRequest(
|
||||
"POST",
|
||||
"http://localhost:9090/api/v1/buckets/"+bucketName+"/delete-objects",
|
||||
requestDataBody,
|
||||
)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
request.Header.Add("Cookie", fmt.Sprintf("token=%s", token))
|
||||
request.Header.Add("Content-Type", "application/json")
|
||||
client := &http.Client{
|
||||
Timeout: 2 * time.Second,
|
||||
}
|
||||
response, err := client.Do(request)
|
||||
return response, err
|
||||
}
|
||||
|
||||
func DeleteObject(bucketName string, path string, recursive bool, allVersions bool) (*http.Response, error) {
|
||||
/*
|
||||
Helper function to delete an object from a given bucket.
|
||||
@@ -1158,6 +1197,77 @@ func TestPutObjectTag(t *testing.T) {
|
||||
finalResponse)
|
||||
}
|
||||
|
||||
func TestDeleteMultipleObjects(t *testing.T) {
|
||||
/*
|
||||
Function to test the deletion of multiple objects from a given bucket.
|
||||
*/
|
||||
|
||||
// Variables
|
||||
assert := assert.New(t)
|
||||
bucketName := "testdeletemultipleobjsbucket1"
|
||||
numberOfFiles := 5
|
||||
fileName := "testdeletemultipleobjs"
|
||||
|
||||
// 1. Create a bucket for this particular test
|
||||
response, err := AddBucket(bucketName, false, false, nil, nil)
|
||||
assert.Nil(err)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
if response != nil {
|
||||
assert.Equal(201, response.StatusCode, "Status Code is incorrect")
|
||||
}
|
||||
|
||||
// 2. Add couple of objects to this bucket
|
||||
for i := 1; i <= numberOfFiles; i++ {
|
||||
uploadResponse, uploadError := UploadAnObject(
|
||||
bucketName, fileName+strconv.Itoa(i)+".txt")
|
||||
assert.Nil(uploadError)
|
||||
if uploadError != nil {
|
||||
log.Println(uploadError)
|
||||
return
|
||||
}
|
||||
if uploadResponse != nil {
|
||||
assert.Equal(200, uploadResponse.StatusCode,
|
||||
inspectHTTPResponse(uploadResponse))
|
||||
}
|
||||
}
|
||||
|
||||
// 3. Delete these objects
|
||||
for i := 1; i <= numberOfFiles; i++ {
|
||||
deleteResponse, deleteError := DeleteObject(
|
||||
bucketName, encodeBase64(
|
||||
fileName+strconv.Itoa(i)+".txt"), false, false)
|
||||
assert.Nil(deleteError)
|
||||
if deleteError != nil {
|
||||
log.Println(deleteError)
|
||||
return
|
||||
}
|
||||
if deleteResponse != nil {
|
||||
assert.Equal(200, deleteResponse.StatusCode,
|
||||
inspectHTTPResponse(deleteResponse))
|
||||
}
|
||||
}
|
||||
|
||||
// 4. List the objects, empty list is expected!
|
||||
listResponse, listError := ListObjects(bucketName, "")
|
||||
assert.Nil(listError)
|
||||
if listError != nil {
|
||||
log.Println(listError)
|
||||
return
|
||||
}
|
||||
finalResponse := inspectHTTPResponse(listResponse)
|
||||
if listResponse != nil {
|
||||
assert.Equal(200, listResponse.StatusCode,
|
||||
finalResponse)
|
||||
}
|
||||
|
||||
// 5. Verify empty list is obtained as we deleted all the objects
|
||||
expected := "Http Response: {\"objects\":null}\n"
|
||||
assert.Equal(expected, finalResponse, finalResponse)
|
||||
}
|
||||
|
||||
func TestDownloadObject(t *testing.T) {
|
||||
/*
|
||||
Test to download an object from a given bucket.
|
||||
|
||||
Reference in New Issue
Block a user