Skip to content

Commit 00c4ba4

Browse files
authored
Add test for Delete Object retention from an object end point (#1574)
1 parent 951d3bf commit 00c4ba4

File tree

1 file changed

+144
-0
lines changed

1 file changed

+144
-0
lines changed

integration/buckets_test.go

Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -663,6 +663,31 @@ func BucketSetPolicy(bucketName string, access string, definition string) (*http
663663
return response, err
664664
}
665665

666+
func DeleteObjectsRetentionStatus(bucketName string, prefix string, versionID string) (*http.Response, error) {
667+
/*
668+
Helper function to Delete Object Retention Status
669+
DELETE:
670+
{{baseUrl}}/buckets/:bucket_name/objects/retention?prefix=proident velit&version_id=proident velit
671+
*/
672+
url := "http://localhost:9090/api/v1/buckets/" + bucketName + "/objects/retention?prefix=" +
673+
prefix + "&version_id=" + versionID
674+
request, err := http.NewRequest(
675+
"DELETE",
676+
url,
677+
nil,
678+
)
679+
if err != nil {
680+
log.Println(err)
681+
}
682+
request.Header.Add("Cookie", fmt.Sprintf("token=%s", token))
683+
request.Header.Add("Content-Type", "application/json")
684+
client := &http.Client{
685+
Timeout: 2 * time.Second,
686+
}
687+
response, err := client.Do(request)
688+
return response, err
689+
}
690+
666691
func TestAddBucket(t *testing.T) {
667692
assert := assert.New(t)
668693
type args struct {
@@ -2151,3 +2176,122 @@ func TestBucketSetPolicy(t *testing.T) {
21512176
})
21522177
}
21532178
}
2179+
2180+
func TestDeleteObjectsRetentionStatus(t *testing.T) {
2181+
2182+
// Variables
2183+
assert := assert.New(t)
2184+
bucketName := "testdeleteobjectslegalholdstatus"
2185+
fileName := "testdeleteobjectslegalholdstatus.txt"
2186+
validPrefix := encodeBase64(fileName)
2187+
2188+
// 1. Create bucket
2189+
response, err := AddBucket(bucketName, true, true, nil, nil)
2190+
assert.Nil(err)
2191+
if err != nil {
2192+
log.Println(err)
2193+
assert.Fail("Error creating the bucket")
2194+
return
2195+
}
2196+
if response != nil {
2197+
assert.Equal(201, response.StatusCode, inspectHTTPResponse(response))
2198+
}
2199+
2200+
// 2. Add object
2201+
uploadResponse, uploadError := UploadAnObject(
2202+
bucketName,
2203+
fileName,
2204+
)
2205+
assert.Nil(uploadError)
2206+
if uploadError != nil {
2207+
log.Println(uploadError)
2208+
return
2209+
}
2210+
addObjRsp := inspectHTTPResponse(uploadResponse)
2211+
if uploadResponse != nil {
2212+
assert.Equal(
2213+
200,
2214+
uploadResponse.StatusCode,
2215+
addObjRsp,
2216+
)
2217+
}
2218+
2219+
// Get versionID
2220+
listResponse, listError := ListObjects(bucketName, validPrefix, "true")
2221+
fmt.Println(listError)
2222+
bodyBytes, _ := ioutil.ReadAll(listResponse.Body)
2223+
listObjs := models.ListObjectsResponse{}
2224+
err = json.Unmarshal(bodyBytes, &listObjs)
2225+
if err != nil {
2226+
log.Println(err)
2227+
assert.Nil(err)
2228+
}
2229+
versionID := listObjs.Objects[0].VersionID
2230+
2231+
// 3. Put Objects Retention Status
2232+
putResponse, putError := PutObjectsRetentionStatus(
2233+
bucketName,
2234+
validPrefix,
2235+
versionID,
2236+
"governance",
2237+
"2033-01-11T23:59:59Z",
2238+
false,
2239+
)
2240+
if putError != nil {
2241+
log.Println(putError)
2242+
assert.Fail("Error creating the bucket")
2243+
}
2244+
if putResponse != nil {
2245+
assert.Equal(
2246+
200,
2247+
putResponse.StatusCode,
2248+
inspectHTTPResponse(putResponse),
2249+
)
2250+
}
2251+
2252+
type args struct {
2253+
prefix string
2254+
}
2255+
tests := []struct {
2256+
name string
2257+
expectedStatus int
2258+
args args
2259+
}{
2260+
{
2261+
name: "Valid prefix when deleting object's retention status",
2262+
expectedStatus: 200,
2263+
args: args{
2264+
prefix: validPrefix,
2265+
},
2266+
},
2267+
{
2268+
name: "Invalid prefix when deleting object's retention status",
2269+
expectedStatus: 500,
2270+
args: args{
2271+
prefix: "fakefile",
2272+
},
2273+
},
2274+
}
2275+
for _, tt := range tests {
2276+
t.Run(tt.name, func(t *testing.T) {
2277+
// 4. Delete Objects Retention Status
2278+
putResponse, putError := DeleteObjectsRetentionStatus(
2279+
bucketName,
2280+
tt.args.prefix,
2281+
versionID,
2282+
)
2283+
if putError != nil {
2284+
log.Println(putError)
2285+
assert.Fail("Error creating the bucket")
2286+
}
2287+
if putResponse != nil {
2288+
assert.Equal(
2289+
tt.expectedStatus,
2290+
putResponse.StatusCode,
2291+
inspectHTTPResponse(putResponse),
2292+
)
2293+
}
2294+
})
2295+
}
2296+
2297+
}

0 commit comments

Comments
 (0)