http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9b19cded/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/AccountApiMockTest.java
----------------------------------------------------------------------
diff --git 
a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/AccountApiMockTest.java
 
b/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/AccountApiMockTest.java
deleted file mode 100644
index 84d08fe..0000000
--- 
a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/AccountApiMockTest.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.jclouds.openstack.swift.v1.features;
-
-import static 
org.jclouds.openstack.swift.v1.reference.SwiftHeaders.ACCOUNT_BYTES_USED;
-import static 
org.jclouds.openstack.swift.v1.reference.SwiftHeaders.ACCOUNT_CONTAINER_COUNT;
-import static 
org.jclouds.openstack.swift.v1.reference.SwiftHeaders.ACCOUNT_METADATA_PREFIX;
-import static 
org.jclouds.openstack.swift.v1.reference.SwiftHeaders.ACCOUNT_OBJECT_COUNT;
-import static 
org.jclouds.openstack.swift.v1.reference.SwiftHeaders.ACCOUNT_REMOVE_METADATA_PREFIX;
-import static 
org.jclouds.openstack.swift.v1.reference.SwiftHeaders.ACCOUNT_TEMPORARY_URL_KEY;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.jclouds.openstack.swift.v1.SwiftApi;
-import org.jclouds.openstack.swift.v1.domain.Account;
-import org.jclouds.openstack.v2_0.internal.BaseOpenStackMockTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableMap;
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-import com.squareup.okhttp.mockwebserver.RecordedRequest;
-
-@Test(groups = "unit", testName = "AccountApiMockTest")
-public class AccountApiMockTest extends BaseOpenStackMockTest<SwiftApi> {
-
-   /** upper-cases first char, and lower-cases rest!! **/
-   public void getKnowingServerMessesWithMetadataKeyCaseFormat() throws 
Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(accountResponse()
-            // note silly casing
-            .addHeader(ACCOUNT_METADATA_PREFIX + "Apiname", "swift")
-            .addHeader(ACCOUNT_METADATA_PREFIX + "Apiversion", "v1.1")));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         Account account = api.getAccountApi("DFW").get();
-         assertEquals(account.getContainerCount(), 3l);
-         assertEquals(account.getObjectCount(), 42l);
-         assertEquals(account.getBytesUsed(), 323479l);
-         for (Entry<String, String> entry : metadata.entrySet()) {
-            
assertEquals(account.getMetadata().get(entry.getKey().toLowerCase()), 
entry.getValue());
-         }
-
-         assertEquals(server.getRequestCount(), 2);
-         assertAuthentication(server);
-         assertRequest(server.takeRequest(), "HEAD", 
"/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void updateMetadata() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(accountResponse()
-            .addHeader(ACCOUNT_METADATA_PREFIX + "ApiName", "swift")
-            .addHeader(ACCOUNT_METADATA_PREFIX + "ApiVersion", "v1.1")));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertTrue(api.getAccountApi("DFW").updateMetadata(metadata));
-
-         assertEquals(server.getRequestCount(), 2);
-         assertAuthentication(server);
-
-         RecordedRequest replaceRequest = server.takeRequest();
-         assertRequest(replaceRequest, "POST", 
"/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9");
-         for (Entry<String, String> entry : metadata.entrySet()) {
-            assertEquals(replaceRequest.getHeader(ACCOUNT_METADATA_PREFIX + 
entry.getKey().toLowerCase()), entry.getValue());
-         }
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void updateTemporaryUrlKey() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(accountResponse()));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertTrue(api.getAccountApi("DFW").updateTemporaryUrlKey("foobar"));
-
-         assertEquals(server.getRequestCount(), 2);
-         assertAuthentication(server);
-
-         RecordedRequest replaceRequest = server.takeRequest();
-         assertRequest(replaceRequest, "POST", 
"/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9");
-         assertEquals(replaceRequest.getHeader(ACCOUNT_TEMPORARY_URL_KEY), 
"foobar");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void deleteMetadata() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(accountResponse()));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertTrue(api.getAccountApi("DFW").deleteMetadata(metadata));
-
-         assertEquals(server.getRequestCount(), 2);
-         assertEquals(server.takeRequest().getRequestLine(), "POST /tokens 
HTTP/1.1");
-         RecordedRequest deleteRequest = server.takeRequest();
-         assertEquals(deleteRequest.getRequestLine(),
-               "POST /v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9 
HTTP/1.1");
-         for (String key : metadata.keySet()) {
-            
assertEquals(deleteRequest.getHeader(ACCOUNT_REMOVE_METADATA_PREFIX + 
key.toLowerCase()), "ignored");
-         }
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   private static final Map<String, String> metadata = 
ImmutableMap.of("ApiName", "swift", "ApiVersion", "v1.1");
-
-   public static MockResponse accountResponse() {
-      return new MockResponse()
-            .addHeader(ACCOUNT_CONTAINER_COUNT, "3")
-            .addHeader(ACCOUNT_OBJECT_COUNT, "42")
-            .addHeader(ACCOUNT_BYTES_USED, "323479");
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9b19cded/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/BulkApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/BulkApiLiveTest.java
 
b/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/BulkApiLiveTest.java
deleted file mode 100644
index 6901ac9..0000000
--- 
a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/BulkApiLiveTest.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.jclouds.openstack.swift.v1.features;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-
-import java.io.IOException;
-import java.util.List;
-import java.util.UUID;
-
-import org.jboss.shrinkwrap.api.GenericArchive;
-import org.jboss.shrinkwrap.api.ShrinkWrap;
-import org.jboss.shrinkwrap.api.asset.StringAsset;
-import org.jboss.shrinkwrap.api.exporter.TarGzExporter;
-import org.jclouds.io.ByteStreams2;
-import org.jclouds.io.Payload;
-import org.jclouds.io.payloads.ByteSourcePayload;
-import org.jclouds.openstack.swift.v1.SwiftApi;
-import org.jclouds.openstack.swift.v1.domain.BulkDeleteResponse;
-import org.jclouds.openstack.swift.v1.domain.ExtractArchiveResponse;
-import org.jclouds.openstack.swift.v1.internal.BaseSwiftApiLiveTest;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Throwables;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Lists;
-import com.google.common.io.ByteSource;
-
-@Test(groups = "live", testName = "BulkApiLiveTest")
-public class BulkApiLiveTest extends BaseSwiftApiLiveTest<SwiftApi> {
-
-   private static final int OBJECT_COUNT = 10;
-   private String containerName = getClass().getSimpleName();
-   List<String> paths = Lists.newArrayList();
-   byte[] tarGz;
-
-   public void testNotPresentWhenDeleting() throws Exception {
-      for (String regionId : regions) {
-         BulkDeleteResponse deleteResponse = 
api.getBulkApi(regionId).bulkDelete(
-               ImmutableList.of(UUID.randomUUID().toString()));
-         assertEquals(deleteResponse.getDeleted(), 0);
-         assertEquals(deleteResponse.getNotFound(), 1);
-         assertTrue(deleteResponse.getErrors().isEmpty());
-      }
-   }
-
-   public void testExtractArchive() throws Exception {
-      for (String regionId : regions) {
-         Payload payload = new ByteSourcePayload(ByteSource.wrap(tarGz));
-
-         ExtractArchiveResponse extractResponse = api.getBulkApi(regionId)
-                                                     
.extractArchive(containerName, payload, "tar.gz");
-         assertEquals(extractResponse.getCreated(), OBJECT_COUNT);
-         assertTrue(extractResponse.getErrors().isEmpty());
-         
assertEquals(api.getContainerApi(regionId).get(containerName).getObjectCount(), 
OBJECT_COUNT);
-
-         // repeat the command
-         extractResponse = 
api.getBulkApi(regionId).extractArchive(containerName, payload, "tar.gz");
-         assertEquals(extractResponse.getCreated(), OBJECT_COUNT);
-         assertTrue(extractResponse.getErrors().isEmpty());
-      }
-   }
-
-   @Test(dependsOnMethods = "testExtractArchive")
-   public void testBulkDelete() throws Exception {
-      for (String regionId : regions) {
-         BulkDeleteResponse deleteResponse = 
api.getBulkApi(regionId).bulkDelete(paths);
-         assertEquals(deleteResponse.getDeleted(), OBJECT_COUNT);
-         assertEquals(deleteResponse.getNotFound(), 0);
-         assertTrue(deleteResponse.getErrors().isEmpty());
-         
assertEquals(api.getContainerApi(regionId).get(containerName).getObjectCount(), 
0);
-      }
-   }
-
-   @Override
-   @BeforeClass(groups = "live")
-   public void setup() {
-      super.setup();
-      for (String regionId : regions) {
-         boolean created = api.getContainerApi(regionId).create(containerName);
-         if (!created) {
-            deleteAllObjectsInContainer(regionId, containerName);
-         }
-      }
-      GenericArchive files = ShrinkWrap.create(GenericArchive.class, 
"files.tar.gz");
-      StringAsset content = new StringAsset("foo");
-      for (int i = 0; i < OBJECT_COUNT; i++) {
-         paths.add(containerName + "/file" + i);
-         files.add(content, "/file" + i);
-      }
-
-      try {
-         tarGz = 
ByteStreams2.toByteArrayAndClose(files.as(TarGzExporter.class).exportAsInputStream());
-      } catch (IOException e) {
-         throw Throwables.propagate(e);
-      }
-   }
-
-   @Override
-   @AfterClass(groups = "live")
-   public void tearDown() {
-      for (String regionId : regions) {
-         deleteAllObjectsInContainer(regionId, containerName);
-         api.getContainerApi(regionId).deleteIfEmpty(containerName);
-      }
-      super.tearDown();
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9b19cded/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/BulkApiMockTest.java
----------------------------------------------------------------------
diff --git 
a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/BulkApiMockTest.java
 
b/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/BulkApiMockTest.java
deleted file mode 100644
index 3136b52..0000000
--- 
a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/BulkApiMockTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.jclouds.openstack.swift.v1.features;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-
-import org.jboss.shrinkwrap.api.GenericArchive;
-import org.jboss.shrinkwrap.api.ShrinkWrap;
-import org.jboss.shrinkwrap.api.asset.StringAsset;
-import org.jboss.shrinkwrap.api.exporter.TarGzExporter;
-import org.jclouds.io.ByteStreams2;
-import org.jclouds.io.Payload;
-import org.jclouds.io.Payloads;
-import org.jclouds.openstack.swift.v1.SwiftApi;
-import org.jclouds.openstack.swift.v1.domain.ExtractArchiveResponse;
-import org.jclouds.openstack.v2_0.internal.BaseOpenStackMockTest;
-import org.testng.annotations.Test;
-
-import com.google.common.io.ByteSource;
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-import com.squareup.okhttp.mockwebserver.RecordedRequest;
-
-@Test(groups = "unit", testName = "BulkApiMockTest")
-public class BulkApiMockTest extends BaseOpenStackMockTest<SwiftApi> {
-
-   public void testExtractArchive() throws Exception {
-      GenericArchive files = ShrinkWrap.create(GenericArchive.class, 
"files.tar.gz");
-      StringAsset content = new StringAsset("foo");
-      for (int i = 0; i < 10; i++) {
-         files.add(content, "/file" + i);
-      }
-
-      byte[] tarGz = 
ByteStreams2.toByteArrayAndClose(files.as(TarGzExporter.class).exportAsInputStream());
-
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(new 
MockResponse().setResponseCode(201).setBody("{\"Number Files Created\": 10, 
\"Errors\": []}")));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         Payload payload = 
Payloads.newByteSourcePayload(ByteSource.wrap(tarGz));
-         ExtractArchiveResponse response = 
api.getBulkApi("DFW").extractArchive("myContainer", payload, "tar.gz");
-
-         assertEquals(response.getCreated(), 10);
-         assertTrue(response.getErrors().isEmpty());
-
-         assertEquals(server.getRequestCount(), 2);
-         assertAuthentication(server);
-         RecordedRequest extractRequest = server.takeRequest();
-         assertRequest(extractRequest, "PUT", 
"/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer?extract-archive=tar.gz");
-         assertEquals(extractRequest.getBody(), tarGz);
-      } finally {
-         server.shutdown();
-      }
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9b19cded/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ContainerApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ContainerApiLiveTest.java
 
b/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ContainerApiLiveTest.java
deleted file mode 100644
index bf2ba98..0000000
--- 
a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ContainerApiLiveTest.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.jclouds.openstack.swift.v1.features;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.jclouds.openstack.swift.v1.SwiftApi;
-import org.jclouds.openstack.swift.v1.domain.Container;
-import org.jclouds.openstack.swift.v1.internal.BaseSwiftApiLiveTest;
-import org.jclouds.openstack.swift.v1.options.CreateContainerOptions;
-import org.jclouds.openstack.swift.v1.options.ListContainerOptions;
-import org.jclouds.openstack.swift.v1.options.UpdateContainerOptions;
-import org.jclouds.openstack.swift.v1.reference.SwiftHeaders;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableMultimap;
-
-/**
- * Provides live tests for the {@link ContainerApi}.
- */
-@Test(groups = "live", testName = "ContainerApiLiveTest")
-public class ContainerApiLiveTest extends BaseSwiftApiLiveTest<SwiftApi> {
-
-   private String name = getClass().getSimpleName();
-
-   public void testCreateWithOptions() throws Exception {
-      for (String regionId : regions) {
-         ImmutableMultimap<String, String> headers =
-               ImmutableMultimap.of(SwiftHeaders.STATIC_WEB_INDEX, 
"__index.html",
-                                    SwiftHeaders.STATIC_WEB_ERROR, 
"__error.html");
-         CreateContainerOptions opts = new 
CreateContainerOptions().headers(headers);
-
-         assertNotNull(api.getContainerApi(regionId).create(name, opts));
-
-         Container container = api.getContainerApi(regionId).get(name);
-         assertNotNull(container);
-         assertEquals(container.getName(), name);
-         assertEquals(container.getMetadata().size(), 2);
-         assertEquals(container.getMetadata().get("web-index"), 
"__index.html");
-         assertEquals(container.getMetadata().get("web-error"), 
"__error.html");
-
-         assertTrue(api.getContainerApi(regionId).deleteIfEmpty(name));
-      }
-   }
-
-   public void testCreateWithSpacesAndSpecialCharacters() throws Exception {
-      final String nameWithSpaces = "container # ! special";
-
-      for (String regionId : regions) {
-         assertTrue(api.getContainerApi(regionId).create(nameWithSpaces));
-         Container container = 
api.getContainerApi(regionId).get(nameWithSpaces);
-         assertNotNull(container);
-         assertEquals(container.getName(), nameWithSpaces);
-
-         
assertTrue(api.getContainerApi(regionId).deleteIfEmpty(nameWithSpaces));
-      }
-   }
-
-   public void testList() throws Exception {
-      for (String regionId : regions) {
-         ContainerApi containerApi = api.getContainerApi(regionId);
-         FluentIterable<Container> response = containerApi.list();
-         assertNotNull(response);
-         for (Container container : response) {
-            assertNotNull(container.getName());
-            assertTrue(container.getObjectCount() >= 0);
-            assertTrue(container.getBytesUsed() >= 0);
-         }
-      }
-   }
-
-   public void testListWithOptions() throws Exception {
-      String lexicographicallyBeforeName = name.substring(0, name.length() - 
1);
-      for (String regionId : regions) {
-         ListContainerOptions options = 
ListContainerOptions.Builder.marker(lexicographicallyBeforeName);
-         Container container = 
api.getContainerApi(regionId).list(options).get(0);
-         assertEquals(container.getName(), name);
-         assertTrue(container.getObjectCount() == 0);
-         assertTrue(container.getBytesUsed() == 0);
-      }
-   }
-
-   public void testUpdate() throws Exception {
-      for (String regionId : regions) {
-         ImmutableMultimap<String, String> headers =
-               ImmutableMultimap.of(SwiftHeaders.STATIC_WEB_INDEX, 
"__index.html",
-                                    SwiftHeaders.STATIC_WEB_ERROR, 
"__error.html");
-         UpdateContainerOptions opts = new 
UpdateContainerOptions().headers(headers);
-
-         assertNotNull(api.getContainerApi(regionId).create(name));
-
-         Container container = api.getContainerApi(regionId).get(name);
-         assertNotNull(container);
-         assertEquals(container.getName(), name);
-         assertTrue(container.getMetadata().isEmpty());
-
-         assertNotNull(api.getContainerApi(regionId).update(name, opts));
-
-         Container updatedContainer = api.getContainerApi(regionId).get(name);
-         assertNotNull(updatedContainer);
-         assertEquals(updatedContainer.getName(), name);
-         assertEquals(updatedContainer.getMetadata().size(), 2);
-         assertEquals(updatedContainer.getMetadata().get("web-index"), 
"__index.html");
-         assertEquals(updatedContainer.getMetadata().get("web-error"), 
"__error.html");
-
-         assertTrue(api.getContainerApi(regionId).deleteIfEmpty(name));
-      }
-   }
-
-   public void testGet() throws Exception {
-      for (String regionId : regions) {
-         Container container = api.getContainerApi(regionId).get(name);
-         assertEquals(container.getName(), name);
-         assertTrue(container.getObjectCount() == 0);
-         assertTrue(container.getBytesUsed() == 0);
-      }
-   }
-
-   public void testUpdateMetadata() throws Exception {
-      Map<String, String> meta = ImmutableMap.of("MyAdd1", "foo", "MyAdd2", 
"bar");
-
-      for (String regionId : regions) {
-         ContainerApi containerApi = api.getContainerApi(regionId);
-         assertTrue(containerApi.updateMetadata(name, meta));
-         containerHasMetadata(containerApi, name, meta);
-      }
-   }
-
-   public void testDeleteMetadata() throws Exception {
-      Map<String, String> meta = ImmutableMap.of("MyDelete1", "foo", 
"MyDelete2", "bar");
-
-      for (String regionId : regions) {
-         ContainerApi containerApi = api.getContainerApi(regionId);
-         // update
-         assertTrue(containerApi.updateMetadata(name, meta));
-         containerHasMetadata(containerApi, name, meta);
-         // delete
-         assertTrue(containerApi.deleteMetadata(name, meta));
-         Container container = containerApi.get(name);
-         for (Entry<String, String> entry : meta.entrySet()) {
-            // note keys are returned in lower-case!
-            
assertFalse(container.getMetadata().containsKey(entry.getKey().toLowerCase()));
-         }
-      }
-   }
-
-   static void containerHasMetadata(ContainerApi containerApi, String name, 
Map<String, String> meta) {
-      Container container = containerApi.get(name);
-      for (Entry<String, String> entry : meta.entrySet()) {
-         // note keys are returned in lower-case!
-         
assertEquals(container.getMetadata().get(entry.getKey().toLowerCase()), 
entry.getValue(),
-               container + " didn't have metadata: " + entry);
-      }
-   }
-
-   @Override
-   @BeforeClass(groups = "live")
-   public void setup() {
-      super.setup();
-      for (String regionId : regions) {
-         api.getContainerApi(regionId).create(name);
-      }
-   }
-
-   @Override
-   @AfterClass(groups = "live")
-   public void tearDown() {
-      for (String regionId : regions) {
-         api.getContainerApi(regionId).deleteIfEmpty(name);
-      }
-      super.tearDown();
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9b19cded/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ContainerApiMockTest.java
----------------------------------------------------------------------
diff --git 
a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ContainerApiMockTest.java
 
b/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ContainerApiMockTest.java
deleted file mode 100644
index 6b3ef66..0000000
--- 
a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ContainerApiMockTest.java
+++ /dev/null
@@ -1,363 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.jclouds.openstack.swift.v1.features;
-
-import static 
org.jclouds.openstack.swift.v1.options.CreateContainerOptions.Builder.anybodyRead;
-import static 
org.jclouds.openstack.swift.v1.reference.SwiftHeaders.CONTAINER_ACL_ANYBODY_READ;
-import static 
org.jclouds.openstack.swift.v1.reference.SwiftHeaders.CONTAINER_BYTES_USED;
-import static 
org.jclouds.openstack.swift.v1.reference.SwiftHeaders.CONTAINER_METADATA_PREFIX;
-import static 
org.jclouds.openstack.swift.v1.reference.SwiftHeaders.CONTAINER_OBJECT_COUNT;
-import static 
org.jclouds.openstack.swift.v1.reference.SwiftHeaders.CONTAINER_READ;
-import static 
org.jclouds.openstack.swift.v1.reference.SwiftHeaders.CONTAINER_REMOVE_METADATA_PREFIX;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.jclouds.blobstore.ContainerNotFoundException;
-import org.jclouds.openstack.swift.v1.SwiftApi;
-import org.jclouds.openstack.swift.v1.domain.Container;
-import org.jclouds.openstack.swift.v1.options.ListContainerOptions;
-import org.jclouds.openstack.v2_0.internal.BaseOpenStackMockTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-import com.squareup.okhttp.mockwebserver.RecordedRequest;
-
-@Test(groups = "unit", testName = "ContainerApiMockTest")
-public class ContainerApiMockTest extends BaseOpenStackMockTest<SwiftApi> {
-
-   public void testList() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/container_list.json"))));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         ImmutableList<Container> containers = 
api.getContainerApi("DFW").list().toList();
-         assertEquals(containers, ImmutableList.of(
-               Container.builder()
-                     .name("test_container_1")
-                     .objectCount(2)
-                     .bytesUsed(78).build(),
-               Container.builder()
-                     .name("test_container_2")
-                     .objectCount(1)
-                     .bytesUsed(17).build()));
-
-         assertEquals(server.getRequestCount(), 2);
-         assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", 
"/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testListWithOptions() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/container_list.json"))));
-
-      ListContainerOptions options = 
ListContainerOptions.Builder.marker("test");
-      assertNotNull(options);
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         ImmutableList<Container> containers = 
api.getContainerApi("DFW").list(options).toList();
-         assertEquals(containers, ImmutableList.of(
-               Container.builder()
-                     .name("test_container_1")
-                     .objectCount(2)
-                     .bytesUsed(78).build(),
-               Container.builder()
-                     .name("test_container_2")
-                     .objectCount(1)
-                     .bytesUsed(17).build()));
-
-         assertEquals(server.getRequestCount(), 2);
-         assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", 
"/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9?marker=test");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testContainerExists() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(new 
MockResponse().setResponseCode(201)));
-      server.enqueue(addCommonHeaders(containerResponse()
-            .addHeader(CONTAINER_METADATA_PREFIX + "ApiName", "swift")
-            .addHeader(CONTAINER_METADATA_PREFIX + "ApiVersion", "v1.1")));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertTrue(api.getContainerApi("DFW").create("myContainer", 
anybodyRead().metadata(metadata)));
-
-         Container container = api.getContainerApi("DFW").get("myContainer");
-         assertEquals(container.getName(), "myContainer");
-         assertEquals(container.getObjectCount(), 42l);
-         assertEquals(container.getBytesUsed(), 323479l);
-         for (Entry<String, String> entry : 
container.getMetadata().entrySet()) {
-            
assertEquals(container.getMetadata().get(entry.getKey().toLowerCase()), 
entry.getValue());
-         }
-         assertEquals(server.getRequestCount(), 3);
-         assertAuthentication(server);
-         assertRequest(server.takeRequest(), "PUT", 
"/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer");
-         assertRequest(server.takeRequest(), "HEAD", 
"/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   @Test(expectedExceptions = ContainerNotFoundException.class)
-   public void testContainerDoesNotExist() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(new 
MockResponse().setResponseCode(404)));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertTrue(api.getContainerApi("DFW").create("myContainer", 
anybodyRead().metadata(metadata)));
-
-         // the head call will throw the ContainerNotFoundException
-         api.getContainerApi("DFW").get("myContainer");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testCreate() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(new 
MockResponse().setResponseCode(201)));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertTrue(api.getContainerApi("DFW").create("myContainer"));
-
-         assertEquals(server.getRequestCount(), 2);
-         assertAuthentication(server);
-         assertRequest(server.takeRequest(), "PUT", 
"/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testCreateWithOptions() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(new 
MockResponse().setResponseCode(201)));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertTrue(api.getContainerApi("DFW").create("myContainer", 
anybodyRead().metadata(metadata)));
-
-         assertEquals(server.getRequestCount(), 2);
-         assertAuthentication(server);
-
-         RecordedRequest createRequest = server.takeRequest();
-         assertRequest(createRequest, "PUT", 
"/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer");
-
-         assertEquals(createRequest.getHeader(CONTAINER_READ), 
CONTAINER_ACL_ANYBODY_READ);
-
-         for (Entry<String, String> entry : metadata.entrySet()) {
-            assertEquals(createRequest.getHeader(CONTAINER_METADATA_PREFIX + 
entry.getKey().toLowerCase()), entry.getValue());
-         }
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testCreateWithSpacesAndSpecialCharacters() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(new 
MockResponse().setResponseCode(201)));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertTrue(api.getContainerApi("DFW").create("container # ! 
special"));
-
-         assertEquals(server.getRequestCount(), 2);
-         assertAuthentication(server);
-         assertRequest(server.takeRequest(), "PUT", 
"/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/container%20%23%20%21%20special");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testAlreadyCreated() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(new 
MockResponse().setResponseCode(202)));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertFalse(api.getContainerApi("DFW").create("myContainer"));
-
-         assertEquals(server.getRequestCount(), 2);
-         assertAuthentication(server);
-         assertRequest(server.takeRequest(), "PUT", 
"/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   /** upper-cases first char, and lower-cases rest!! **/
-   public void testGetKnowingServerMessesWithMetadataKeyCaseFormat() throws 
Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(containerResponse()
-            // note silly casing
-            .addHeader(CONTAINER_METADATA_PREFIX + "Apiname", "swift")
-            .addHeader(CONTAINER_METADATA_PREFIX + "Apiversion", "v1.1")));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         Container container = api.getContainerApi("DFW").get("myContainer");
-         assertEquals(container.getName(), "myContainer");
-         assertEquals(container.getObjectCount(), 42l);
-         assertEquals(container.getBytesUsed(), 323479l);
-         for (Entry<String, String> entry : 
container.getMetadata().entrySet()) {
-            
assertEquals(container.getMetadata().get(entry.getKey().toLowerCase()), 
entry.getValue());
-         }
-
-         assertEquals(server.getRequestCount(), 2);
-         assertAuthentication(server);
-         assertRequest(server.takeRequest(), "HEAD", 
"/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testUpdateMetadata() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(containerResponse()
-            .addHeader(CONTAINER_METADATA_PREFIX + "ApiName", "swift")
-            .addHeader(CONTAINER_METADATA_PREFIX + "ApiVersion", "v1.1")));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertTrue(api.getContainerApi("DFW").updateMetadata("myContainer", 
metadata));
-
-         assertEquals(server.getRequestCount(), 2);
-         assertEquals(server.takeRequest().getRequestLine(), "POST /tokens 
HTTP/1.1");
-         RecordedRequest replaceRequest = server.takeRequest();
-         assertEquals(replaceRequest.getRequestLine(),
-               "POST 
/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer HTTP/1.1");
-         for (Entry<String, String> entry : metadata.entrySet()) {
-            assertEquals(replaceRequest.getHeader(CONTAINER_METADATA_PREFIX + 
entry.getKey().toLowerCase()), entry.getValue());
-         }
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testDeleteMetadata() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(containerResponse()));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertTrue(api.getContainerApi("DFW").deleteMetadata("myContainer", 
metadata));
-
-         assertEquals(server.getRequestCount(), 2);
-         assertEquals(server.takeRequest().getRequestLine(), "POST /tokens 
HTTP/1.1");
-         RecordedRequest deleteRequest = server.takeRequest();
-         assertEquals(deleteRequest.getRequestLine(),
-               "POST 
/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer HTTP/1.1");
-         for (String key : metadata.keySet()) {
-            
assertEquals(deleteRequest.getHeader(CONTAINER_REMOVE_METADATA_PREFIX + 
key.toLowerCase()), "ignored");
-         }
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testDeleteIfEmpty() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(new 
MockResponse().setResponseCode(204)));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertTrue(api.getContainerApi("DFW").deleteIfEmpty("myContainer"));
-
-         assertEquals(server.getRequestCount(), 2);
-         assertEquals(server.takeRequest().getRequestLine(), "POST /tokens 
HTTP/1.1");
-         RecordedRequest deleteRequest = server.takeRequest();
-         assertEquals(deleteRequest.getRequestLine(),
-               "DELETE 
/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer HTTP/1.1");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testAlreadyDeleted() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(new 
MockResponse().setResponseCode(404)));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertTrue(api.getContainerApi("DFW").deleteIfEmpty("myContainer"));
-
-         assertEquals(server.getRequestCount(), 2);
-         assertEquals(server.takeRequest().getRequestLine(), "POST /tokens 
HTTP/1.1");
-         RecordedRequest deleteRequest = server.takeRequest();
-         assertEquals(deleteRequest.getRequestLine(),
-               "DELETE 
/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer HTTP/1.1");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testDeleteWhenNotEmpty() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(new 
MockResponse().setResponseCode(409)));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertFalse(api.getContainerApi("DFW").deleteIfEmpty("myContainer"));
-
-      } finally {
-         assertEquals(server.getRequestCount(), 2);
-         assertEquals(server.takeRequest().getRequestLine(), "POST /tokens 
HTTP/1.1");
-         RecordedRequest deleteRequest = server.takeRequest();
-         assertEquals(deleteRequest.getRequestLine(),
-               "DELETE 
/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer HTTP/1.1");
-         server.shutdown();
-      }
-   }
-
-   private static final Map<String, String> metadata = 
ImmutableMap.of("ApiName", "swift", "ApiVersion", "v1.1");
-
-   static MockResponse containerResponse() {
-      return new MockResponse()
-            .addHeader(CONTAINER_OBJECT_COUNT, "42")
-            .addHeader(CONTAINER_BYTES_USED, "323479");
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9b19cded/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/CreatePublicContainerLiveTest.java
----------------------------------------------------------------------
diff --git 
a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/CreatePublicContainerLiveTest.java
 
b/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/CreatePublicContainerLiveTest.java
deleted file mode 100644
index 09e34b5..0000000
--- 
a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/CreatePublicContainerLiveTest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.jclouds.openstack.swift.v1.features;
-
-import static 
org.jclouds.openstack.swift.v1.options.CreateContainerOptions.Builder.anybodyRead;
-import static org.testng.Assert.assertTrue;
-
-import org.jclouds.openstack.swift.v1.SwiftApi;
-import org.jclouds.openstack.swift.v1.internal.BaseSwiftApiLiveTest;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.Test;
-
-@Test(groups = "live", testName = "CreatePublicContainerLiveTest")
-public class CreatePublicContainerLiveTest extends 
BaseSwiftApiLiveTest<SwiftApi> {
-
-   private String name = getClass().getSimpleName();
-
-   public void testAnybodyReadUpdatesMetadata() throws Exception {
-      for (String regionId : api.getConfiguredRegions()) {
-         api.getContainerApi(regionId).create(name, anybodyRead());
-         
assertTrue(api.getContainerApi(regionId).get(name).getAnybodyRead().get());
-      }
-   }
-
-   @Override
-   @AfterClass(groups = "live")
-   public void tearDown() {
-      for (String regionId : api.getConfiguredRegions()) {
-         api.getContainerApi(regionId).deleteIfEmpty(name);
-      }
-      super.tearDown();
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9b19cded/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiLiveTest.java
 
b/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiLiveTest.java
deleted file mode 100644
index 5a472ff..0000000
--- 
a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiLiveTest.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.jclouds.openstack.swift.v1.features;
-
-import static org.jclouds.http.options.GetOptions.Builder.tail;
-import static org.jclouds.io.Payloads.newByteSourcePayload;
-import static 
org.jclouds.openstack.swift.v1.options.ListContainerOptions.Builder.marker;
-import static org.jclouds.util.Strings2.toStringAndClose;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.fail;
-
-import java.io.IOException;
-import java.util.Date;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.concurrent.TimeUnit;
-
-import org.jclouds.http.options.GetOptions;
-import org.jclouds.io.Payload;
-import org.jclouds.openstack.swift.v1.CopyObjectException;
-import org.jclouds.openstack.swift.v1.SwiftApi;
-import org.jclouds.openstack.swift.v1.domain.ObjectList;
-import org.jclouds.openstack.swift.v1.domain.SwiftObject;
-import org.jclouds.openstack.swift.v1.internal.BaseSwiftApiLiveTest;
-import org.jclouds.openstack.swift.v1.options.ListContainerOptions;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableMap;
-import com.google.common.io.ByteSource;
-
-/**
- * Provides live tests for the {@link ObjectApi}.
- */
-@Test(groups = "live", testName = "ObjectApiLiveTest", singleThreaded = true)
-public class ObjectApiLiveTest extends BaseSwiftApiLiveTest<SwiftApi> {
-
-   private String name = getClass().getSimpleName();
-   private String containerName = getClass().getSimpleName() + "Container";
-   static final Payload PAYLOAD = 
newByteSourcePayload(ByteSource.wrap("swifty".getBytes()));
-
-   public void testCreateWithSpacesAndSpecialCharacters() throws Exception {
-      final String containerName = "container # ! special";
-      final String objectName = "object # ! special";
-
-      for (String regionId : regions) {
-         assertNotNull(api.getContainerApi(regionId).create(containerName));
-         assertNotNull(api.getObjectApi(regionId, 
containerName).put(objectName, PAYLOAD));
-
-         SwiftObject object = api.getObjectApi(regionId, 
containerName).get(objectName);
-         assertEquals(object.getName(), objectName);
-         checkObject(object);
-         assertEquals(toStringAndClose(object.getPayload().openStream()), 
"swifty");
-
-         api.getObjectApi(regionId, containerName).delete(objectName);
-         api.getContainerApi(regionId).deleteIfEmpty(containerName);
-      }
-   }
-
-   public void testPutWithExpiration() throws Exception {
-      String objectName = "test-expiration";
-
-      long expireMillis = new Date().getTime() + 1000 * 60 * 60 * 24;
-      Date expireAt = new Date(expireMillis);
-
-      Payload payload = 
newByteSourcePayload(ByteSource.wrap("swifty".getBytes()));
-      payload.getContentMetadata().setExpires(expireAt);
-
-      for (String regionId : regions) {
-         String etag = api.getObjectApi(regionId, 
containerName).put(objectName, payload);
-         assertNotNull(etag);
-
-         SwiftObject object = api.getObjectApi(regionId, 
containerName).get(objectName);
-         assertEquals(object.getName(), objectName);
-         checkObject(object);
-         assertEquals(toStringAndClose(object.getPayload().openStream()), 
"swifty");
-
-         api.getObjectApi(regionId, containerName).delete(objectName);
-      }
-   }
-   public void testCopyObject() throws Exception {
-      for (String regionId : regions) {
-         // source
-         String sourceContainer = "src" + containerName;
-         String sourceObjectName = "original.txt";
-         String badSource = "badSource";
-
-         // destination
-         String destinationContainer = "dest" + containerName;
-         String destinationObject = "copy.txt";
-         String destinationPath = "/" + destinationContainer + "/" + 
destinationObject;
-
-         ContainerApi containerApi = api.getContainerApi(regionId);
-
-         // create source and destination dirs
-         containerApi.create(sourceContainer);
-         containerApi.create(destinationContainer);
-
-         // get the api for this region and container
-         ObjectApi srcApi = api.getObjectApi(regionId, sourceContainer);
-         ObjectApi destApi = api.getObjectApi(regionId, destinationContainer);
-
-         // Create source object
-         assertNotNull(srcApi.put(sourceObjectName, PAYLOAD));
-         SwiftObject sourceObject = srcApi.get(sourceObjectName);
-         checkObject(sourceObject);
-
-         // Create the destination object
-         assertNotNull(destApi.put(destinationObject, PAYLOAD));
-         SwiftObject object = destApi.get(destinationObject);
-         checkObject(object);
-
-         // check the copy operation
-         assertTrue(destApi.copy(destinationObject, sourceContainer, 
sourceObjectName));
-         assertNotNull(destApi.get(destinationObject));
-
-         // now get a real SwiftObject
-         SwiftObject destSwiftObject = destApi.get(destinationObject);
-         
assertEquals(toStringAndClose(destSwiftObject.getPayload().openStream()), 
"swifty");
-
-         // test exception thrown on bad source name
-         try {
-            destApi.copy(destinationObject, badSource, sourceObjectName);
-            fail("Expected CopyObjectException");
-         } catch (CopyObjectException e) {
-            assertEquals(e.getSourcePath(), "/" + badSource + "/" + 
sourceObjectName);
-            assertEquals(e.getDestinationPath(), destinationPath);
-         }
-
-         deleteAllObjectsInContainer(regionId, sourceContainer);
-         containerApi.deleteIfEmpty(sourceContainer);
-
-         deleteAllObjectsInContainer(regionId, destinationContainer);
-         containerApi.deleteIfEmpty(destinationContainer);
-      }
-   }
-
-   public void testList() throws Exception {
-      for (String regionId : regions) {
-         ObjectApi objectApi = api.getObjectApi(regionId, containerName);
-         ObjectList response = objectApi.list();
-         assertEquals(response.getContainer(), 
api.getContainerApi(regionId).get(containerName));
-         for (SwiftObject object : response) {
-            checkObject(object);
-         }
-      }
-   }
-
-   public void testListWithOptions() throws Exception {
-      for (String regionId : regions) {
-         ObjectApi objectApi = api.getObjectApi(regionId, containerName);
-         ObjectList response = objectApi.list(ListContainerOptions.NONE);
-         assertEquals(response.getContainer(), 
api.getContainerApi(regionId).get(containerName));
-         for (SwiftObject object : response) {
-            checkObject(object);
-         }
-      }
-   }
-
-   public void testMetadata() throws Exception {
-      for (String regionId : regions) {
-         SwiftObject object = api.getObjectApi(regionId, 
containerName).get(name);
-         assertEquals(object.getName(), name);
-         checkObject(object);
-         assertEquals(toStringAndClose(object.getPayload().openStream()), 
"swifty");
-      }
-   }
-
-   public void testUpdateMetadata() throws Exception {
-      for (String regionId : regions) {
-         ObjectApi objectApi = api.getObjectApi(regionId, containerName);
-
-         Map<String, String> meta = ImmutableMap.of("MyAdd1", "foo", "MyAdd2", 
"bar");
-         assertTrue(objectApi.updateMetadata(name, meta));
-
-         SwiftObject object = objectApi.get(name);
-         for (Entry<String, String> entry : meta.entrySet()) {
-            // note keys are returned in lower-case!
-            
assertEquals(object.getMetadata().get(entry.getKey().toLowerCase()), 
entry.getValue(),
-                  object + " didn't have metadata: " + entry);
-         }
-      }
-   }
-
-   public void testGet() throws Exception {
-      for (String regionId : regions) {
-         SwiftObject object = api.getObjectApi(regionId, 
containerName).get(name, GetOptions.NONE);
-         assertEquals(object.getName(), name);
-         checkObject(object);
-         assertEquals(toStringAndClose(object.getPayload().openStream()), 
"swifty");
-      }
-   }
-
-   public void testPrivateByDefault() throws Exception {
-      for (String regionId : regions) {
-         SwiftObject object = api.getObjectApi(regionId, 
containerName).get(name);
-         try {
-            object.getUri().toURL().openStream();
-            fail("shouldn't be able to access " + object);
-         } catch (IOException expected) {
-         }
-      }
-   }
-
-   public void testGetOptions() throws Exception {
-      for (String regionId : regions) {
-         SwiftObject object = api.getObjectApi(regionId, 
containerName).get(name, tail(1));
-         assertEquals(object.getName(), name);
-         checkObject(object);
-         assertEquals(toStringAndClose(object.getPayload().openStream()), "y");
-      }
-   }
-
-   public void testListOptions() throws Exception {
-      String lexicographicallyBeforeName = name.substring(0, name.length() - 
1);
-      for (String regionId : regions) {
-         SwiftObject object = api.getObjectApi(regionId, containerName)
-               .list(marker(lexicographicallyBeforeName)).get(0);
-         assertEquals(object.getName(), name);
-         checkObject(object);
-      }
-   }
-
-   public void testDeleteMetadata() throws Exception {
-      for (String regionId : regions) {
-         ObjectApi objectApi = api.getObjectApi(regionId, containerName);
-
-         Map<String, String> meta = ImmutableMap.of("MyDelete1", "foo", 
"MyDelete2", "bar");
-
-         assertTrue(objectApi.updateMetadata(name, meta));
-         assertFalse(objectApi.get(name).getMetadata().isEmpty());
-
-         assertTrue(objectApi.deleteMetadata(name, meta));
-         assertTrue(objectApi.get(name).getMetadata().isEmpty());
-      }
-   }
-
-   @Override
-   @BeforeClass(groups = "live")
-   public void setup() {
-      super.setup();
-      for (String regionId : regions) {
-         api.getContainerApi(regionId).create(containerName);
-         api.getObjectApi(regionId, containerName).put(name, PAYLOAD);
-      }
-   }
-
-   @Override
-   @AfterClass(groups = "live")
-   public void tearDown() {
-      for (String regionId : regions) {
-         deleteAllObjectsInContainer(regionId, containerName);
-         api.getObjectApi(regionId, containerName).delete(name);
-         api.getContainerApi(regionId).deleteIfEmpty(containerName);
-      }
-
-      super.tearDown();
-   }
-
-   static void checkObject(SwiftObject object) {
-      assertNotNull(object.getName());
-      assertNotNull(object.getUri());
-      assertNotNull(object.getETag());
-      assertTrue(object.getLastModified().getTime() <= 
System.currentTimeMillis() + TimeUnit.MINUTES.toMillis(5));
-      
assertNotNull(object.getPayload().getContentMetadata().getContentLength());
-      assertNotNull(object.getPayload().getContentMetadata().getContentType());
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/9b19cded/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiMockTest.java
----------------------------------------------------------------------
diff --git 
a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiMockTest.java
 
b/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiMockTest.java
deleted file mode 100644
index 8c0e4d1..0000000
--- 
a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiMockTest.java
+++ /dev/null
@@ -1,515 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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 org.jclouds.openstack.swift.v1.features;
-
-import static com.google.common.base.Charsets.US_ASCII;
-import static com.google.common.io.BaseEncoding.base16;
-import static com.google.common.net.HttpHeaders.EXPIRES;
-import static org.jclouds.Constants.PROPERTY_MAX_RETRIES;
-import static org.jclouds.Constants.PROPERTY_RETRY_DELAY_START;
-import static org.jclouds.Constants.PROPERTY_SO_TIMEOUT;
-import static org.jclouds.http.options.GetOptions.Builder.tail;
-import static org.jclouds.io.Payloads.newByteSourcePayload;
-import static 
org.jclouds.openstack.swift.v1.features.ContainerApiMockTest.containerResponse;
-import static 
org.jclouds.openstack.swift.v1.options.ListContainerOptions.Builder.marker;
-import static 
org.jclouds.openstack.swift.v1.options.PutOptions.Builder.metadata;
-import static 
org.jclouds.openstack.swift.v1.reference.SwiftHeaders.CONTAINER_ACL_ANYBODY_READ;
-import static 
org.jclouds.openstack.swift.v1.reference.SwiftHeaders.CONTAINER_READ;
-import static 
org.jclouds.openstack.swift.v1.reference.SwiftHeaders.OBJECT_METADATA_PREFIX;
-import static 
org.jclouds.openstack.swift.v1.reference.SwiftHeaders.OBJECT_REMOVE_METADATA_PREFIX;
-import static org.jclouds.util.Strings2.toStringAndClose;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.fail;
-
-import java.io.IOException;
-import java.net.URI;
-import java.util.Date;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Properties;
-
-import org.jclouds.date.internal.SimpleDateFormatDateService;
-import org.jclouds.http.HttpResponseException;
-import org.jclouds.io.Payload;
-import org.jclouds.io.payloads.ByteSourcePayload;
-import org.jclouds.openstack.swift.v1.CopyObjectException;
-import org.jclouds.openstack.swift.v1.SwiftApi;
-import org.jclouds.openstack.swift.v1.domain.ObjectList;
-import org.jclouds.openstack.swift.v1.domain.SwiftObject;
-import org.jclouds.openstack.swift.v1.options.ListContainerOptions;
-import org.jclouds.openstack.swift.v1.reference.SwiftHeaders;
-import org.jclouds.openstack.v2_0.internal.BaseOpenStackMockTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.io.ByteSource;
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-import com.squareup.okhttp.mockwebserver.RecordedRequest;
-
-/**
- * Provides mock tests for the {@link ObjectApi}.
- */
-@Test(groups = "unit", testName = "ObjectApiMockTest")
-public class ObjectApiMockTest extends BaseOpenStackMockTest<SwiftApi> {
-   SimpleDateFormatDateService dates = new SimpleDateFormatDateService();
-
-   static final Payload PAYLOAD = 
newByteSourcePayload(ByteSource.wrap("swifty".getBytes()));
-
-   protected ImmutableList<SwiftObject> parsedObjectsForUrl(String baseUri) {
-      baseUri += 
"v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer";
-      return ImmutableList.of(
-            SwiftObject.builder()
-                  .name("test_obj_1")
-                  .uri(URI.create(baseUri + "/test_obj_1"))
-                  .etag("4281c348eaf83e70ddce0e07221c3d28")
-                  .payload(payload(14, "application/octet-stream", new 
Date(1406243553)))
-                  
.lastModified(dates.iso8601DateParse("2009-02-03T05:26:32.612278")).build(),
-            SwiftObject.builder()
-                  .name("test_obj_2")
-                  .uri(URI.create(baseUri + "/test_obj_2"))
-                  .etag("b039efe731ad111bc1b0ef221c3849d0")
-                  .payload(payload(64l, "application/octet-stream", null))
-                  
.lastModified(dates.iso8601DateParse("2009-02-03T05:26:32.612278")).build(),
-            SwiftObject.builder()
-                  .name("test obj 3")
-                  .uri(URI.create(baseUri + "/test%20obj%203"))
-                  .etag("0b2e80bd0744d9ebb20484149a57c82e")
-                  .payload(payload(14, "application/octet-stream", new Date()))
-                  
.lastModified(dates.iso8601DateParse("2014-05-20T05:26:32.612278")).build());
-   }
-
-   public void testList() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(containerResponse()
-            .addHeader(CONTAINER_READ, CONTAINER_ACL_ANYBODY_READ)
-            .setBody(stringFromResource("/object_list.json"))));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         ObjectList objects = api.getObjectApi("DFW", "myContainer").list();
-         assertEquals(objects, 
parsedObjectsForUrl(server.getUrl("/").toString()));
-         assertEquals(objects.getContainer().getName(), "myContainer");
-         assertTrue(objects.getContainer().getAnybodyRead().get());
-
-         // Check MD5 is parsed from the ETag header.
-         SwiftObject object1 = objects.get(1);
-         assertEquals(base16().lowerCase().decode(object1.getETag()),
-               
object1.getPayload().getContentMetadata().getContentMD5AsHashCode().asBytes());
-
-         assertEquals(server.getRequestCount(), 2);
-         assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", 
"/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testListWithOptions() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(containerResponse()
-            .addHeader(CONTAINER_READ, CONTAINER_ACL_ANYBODY_READ)
-            .setBody(stringFromResource("/object_list.json"))));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         ObjectList objects = api.getObjectApi("DFW", "myContainer").list(new 
ListContainerOptions());
-         assertEquals(objects, 
parsedObjectsForUrl(server.getUrl("/").toString()));
-         assertEquals(objects.getContainer().getName(), "myContainer");
-         assertTrue(objects.getContainer().getAnybodyRead().get());
-
-         assertEquals(server.getRequestCount(), 2);
-         assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", 
"/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testListOptions() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      
server.enqueue(addCommonHeaders(containerResponse().setBody(stringFromResource("/object_list.json"))));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         ObjectList objects = api.getObjectApi("DFW", 
"myContainer").list(marker("test"));
-         assertEquals(objects, 
parsedObjectsForUrl(server.getUrl("/").toString()));
-
-         assertEquals(server.getRequestCount(), 2);
-         assertAuthentication(server);
-         assertRequest(server.takeRequest(), "GET", 
"/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer?marker=test");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testCreate() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse()
-            .setResponseCode(201)
-            .addHeader("ETag", "d9f5eb4bba4e2f2f046e54611bc8196b"))
-            .addHeader("Expires", "1406243553"));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertEquals(
-               api.getObjectApi("DFW", "myContainer").put("myObject", PAYLOAD,
-                     metadata(metadata)), "d9f5eb4bba4e2f2f046e54611bc8196b");
-
-         assertEquals(server.getRequestCount(), 2);
-         assertAuthentication(server);
-         RecordedRequest replace = server.takeRequest();
-         assertRequest(replace, "PUT", 
"/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/myObject");
-
-         assertEquals(new String(replace.getBody()), "swifty");
-         for (Entry<String, String> entry : metadata.entrySet()) {
-            assertEquals(replace.getHeader(OBJECT_METADATA_PREFIX + 
entry.getKey().toLowerCase()), entry.getValue());
-         }
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testCreateWithSpacesAndSpecialCharacters() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(new 
MockResponse().setResponseCode(201).addHeader("ETag", 
"d9f5eb4bba4e2f2f046e54611bc8196b")));
-
-      final String containerName = "container # ! special";
-      final String objectName = "object # ! special";
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertEquals(
-               api.getObjectApi("DFW", containerName).put(objectName, PAYLOAD,
-                     metadata(metadata)), "d9f5eb4bba4e2f2f046e54611bc8196b");
-
-         assertEquals(server.getRequestCount(), 2);
-         assertAuthentication(server);
-         RecordedRequest replace = server.takeRequest();
-         assertRequest(replace, "PUT", 
"/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/container%20%23%20%21%20special/object%20%23%20%21%20special");
-
-         assertEquals(new String(replace.getBody()), "swifty");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testCreateWith408Retry() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(new 
MockResponse().setResponseCode(408))); // 1
-      server.enqueue(addCommonHeaders(new 
MockResponse().setResponseCode(408))); // 2
-      server.enqueue(addCommonHeaders(new 
MockResponse().setResponseCode(408))); // 3
-
-      // Finally success
-      server.enqueue(addCommonHeaders(new MockResponse()
-            .setResponseCode(201)
-            .addHeader("ETag", "d9f5eb4bba4e2f2f046e54611bc8196b")));
-
-      try {
-         Properties overrides = new Properties();
-         overrides.setProperty(PROPERTY_MAX_RETRIES, 5 + "");
-
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift", 
overrides);
-         assertEquals(
-               api.getObjectApi("DFW", "myContainer").put("myObject", PAYLOAD,
-                     metadata(metadata)), "d9f5eb4bba4e2f2f046e54611bc8196b");
-
-         assertEquals(server.getRequestCount(), 5);
-         assertAuthentication(server);
-         RecordedRequest replace = server.takeRequest();
-         // This should take a while.
-         assertRequest(replace, "PUT", 
"/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/myObject");
-
-         assertEquals(new String(replace.getBody()), "swifty");
-         for (Entry<String, String> entry : metadata.entrySet()) {
-            assertEquals(replace.getHeader(OBJECT_METADATA_PREFIX + 
entry.getKey().toLowerCase()), entry.getValue());
-         }
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   /** upper-cases first char, and lower-cases rest!! **/
-   public void testGetWithoutKnowingServerMessesWithMetadataKeyCaseFormat() 
throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(objectResponse()
-            // note silly casing
-            .addHeader(OBJECT_METADATA_PREFIX + "Apiname", "swift")
-            .addHeader(OBJECT_METADATA_PREFIX + "Apiversion", "v1.1")));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         SwiftObject object = api.getObjectApi("DFW", 
"myContainer").getWithoutBody("myObject");
-         assertEquals(object.getName(), "myObject");
-         assertEquals(object.getETag(), "8a964ee2a5e88be344f36c22562a6486");
-
-         // Check MD5 is parsed from the ETag header.
-         assertEquals(base16().lowerCase().decode(object.getETag()),
-               
object.getPayload().getContentMetadata().getContentMD5AsHashCode().asBytes());
-
-         assertEquals(object.getLastModified(), dates.rfc822DateParse("Fri, 12 
Jun 2010 13:40:18 GMT"));
-         for (Entry<String, String> entry : object.getMetadata().entrySet()) {
-            
assertEquals(object.getMetadata().get(entry.getKey().toLowerCase()), 
entry.getValue());
-         }
-         
assertEquals(object.getPayload().getContentMetadata().getContentType(), 
"text/plain; charset=UTF-8");
-         assertEquals(toStringAndClose(object.getPayload().openStream()), "");
-
-         assertEquals(server.getRequestCount(), 2);
-         assertAuthentication(server);
-         assertRequest(server.takeRequest(), "HEAD", 
"/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/myObject");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testGet() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(objectResponse()
-            // note silly casing
-            .addHeader(OBJECT_METADATA_PREFIX + "Apiname", "swift")
-            .addHeader(OBJECT_METADATA_PREFIX + "Apiversion", "v1.1")));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         SwiftObject object = api.getObjectApi("DFW", 
"myContainer").get("myObject", tail(1));
-         assertEquals(object.getName(), "myObject");
-         assertEquals(object.getETag(), "8a964ee2a5e88be344f36c22562a6486");
-         assertEquals(object.getLastModified(), dates.rfc822DateParse("Fri, 12 
Jun 2010 13:40:18 GMT"));
-         for (Entry<String, String> entry : object.getMetadata().entrySet()) {
-            
assertEquals(object.getMetadata().get(entry.getKey().toLowerCase()), 
entry.getValue());
-         }
-
-         Payload payload = object.getPayload();
-         assertEquals(payload.getContentMetadata().getContentLength(), 
Long.valueOf(4));
-         assertEquals(payload.getContentMetadata().getContentType(), 
"text/plain; charset=UTF-8");
-         assertEquals(payload.getContentMetadata().getExpires(), 
dates.rfc822DateParse("Wed, 23 Jul 2014 14:00:00 GMT"));
-
-         assertEquals(toStringAndClose(payload.openStream()), "ABCD");
-
-         assertEquals(server.getRequestCount(), 2);
-         assertEquals(server.takeRequest().getRequestLine(), "POST /tokens 
HTTP/1.1");
-         RecordedRequest get = server.takeRequest();
-         assertEquals(get.getRequestLine(),
-               "GET 
/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/myObject 
HTTP/1.1");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   @Test(expectedExceptions = HttpResponseException.class, timeOut = 20000)
-   public void testCreateWithTimeout() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      // Typically we would enqueue a response for the put. However, in this 
case, test the timeout by not providing one.
-
-      try {
-         Properties overrides = new Properties();
-
-         overrides.setProperty(PROPERTY_SO_TIMEOUT, 5000 + ""); // This 
time-outs the connection
-         overrides.setProperty(PROPERTY_MAX_RETRIES, 0 + ""); // 0 retries == 
1 try. Semantics.
-         overrides.setProperty(PROPERTY_RETRY_DELAY_START, 0 + ""); // 
exponential backoff already working for this call. This is the delay BETWEEN 
attempts.
-
-         final SwiftApi api = api(server.getUrl("/").toString(), 
"openstack-swift", overrides);
-
-         api.getObjectApi("DFW", "myContainer").put("myObject", new 
ByteSourcePayload(ByteSource.wrap("swifty".getBytes())), metadata(metadata));
-
-         fail("testReplaceTimeout test should have failed with an 
HttpResponseException.");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testUpdateMetadata() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(objectResponse()
-            .addHeader(OBJECT_METADATA_PREFIX + "ApiName", "swift")
-            .addHeader(OBJECT_METADATA_PREFIX + "ApiVersion", "v1.1")));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertTrue(api.getObjectApi("DFW", 
"myContainer").updateMetadata("myObject", metadata));
-
-         assertEquals(server.getRequestCount(), 2);
-         assertEquals(server.takeRequest().getRequestLine(), "POST /tokens 
HTTP/1.1");
-         RecordedRequest replaceRequest = server.takeRequest();
-         assertEquals(replaceRequest.getRequestLine(),
-               "POST 
/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/myObject 
HTTP/1.1");
-         for (Entry<String, String> entry : metadata.entrySet()) {
-            assertEquals(replaceRequest.getHeader(OBJECT_METADATA_PREFIX + 
entry.getKey().toLowerCase()), entry.getValue());
-         }
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testUpdateMetadataContentType() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(objectResponse()
-            .addHeader(OBJECT_METADATA_PREFIX + "ApiName", "swift")
-            .addHeader(OBJECT_METADATA_PREFIX + "ApiVersion", "v1.1")));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertTrue(api.getObjectApi("DFW", 
"myContainer").updateMetadata("myObject", metadata));
-
-         assertEquals(server.getRequestCount(), 2);
-         assertEquals(server.takeRequest().getRequestLine(), "POST /tokens 
HTTP/1.1");
-         RecordedRequest replaceRequest = server.takeRequest();
-         assertEquals(replaceRequest.getHeaders("Content-Type").get(0), "", 
"updateMetadata should send an empty content-type header, but sent "
-               + replaceRequest.getHeaders("Content-Type").get(0).toString());
-
-         assertEquals(replaceRequest.getRequestLine(),
-               "POST 
/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/myObject 
HTTP/1.1");
-         for (Entry<String, String> entry : metadata.entrySet()) {
-            assertEquals(replaceRequest.getHeader(OBJECT_METADATA_PREFIX + 
entry.getKey().toLowerCase()), entry.getValue());
-         }
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testDeleteMetadata() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(objectResponse()));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertTrue(api.getObjectApi("DFW", 
"myContainer").deleteMetadata("myObject", metadata));
-
-         assertEquals(server.getRequestCount(), 2);
-         assertEquals(server.takeRequest().getRequestLine(), "POST /tokens 
HTTP/1.1");
-         RecordedRequest deleteRequest = server.takeRequest();
-         assertEquals(deleteRequest.getRequestLine(),
-               "POST 
/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/myObject 
HTTP/1.1");
-         for (String key : metadata.keySet()) {
-            assertEquals(deleteRequest.getHeader(OBJECT_REMOVE_METADATA_PREFIX 
+ key.toLowerCase()), "ignored");
-         }
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testDelete() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(new 
MockResponse().setResponseCode(204)));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         api.getObjectApi("DFW", "myContainer").delete("myObject");
-
-         assertEquals(server.getRequestCount(), 2);
-         assertEquals(server.takeRequest().getRequestLine(), "POST /tokens 
HTTP/1.1");
-         RecordedRequest deleteRequest = server.takeRequest();
-         assertEquals(deleteRequest.getRequestLine(),
-               "DELETE 
/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/myObject 
HTTP/1.1");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testAlreadyDeleted() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(new 
MockResponse().setResponseCode(404)));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         api.getObjectApi("DFW", "myContainer").delete("myObject");
-
-         assertEquals(server.getRequestCount(), 2);
-         assertEquals(server.takeRequest().getRequestLine(), "POST /tokens 
HTTP/1.1");
-         RecordedRequest deleteRequest = server.takeRequest();
-         assertEquals(deleteRequest.getRequestLine(),
-               "DELETE 
/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/myContainer/myObject 
HTTP/1.1");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   public void testCopyObject() throws Exception {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(201)
-            .addHeader(SwiftHeaders.OBJECT_COPY_FROM, "/bar/foo.txt")));
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         assertTrue(api.getObjectApi("DFW", "foo")
-            .copy("bar.txt", "bar", "foo.txt"));
-
-         assertEquals(server.getRequestCount(), 2);
-         assertEquals(server.takeRequest().getRequestLine(), "POST /tokens 
HTTP/1.1");
-
-         RecordedRequest copyRequest = server.takeRequest();
-         assertEquals(copyRequest.getRequestLine(),
-               "PUT 
/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9/foo/bar.txt HTTP/1.1");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   @Test(expectedExceptions = CopyObjectException.class)
-   public void testCopyObjectFail() throws InterruptedException, IOException {
-      MockWebServer server = mockOpenStackServer();
-      server.enqueue(addCommonHeaders(new 
MockResponse().setBody(stringFromResource("/access.json"))));
-      server.enqueue(addCommonHeaders(new MockResponse().setResponseCode(404)
-            .addHeader(SwiftHeaders.OBJECT_COPY_FROM, "/bogus/foo.txt")));
-
-      try {
-         SwiftApi api = api(server.getUrl("/").toString(), "openstack-swift");
-         // the following line will throw the CopyObjectException
-         api.getObjectApi("DFW", "foo").copy("bar.txt", "bogus", "foo.txt");
-      } finally {
-         server.shutdown();
-      }
-   }
-
-   private static final Map<String, String> metadata = 
ImmutableMap.of("ApiName", "swift", "ApiVersion", "v1.1");
-
-   static MockResponse objectResponse() {
-      return new MockResponse()
-            .addHeader("Last-Modified", "Fri, 12 Jun 2010 13:40:18 GMT")
-            .addHeader("ETag", "8a964ee2a5e88be344f36c22562a6486")
-            // TODO: MWS doesn't allow you to return content length w/o content
-            // on HEAD!
-            .setBody("ABCD".getBytes(US_ASCII))
-            .addHeader("Content-Length", "4")
-            .addHeader("Content-Type", "text/plain; charset=UTF-8")
-            .addHeader(EXPIRES, "Wed, 23 Jul 2014 14:00:00 GMT");
-   }
-
-   static Payload payload(long bytes, String contentType, Date expires) {
-      Payload payload = newByteSourcePayload(ByteSource.empty());
-      payload.getContentMetadata().setContentLength(bytes);
-      payload.getContentMetadata().setContentType(contentType);
-      payload.getContentMetadata().setExpires(expires);
-      return payload;
-   }
-}

Reply via email to