You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ad...@apache.org on 2014/10/09 04:57:42 UTC
[3/6] Swift is now out of labs.
http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/3e6e7ed8/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/AccountApiLiveTest.java
----------------------------------------------------------------------
diff --git a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/AccountApiLiveTest.java b/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/AccountApiLiveTest.java
deleted file mode 100644
index c62d238..0000000
--- a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/AccountApiLiveTest.java
+++ /dev/null
@@ -1,87 +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.Account;
-import org.jclouds.openstack.swift.v1.internal.BaseSwiftApiLiveTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableMap;
-
-@Test(groups = "live", testName = "AccountApiLiveTest")
-public class AccountApiLiveTest extends BaseSwiftApiLiveTest<SwiftApi> {
-
- public void testGet() throws Exception {
- for (String regionId : regions) {
- AccountApi accountApi = api.getAccountApiForRegion(regionId);
- Account account = accountApi.get();
-
- assertNotNull(account);
- assertTrue(account.getContainerCount() >= 0);
- assertTrue(account.getObjectCount() >= 0);
- assertTrue(account.getBytesUsed() >= 0);
- }
- }
-
- public void testUpdateMetadata() throws Exception {
- for (String regionId : regions) {
- AccountApi accountApi = api.getAccountApiForRegion(regionId);
-
- Map<String, String> meta = ImmutableMap.of("MyAdd1", "foo", "MyAdd2", "bar");
-
- assertTrue(accountApi.updateMetadata(meta));
-
- accountHasMetadata(accountApi, meta);
- }
- }
-
- public void testDeleteMetadata() throws Exception {
- for (String regionId : regions) {
- AccountApi accountApi = api.getAccountApiForRegion(regionId);
-
- Map<String, String> meta = ImmutableMap.of("MyDelete1", "foo", "MyDelete2", "bar");
-
- assertTrue(accountApi.updateMetadata(meta));
- accountHasMetadata(accountApi, meta);
-
- assertTrue(accountApi.deleteMetadata(meta));
- Account account = accountApi.get();
- for (Entry<String, String> entry : meta.entrySet()) {
- // note keys are returned in lower-case!
- assertFalse(account.getMetadata().containsKey(entry.getKey().toLowerCase()));
- }
- }
- }
-
- static void accountHasMetadata(AccountApi accountApi, Map<String, String> meta) {
- Account account = accountApi.get();
- for (Entry<String, String> entry : meta.entrySet()) {
- // note keys are returned in lower-case!
- assertEquals(account.getMetadata().get(entry.getKey().toLowerCase()), entry.getValue(),
- account + " didn't have metadata: " + entry);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/3e6e7ed8/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 3e57527..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.getAccountApiForRegion("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.getAccountApiForRegion("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.getAccountApiForRegion("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.getAccountApiForRegion("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/3e6e7ed8/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 bf313d7..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.getBulkApiForRegion(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.getBulkApiForRegion(regionId)
- .extractArchive(containerName, payload, "tar.gz");
- assertEquals(extractResponse.getCreated(), OBJECT_COUNT);
- assertTrue(extractResponse.getErrors().isEmpty());
- assertEquals(api.getContainerApiForRegion(regionId).get(containerName).getObjectCount(), OBJECT_COUNT);
-
- // repeat the command
- extractResponse = api.getBulkApiForRegion(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.getBulkApiForRegion(regionId).bulkDelete(paths);
- assertEquals(deleteResponse.getDeleted(), OBJECT_COUNT);
- assertEquals(deleteResponse.getNotFound(), 0);
- assertTrue(deleteResponse.getErrors().isEmpty());
- assertEquals(api.getContainerApiForRegion(regionId).get(containerName).getObjectCount(), 0);
- }
- }
-
- @Override
- @BeforeClass(groups = "live")
- public void setup() {
- super.setup();
- for (String regionId : regions) {
- boolean created = api.getContainerApiForRegion(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.getContainerApiForRegion(regionId).deleteIfEmpty(containerName);
- }
- super.tearDown();
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/3e6e7ed8/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 5b7a520..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.getBulkApiForRegion("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/3e6e7ed8/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 04585a0..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.getContainerApiForRegion(regionId).create(name, opts));
-
- Container container = api.getContainerApiForRegion(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.getContainerApiForRegion(regionId).deleteIfEmpty(name));
- }
- }
-
- public void testCreateWithSpacesAndSpecialCharacters() throws Exception {
- final String nameWithSpaces = "container # ! special";
-
- for (String regionId : regions) {
- assertTrue(api.getContainerApiForRegion(regionId).create(nameWithSpaces));
- Container container = api.getContainerApiForRegion(regionId).get(nameWithSpaces);
- assertNotNull(container);
- assertEquals(container.getName(), nameWithSpaces);
-
- assertTrue(api.getContainerApiForRegion(regionId).deleteIfEmpty(nameWithSpaces));
- }
- }
-
- public void testList() throws Exception {
- for (String regionId : regions) {
- ContainerApi containerApi = api.getContainerApiForRegion(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.getContainerApiForRegion(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.getContainerApiForRegion(regionId).create(name));
-
- Container container = api.getContainerApiForRegion(regionId).get(name);
- assertNotNull(container);
- assertEquals(container.getName(), name);
- assertTrue(container.getMetadata().isEmpty());
-
- assertNotNull(api.getContainerApiForRegion(regionId).update(name, opts));
-
- Container updatedContainer = api.getContainerApiForRegion(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.getContainerApiForRegion(regionId).deleteIfEmpty(name));
- }
- }
-
- public void testGet() throws Exception {
- for (String regionId : regions) {
- Container container = api.getContainerApiForRegion(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.getContainerApiForRegion(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.getContainerApiForRegion(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.getContainerApiForRegion(regionId).create(name);
- }
- }
-
- @Override
- @AfterClass(groups = "live")
- public void tearDown() {
- for (String regionId : regions) {
- api.getContainerApiForRegion(regionId).deleteIfEmpty(name);
- }
- super.tearDown();
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/3e6e7ed8/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 73cf6b3..0000000
--- a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ContainerApiMockTest.java
+++ /dev/null
@@ -1,364 +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.getContainerApiForRegion("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/?format=json");
- } 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.getContainerApiForRegion("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/?format=json&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.getContainerApiForRegion("DFW").create("myContainer", anybodyRead().metadata(metadata)));
-
- Container container = api.getContainerApiForRegion("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.getContainerApiForRegion("DFW").create("myContainer", anybodyRead().metadata(metadata)));
-
- // the head call will throw the ContainerNotFoundException
- api.getContainerApiForRegion("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.getContainerApiForRegion("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.getContainerApiForRegion("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.getContainerApiForRegion("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.getContainerApiForRegion("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.getContainerApiForRegion("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.getContainerApiForRegion("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.getContainerApiForRegion("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.getContainerApiForRegion("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.getContainerApiForRegion("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();
- }
- }
-
- @Test(expectedExceptions = IllegalStateException.class)
- 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");
- api.getContainerApiForRegion("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/3e6e7ed8/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 41df875..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.getContainerApiForRegion(regionId).create(name, anybodyRead());
- assertTrue(api.getContainerApiForRegion(regionId).get(name).getAnybodyRead().get());
- }
- }
-
- @Override
- @AfterClass(groups = "live")
- public void tearDown() {
- for (String regionId : api.getConfiguredRegions()) {
- api.getContainerApiForRegion(regionId).deleteIfEmpty(name);
- }
- super.tearDown();
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-openstack/blob/3e6e7ed8/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 c0b2a6e..0000000
--- a/openstack-swift/src/test/java/org/jclouds/openstack/swift/v1/features/ObjectApiLiveTest.java
+++ /dev/null
@@ -1,291 +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 javax.ws.rs.PathParam;
-
-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.binders.SetPayload;
-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.jclouds.rest.annotations.BinderParam;
-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.getContainerApiForRegion(regionId).create(containerName));
- assertNotNull(api.getObjectApiForRegionAndContainer(regionId, containerName).put(objectName, PAYLOAD));
-
- SwiftObject object = api.getObjectApiForRegionAndContainer(regionId, containerName).get(objectName);
- assertEquals(object.getName(), objectName);
- checkObject(object);
- assertEquals(toStringAndClose(object.getPayload().openStream()), "swifty");
-
- api.getObjectApiForRegionAndContainer(regionId, containerName).delete(objectName);
- api.getContainerApiForRegion(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.getObjectApiForRegionAndContainer(regionId, containerName)
- .put(objectName, payload);
- assertNotNull(etag);
-
- SwiftObject object = api.getObjectApiForRegionAndContainer(regionId, containerName).get(objectName);
- assertEquals(object.getName(), objectName);
- checkObject(object);
- assertEquals(toStringAndClose(object.getPayload().openStream()), "swifty");
-
- api.getObjectApiForRegionAndContainer(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.getContainerApiForRegion(regionId);
-
- // create source and destination dirs
- containerApi.create(sourceContainer);
- containerApi.create(destinationContainer);
-
- // get the api for this region and container
- ObjectApi srcApi = api.getObjectApiForRegionAndContainer(regionId, sourceContainer);
- ObjectApi destApi = api.getObjectApiForRegionAndContainer(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.getObjectApiForRegionAndContainer(regionId, containerName);
- ObjectList response = objectApi.list();
- assertEquals(response.getContainer(), api.getContainerApiForRegion(regionId).get(containerName));
- for (SwiftObject object : response) {
- checkObject(object);
- }
- }
- }
-
- public void testListWithOptions() throws Exception {
- for (String regionId : regions) {
- ObjectApi objectApi = api.getObjectApiForRegionAndContainer(regionId, containerName);
- ObjectList response = objectApi.list(ListContainerOptions.NONE);
- assertEquals(response.getContainer(), api.getContainerApiForRegion(regionId).get(containerName));
- for (SwiftObject object : response) {
- checkObject(object);
- }
- }
- }
-
- public void testMetadata() throws Exception {
- for (String regionId : regions) {
- SwiftObject object = api.getObjectApiForRegionAndContainer(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.getObjectApiForRegionAndContainer(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.getObjectApiForRegionAndContainer(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.getObjectApiForRegionAndContainer(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.getObjectApiForRegionAndContainer(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.getObjectApiForRegionAndContainer(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.getObjectApiForRegionAndContainer(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.getContainerApiForRegion(regionId).create(containerName);
- api.getObjectApiForRegionAndContainer(regionId, containerName).put(name, PAYLOAD);
- }
- }
-
- @Override
- @AfterClass(groups = "live")
- public void tearDown() {
- for (String regionId : regions) {
- deleteAllObjectsInContainer(regionId, containerName);
- api.getObjectApiForRegionAndContainer(regionId, containerName).delete(name);
- api.getContainerApiForRegion(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());
- }
-}