api: Change ListenBucketNotification with new API format. (#2791)
Take prefix, suffix and events as query params.master
parent
9417614a8e
commit
ca3022d545
@ -0,0 +1,190 @@ |
||||
/* |
||||
* Minio Cloud Storage, (C) 2016 Minio, Inc. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package cmd |
||||
|
||||
import ( |
||||
"net/url" |
||||
"testing" |
||||
) |
||||
|
||||
// Test list objects resources V2.
|
||||
func TestListObjectsV2Resources(t *testing.T) { |
||||
testCases := []struct { |
||||
values url.Values |
||||
prefix, token, startAfter, delimiter string |
||||
fetchOwner bool |
||||
maxKeys int |
||||
encodingType string |
||||
}{ |
||||
{ |
||||
values: url.Values{ |
||||
"prefix": []string{"photos/"}, |
||||
"continuation-token": []string{"token"}, |
||||
"start-after": []string{"start-after"}, |
||||
"delimiter": []string{"/"}, |
||||
"fetch-owner": []string{"true"}, |
||||
"max-keys": []string{"100"}, |
||||
"encoding-type": []string{"gzip"}, |
||||
}, |
||||
prefix: "photos/", |
||||
token: "token", |
||||
startAfter: "start-after", |
||||
delimiter: "/", |
||||
fetchOwner: true, |
||||
maxKeys: 100, |
||||
encodingType: "gzip", |
||||
}, |
||||
{ |
||||
values: url.Values{ |
||||
"prefix": []string{"photos/"}, |
||||
"continuation-token": []string{"token"}, |
||||
"start-after": []string{"start-after"}, |
||||
"delimiter": []string{"/"}, |
||||
"fetch-owner": []string{"true"}, |
||||
"encoding-type": []string{"gzip"}, |
||||
}, |
||||
prefix: "photos/", |
||||
token: "token", |
||||
startAfter: "start-after", |
||||
delimiter: "/", |
||||
fetchOwner: true, |
||||
maxKeys: 1000, |
||||
encodingType: "gzip", |
||||
}, |
||||
} |
||||
|
||||
for i, testCase := range testCases { |
||||
prefix, token, startAfter, delimiter, fetchOwner, maxKeys, encodingType := getListObjectsV2Args(testCase.values) |
||||
if prefix != testCase.prefix { |
||||
t.Errorf("Test %d: Expected %s, got %s", i+1, testCase.prefix, prefix) |
||||
} |
||||
if token != testCase.token { |
||||
t.Errorf("Test %d: Expected %s, got %s", i+1, testCase.token, token) |
||||
} |
||||
if startAfter != testCase.startAfter { |
||||
t.Errorf("Test %d: Expected %s, got %s", i+1, testCase.startAfter, startAfter) |
||||
} |
||||
if delimiter != testCase.delimiter { |
||||
t.Errorf("Test %d: Expected %s, got %s", i+1, testCase.delimiter, delimiter) |
||||
} |
||||
if fetchOwner != testCase.fetchOwner { |
||||
t.Errorf("Test %d: Expected %t, got %t", i+1, testCase.fetchOwner, fetchOwner) |
||||
} |
||||
if maxKeys != testCase.maxKeys { |
||||
t.Errorf("Test %d: Expected %d, got %d", i+1, testCase.maxKeys, maxKeys) |
||||
} |
||||
if encodingType != testCase.encodingType { |
||||
t.Errorf("Test %d: Expected %s, got %s", i+1, testCase.encodingType, encodingType) |
||||
} |
||||
} |
||||
} |
||||
|
||||
// Test list objects resources V1.
|
||||
func TestListObjectsV1Resources(t *testing.T) { |
||||
testCases := []struct { |
||||
values url.Values |
||||
prefix, marker, delimiter string |
||||
maxKeys int |
||||
encodingType string |
||||
}{ |
||||
{ |
||||
values: url.Values{ |
||||
"prefix": []string{"photos/"}, |
||||
"marker": []string{"test"}, |
||||
"delimiter": []string{"/"}, |
||||
"max-keys": []string{"100"}, |
||||
"encoding-type": []string{"gzip"}, |
||||
}, |
||||
prefix: "photos/", |
||||
marker: "test", |
||||
delimiter: "/", |
||||
maxKeys: 100, |
||||
encodingType: "gzip", |
||||
}, |
||||
{ |
||||
values: url.Values{ |
||||
"prefix": []string{"photos/"}, |
||||
"marker": []string{"test"}, |
||||
"delimiter": []string{"/"}, |
||||
"encoding-type": []string{"gzip"}, |
||||
}, |
||||
prefix: "photos/", |
||||
marker: "test", |
||||
delimiter: "/", |
||||
maxKeys: 1000, |
||||
encodingType: "gzip", |
||||
}, |
||||
} |
||||
|
||||
for i, testCase := range testCases { |
||||
prefix, marker, delimiter, maxKeys, encodingType := getListObjectsV1Args(testCase.values) |
||||
if prefix != testCase.prefix { |
||||
t.Errorf("Test %d: Expected %s, got %s", i+1, testCase.prefix, prefix) |
||||
} |
||||
if marker != testCase.marker { |
||||
t.Errorf("Test %d: Expected %s, got %s", i+1, testCase.marker, marker) |
||||
} |
||||
if delimiter != testCase.delimiter { |
||||
t.Errorf("Test %d: Expected %s, got %s", i+1, testCase.delimiter, delimiter) |
||||
} |
||||
if maxKeys != testCase.maxKeys { |
||||
t.Errorf("Test %d: Expected %d, got %d", i+1, testCase.maxKeys, maxKeys) |
||||
} |
||||
if encodingType != testCase.encodingType { |
||||
t.Errorf("Test %d: Expected %s, got %s", i+1, testCase.encodingType, encodingType) |
||||
} |
||||
} |
||||
} |
||||
|
||||
// Validates extracting information for object resources.
|
||||
func TestGetObjectsResources(t *testing.T) { |
||||
testCases := []struct { |
||||
values url.Values |
||||
uploadID string |
||||
partNumberMarker, maxParts int |
||||
encodingType string |
||||
}{ |
||||
{ |
||||
values: url.Values{ |
||||
"uploadId": []string{"11123-11312312311231-12313"}, |
||||
"part-number-marker": []string{"1"}, |
||||
"max-parts": []string{"1000"}, |
||||
"encoding-type": []string{"gzip"}, |
||||
}, |
||||
uploadID: "11123-11312312311231-12313", |
||||
partNumberMarker: 1, |
||||
maxParts: 1000, |
||||
encodingType: "gzip", |
||||
}, |
||||
} |
||||
|
||||
for i, testCase := range testCases { |
||||
uploadID, partNumberMarker, maxParts, encodingType := getObjectResources(testCase.values) |
||||
if uploadID != testCase.uploadID { |
||||
t.Errorf("Test %d: Expected %s, got %s", i+1, testCase.uploadID, uploadID) |
||||
} |
||||
if partNumberMarker != testCase.partNumberMarker { |
||||
t.Errorf("Test %d: Expected %d, got %d", i+1, testCase.partNumberMarker, partNumberMarker) |
||||
} |
||||
if maxParts != testCase.maxParts { |
||||
t.Errorf("Test %d: Expected %d, got %d", i+1, testCase.maxParts, maxParts) |
||||
} |
||||
if encodingType != testCase.encodingType { |
||||
t.Errorf("Test %d: Expected %s, got %s", i+1, testCase.encodingType, encodingType) |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue