http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/AvailabilityZoneAndRegionApiLiveTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/AvailabilityZoneAndRegionApiLiveTest.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/AvailabilityZoneAndRegionApiLiveTest.java deleted file mode 100644 index 61c1fb0..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/AvailabilityZoneAndRegionApiLiveTest.java +++ /dev/null @@ -1,91 +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.ec2.features; - -import static org.jclouds.ec2.options.DescribeAvailabilityZonesOptions.Builder.availabilityZones; -import static org.jclouds.ec2.options.DescribeRegionsOptions.Builder.regions; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; - -import java.net.URI; -import java.util.Iterator; -import java.util.Map.Entry; -import java.util.Set; -import java.util.SortedMap; - -import org.jclouds.compute.internal.BaseComputeServiceContextLiveTest; -import org.jclouds.ec2.EC2Api; -import org.jclouds.ec2.domain.AvailabilityZoneInfo; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; - -import com.google.common.collect.Maps; - -/** - * Tests behavior of {@code AvailabilityZoneAndRegionApi} - * - * @author Adrian Cole - */ -@Test(groups = "live", singleThreaded = true, testName = "AvailabilityZoneAndRegionApiLiveTest") -public class AvailabilityZoneAndRegionApiLiveTest extends BaseComputeServiceContextLiveTest { - public AvailabilityZoneAndRegionApiLiveTest() { - provider = "ec2"; - } - - private EC2Api ec2Api; - private AvailabilityZoneAndRegionApi client; - - @Override - @BeforeClass(groups = { "integration", "live" }) - public void setupContext() { - super.setupContext(); - ec2Api = view.unwrapApi(EC2Api.class); - client = ec2Api.getAvailabilityZoneAndRegionApi().get(); - } - - public void testDescribeAvailabilityZones() { - for (String region : ec2Api.getConfiguredRegions()) { - Set<AvailabilityZoneInfo> allResults = client.describeAvailabilityZonesInRegion(region); - assertNotNull(allResults); - assert !allResults.isEmpty() : allResults.size(); - Iterator<AvailabilityZoneInfo> iterator = allResults.iterator(); - String id1 = iterator.next().getZone(); - Set<AvailabilityZoneInfo> oneResult = client.describeAvailabilityZonesInRegion(region, - availabilityZones(id1)); - assertNotNull(oneResult); - assertEquals(oneResult.size(), 1); - iterator = allResults.iterator(); - assertEquals(iterator.next().getZone(), id1); - } - } - - public void testDescribeRegions() { - SortedMap<String, URI> allResults = Maps.newTreeMap(); - allResults.putAll(client.describeRegions()); - assertNotNull(allResults); - assert !allResults.isEmpty() : allResults.size(); - Iterator<Entry<String, URI>> iterator = allResults.entrySet().iterator(); - String r1 = iterator.next().getKey(); - SortedMap<String, URI> oneResult = Maps.newTreeMap(); - oneResult.putAll(client.describeRegions(regions(r1))); - assertNotNull(oneResult); - assertEquals(oneResult.size(), 1); - iterator = oneResult.entrySet().iterator(); - assertEquals(iterator.next().getKey(), r1); - } - -}
http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/AvailabilityZoneAndRegionApiTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/AvailabilityZoneAndRegionApiTest.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/AvailabilityZoneAndRegionApiTest.java deleted file mode 100644 index ae22fe8..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/AvailabilityZoneAndRegionApiTest.java +++ /dev/null @@ -1,116 +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.ec2.features; - -import static org.jclouds.ec2.options.DescribeAvailabilityZonesOptions.Builder.availabilityZones; -import static org.jclouds.ec2.options.DescribeRegionsOptions.Builder.regions; -import static org.jclouds.reflect.Reflection2.method; - -import java.io.IOException; - -import org.jclouds.Fallbacks.EmptySetOnNotFoundOr404; -import org.jclouds.aws.domain.Region; -import org.jclouds.ec2.options.DescribeAvailabilityZonesOptions; -import org.jclouds.ec2.options.DescribeRegionsOptions; -import org.jclouds.ec2.xml.DescribeAvailabilityZonesResponseHandler; -import org.jclouds.ec2.xml.DescribeRegionsResponseHandler; -import org.jclouds.http.functions.ParseSax; -import org.jclouds.rest.internal.GeneratedHttpRequest; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableList; -import com.google.common.reflect.Invokable; -/** - * Tests behavior of {@code AvailabilityZoneAndRegionApi} - * - * @author Adrian Cole - */ -// NOTE:without testName, this will not call @Before* and fail w/NPE during surefire -@Test(groups = "unit", testName = "AvailabilityZoneAndRegionApiTest") -public class AvailabilityZoneAndRegionApiTest extends - BaseEC2ApiTest<AvailabilityZoneAndRegionApi> { - - public void testDescribeAvailabilityZones() throws SecurityException, NoSuchMethodException, IOException { - Invokable<?, ?> method = method(AvailabilityZoneAndRegionApi.class, "describeAvailabilityZonesInRegion", - String.class, DescribeAvailabilityZonesOptions[].class); - GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(Region.US_WEST_1)); - - assertRequestLineEquals(request, "POST https://ec2.us-west-1.amazonaws.com/ HTTP/1.1"); - assertNonPayloadHeadersEqual(request, "Host: ec2.us-west-1.amazonaws.com\n"); - assertPayloadEquals(request, "Action=DescribeAvailabilityZones", - "application/x-www-form-urlencoded", false); - - assertResponseParserClassEquals(method, request, ParseSax.class); - assertSaxResponseParserClassEquals(method, DescribeAvailabilityZonesResponseHandler.class); - assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class); - - checkFilters(request); - } - - public void testDescribeAvailabilityZonesOptions() throws SecurityException, NoSuchMethodException, IOException { - Invokable<?, ?> method = method(AvailabilityZoneAndRegionApi.class, "describeAvailabilityZonesInRegion", - String.class, DescribeAvailabilityZonesOptions[].class); - GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of("us-east-1", availabilityZones("us-east-1a", "us-east-1b"))); - - assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1"); - assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n"); - assertPayloadEquals(request, - "Action=DescribeAvailabilityZones&ZoneName.1=us-east-1a&ZoneName.2=us-east-1b", - "application/x-www-form-urlencoded", false); - - assertResponseParserClassEquals(method, request, ParseSax.class); - assertSaxResponseParserClassEquals(method, DescribeAvailabilityZonesResponseHandler.class); - assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class); - - checkFilters(request); - } - - public void testDescribeRegions() throws SecurityException, NoSuchMethodException, IOException { - Invokable<?, ?> method = method(AvailabilityZoneAndRegionApi.class, "describeRegions", - DescribeRegionsOptions[].class); - GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.of()); - - assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1"); - assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n"); - assertPayloadEquals(request, "Action=DescribeRegions", "application/x-www-form-urlencoded", - false); - - assertResponseParserClassEquals(method, request, ParseSax.class); - assertSaxResponseParserClassEquals(method, DescribeRegionsResponseHandler.class); - assertFallbackClassEquals(method, null); - - checkFilters(request); - } - - public void testDescribeRegionsOptions() throws SecurityException, NoSuchMethodException, IOException { - Invokable<?, ?> method = method(AvailabilityZoneAndRegionApi.class, "describeRegions", - DescribeRegionsOptions[].class); - GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(regions(Region.US_EAST_1, Region.US_WEST_1))); - - assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1"); - assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n"); - assertPayloadEquals(request, - "Action=DescribeRegions&RegionName.1=us-east-1&RegionName.2=us-west-1", - "application/x-www-form-urlencoded", false); - - assertResponseParserClassEquals(method, request, ParseSax.class); - assertSaxResponseParserClassEquals(method, DescribeRegionsResponseHandler.class); - assertFallbackClassEquals(method, null); - - checkFilters(request); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/BaseEC2ApiTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/BaseEC2ApiTest.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/BaseEC2ApiTest.java deleted file mode 100644 index cff4512..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/BaseEC2ApiTest.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.ec2.features; - -import static com.google.common.collect.Maps.transformValues; -import static org.testng.Assert.assertEquals; - -import java.io.IOException; -import java.net.URI; -import java.util.Map; -import java.util.Set; - -import javax.inject.Singleton; - -import org.jclouds.apis.ApiMetadata; -import org.jclouds.aws.domain.Region; -import org.jclouds.aws.filters.FormSigner; -import org.jclouds.compute.domain.Image; -import org.jclouds.date.DateService; -import org.jclouds.ec2.EC2ApiMetadata; -import org.jclouds.ec2.EC2Api; -import org.jclouds.ec2.compute.domain.RegionAndName; -import org.jclouds.ec2.config.BaseEC2HttpApiModule; -import org.jclouds.http.HttpRequest; -import org.jclouds.location.config.LocationModule; -import org.jclouds.location.suppliers.RegionIdToURISupplier; -import org.jclouds.location.suppliers.RegionIdToZoneIdsSupplier; -import org.jclouds.rest.ConfiguresHttpApi; -import org.jclouds.rest.internal.BaseAsyncApiTest; -import org.jclouds.util.Suppliers2; -import org.testng.annotations.BeforeTest; -import org.testng.annotations.Test; - -import com.google.common.base.Supplier; -import com.google.common.cache.CacheBuilder; -import com.google.common.cache.CacheLoader; -import com.google.common.cache.LoadingCache; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; -import com.google.inject.Module; -import com.google.inject.Provides; - -/** - * @author Adrian Cole - */ -@Test(groups = "unit") -public abstract class BaseEC2ApiTest<T> extends BaseAsyncApiTest<T> { - @ConfiguresHttpApi - protected static class StubEC2HttpApiModule extends BaseEC2HttpApiModule<EC2Api> { - - protected StubEC2HttpApiModule() { - super(EC2Api.class); - } - - @Provides - @Singleton - LoadingCache<RegionAndName, Image> provide() { - return CacheBuilder.newBuilder().build(new CacheLoader<RegionAndName, Image>() { - - @Override - public Image load(RegionAndName key) throws Exception { - return null; - } - - }); - } - - @Override - protected String provideTimeStamp(DateService dateService) { - return "2009-11-08T15:54:08.897Z"; - } - - static class Zones implements javax.inject.Provider<Map<String, String>> { - @Override - public Map<String, String> get() { - return ImmutableMap.<String, String> of("us-east-1a", "us-east-1"); - } - } - - @Override - protected void installLocations() { - install(new LocationModule()); - bind(RegionIdToURISupplier.class).toInstance(new RegionIdToURISupplier() { - - @Override - public Map<String, Supplier<URI>> get() { - return transformValues(ImmutableMap.<String, URI> of(Region.EU_WEST_1, URI - .create("https://ec2.eu-west-1.amazonaws.com"), Region.US_EAST_1, URI - .create("https://ec2.us-east-1.amazonaws.com"), Region.US_WEST_1, URI - .create("https://ec2.us-west-1.amazonaws.com")), Suppliers2.<URI> ofInstanceFunction()); - } - - }); - bind(RegionIdToZoneIdsSupplier.class).toInstance(new RegionIdToZoneIdsSupplier() { - - @Override - public Map<String, Supplier<Set<String>>> get() { - return transformValues(ImmutableMap.<String, Set<String>> of("us-east-1", ImmutableSet.of( - "us-east-1a", "us-east-1b", "us-east-1c", "us-east-1b")), Suppliers2 - .<Set<String>> ofInstanceFunction()); - } - - }); - } - } - - protected FormSigner filter; - - @Override - protected void checkFilters(HttpRequest request) { - assertEquals(request.getFilters().size(), 1); - assertEquals(request.getFilters().get(0).getClass(), FormSigner.class); - } - - @Override - @BeforeTest - protected void setupFactory() throws IOException { - super.setupFactory(); - this.filter = injector.getInstance(FormSigner.class); - } - - @Override - protected Module createModule() { - return new StubEC2HttpApiModule(); - } - - @Override - protected ApiMetadata createApiMetadata() { - return new EC2ApiMetadata(); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/EC2ElasticBlockStoreApiExpectTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/EC2ElasticBlockStoreApiExpectTest.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/EC2ElasticBlockStoreApiExpectTest.java deleted file mode 100644 index 9fc2338..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/EC2ElasticBlockStoreApiExpectTest.java +++ /dev/null @@ -1,172 +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.ec2.features; - -import static com.google.common.collect.Iterables.getOnlyElement; -import static org.testng.Assert.assertEquals; - -import org.jclouds.ec2.EC2Api; -import org.jclouds.ec2.domain.Snapshot; -import org.jclouds.ec2.domain.Volume; -import org.jclouds.ec2.internal.BaseEC2ApiExpectTest; -import org.jclouds.http.HttpRequest; -import org.jclouds.http.HttpResponse; -import org.jclouds.rest.ResourceNotFoundException; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableMap.Builder; -import com.google.common.collect.ImmutableMultimap; -import com.google.common.collect.ImmutableSet; - -/** - * @author Adrian Cole - */ -@Test(groups = "unit", testName = "EC2ElasticBlockStoreApiExpectTest") -public class EC2ElasticBlockStoreApiExpectTest extends BaseEC2ApiExpectTest<EC2Api> { - Volume creating = Volume.builder() - .id("vol-2a21e543") - .status(Volume.Status.CREATING) - .availabilityZone("us-east-1a") - .region("us-east-1") - .id("vol-2a21e543") - .size(1) - .createTime(dateService.iso8601DateParse("2009-12-28T05:42:53.000Z")) - .build(); - - public void testCreateVolumeInAvailabilityZone() { - Builder<HttpRequest, HttpResponse> builder = ImmutableMap.<HttpRequest, HttpResponse>builder(); - builder.put(describeRegionsRequest, describeRegionsResponse); - builder.putAll(describeAvailabilityZonesRequestResponse); - builder.put( - HttpRequest.builder() - .method("POST") - .endpoint("https://ec2.us-east-1.amazonaws.com/") - .addHeader("Host", "ec2.us-east-1.amazonaws.com") - .payload(payloadFromStringWithContentType("Action=CreateVolume&AvailabilityZone=us-east-1a&Signature=NCu8HU8u0A385rTgj%2BN5lq606jkc1eu88jof9yAxb6s%3D&SignatureMethod=HmacSHA256&SignatureVersion=2&Size=4&Timestamp=2012-04-16T15%3A54%3A08.897Z&Version=2010-08-31&AWSAccessKeyId=identity", "application/x-www-form-urlencoded")).build(), - HttpResponse.builder() - .statusCode(200) - .payload(payloadFromResource("/created_volume.xml")).build()); - - ElasticBlockStoreApi client = requestsSendResponses(builder.build()).getElasticBlockStoreApi().get(); - - assertEquals(client.createVolumeInAvailabilityZone("us-east-1a", 4), creating); - } - - public void testCreateVolumeFromSnapshotInAvailabilityZoneEuSetsCorrectEndpoint() { - String region = "eu-west-1"; - - Builder<HttpRequest, HttpResponse> builder = ImmutableMap.<HttpRequest, HttpResponse>builder(); - builder.put(describeRegionsRequest, describeRegionsResponse); - builder.putAll(describeAvailabilityZonesRequestResponse); - builder.put( - formSigner.filter(HttpRequest.builder() - .method("POST") - .endpoint("https://ec2." + region + ".amazonaws.com/") - .addHeader("Host", "ec2." + region + ".amazonaws.com") - .addFormParam("Action", "CreateVolume") - .addFormParam("AvailabilityZone", "eu-west-1a") - .addFormParam("Size", "1") - .addFormParam("SnapshotId", "snap-8b7ffbdd").build()), - HttpResponse.builder() - .statusCode(200) - .payload(payloadFromResource("/created_volume.xml")).build()); - - ElasticBlockStoreApi client = requestsSendResponses(builder.build()).getElasticBlockStoreApi().get(); - - assertEquals(client.createVolumeFromSnapshotInAvailabilityZone(region + "a", 1, "snap-8b7ffbdd"), creating.toBuilder().region(region).build()); - } - - HttpRequest filterVolumes = HttpRequest.builder().method("POST") - .endpoint("https://ec2.us-east-1.amazonaws.com/") - .addHeader("Host", "ec2.us-east-1.amazonaws.com") - .addFormParam("Action", "DescribeVolumes") - .addFormParam("Filter.1.Name", "snapshot-id") - .addFormParam("Filter.1.Value.1", "snap-536d1b3a") - .addFormParam("Signature", "7g2ySW39nIVfxtIbuVttUBom7sssmQknxX/9SThkm2Y%3D") - .addFormParam("SignatureMethod", "HmacSHA256") - .addFormParam("SignatureVersion", "2") - .addFormParam("Timestamp", "2012-04-16T15%3A54%3A08.897Z") - .addFormParam("Version", "2010-08-31") - .addFormParam("AWSAccessKeyId", "identity").build(); - - public void testFilterVolumesWhenResponseIs2xx() { - HttpResponse filterResponse = HttpResponse.builder().statusCode(200) - .payload(payloadFromResourceWithContentType("/describe_volumes_single.xml", "text/xml")).build(); - - EC2Api apiWhenExist = requestsSendResponses(describeRegionsRequest, describeRegionsResponse, filterVolumes, filterResponse); - - Volume volume = getOnlyElement(apiWhenExist.getElasticBlockStoreApi().get().describeVolumesInRegionWithFilter("us-east-1", - ImmutableMultimap.<String, String>builder() - .put("snapshot-id", "snap-536d1b3a") - .build())); - - assertEquals(volume.getId(), "vol-4282672b"); - } - - @Test(expectedExceptions = ResourceNotFoundException.class) - public void testFilterVolumesWhenResponseIs404() { - HttpResponse filterResponse = HttpResponse.builder().statusCode(404).build(); - - EC2Api apiWhenNotExist = requestsSendResponses(describeRegionsRequest, describeRegionsResponse, filterVolumes, filterResponse); - - assertEquals(apiWhenNotExist.getElasticBlockStoreApi().get().describeVolumesInRegionWithFilter("us-east-1", - ImmutableMultimap.<String, String>builder() - .put("snapshot-id", "snap-536d1b3a") - .build()), - ImmutableSet.of()); - } - - HttpRequest filterSnapshots = HttpRequest.builder().method("POST") - .endpoint("https://ec2.us-east-1.amazonaws.com/") - .addHeader("Host", "ec2.us-east-1.amazonaws.com") - .addFormParam("Action", "DescribeSnapshots") - .addFormParam("Filter.1.Name", "volume-id") - .addFormParam("Filter.1.Value.1", "4d826724") - .addFormParam("Signature", "vT7R4YmfQJPNLSojXEMY1qcErMh0OzrOTYxbGYSZ4Uw%3D") - .addFormParam("SignatureMethod", "HmacSHA256") - .addFormParam("SignatureVersion", "2") - .addFormParam("Timestamp", "2012-04-16T15%3A54%3A08.897Z") - .addFormParam("Version", "2010-08-31") - .addFormParam("AWSAccessKeyId", "identity").build(); - - public void testFilterSnapshotsWhenResponseIs2xx() { - HttpResponse filterResponse = HttpResponse.builder().statusCode(200) - .payload(payloadFromResourceWithContentType("/describe_snapshots.xml", "text/xml")).build(); - - EC2Api apiWhenExist = requestsSendResponses(describeRegionsRequest, describeRegionsResponse, filterSnapshots, filterResponse); - - Snapshot snapshot = getOnlyElement(apiWhenExist.getElasticBlockStoreApi().get().describeSnapshotsInRegionWithFilter("us-east-1", - ImmutableMultimap.<String, String>builder() - .put("volume-id", "4d826724") - .build())); - - assertEquals(snapshot.getId(), "snap-78a54011"); - } - - public void testFilterSnapshotsWhenResponseIs404() { - HttpResponse filterResponse = HttpResponse.builder().statusCode(404).build(); - - EC2Api apiWhenNotExist = requestsSendResponses(describeRegionsRequest, describeRegionsResponse, filterSnapshots, filterResponse); - - assertEquals(apiWhenNotExist.getElasticBlockStoreApi().get().describeSnapshotsInRegionWithFilter("us-east-1", - ImmutableMultimap.<String, String>builder() - .put("volume-id", "4d826724") - .build()), - ImmutableSet.of()); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/ElasticBlockStoreApiLiveTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/ElasticBlockStoreApiLiveTest.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/ElasticBlockStoreApiLiveTest.java deleted file mode 100644 index bc080a7..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/ElasticBlockStoreApiLiveTest.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.ec2.features; -import static com.google.common.base.Preconditions.checkNotNull; -import static java.util.concurrent.TimeUnit.SECONDS; -import static org.jclouds.ec2.options.DescribeSnapshotsOptions.Builder.snapshotIds; -import static org.jclouds.util.Predicates2.retry; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertNotNull; - -import java.util.Set; -import java.util.SortedSet; - -import org.jclouds.aws.AWSResponseException; -import org.jclouds.compute.internal.BaseComputeServiceContextLiveTest; -import org.jclouds.ec2.EC2Api; -import org.jclouds.ec2.domain.AvailabilityZoneInfo; -import org.jclouds.ec2.domain.Snapshot; -import org.jclouds.ec2.domain.Volume; -import org.jclouds.ec2.predicates.SnapshotCompleted; -import org.jclouds.ec2.predicates.VolumeAvailable; -import org.testng.annotations.AfterClass; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; - -import com.google.common.base.Predicate; -import com.google.common.base.Strings; -import com.google.common.collect.ImmutableMultimap; -import com.google.common.collect.Iterables; -import com.google.common.collect.Sets; - -/** - * Tests behavior of {@code ElasticBlockStoreApi} - * - * @author Adrian Cole - */ -@Test(groups = "live", singleThreaded = true, testName = "ElasticBlockStoreApiLiveTest") -public class ElasticBlockStoreApiLiveTest extends BaseComputeServiceContextLiveTest { - public ElasticBlockStoreApiLiveTest() { - provider = "ec2"; - } - - private EC2Api ec2Api; - private ElasticBlockStoreApi client; - - private String defaultRegion; - private String defaultZone; - - private String volumeId; - private Snapshot snapshot; - - @Override - @BeforeClass(groups = { "integration", "live" }) - public void setupContext() { - super.setupContext(); - ec2Api = view.unwrapApi(EC2Api.class); - client = ec2Api.getElasticBlockStoreApi().get(); - AvailabilityZoneInfo info = Iterables.get(ec2Api.getAvailabilityZoneAndRegionApi().get() - .describeAvailabilityZonesInRegion(defaultRegion), 0); - defaultRegion = checkNotNull(Strings.emptyToNull(info.getRegion()), "region of " + info); - defaultZone = checkNotNull(Strings.emptyToNull(info.getZone()), "zone of " + info); - } - - @Test - void testDescribeVolumes() { - String region = defaultRegion; - SortedSet<Volume> allResults = Sets.newTreeSet(client.describeVolumesInRegion(region)); - assertNotNull(allResults); - assertFalse(allResults.isEmpty()); - Volume volume = allResults.last(); - SortedSet<Volume> result = Sets.newTreeSet(client.describeVolumesInRegion(region, volume.getId())); - assertNotNull(result); - Volume compare = result.last(); - assertEquals(compare, volume); - } - - @Test - void testDescribeVolumesWithFilter() { - String region = defaultRegion; - SortedSet<Volume> allResults = Sets.newTreeSet(client.describeVolumesInRegion(region)); - assertNotNull(allResults); - assertFalse(allResults.isEmpty()); - Volume volume = allResults.last(); - SortedSet<Volume> result = Sets.newTreeSet(client.describeVolumesInRegionWithFilter(region, - ImmutableMultimap.<String, String>builder() - .put("volume-id", volume.getId()).build())); - assertNotNull(result); - Volume compare = result.last(); - assertEquals(compare, volume); - } - - @Test(expectedExceptions = AWSResponseException.class) - void testDescribeVolumesWithInvalidFilter() { - String region = defaultRegion; - SortedSet<Volume> allResults = Sets.newTreeSet(client.describeVolumesInRegion(region)); - assertNotNull(allResults); - assertFalse(allResults.isEmpty()); - Volume volume = allResults.last(); - SortedSet<Volume> result = Sets.newTreeSet(client.describeVolumesInRegionWithFilter(region, - ImmutableMultimap.<String, String>builder() - .put("invalid-filter", volume.getId()).build())); - } - - @Test - void testCreateVolumeInAvailabilityZone() { - Volume expected = client.createVolumeInAvailabilityZone(defaultZone, 1); - assertNotNull(expected); - assertEquals(expected.getAvailabilityZone(), defaultZone); - - this.volumeId = expected.getId(); - - Set<Volume> result = Sets.newLinkedHashSet(client.describeVolumesInRegion(defaultRegion, expected.getId())); - assertNotNull(result); - assertEquals(result.size(), 1); - Volume volume = result.iterator().next(); - assertEquals(volume.getId(), expected.getId()); - } - - @Test(dependsOnMethods = "testCreateVolumeInAvailabilityZone") - void testCreateSnapshotInRegion() { - Snapshot snapshot = client.createSnapshotInRegion(defaultRegion, volumeId); - Predicate<Snapshot> snapshotted = retry(new SnapshotCompleted(client), 600, 10, SECONDS); - assert snapshotted.apply(snapshot); - - Snapshot result = Iterables.getOnlyElement(client.describeSnapshotsInRegion(snapshot.getRegion(), - snapshotIds(snapshot.getId()))); - - assertEquals(result.getProgress(), 100); - this.snapshot = result; - } - - @Test(dependsOnMethods = "testCreateSnapshotInRegion") - void testCreateVolumeFromSnapshotInAvailabilityZone() { - Volume volume = client.createVolumeFromSnapshotInAvailabilityZone(defaultZone, snapshot.getId()); - assertNotNull(volume); - - Predicate<Volume> availabile = retry(new VolumeAvailable(client), 600, 10, SECONDS); - assert availabile.apply(volume); - - Volume result = Iterables.getOnlyElement(client.describeVolumesInRegion(snapshot.getRegion(), volume.getId())); - assertEquals(volume.getId(), result.getId()); - assertEquals(volume.getSnapshotId(), snapshot.getId()); - assertEquals(volume.getAvailabilityZone(), defaultZone); - assertEquals(result.getStatus(), Volume.Status.AVAILABLE); - - client.deleteVolumeInRegion(snapshot.getRegion(), volume.getId()); - } - - @Test(dependsOnMethods = "testCreateSnapshotInRegion") - void testCreateVolumeFromSnapshotInAvailabilityZoneWithSize() { - Volume volume = client.createVolumeFromSnapshotInAvailabilityZone(defaultZone, 2, snapshot.getId()); - assertNotNull(volume); - - Predicate<Volume> availabile = retry(new VolumeAvailable(client), 600, 10, SECONDS); - assert availabile.apply(volume); - - Volume result = Iterables.getOnlyElement(client.describeVolumesInRegion(snapshot.getRegion(), volume.getId())); - assertEquals(volume.getId(), result.getId()); - assertEquals(volume.getSnapshotId(), snapshot.getId()); - assertEquals(volume.getAvailabilityZone(), defaultZone); - assertEquals(volume.getSize(), 2); - assertEquals(result.getStatus(), Volume.Status.AVAILABLE); - - client.deleteVolumeInRegion(snapshot.getRegion(), volume.getId()); - } - - @Test - void testAttachVolumeInRegion() { - // TODO: need an instance - } - - @Test - void testDetachVolumeInRegion() { - // TODO: need an instance - } - - @Test - void testDescribeSnapshots() { - String region = defaultRegion; - SortedSet<Snapshot> allResults = Sets.newTreeSet(client.describeSnapshotsInRegion(region)); - assertNotNull(allResults); - if (!allResults.isEmpty()) { - Snapshot snapshot = allResults.last(); - Snapshot result = Iterables.getOnlyElement(client.describeSnapshotsInRegion(region, - snapshotIds(snapshot.getId()))); - assertNotNull(result); - assertEquals(result, snapshot); - } - } - - @Test - void testDescribeSnapshotsWithFilter() { - String region = defaultRegion; - SortedSet<Snapshot> allResults = Sets.newTreeSet(client.describeSnapshotsInRegion(region)); - assertNotNull(allResults); - if (!allResults.isEmpty()) { - Snapshot snapshot = allResults.last(); - Snapshot result = Iterables.getOnlyElement(client.describeSnapshotsInRegionWithFilter(region, - ImmutableMultimap.<String, String>builder() - .put("snapshot-id", snapshot.getId()).build())); - assertNotNull(result); - assertEquals(result, snapshot); - } - } - - @Test(expectedExceptions = AWSResponseException.class) - void testDescribeSnapshotsWithFilterInvalid() { - String region = defaultRegion; - SortedSet<Snapshot> allResults = Sets.newTreeSet(client.describeSnapshotsInRegion(region)); - assertNotNull(allResults); - if (!allResults.isEmpty()) { - Snapshot snapshot = allResults.last(); - Snapshot result = Iterables.getOnlyElement(client.describeSnapshotsInRegionWithFilter(region, - ImmutableMultimap.<String, String>builder() - .put("invalid-filter", snapshot.getId()).build())); - } - } - - @Test(enabled = false) - public void testAddCreateVolumePermissionsToSnapshot() { - // TODO client.addCreateVolumePermissionsToSnapshotInRegion(defaultRegion, - // userIds, - // userGroups, - // snapshotId); - } - - @Test(enabled = false) - public void testRemoveCreateVolumePermissionsFromSnapshot() { - // TODO - // client.removeCreateVolumePermissionsFromSnapshotInRegion(defaultRegion, - // userIds, - // userGroups, - // snapshotId); - } - - @Test(enabled = false) - public void testResetCreateVolumePermissionsOnSnapshot() { - // TODO - // client.resetCreateVolumePermissionsOnSnapshotInRegion(defaultRegion, - // snapshotId); - } - - @Test(dependsOnMethods = "testCreateSnapshotInRegion") - public void testGetCreateVolumePermissionForSnapshot() { - client.getCreateVolumePermissionForSnapshotInRegion(snapshot.getRegion(), snapshot.getId()); - } - - @Test(dependsOnMethods = "testCreateSnapshotInRegion") - void testDeleteVolumeInRegion() { - client.deleteVolumeInRegion(defaultRegion, volumeId); - Set<Volume> result = Sets.newLinkedHashSet(client.describeVolumesInRegion(defaultRegion, volumeId)); - assertEquals(result.size(), 1); - Volume volume = result.iterator().next(); - assertEquals(volume.getStatus(), Volume.Status.DELETING); - } - - @Test(dependsOnMethods = "testGetCreateVolumePermissionForSnapshot") - void testDeleteSnapshotInRegion() { - client.deleteSnapshotInRegion(snapshot.getRegion(), snapshot.getId()); - assert client.describeSnapshotsInRegion(snapshot.getRegion(), snapshotIds(snapshot.getId())).size() == 0; - } - - @AfterClass(groups = { "integration", "live" }) - @Override - protected void tearDownContext() { - try { - client.deleteSnapshotInRegion(snapshot.getRegion(), snapshot.getId()); - client.deleteVolumeInRegion(defaultRegion, volumeId); - } catch (Exception e) { - // we don't really care about any exception here, so just delete away. - } - - super.tearDownContext(); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/ElasticBlockStoreApiTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/ElasticBlockStoreApiTest.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/ElasticBlockStoreApiTest.java deleted file mode 100644 index fefd2a7..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/ElasticBlockStoreApiTest.java +++ /dev/null @@ -1,401 +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.ec2.features; - -import static org.jclouds.ec2.options.DescribeSnapshotsOptions.Builder.ownedBy; -import static org.jclouds.ec2.options.DetachVolumeOptions.Builder.fromInstance; -import static org.jclouds.reflect.Reflection2.method; - -import java.io.IOException; - -import org.jclouds.Fallbacks.EmptySetOnNotFoundOr404; -import org.jclouds.ec2.EC2Fallbacks.VoidOnVolumeAvailable; -import org.jclouds.ec2.options.CreateSnapshotOptions; -import org.jclouds.ec2.options.DescribeSnapshotsOptions; -import org.jclouds.ec2.options.DetachVolumeOptions; -import org.jclouds.ec2.xml.AttachmentHandler; -import org.jclouds.ec2.xml.DescribeSnapshotsResponseHandler; -import org.jclouds.ec2.xml.DescribeVolumesResponseHandler; -import org.jclouds.ec2.xml.PermissionHandler; -import org.jclouds.ec2.xml.SnapshotHandler; -import org.jclouds.http.HttpRequest; -import org.jclouds.http.functions.ParseSax; -import org.jclouds.http.functions.ReleasePayloadAndReturn; -import org.jclouds.rest.internal.GeneratedHttpRequest; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; -import com.google.common.reflect.Invokable; -/** - * Tests behavior of {@code ElasticBlockStoreApi} - * - * @author Adrian Cole - */ -// NOTE:without testName, this will not call @Before* and fail w/NPE during surefire -@Test(groups = "unit", testName = "ElasticBlockStoreApiTest") -public class ElasticBlockStoreApiTest extends BaseEC2ApiTest<ElasticBlockStoreApi> { - - public void testDeleteVolume() throws SecurityException, NoSuchMethodException, IOException { - Invokable<?, ?> method = method(ElasticBlockStoreApi.class, "deleteVolumeInRegion", String.class, String.class); - GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "id")); - - assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1"); - assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n"); - assertPayloadEquals(request, "Action=DeleteVolume&VolumeId=id", - "application/x-www-form-urlencoded", false); - - assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class); - assertSaxResponseParserClassEquals(method, null); - assertFallbackClassEquals(method, null); - - checkFilters(request); - } - - HttpRequest describeVolumes = HttpRequest.builder().method("POST") - .endpoint("https://ec2.us-east-1.amazonaws.com/") - .addHeader("Host", "ec2.us-east-1.amazonaws.com") - .addFormParam("Action", "DescribeVolumes") - .addFormParam("Signature", "nNxWg5dwYZEQu1QCzCtNp7iDmPR8wXXdKhWmLEKFLGI%3D") - .addFormParam("SignatureMethod", "HmacSHA256") - .addFormParam("SignatureVersion", "2") - .addFormParam("Timestamp", "2009-11-08T15%3A54%3A08.897Z") - .addFormParam("Version", "2010-08-31") - .addFormParam("AWSAccessKeyId", "identity").build(); - - public void testDescribeVolumes() throws SecurityException, NoSuchMethodException, IOException { - Invokable<?, ?> method = method(ElasticBlockStoreApi.class, "describeVolumesInRegion", String.class, - String[].class); - GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList((String) null)); - - request = (GeneratedHttpRequest) request.getFilters().get(0).filter(request); - - assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1"); - assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n"); - assertPayloadEquals(request, describeVolumes.getPayload().getRawContent().toString(), - "application/x-www-form-urlencoded", false); - - assertResponseParserClassEquals(method, request, ParseSax.class); - assertSaxResponseParserClassEquals(method, DescribeVolumesResponseHandler.class); - assertFallbackClassEquals(method, null); - - checkFilters(request); - } - - public void testDescribeVolumesArgs() throws SecurityException, NoSuchMethodException, IOException { - Invokable<?, ?> method = method(ElasticBlockStoreApi.class, "describeVolumesInRegion", String.class, - String[].class); - GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "1", "2")); - - assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1"); - assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n"); - assertPayloadEquals(request, "Action=DescribeVolumes&VolumeId.1=1&VolumeId.2=2", - "application/x-www-form-urlencoded", false); - - assertResponseParserClassEquals(method, request, ParseSax.class); - assertSaxResponseParserClassEquals(method, DescribeVolumesResponseHandler.class); - assertFallbackClassEquals(method, null); - - checkFilters(request); - } - - HttpRequest attachVolume = HttpRequest.builder().method("POST") - .endpoint("https://ec2.us-east-1.amazonaws.com/") - .addHeader("Host", "ec2.us-east-1.amazonaws.com") - .addFormParam("Action", "AttachVolume") - .addFormParam("Device", "/device") - .addFormParam("InstanceId", "instanceId") - .addFormParam("Signature", "0%2BUY5oCQzoJapEHq4Dl2R/0nAA8uXEHqvHbnnNI5NcA%3D") - .addFormParam("SignatureMethod", "HmacSHA256") - .addFormParam("SignatureVersion", "2") - .addFormParam("Timestamp", "2009-11-08T15%3A54%3A08.897Z") - .addFormParam("Version", "2010-08-31") - .addFormParam("VolumeId", "id") - .addFormParam("AWSAccessKeyId", "identity").build(); - - public void testAttachVolume() throws SecurityException, NoSuchMethodException, IOException { - Invokable<?, ?> method = method(ElasticBlockStoreApi.class, "attachVolumeInRegion", String.class, String.class, - String.class, String.class); - GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "id", "instanceId", "/device")); - - request = (GeneratedHttpRequest) request.getFilters().get(0).filter(request); - - assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1"); - assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n"); - assertPayloadEquals(request, attachVolume.getPayload().getRawContent().toString(), - "application/x-www-form-urlencoded", false); - - assertResponseParserClassEquals(method, request, ParseSax.class); - assertSaxResponseParserClassEquals(method, AttachmentHandler.class); - assertFallbackClassEquals(method, null); - - checkFilters(request); - } - - HttpRequest detachVolume = HttpRequest.builder().method("POST") - .endpoint("https://ec2.us-east-1.amazonaws.com/") - .addHeader("Host", "ec2.us-east-1.amazonaws.com") - .addFormParam("Action", "DetachVolume") - .addFormParam("Force", "false") - .addFormParam("Signature", "tfNB1g2WVqb3EwvBJlk4duU1H1fDOa1SBstsm1elpbg%3D") - .addFormParam("SignatureMethod", "HmacSHA256") - .addFormParam("SignatureVersion", "2") - .addFormParam("Timestamp", "2009-11-08T15%3A54%3A08.897Z") - .addFormParam("Version", "2010-08-31") - .addFormParam("VolumeId", "id") - .addFormParam("AWSAccessKeyId", "identity").build(); - - public void testDetachVolume() throws SecurityException, NoSuchMethodException, IOException { - Invokable<?, ?> method = method(ElasticBlockStoreApi.class, "detachVolumeInRegion", String.class, String.class, - boolean.class, DetachVolumeOptions[].class); - GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "id", false)); - - request = (GeneratedHttpRequest) request.getFilters().get(0).filter(request); - - assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1"); - assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n"); - assertPayloadEquals(request, detachVolume.getPayload().getRawContent().toString(), - "application/x-www-form-urlencoded", false); - - assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class); - assertSaxResponseParserClassEquals(method, null); - assertFallbackClassEquals(method, VoidOnVolumeAvailable.class); - - checkFilters(request); - } - - HttpRequest detachVolumeOptions = HttpRequest.builder().method("POST") - .endpoint("https://ec2.us-east-1.amazonaws.com/") - .addHeader("Host", "ec2.us-east-1.amazonaws.com") - .addFormParam("Action", "DetachVolume") - .addFormParam("Device", "/device") - .addFormParam("Force", "true") - .addFormParam("InstanceId", "instanceId") - .addFormParam("Signature", "VFhgwdkKBKXr/dEn2gvk6Vqq3JIunw4zZgM2Tt/ouME%3D") - .addFormParam("SignatureMethod", "HmacSHA256") - .addFormParam("SignatureVersion", "2") - .addFormParam("Timestamp", "2009-11-08T15%3A54%3A08.897Z") - .addFormParam("Version", "2010-08-31") - .addFormParam("VolumeId", "id") - .addFormParam("AWSAccessKeyId", "identity").build(); - - public void testDetachVolumeOptions() throws SecurityException, NoSuchMethodException, IOException { - Invokable<?, ?> method = method(ElasticBlockStoreApi.class, "detachVolumeInRegion", String.class, String.class, - boolean.class, DetachVolumeOptions[].class); - GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "id", true, fromInstance("instanceId").fromDevice( - "/device"))); - - request = (GeneratedHttpRequest) request.getFilters().get(0).filter(request); - - assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1"); - assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n"); - assertPayloadEquals(request, detachVolumeOptions.getPayload().getRawContent().toString(), - "application/x-www-form-urlencoded", false); - - assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class); - assertSaxResponseParserClassEquals(method, null); - assertFallbackClassEquals(method, VoidOnVolumeAvailable.class); - - checkFilters(request); - } - - public void testCreateSnapshot() throws SecurityException, NoSuchMethodException, IOException { - Invokable<?, ?> method = method(ElasticBlockStoreApi.class, "createSnapshotInRegion", String.class, - String.class, CreateSnapshotOptions[].class); - GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "volumeId")); - - assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1"); - assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n"); - assertPayloadEquals(request, "Action=CreateSnapshot&VolumeId=volumeId", - "application/x-www-form-urlencoded", false); - - assertResponseParserClassEquals(method, request, ParseSax.class); - assertSaxResponseParserClassEquals(method, SnapshotHandler.class); - assertFallbackClassEquals(method, null); - - checkFilters(request); - } - - public void testCreateSnapshotOptions() throws SecurityException, NoSuchMethodException, IOException { - Invokable<?, ?> method = method(ElasticBlockStoreApi.class, "createSnapshotInRegion", String.class, - String.class, CreateSnapshotOptions[].class); - GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "volumeId", CreateSnapshotOptions.Builder - .withDescription("description"))); - - assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1"); - assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n"); - assertPayloadEquals(request, - "Action=CreateSnapshot&VolumeId=volumeId&Description=description", - "application/x-www-form-urlencoded", false); - - assertResponseParserClassEquals(method, request, ParseSax.class); - assertSaxResponseParserClassEquals(method, SnapshotHandler.class); - assertFallbackClassEquals(method, null); - - checkFilters(request); - } - - public void testDescribeSnapshots() throws SecurityException, NoSuchMethodException, IOException { - Invokable<?, ?> method = method(ElasticBlockStoreApi.class, "describeSnapshotsInRegion", String.class, - DescribeSnapshotsOptions[].class); - GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList((String) null)); - - assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1"); - assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n"); - assertPayloadEquals(request, "Action=DescribeSnapshots", "application/x-www-form-urlencoded", - false); - - assertResponseParserClassEquals(method, request, ParseSax.class); - assertSaxResponseParserClassEquals(method, DescribeSnapshotsResponseHandler.class); - assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class); - - checkFilters(request); - } - - public void testDescribeSnapshotsArgs() throws SecurityException, NoSuchMethodException, IOException { - Invokable<?, ?> method = method(ElasticBlockStoreApi.class, "describeSnapshotsInRegion", String.class, - DescribeSnapshotsOptions[].class); - GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, ownedBy("o1", "o2").restorableBy("r1", "r2") - .snapshotIds("s1", "s2"))); - - assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1"); - assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n"); - assertPayloadEquals( - request, - "Action=DescribeSnapshots&Owner.1=o1&Owner.2=o2&RestorableBy.1=r1&RestorableBy.2=r2&SnapshotId.1=s1&SnapshotId.2=s2", - "application/x-www-form-urlencoded", false); - - assertResponseParserClassEquals(method, request, ParseSax.class); - assertSaxResponseParserClassEquals(method, DescribeSnapshotsResponseHandler.class); - assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class); - - checkFilters(request); - } - - public void testGetCreateVolumePermissionForSnapshot() throws SecurityException, NoSuchMethodException, IOException { - Invokable<?, ?> method = method(ElasticBlockStoreApi.class, "getCreateVolumePermissionForSnapshotInRegion", - String.class, String.class); - GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "snapshotId")); - - assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1"); - assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n"); - assertPayloadEquals( - request, - "Action=DescribeSnapshotAttribute&Attribute=createVolumePermission&SnapshotId=snapshotId", - "application/x-www-form-urlencoded", false); - - assertResponseParserClassEquals(method, request, ParseSax.class); - assertSaxResponseParserClassEquals(method, PermissionHandler.class); - assertFallbackClassEquals(method, null); - - checkFilters(request); - } - - HttpRequest addCreateVolumePermissionsToSnapshot = HttpRequest.builder().method("POST") - .endpoint("https://ec2.us-east-1.amazonaws.com/") - .addHeader("Host", "ec2.us-east-1.amazonaws.com") - .addFormParam("Action", "ModifySnapshotAttribute") - .addFormParam("Attribute", "createVolumePermission") - .addFormParam("OperationType", "add") - .addFormParam("Signature", "s8m8DqQRXmecWguuRjxfl3Ibd%2B1AjjktGzTlJLUTcPc%3D") - .addFormParam("SignatureMethod", "HmacSHA256") - .addFormParam("SignatureVersion", "2") - .addFormParam("SnapshotId", "snapshotId") - .addFormParam("Timestamp", "2009-11-08T15%3A54%3A08.897Z") - .addFormParam("UserGroup.1", "all") - .addFormParam("UserId.1", "bob") - .addFormParam("UserId.2", "sue") - .addFormParam("Version", "2010-08-31") - .addFormParam("AWSAccessKeyId", "identity").build(); - - public void testAddCreateVolumePermissionsToSnapshot() throws SecurityException, NoSuchMethodException, IOException { - Invokable<?, ?> method = method(ElasticBlockStoreApi.class, "addCreateVolumePermissionsToSnapshotInRegion", - String.class, Iterable.class, Iterable.class, String.class); - GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, ImmutableList.of("bob", "sue"), ImmutableList - .of("all"), "snapshotId")); - - request = (GeneratedHttpRequest) request.getFilters().get(0).filter(request); - - assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1"); - assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n"); - assertPayloadEquals(request, addCreateVolumePermissionsToSnapshot.getPayload().getRawContent().toString(), - "application/x-www-form-urlencoded", false); - - assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class); - assertSaxResponseParserClassEquals(method, null); - assertFallbackClassEquals(method, null); - - checkFilters(request); - } - - HttpRequest removeCreateVolumePermissionsFromSnapshot = HttpRequest.builder().method("POST") - .endpoint("https://ec2.us-east-1.amazonaws.com/") - .addHeader("Host", "ec2.us-east-1.amazonaws.com") - .addFormParam("Action", "ModifySnapshotAttribute") - .addFormParam("Attribute", "createVolumePermission") - .addFormParam("OperationType", "remove") - .addFormParam("Signature", "RzxHUIWV80cyhQDtrMiHDWUosS1g8cn1%2B7ONLJCe1dg%3D") - .addFormParam("SignatureMethod", "HmacSHA256") - .addFormParam("SignatureVersion", "2") - .addFormParam("SnapshotId", "snapshotId") - .addFormParam("Timestamp", "2009-11-08T15%3A54%3A08.897Z") - .addFormParam("UserGroup.1", "all") - .addFormParam("UserId.1", "bob") - .addFormParam("UserId.2", "sue") - .addFormParam("Version", "2010-08-31") - .addFormParam("AWSAccessKeyId", "identity").build(); - - public void testRemoveCreateVolumePermissionsFromSnapshot() throws SecurityException, NoSuchMethodException, - IOException { - Invokable<?, ?> method = method(ElasticBlockStoreApi.class, "removeCreateVolumePermissionsFromSnapshotInRegion", - String.class, Iterable.class, Iterable.class, String.class); - GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, ImmutableList.of("bob", "sue"), ImmutableList - .of("all"), "snapshotId")); - - request = (GeneratedHttpRequest) request.getFilters().get(0).filter(request); - - assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1"); - assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n"); - assertPayloadEquals(request, removeCreateVolumePermissionsFromSnapshot.getPayload().getRawContent().toString(), - "application/x-www-form-urlencoded", false); - - assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class); - assertSaxResponseParserClassEquals(method, null); - assertFallbackClassEquals(method, null); - - checkFilters(request); - } - - public void testResetCreateVolumePermissionsOnSnapshot() throws SecurityException, NoSuchMethodException, - IOException { - Invokable<?, ?> method = method(ElasticBlockStoreApi.class, "resetCreateVolumePermissionsOnSnapshotInRegion", - String.class, String.class); - GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "snapshotId")); - - assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1"); - assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n"); - assertPayloadEquals( - request, - "Action=ResetSnapshotAttribute&Attribute=createVolumePermission&SnapshotId=snapshotId", - "application/x-www-form-urlencoded", false); - assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class); - assertSaxResponseParserClassEquals(method, null); - assertFallbackClassEquals(method, null); - - checkFilters(request); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/ElasticIPAddressApiExpectTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/ElasticIPAddressApiExpectTest.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/ElasticIPAddressApiExpectTest.java deleted file mode 100644 index 824a4ff..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/ElasticIPAddressApiExpectTest.java +++ /dev/null @@ -1,102 +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.ec2.features; - -import static com.google.common.collect.Iterables.getOnlyElement; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; - -import java.util.Properties; - -import org.jclouds.Constants; -import org.jclouds.ec2.EC2Api; -import org.jclouds.ec2.domain.PublicIpInstanceIdPair; -import org.jclouds.ec2.internal.BaseEC2ApiExpectTest; -import org.jclouds.http.HttpRequest; -import org.jclouds.http.HttpResponse; -import org.jclouds.rest.internal.BaseRestApiExpectTest; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableMultimap; -import com.google.common.collect.ImmutableSet; - -/** - * @author Andrew Bayer - * - * @see org.jclouds.ec2.features.ElasticIPAddressApi - */ -@Test(groups = "unit") -public class ElasticIPAddressApiExpectTest extends BaseEC2ApiExpectTest<EC2Api> { - - protected Properties setupProperties() { - Properties props = super.setupProperties(); - props.put(Constants.PROPERTY_API_VERSION, "2010-08-31"); - return props; - } - - HttpRequest filter = - HttpRequest.builder() - .method("POST") - .endpoint("https://ec2.us-east-1.amazonaws.com/") - .addHeader("Host", "ec2.us-east-1.amazonaws.com") - .payload(BaseRestApiExpectTest.payloadFromStringWithContentType( - "Action=DescribeAddresses" + - "&Filter.1.Name=instance-id" + - "&Filter.1.Value.1=i-f15ebb98" + - "&Signature=dJbTUsBGHSrarQQAwmLm8LLI255R/lzdE7ZcYJucOzI%3D" + - "&SignatureMethod=HmacSHA256" + - "&SignatureVersion=2" + - "&Timestamp=2012-04-16T15%3A54%3A08.897Z" + - "&Version=2010-08-31" + - "&AWSAccessKeyId=identity", - "application/x-www-form-urlencoded")) - .build(); - - public void testFilterWhenResponseIs2xx() throws Exception { - - HttpResponse filterResponse = HttpResponse.builder().statusCode(200) - .payload(payloadFromResourceWithContentType("/describe_addresses_single.xml", "text/xml")).build(); - - - EC2Api apiWhenExist = requestsSendResponses(describeRegionsRequest, describeRegionsResponse, - filter, filterResponse); - - PublicIpInstanceIdPair address = getOnlyElement(apiWhenExist.getElasticIPAddressApi() - .get().describeAddressesInRegionWithFilter("us-east-1", - ImmutableMultimap.<String, String>builder() - .put("instance-id", "i-f15ebb98") - .build())); - assertNotNull(address, "address should not be null"); - - assertEquals(address.getPublicIp(), "67.202.55.255"); - } - - public void testFilterWhenResponseIs404() throws Exception { - - HttpResponse filterResponse = HttpResponse.builder().statusCode(404).build(); - - EC2Api apiWhenDontExist = requestsSendResponses(describeRegionsRequest, describeRegionsResponse, - filter, filterResponse); - - assertEquals(apiWhenDontExist.getElasticIPAddressApi() - .get().describeAddressesInRegionWithFilter("us-east-1", - ImmutableMultimap.<String, String>builder() - .put("instance-id", "i-f15ebb98") - .build()), ImmutableSet.of()); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/ElasticIPAddressApiLiveTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/ElasticIPAddressApiLiveTest.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/ElasticIPAddressApiLiveTest.java deleted file mode 100644 index f435404..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/ElasticIPAddressApiLiveTest.java +++ /dev/null @@ -1,77 +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.ec2.features; - -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertNotNull; - -import java.util.SortedSet; - -import org.jclouds.compute.internal.BaseComputeServiceContextLiveTest; -import org.jclouds.ec2.EC2Api; -import org.jclouds.ec2.domain.PublicIpInstanceIdPair; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableMultimap; -import com.google.common.collect.Sets; - -/** - * Tests behavior of {@code ElasticIPAddressApi} - * - * @author Adrian Cole - */ -@Test(groups = "live", singleThreaded = true, testName = "ElasticIPAddressApiLiveTest") -public class ElasticIPAddressApiLiveTest extends BaseComputeServiceContextLiveTest { - public ElasticIPAddressApiLiveTest() { - provider = "ec2"; - } - - private EC2Api ec2Api; - private ElasticIPAddressApi client; - - @Override - @BeforeClass(groups = { "integration", "live" }) - public void setupContext() { - super.setupContext(); - ec2Api = view.unwrapApi(EC2Api.class); - client = ec2Api.getElasticIPAddressApi().get(); - } - - @Test - void testDescribeAddresses() { - for (String region : ec2Api.getConfiguredRegions()) { - SortedSet<PublicIpInstanceIdPair> allResults = Sets.newTreeSet(client.describeAddressesInRegion(region)); - assertNotNull(allResults); - if (!allResults.isEmpty()) { - PublicIpInstanceIdPair pair = allResults.last(); - SortedSet<PublicIpInstanceIdPair> result = Sets.newTreeSet(client.describeAddressesInRegion(region, pair - .getPublicIp())); - assertNotNull(result); - PublicIpInstanceIdPair compare = result.last(); - assertEquals(compare, pair); - - SortedSet<PublicIpInstanceIdPair> filterResult = Sets.newTreeSet(client.describeAddressesInRegionWithFilter( - region, ImmutableMultimap.<String, String>builder().put("public-ip", pair.getPublicIp()).build())); - assertNotNull(filterResult); - PublicIpInstanceIdPair filterCompare = filterResult.last(); - assertEquals(filterCompare, pair); - } - } - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/ElasticIPAddressApiTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/ElasticIPAddressApiTest.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/ElasticIPAddressApiTest.java deleted file mode 100644 index abdfae6..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/ElasticIPAddressApiTest.java +++ /dev/null @@ -1,140 +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.ec2.features; - -import static org.jclouds.reflect.Reflection2.method; - -import java.io.IOException; - -import org.jclouds.Fallbacks.EmptySetOnNotFoundOr404; -import org.jclouds.ec2.xml.AllocateAddressResponseHandler; -import org.jclouds.ec2.xml.DescribeAddressesResponseHandler; -import org.jclouds.http.HttpRequest; -import org.jclouds.http.functions.ParseSax; -import org.jclouds.http.functions.ReleasePayloadAndReturn; -import org.jclouds.rest.internal.GeneratedHttpRequest; -import org.testng.annotations.Test; - -import com.google.common.collect.Lists; -import com.google.common.reflect.Invokable; -/** - * Tests behavior of {@code ElasticIPAddressApi} - * - * @author Adrian Cole - */ -// NOTE:without testName, this will not call @Before* and fail w/NPE during surefire -@Test(groups = "unit", testName = "ElasticIPAddressApiTest") -public class ElasticIPAddressApiTest extends BaseEC2ApiTest<ElasticIPAddressApi> { - - public void testDisassociateAddress() throws SecurityException, NoSuchMethodException, IOException { - Invokable<?, ?> method = method(ElasticIPAddressApi.class, "disassociateAddressInRegion", String.class, - String.class); - GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "127.0.0.1")); - - assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1"); - assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n"); - assertPayloadEquals(request, "Action=DisassociateAddress&PublicIp=127.0.0.1", - "application/x-www-form-urlencoded", false); - - assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class); - assertSaxResponseParserClassEquals(method, null); - assertFallbackClassEquals(method, null); - - checkFilters(request); - } - - HttpRequest associateAddress = HttpRequest.builder().method("POST") - .endpoint("https://ec2.us-east-1.amazonaws.com/") - .addHeader("Host", "ec2.us-east-1.amazonaws.com") - .addFormParam("Action", "AssociateAddress") - .addFormParam("InstanceId", "me") - .addFormParam("PublicIp", "127.0.0.1") - .addFormParam("Signature", "nLU6xGLqXtT/dmyAvkN4BdL/3CxQlDWJYeskikhl54k%3D") - .addFormParam("SignatureMethod", "HmacSHA256") - .addFormParam("SignatureVersion", "2") - .addFormParam("Timestamp", "2009-11-08T15%3A54%3A08.897Z") - .addFormParam("Version", "2010-08-31") - .addFormParam("AWSAccessKeyId", "identity").build(); - - public void testAssociateAddress() throws SecurityException, NoSuchMethodException, IOException { - Invokable<?, ?> method = method(ElasticIPAddressApi.class, "associateAddressInRegion", String.class, - String.class, String.class); - GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "127.0.0.1", "me")); - - request = (GeneratedHttpRequest) request.getFilters().get(0).filter(request); - - assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1"); - assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n"); - assertPayloadEquals(request, associateAddress.getPayload().getRawContent().toString(), - "application/x-www-form-urlencoded", false); - - assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class); - assertSaxResponseParserClassEquals(method, null); - assertFallbackClassEquals(method, null); - - checkFilters(request); - } - - public void testReleaseAddress() throws SecurityException, NoSuchMethodException, IOException { - Invokable<?, ?> method = method(ElasticIPAddressApi.class, "releaseAddressInRegion", String.class, String.class); - GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "127.0.0.1")); - - assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1"); - assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n"); - assertPayloadEquals(request, "Action=ReleaseAddress&PublicIp=127.0.0.1", - "application/x-www-form-urlencoded", false); - - assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class); - assertSaxResponseParserClassEquals(method, null); - assertFallbackClassEquals(method, null); - - checkFilters(request); - } - - public void testDescribeAddresses() throws SecurityException, NoSuchMethodException, IOException { - Invokable<?, ?> method = method(ElasticIPAddressApi.class, "describeAddressesInRegion", String.class, - String[].class); - GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "127.0.0.1")); - - assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1"); - assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n"); - assertPayloadEquals(request, "Action=DescribeAddresses&PublicIp.1=127.0.0.1", - "application/x-www-form-urlencoded", false); - - assertResponseParserClassEquals(method, request, ParseSax.class); - assertSaxResponseParserClassEquals(method, DescribeAddressesResponseHandler.class); - assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class); - - checkFilters(request); - } - - public void testAllocateAddress() throws SecurityException, NoSuchMethodException, IOException { - Invokable<?, ?> method = method(ElasticIPAddressApi.class, "allocateAddressInRegion", String.class); - GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList((String) null)); - - assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1"); - assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n"); - assertPayloadEquals(request, "Action=AllocateAddress", "application/x-www-form-urlencoded", - false); - - assertResponseParserClassEquals(method, request, ParseSax.class); - assertSaxResponseParserClassEquals(method, AllocateAddressResponseHandler.class); - assertFallbackClassEquals(method, null); - - checkFilters(request); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/InstanceApiExpectTest.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/InstanceApiExpectTest.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/InstanceApiExpectTest.java deleted file mode 100644 index 0c19bd7..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/test/java/org/jclouds/ec2/features/InstanceApiExpectTest.java +++ /dev/null @@ -1,101 +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.ec2.features; - -import static com.google.common.collect.Iterables.getOnlyElement; -import static org.testng.Assert.assertNotNull; - -import java.util.Properties; - -import org.jclouds.Constants; -import org.jclouds.ec2.EC2Api; -import org.jclouds.ec2.domain.RunningInstance; -import org.jclouds.ec2.internal.BaseEC2ApiExpectTest; -import org.jclouds.http.HttpRequest; -import org.jclouds.http.HttpResponse; -import org.jclouds.rest.internal.BaseRestApiExpectTest; -import org.jclouds.util.Strings2; -import org.testng.Assert; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableMultimap; -import com.google.common.collect.ImmutableSet; - -/** - * @author Andrew Bayer - * - * @see InstanceApi - */ -@Test(groups = "unit") -public class InstanceApiExpectTest extends BaseEC2ApiExpectTest<EC2Api> { - - protected Properties setupProperties() { - Properties props = super.setupProperties(); - props.put(Constants.PROPERTY_API_VERSION, "2010-08-31"); - return props; - } - - HttpRequest filter = - HttpRequest.builder() - .method("POST") - .endpoint("https://ec2.us-east-1.amazonaws.com/") - .addHeader("Host", "ec2.us-east-1.amazonaws.com") - .payload(BaseRestApiExpectTest.payloadFromStringWithContentType( - "Action=DescribeInstances" + - "&Filter.1.Name=key-name" + - "&Filter.1.Value.1=" + Strings2.urlEncode("adriancole.ec21") + - "&Signature=%2B2ktAljlAPNUMAJUFh3poQrTvwcwWytuQFBg/ktKdTc%3D" + - "&SignatureMethod=HmacSHA256" + - "&SignatureVersion=2" + - "&Timestamp=2012-04-16T15%3A54%3A08.897Z" + - "&Version=2010-08-31" + - "&AWSAccessKeyId=identity", - "application/x-www-form-urlencoded")) - .build(); - - public void testFilterWhenResponseIs2xx() throws Exception { - - HttpResponse filterResponse = HttpResponse.builder().statusCode(200) - .payload(payloadFromResourceWithContentType("/describe_instances_running.xml", "text/xml")).build(); - - - EC2Api apiWhenExist = requestsSendResponses(describeRegionsRequest, describeRegionsResponse, - filter, filterResponse); - - RunningInstance instance = getOnlyElement(getOnlyElement(apiWhenExist.getInstanceApi().get().describeInstancesInRegionWithFilter("us-east-1", - ImmutableMultimap.<String, String>builder() - .put("key-name", "adriancole.ec21") - .build()))); - assertNotNull(instance, "Instance should not be null"); - - Assert.assertEquals(instance.getId(), "i-0799056f"); - } - - public void testFilterWhenResponseIs404() throws Exception { - - HttpResponse filterResponse = HttpResponse.builder().statusCode(404).build(); - - EC2Api apiWhenDontExist = requestsSendResponses(describeRegionsRequest, describeRegionsResponse, - filter, filterResponse); - - Assert.assertEquals(apiWhenDontExist.getInstanceApi().get().describeInstancesInRegionWithFilter("us-east-1", - ImmutableMultimap.<String, String>builder() - .put("key-name", "adriancole.ec21") - .build()), ImmutableSet.of()); - } - -}
