JCLOUDS-1263: Add live integration test for manipulating objects through the Swift ObjectApi with unicode characters in their path

This commit is contained in:
Mat Mannion 2017-04-04 13:52:26 +01:00 committed by Andrew Gaul
parent 14621c08d7
commit 29655f3149
1 changed files with 27 additions and 8 deletions

View File

@ -61,21 +61,40 @@ public class ObjectApiLiveTest extends BaseSwiftApiLiveTest {
private String containerName = getClass().getSimpleName() + "Container"; private String containerName = getClass().getSimpleName() + "Container";
static final Payload PAYLOAD = newByteSourcePayload(ByteSource.wrap("swifty".getBytes())); static final Payload PAYLOAD = newByteSourcePayload(ByteSource.wrap("swifty".getBytes()));
protected void assertCanCreateReadUpdateDeleteList(String regionId, String containerName, String objectName) throws Exception {
assertNotNull(getApi().getContainerApi(regionId).create(containerName));
assertNotNull(getApi().getObjectApi(regionId, containerName).put(objectName, PAYLOAD));
SwiftObject object = getApi().getObjectApi(regionId, containerName).get(objectName);
assertEquals(object.getName(), objectName);
checkObject(object);
assertEquals(toStringAndClose(object.getPayload().openStream()), "swifty");
String lexicographicallyBeforeName = objectName.substring(0, objectName.length() - 1);
object = getApi().getObjectApi(regionId, containerName)
.list(marker(lexicographicallyBeforeName)).get(0);
assertEquals(object.getName(), objectName);
checkObject(object);
getApi().getObjectApi(regionId, containerName).delete(objectName);
getApi().getContainerApi(regionId).deleteIfEmpty(containerName);
}
public void testCreateWithSpacesAndSpecialCharacters() throws Exception { public void testCreateWithSpacesAndSpecialCharacters() throws Exception {
final String containerName = "container # ! special"; final String containerName = "container # ! special";
final String objectName = "object # ! special"; final String objectName = "object # ! special";
for (String regionId : regions) { for (String regionId : regions) {
assertNotNull(getApi().getContainerApi(regionId).create(containerName)); assertCanCreateReadUpdateDeleteList(regionId, containerName, objectName);
assertNotNull(getApi().getObjectApi(regionId, containerName).put(objectName, PAYLOAD)); }
}
SwiftObject object = getApi().getObjectApi(regionId, containerName).get(objectName); public void testCreateAndListWithUnicodeCharacters() throws Exception {
assertEquals(object.getName(), objectName); final String containerName = "container-unic₪de";
checkObject(object); final String objectName = "object-unic₪de";
assertEquals(toStringAndClose(object.getPayload().openStream()), "swifty");
getApi().getObjectApi(regionId, containerName).delete(objectName); for (String regionId : regions) {
getApi().getContainerApi(regionId).deleteIfEmpty(containerName); assertCanCreateReadUpdateDeleteList(regionId, containerName, objectName);
} }
} }