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()); - } -}
