You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ab...@apache.org on 2013/07/01 21:13:07 UTC

[02/20] JCLOUDS-150 - Removal of async from AWS - specifically EC2

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/5f3b8d3f/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSInstanceAsyncClientTest.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSInstanceAsyncClientTest.java b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSInstanceAsyncClientTest.java
deleted file mode 100644
index 6fa19d7..0000000
--- a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSInstanceAsyncClientTest.java
+++ /dev/null
@@ -1,539 +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.aws.ec2.services;
-
-import static org.jclouds.reflect.Reflection2.method;
-
-import java.io.IOException;
-import java.util.Map;
-
-import org.jclouds.Fallbacks.EmptySetOnNotFoundOr404;
-import org.jclouds.aws.ec2.options.AWSRunInstancesOptions;
-import org.jclouds.aws.ec2.xml.AWSDescribeInstancesResponseHandler;
-import org.jclouds.aws.ec2.xml.AWSRunInstancesResponseHandler;
-import org.jclouds.ec2.domain.BlockDevice;
-import org.jclouds.ec2.domain.InstanceType;
-import org.jclouds.ec2.domain.Volume.InstanceInitiatedShutdownBehavior;
-import org.jclouds.ec2.options.RunInstancesOptions;
-import org.jclouds.ec2.xml.BlockDeviceMappingHandler;
-import org.jclouds.ec2.xml.BooleanValueHandler;
-import org.jclouds.ec2.xml.InstanceInitiatedShutdownBehaviorHandler;
-import org.jclouds.ec2.xml.InstanceStateChangeHandler;
-import org.jclouds.ec2.xml.InstanceTypeHandler;
-import org.jclouds.ec2.xml.StringValueHandler;
-import org.jclouds.ec2.xml.UnencodeStringValueHandler;
-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.collect.Maps;
-import com.google.common.reflect.Invokable;
-/**
- * Tests behavior of {@code AWSInstanceAsyncClient}
- * 
- * @author Adrian Cole
- */
-// NOTE:without testName, this will not call @Before* and fail w/NPE during
-// surefire
-@Test(groups = "unit", testName = "AWSInstanceAsyncClientTest")
-public class AWSInstanceAsyncClientTest extends BaseAWSEC2AsyncClientTest<AWSInstanceAsyncClient> {
-   public void testDescribeInstances() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSInstanceAsyncClient.class, "describeInstancesInRegion", String.class, 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=DescribeInstances", "application/x-www-form-urlencoded",
-            false);
-
-      assertResponseParserClassEquals(method, request, ParseSax.class);
-      assertSaxResponseParserClassEquals(method, AWSDescribeInstancesResponseHandler.class);
-      assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
-      checkFilters(request);
-   }
-
-   public void testDescribeInstancesArgs() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSInstanceAsyncClient.class, "describeInstancesInRegion", 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=DescribeInstances&InstanceId.1=1&InstanceId.2=2",
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ParseSax.class);
-      assertSaxResponseParserClassEquals(method, AWSDescribeInstancesResponseHandler.class);
-      assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
-      checkFilters(request);
-   }
-
-   public void testTerminateInstances() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSInstanceAsyncClient.class, "terminateInstancesInRegion", 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=TerminateInstances&InstanceId.1=1&InstanceId.2=2",
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ParseSax.class);
-      assertSaxResponseParserClassEquals(method, InstanceStateChangeHandler.class);
-      assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
-      checkFilters(request);
-   }
-
-   public void testRunInstances() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSInstanceAsyncClient.class, "runInstancesInRegion", String.class, String.class,
-            String.class, int.class, int.class, RunInstancesOptions[].class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, null, "ami-voo", 1, 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=RunInstances&ImageId=ami-voo&MinCount=1&MaxCount=1",
-            "application/x-www-form-urlencoded", false);
-      assertResponseParserClassEquals(method, request, ParseSax.class);
-      assertSaxResponseParserClassEquals(method, AWSRunInstancesResponseHandler.class);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testRunInstancesOptions() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSInstanceAsyncClient.class, "runInstancesInRegion", String.class, String.class,
-            String.class, int.class, int.class, RunInstancesOptions[].class);
-      GeneratedHttpRequest request = processor.createRequest(
-            method,
-            Lists.<Object> newArrayList("us-east-1",
-            "us-east-1a",
-            "ami-voo",
-            1,
-            5,
-            new AWSRunInstancesOptions().withKernelId("kernelId").enableMonitoring()
-                  .withSecurityGroups("group1", "group2")));
-
-      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=RunInstances&ImageId=ami-voo&MinCount=1&MaxCount=5&KernelId=kernelId&Monitoring.Enabled=true&SecurityGroup.1=group1&SecurityGroup.2=group2&Placement.AvailabilityZone=us-east-1a",
-            "application/x-www-form-urlencoded", false);
-      assertResponseParserClassEquals(method, request, ParseSax.class);
-      assertSaxResponseParserClassEquals(method, AWSRunInstancesResponseHandler.class);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testStopInstances() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSInstanceAsyncClient.class, "stopInstancesInRegion", String.class, boolean.class,
-            String[].class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, true, "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=StopInstances&Force=true&InstanceId.1=1&InstanceId.2=2",
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ParseSax.class);
-      assertSaxResponseParserClassEquals(method, InstanceStateChangeHandler.class);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testRebootInstances() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSInstanceAsyncClient.class, "rebootInstancesInRegion", 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=RebootInstances&InstanceId.1=1&InstanceId.2=2",
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testStartInstances() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSInstanceAsyncClient.class, "startInstancesInRegion", 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=StartInstances&InstanceId.1=1&InstanceId.2=2",
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ParseSax.class);
-      assertSaxResponseParserClassEquals(method, InstanceStateChangeHandler.class);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testGetUserDataForInstanceInRegion() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSInstanceAsyncClient.class, "getUserDataForInstanceInRegion", String.class,
-            String.class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "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=DescribeInstanceAttribute&Attribute=userData&InstanceId=1",
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ParseSax.class);
-      assertSaxResponseParserClassEquals(method, UnencodeStringValueHandler.class);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testGetRootDeviceNameForInstanceInRegion() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSInstanceAsyncClient.class, "getRootDeviceNameForInstanceInRegion", String.class,
-            String.class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "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=DescribeInstanceAttribute&Attribute=rootDeviceName&InstanceId=1",
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ParseSax.class);
-      assertSaxResponseParserClassEquals(method, StringValueHandler.class);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testGetRamdiskForInstanceInRegion() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSInstanceAsyncClient.class, "getRamdiskForInstanceInRegion", String.class,
-            String.class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "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=DescribeInstanceAttribute&Attribute=ramdisk&InstanceId=1",
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ParseSax.class);
-      assertSaxResponseParserClassEquals(method, StringValueHandler.class);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testGetDisableApiTerminationForInstanceInRegion() throws SecurityException, NoSuchMethodException,
-         IOException {
-      Invokable<?, ?> method = method(AWSInstanceAsyncClient.class, "isApiTerminationDisabledForInstanceInRegion",
-            String.class, String.class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "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=DescribeInstanceAttribute&Attribute=disableApiTermination&InstanceId=1",
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ParseSax.class);
-      assertSaxResponseParserClassEquals(method, BooleanValueHandler.class);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testGetKernelForInstanceInRegion() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSInstanceAsyncClient.class, "getKernelForInstanceInRegion", String.class, String.class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "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=DescribeInstanceAttribute&Attribute=kernel&InstanceId=1",
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ParseSax.class);
-      assertSaxResponseParserClassEquals(method, StringValueHandler.class);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testGetInstanceTypeForInstanceInRegion() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSInstanceAsyncClient.class, "getInstanceTypeForInstanceInRegion", String.class,
-            String.class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "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=DescribeInstanceAttribute&Attribute=instanceType&InstanceId=1",
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ParseSax.class);
-      assertSaxResponseParserClassEquals(method, InstanceTypeHandler.class);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testGetInstanceInitiatedShutdownBehaviorForInstanceInRegion() throws SecurityException,
-         NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSInstanceAsyncClient.class, "getInstanceInitiatedShutdownBehaviorForInstanceInRegion",
-            String.class, String.class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "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=DescribeInstanceAttribute&Attribute=instanceInitiatedShutdownBehavior&InstanceId=1",
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ParseSax.class);
-      assertSaxResponseParserClassEquals(method, InstanceInitiatedShutdownBehaviorHandler.class);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testGetBlockDeviceMappingForInstanceInRegion() throws SecurityException, NoSuchMethodException,
-         IOException {
-      Invokable<?, ?> method = method(AWSInstanceAsyncClient.class, "getBlockDeviceMappingForInstanceInRegion", String.class,
-            String.class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "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=DescribeInstanceAttribute&Attribute=blockDeviceMapping&InstanceId=1",
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ParseSax.class);
-      assertSaxResponseParserClassEquals(method, BlockDeviceMappingHandler.class);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   HttpRequest setUserDataForInstance = HttpRequest.builder().method("POST")
-                                                   .endpoint("https://ec2.us-east-1.amazonaws.com/")
-                                                   .addHeader("Host", "ec2.us-east-1.amazonaws.com")
-                                                   .addFormParam("Action", "ModifyInstanceAttribute")
-                                                   .addFormParam("Attribute", "userData")
-                                                   .addFormParam("InstanceId", "1")
-                                                   .addFormParam("Value", "dGVzdA%3D%3D").build();
-
-   public void testSetUserDataForInstanceInRegion() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSInstanceAsyncClient.class, "setUserDataForInstanceInRegion", String.class, String.class,
-               byte[].class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "1", "test".getBytes()));
-
-      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, filter.filter(setUserDataForInstance).getPayload().getRawContent().toString(),
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   HttpRequest setRamdiskForInstance = HttpRequest.builder().method("POST")
-                                                  .endpoint("https://ec2.us-east-1.amazonaws.com/")
-                                                  .addHeader("Host", "ec2.us-east-1.amazonaws.com")
-                                                  .addFormParam("Action", "ModifyInstanceAttribute")
-                                                  .addFormParam("Attribute", "ramdisk")
-                                                  .addFormParam("InstanceId", "1")
-                                                  .addFormParam("Value", "test").build();
-
-   public void testSetRamdiskForInstanceInRegion() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSInstanceAsyncClient.class, "setRamdiskForInstanceInRegion", String.class, String.class,
-               String.class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "1", "test"));
-
-      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, filter.filter(setRamdiskForInstance).getPayload().getRawContent().toString(),
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   HttpRequest setKernelForInstance = HttpRequest.builder().method("POST")
-                                                 .endpoint("https://ec2.us-east-1.amazonaws.com/")
-                                                 .addHeader("Host", "ec2.us-east-1.amazonaws.com")
-                                                 .addFormParam("Action", "ModifyInstanceAttribute")
-                                                 .addFormParam("Attribute", "kernel")
-                                                 .addFormParam("InstanceId", "1")
-                                                 .addFormParam("Value", "test").build();
-
-   public void testSetKernelForInstanceInRegion() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSInstanceAsyncClient.class, "setKernelForInstanceInRegion", String.class, String.class,
-               String.class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "1", "test"));
-
-      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, filter.filter(setKernelForInstance).getPayload().getRawContent().toString(),
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   HttpRequest setApiTerminationDisabled = HttpRequest.builder().method("POST")
-                                                      .endpoint("https://ec2.us-east-1.amazonaws.com/")
-                                                      .addHeader("Host", "ec2.us-east-1.amazonaws.com")
-                                                      .addFormParam("Action", "ModifyInstanceAttribute")
-                                                      .addFormParam("Attribute", "disableApiTermination")
-                                                      .addFormParam("InstanceId", "1")
-                                                      .addFormParam("Value", "true").build();
-
-   public void testSetApiTerminationDisabledForInstanceInRegion() throws SecurityException, NoSuchMethodException,
-            IOException {
-      Invokable<?, ?> method = method(AWSInstanceAsyncClient.class, "setApiTerminationDisabledForInstanceInRegion", String.class,
-               String.class, boolean.class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "1", true));
-
-      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, filter.filter(setApiTerminationDisabled).getPayload().getRawContent().toString(),
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   HttpRequest instanceTypeForInstance = HttpRequest.builder().method("POST")
-                                                    .endpoint("https://ec2.us-east-1.amazonaws.com/")
-                                                    .addHeader("Host", "ec2.us-east-1.amazonaws.com")
-                                                    .addFormParam("Action", "ModifyInstanceAttribute")
-                                                    .addFormParam("Attribute", "instanceType")
-                                                    .addFormParam("InstanceId", "1")
-                                                    .addFormParam("Value", "c1.medium").build();
-
-   public void testSetInstanceTypeForInstanceInRegion() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSInstanceAsyncClient.class, "setInstanceTypeForInstanceInRegion", String.class,
-               String.class, String.class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "1", InstanceType.C1_MEDIUM));
-
-      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, filter.filter(instanceTypeForInstance).getPayload().getRawContent().toString(),
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   HttpRequest setInstanceInitiatedShutdownBehavior = HttpRequest.builder().method("POST")
-                                                                 .endpoint("https://ec2.us-east-1.amazonaws.com/")
-                                                                 .addHeader("Host", "ec2.us-east-1.amazonaws.com")
-                                                                 .addFormParam("Action", "ModifyInstanceAttribute")
-                                                                 .addFormParam("Attribute", "instanceInitiatedShutdownBehavior")
-                                                                 .addFormParam("InstanceId", "1")
-                                                                 .addFormParam("Value", "terminate").build();
-
-   public void testSetInstanceInitiatedShutdownBehaviorForInstanceInRegion() throws SecurityException,
-            NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSInstanceAsyncClient.class, "setInstanceInitiatedShutdownBehaviorForInstanceInRegion",
-               String.class, String.class, InstanceInitiatedShutdownBehavior.class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "1", InstanceInitiatedShutdownBehavior.TERMINATE));
-
-      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, filter.filter(setInstanceInitiatedShutdownBehavior).getPayload().getRawContent()
-            .toString(), "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   HttpRequest setBlockDeviceMapping = HttpRequest.builder().method("POST")
-                                                           .endpoint("https://ec2.us-east-1.amazonaws.com/")
-                                                           .addHeader("Host", "ec2.us-east-1.amazonaws.com")
-                                                           .addFormParam("Action", "ModifyInstanceAttribute")
-                                                           .addFormParam("BlockDeviceMapping.1.DeviceName", "/dev/sda1")
-                                                           .addFormParam("BlockDeviceMapping.1.Ebs.DeleteOnTermination", "true")
-                                                           .addFormParam("BlockDeviceMapping.1.Ebs.VolumeId", "vol-test1")
-                                                           .addFormParam("InstanceId", "1").build();
-
-   public void testSetBlockDeviceMappingForInstanceInRegion() throws SecurityException, NoSuchMethodException,
-         IOException {
-      Invokable<?, ?> method = method(AWSInstanceAsyncClient.class, "setBlockDeviceMappingForInstanceInRegion", String.class,
-            String.class, Map.class);
-
-      Map<String, BlockDevice> mapping = Maps.newLinkedHashMap();
-      mapping.put("/dev/sda1", new BlockDevice("vol-test1", true));
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "1", mapping));
-
-      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, filter.filter(setBlockDeviceMapping).getPayload().getRawContent().toString(),
-            "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/incubator-jclouds/blob/5f3b8d3f/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSInstanceClientLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSInstanceClientLiveTest.java b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSInstanceClientLiveTest.java
deleted file mode 100644
index f2a3600..0000000
--- a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSInstanceClientLiveTest.java
+++ /dev/null
@@ -1,61 +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.aws.ec2.services;
-
-import static org.testng.Assert.assertNotNull;
-
-import java.util.Set;
-
-import org.jclouds.aws.ec2.AWSEC2ApiMetadata;
-import org.jclouds.compute.internal.BaseComputeServiceContextLiveTest;
-import org.jclouds.ec2.domain.Reservation;
-import org.jclouds.ec2.domain.RunningInstance;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-/**
- * Tests behavior of {@code EC2Client}
- * 
- * @author Adrian Cole
- */
-@Test(groups = "live", singleThreaded = true)
-public class AWSInstanceClientLiveTest extends BaseComputeServiceContextLiveTest {
-   public AWSInstanceClientLiveTest() {
-      provider = "aws-ec2";
-   }
-   
-   public static final String PREFIX = System.getProperty("user.name") + "-ec2";
-
-   private AWSInstanceClient client;
-   
-   @Override
-   @BeforeClass(groups = { "integration", "live" })
-   public void setupContext() {
-      super.setupContext();
-      client = view.unwrap(AWSEC2ApiMetadata.CONTEXT_TOKEN).getApi().getInstanceServices();
-   }
-
-   @Test
-   void testDescribeInstances() {
-      for (String region : view.unwrap(AWSEC2ApiMetadata.CONTEXT_TOKEN).getApi().getAvailabilityZoneAndRegionServices().describeRegions().keySet()) {
-         Set<? extends Reservation<? extends RunningInstance>> allResults = client.describeInstancesInRegion(region);
-         assertNotNull(allResults);
-         assert allResults.size() >= 0 : allResults.size();
-      }
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/5f3b8d3f/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSKeyPairAsyncClientTest.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSKeyPairAsyncClientTest.java b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSKeyPairAsyncClientTest.java
deleted file mode 100644
index ef2a9e3..0000000
--- a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSKeyPairAsyncClientTest.java
+++ /dev/null
@@ -1,134 +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.aws.ec2.services;
-
-import static org.jclouds.reflect.Reflection2.method;
-
-import java.io.IOException;
-
-import org.jclouds.Fallbacks.EmptySetOnNotFoundOr404;
-import org.jclouds.ec2.xml.DescribeKeyPairsResponseHandler;
-import org.jclouds.ec2.xml.KeyPairResponseHandler;
-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 AWSKeyPairAsyncClient}
- * 
- * @author Adrian Cole
- */
-// NOTE:without testName, this will not call @Before* and fail w/NPE during surefire
-@Test(groups = "unit", testName = "AWSKeyPairAsyncClientTest")
-public class AWSKeyPairAsyncClientTest extends BaseAWSEC2AsyncClientTest<AWSKeyPairAsyncClient> {
-
-   public void testCreateKeyPair() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSKeyPairAsyncClient.class, "createKeyPairInRegion", String.class, String.class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "mykey"));
-
-      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=CreateKeyPair&KeyName=mykey",
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ParseSax.class);
-      assertSaxResponseParserClassEquals(method, KeyPairResponseHandler.class);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   HttpRequest importKeyPair = HttpRequest.builder().method("POST")
-                                          .endpoint("https://ec2.us-east-1.amazonaws.com/")
-                                          .addHeader("Host", "ec2.us-east-1.amazonaws.com")
-                                          .addFormParam("Action", "ImportKeyPair")
-                                          .addFormParam("KeyName", "mykey")
-                                          .addFormParam("PublicKeyMaterial", "c3NoLXJzYSBBQQ%3D%3D").build();
-
-   public void testImportKeyPair() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSKeyPairAsyncClient.class, "importKeyPairInRegion", String.class, String.class,
-            String.class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "mykey", "ssh-rsa AA"));
-
-      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, filter.filter(importKeyPair).getPayload().getRawContent().toString(),
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ParseSax.class);
-      assertSaxResponseParserClassEquals(method, KeyPairResponseHandler.class);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testDeleteKeyPair() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSKeyPairAsyncClient.class, "deleteKeyPairInRegion", String.class, String.class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "mykey"));
-
-      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=DeleteKeyPair&KeyName=mykey",
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testDescribeKeyPairs() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSKeyPairAsyncClient.class, "describeKeyPairsInRegion", String.class,
-            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=DescribeKeyPairs", "application/x-www-form-urlencoded",
-            false);
-
-      assertResponseParserClassEquals(method, request, ParseSax.class);
-      assertSaxResponseParserClassEquals(method, DescribeKeyPairsResponseHandler.class);
-      assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
-      checkFilters(request);
-   }
-
-   public void testDescribeKeyPairsArgs() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSKeyPairAsyncClient.class, "describeKeyPairsInRegion", 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=DescribeKeyPairs&KeyName.1=1&KeyName.2=2",
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ParseSax.class);
-      assertSaxResponseParserClassEquals(method, DescribeKeyPairsResponseHandler.class);
-      assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
-      checkFilters(request);
-   }
-}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/5f3b8d3f/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSKeyPairClientLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSKeyPairClientLiveTest.java b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSKeyPairClientLiveTest.java
deleted file mode 100644
index 62cc313..0000000
--- a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSKeyPairClientLiveTest.java
+++ /dev/null
@@ -1,209 +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.aws.ec2.services;
-
-import static com.google.common.collect.Iterables.get;
-import static com.google.common.collect.Iterables.getOnlyElement;
-import static com.google.common.collect.Sets.newTreeSet;
-import static org.jclouds.compute.options.TemplateOptions.Builder.overrideLoginCredentials;
-import static org.jclouds.compute.predicates.NodePredicates.inGroup;
-import static org.jclouds.compute.predicates.NodePredicates.runningInGroup;
-import static org.jclouds.scriptbuilder.domain.Statements.exec;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.fail;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.Map;
-import java.util.Set;
-import java.util.SortedSet;
-
-import org.jclouds.aws.domain.Region;
-import org.jclouds.aws.ec2.AWSEC2ApiMetadata;
-import org.jclouds.aws.ec2.AWSEC2Client;
-import org.jclouds.aws.ec2.compute.AWSEC2TemplateOptions;
-import org.jclouds.aws.ec2.domain.AWSRunningInstance;
-import org.jclouds.compute.ComputeServiceContext;
-import org.jclouds.compute.ComputeTestUtils;
-import org.jclouds.compute.domain.ExecResponse;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.internal.BaseComputeServiceContextLiveTest;
-import org.jclouds.compute.options.TemplateOptions;
-import org.jclouds.domain.LoginCredentials;
-import org.jclouds.ec2.domain.KeyPair;
-import org.jclouds.logging.log4j.config.Log4JLoggingModule;
-import org.jclouds.sshj.config.SshjSshClientModule;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableSet;
-import com.google.inject.Module;
-
-/**
- * Tests behavior of {@code AWSKeyPairClient}
- * 
- * @author Adrian Cole
- */
-@Test(groups = "live", singleThreaded = true)
-public class AWSKeyPairClientLiveTest extends BaseComputeServiceContextLiveTest {
-   public AWSKeyPairClientLiveTest() {
-      provider = "aws-ec2";
-   }
-
-   private AWSKeyPairClient client;
-   
-   @Override
-   @BeforeClass(groups = { "integration", "live" })
-   public void setupContext() {
-      super.setupContext();
-      client = view.unwrap(AWSEC2ApiMetadata.CONTEXT_TOKEN).getApi().getKeyPairServices();
-   }
-
-   public void testNoSsh() throws Exception {
-
-      Map<String, String> keyPair = ComputeTestUtils.setupKeyPair();
-
-      AWSInstanceClient instanceClient = AWSEC2Client.class.cast(view.unwrap(AWSEC2ApiMetadata.CONTEXT_TOKEN).getApi()).getInstanceServices();
-
-      String group = PREFIX + "unssh";
-      view.getComputeService().destroyNodesMatching(inGroup(group));
-
-      TemplateOptions options = view.getComputeService().templateOptions();
-
-      options.authorizePublicKey(keyPair.get("public")).as(AWSEC2TemplateOptions.class);
-
-      ComputeServiceContext noSshContext = null;
-      try {
-         noSshContext = createView(setupProperties(), ImmutableSet.<Module> of(new Log4JLoggingModule()));
-
-         Set<? extends NodeMetadata> nodes = noSshContext.getComputeService().createNodesInGroup(group, 1, options);
-
-         NodeMetadata first = get(nodes, 0);
-         assert first.getCredentials() != null : first;
-         assert first.getCredentials().identity != null : first;
-         // credentials should not be present as the import public key call doesn't have access to
-         // the related private key
-         assert first.getCredentials().credential == null : first;
-
-         AWSRunningInstance instance = getInstance(instanceClient, first.getProviderId());
-
-         assertEquals(instance.getKeyName(), "jclouds#" + group);
-
-         Map<? extends NodeMetadata, ExecResponse> responses = view.getComputeService()
-               .runScriptOnNodesMatching(
-                     runningInGroup(group),
-                     exec("echo hello"),
-                     overrideLoginCredentials(
-                           LoginCredentials.builder().user(first.getCredentials().identity)
-                                 .privateKey(keyPair.get("private")).build()).wrapInInitScript(false).runAsRoot(false));
-
-         ExecResponse hello = getOnlyElement(responses.values());
-         assertEquals(hello.getOutput().trim(), "hello");
-
-      } finally {
-         noSshContext.close();
-         view.getComputeService().destroyNodesMatching(inGroup(group));
-      }
-   }
-
-   @Test
-   void testDescribeAWSKeyPairs() {
-      for (String region : Region.DEFAULT_REGIONS) {
-
-         SortedSet<KeyPair> allResults = newTreeSet(client.describeKeyPairsInRegion(region));
-         assertNotNull(allResults);
-         if (allResults.size() >= 1) {
-            KeyPair pair = allResults.last();
-            SortedSet<KeyPair> result = newTreeSet(client.describeKeyPairsInRegion(region, pair.getKeyName()));
-            assertNotNull(result);
-            KeyPair compare = result.last();
-            assertEquals(compare, pair);
-         }
-      }
-   }
-
-   public static final String PREFIX = System.getProperty("user.name") + "-ec2";
-
-   @Test
-   void testCreateKeyPair() {
-      String keyName = PREFIX + "1";
-      cleanupKeyPair(keyName);
-      try {
-         KeyPair keyPair = client.createKeyPairInRegion(null, keyName);
-         checkKeyPair(keyName, keyPair);
-         assertNotNull(keyPair.getKeyMaterial());
-      } finally {
-         cleanupKeyPair(keyName);
-      }
-   }
-
-   protected void cleanupKeyPair(String keyName) {
-      try {
-         client.deleteKeyPairInRegion(null, keyName);
-      } catch (Exception e) {
-
-      }
-      client.deleteKeyPairInRegion(null, keyName);
-   }
-
-   @Test
-   void testImportKeyPair() throws FileNotFoundException, IOException {
-      String keyName = PREFIX + "2";
-      cleanupKeyPair(keyName);
-      Map<String, String> myKey = ComputeTestUtils.setupKeyPair();
-      try {
-         KeyPair keyPair = client.importKeyPairInRegion(null, keyName, myKey.get("public"));
-         checkKeyPair(keyName, keyPair);
-         // TODO generate correct fingerprint and check
-         // assertEquals(keyPair.getKeyFingerprint(),
-         // CryptoStreams.hex(CryptoStreams.md5(myKey.get("public").getBytes())));
-
-         // try again to see if there's an error
-         try {
-            client.importKeyPairInRegion(null, keyName, myKey.get("public"));
-            fail("Expected IllegalStateException");
-         } catch (IllegalStateException e) {
-
-         }
-      } finally {
-         cleanupKeyPair(keyName);
-      }
-   }
-
-   protected void checkKeyPair(String keyName, KeyPair keyPair) {
-      assertNotNull(keyPair);
-      assertNotNull(keyPair.getSha1OfPrivateKey());
-      assertEquals(keyPair.getKeyName(), keyName);
-
-      Set<KeyPair> twoResults = client.describeKeyPairsInRegion(null, keyName);
-      assertNotNull(twoResults);
-      assertEquals(twoResults.size(), 1);
-      KeyPair listPair = twoResults.iterator().next();
-      assertEquals(listPair.getKeyName(), keyPair.getKeyName());
-      assertEquals(listPair.getSha1OfPrivateKey(), keyPair.getSha1OfPrivateKey());
-   }
-
-   protected AWSRunningInstance getInstance(AWSInstanceClient instanceClient, String id) {
-      return getOnlyElement(getOnlyElement(instanceClient.describeInstancesInRegion(null, id)));
-   }
-   
-   @Override
-   protected Module getSshModule() {
-      return new SshjSshClientModule();
-   }
-}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/5f3b8d3f/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSSecurityGroupAsyncClientTest.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSSecurityGroupAsyncClientTest.java b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSSecurityGroupAsyncClientTest.java
deleted file mode 100644
index 9ebead5..0000000
--- a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSSecurityGroupAsyncClientTest.java
+++ /dev/null
@@ -1,207 +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.aws.ec2.services;
-
-import static org.jclouds.reflect.Reflection2.method;
-
-import java.io.IOException;
-
-import org.jclouds.Fallbacks.EmptySetOnNotFoundOr404;
-import org.jclouds.Fallbacks.VoidOnNotFoundOr404;
-import org.jclouds.ec2.util.IpPermissions;
-import org.jclouds.ec2.xml.DescribeSecurityGroupsResponseHandler;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.http.functions.ParseSax;
-import org.jclouds.http.functions.ReleasePayloadAndReturn;
-import org.jclouds.net.domain.IpPermission;
-import org.jclouds.net.domain.IpProtocol;
-import org.jclouds.rest.internal.GeneratedHttpRequest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Lists;
-import com.google.common.reflect.Invokable;
-/**
- * Tests behavior of {@code AWSSecurityGroupAsyncClient}
- * 
- * @author Adrian Cole
- */
-// NOTE:without testName, this will not call @Before* and fail w/NPE during
-// surefire
-@Test(groups = "unit", testName = "AWSSecurityGroupAsyncClientTest")
-public class AWSSecurityGroupAsyncClientTest extends BaseAWSEC2AsyncClientTest<AWSSecurityGroupAsyncClient> {
-   public AWSSecurityGroupAsyncClientTest() {
-      provider = "aws-ec2";
-   }
-
-   public void testDeleteSecurityGroup() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSSecurityGroupAsyncClient.class, "deleteSecurityGroupInRegionById", 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=DeleteSecurityGroup&GroupId=id",
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, VoidOnNotFoundOr404.class);
-
-      checkFilters(request);
-   }
-
-   public void testDescribeSecurityGroups() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSSecurityGroupAsyncClient.class, "describeSecurityGroupsInRegionById", String.class,
-            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=DescribeSecurityGroups",
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ParseSax.class);
-      assertSaxResponseParserClassEquals(method, DescribeSecurityGroupsResponseHandler.class);
-      assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
-      checkFilters(request);
-   }
-
-   public void testDescribeSecurityGroupsArgs() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSSecurityGroupAsyncClient.class, "describeSecurityGroupsInRegionById", 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=DescribeSecurityGroups&GroupId.1=1&GroupId.2=2",
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ParseSax.class);
-      assertSaxResponseParserClassEquals(method, DescribeSecurityGroupsResponseHandler.class);
-      assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
-      checkFilters(request);
-   }
-
-   HttpRequest createSecurityGroup = HttpRequest.builder().method("POST")
-                                                .endpoint("https://ec2.us-east-1.amazonaws.com/")
-                                                .addHeader("Host", "ec2.us-east-1.amazonaws.com")
-                                                .addFormParam("Action", "CreateSecurityGroup")
-                                                .addFormParam("GroupDescription", "description")
-                                                .addFormParam("GroupName", "name").build();
-
-   public void testCreateSecurityGroup() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSSecurityGroupAsyncClient.class, "createSecurityGroupInRegion", String.class,
-            String.class, String.class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "name", "description"));
-
-      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, filter.filter(createSecurityGroup).getPayload().getRawContent().toString(),
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testAuthorizeSecurityGroupIpPermission() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSSecurityGroupAsyncClient.class, "authorizeSecurityGroupIngressInRegion",
-            String.class, String.class, IpPermission.class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "group", IpPermissions.permitAnyProtocol()));
-
-      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=AuthorizeSecurityGroupIngress&GroupId=group&IpPermissions.0.IpProtocol=-1&IpPermissions.0.FromPort=1&IpPermissions.0.ToPort=65535&IpPermissions.0.IpRanges.0.CidrIp=0.0.0.0/0",
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testAuthorizeSecurityGroupIpPermissions() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSSecurityGroupAsyncClient.class, "authorizeSecurityGroupIngressInRegion",
-            String.class, String.class, Iterable.class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "group", ImmutableSet.<IpPermission> of(IpPermissions
-            .permit(IpProtocol.TCP).originatingFromCidrBlock("1.1.1.1/32"), IpPermissions.permitICMP().type(8).andCode(0)
-            .originatingFromSecurityGroupId("groupId"))));
-
-      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=AuthorizeSecurityGroupIngress&GroupId=group&IpPermissions.0.IpProtocol=tcp&IpPermissions.0.FromPort=1&IpPermissions.0.ToPort=65535&IpPermissions.0.IpRanges.0.CidrIp=1.1.1.1/32&IpPermissions.1.IpProtocol=icmp&IpPermissions.1.FromPort=8&IpPermissions.1.ToPort=0&IpPermissions.1.Groups.0.GroupId=groupId",
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testRevokeSecurityGroupIpPermission() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSSecurityGroupAsyncClient.class, "revokeSecurityGroupIngressInRegion", String.class,
-            String.class, IpPermission.class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "group", IpPermissions.permitAnyProtocol()));
-
-      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=RevokeSecurityGroupIngress&GroupId=group&IpPermissions.0.IpProtocol=-1&IpPermissions.0.FromPort=1&IpPermissions.0.ToPort=65535&IpPermissions.0.IpRanges.0.CidrIp=0.0.0.0/0",
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testRevokeSecurityGroupIpPermissions() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(AWSSecurityGroupAsyncClient.class, "revokeSecurityGroupIngressInRegion", String.class,
-            String.class, Iterable.class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "group", ImmutableSet.<IpPermission> of(IpPermissions
-            .permit(IpProtocol.TCP).originatingFromCidrBlock("1.1.1.1/32"), IpPermissions.permitICMP().type(8).andCode(0)
-            .originatingFromSecurityGroupId("groupId"))));
-
-      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=RevokeSecurityGroupIngress&GroupId=group&IpPermissions.0.IpProtocol=tcp&IpPermissions.0.FromPort=1&IpPermissions.0.ToPort=65535&IpPermissions.0.IpRanges.0.CidrIp=1.1.1.1/32&IpPermissions.1.IpProtocol=icmp&IpPermissions.1.FromPort=8&IpPermissions.1.ToPort=0&IpPermissions.1.Groups.0.GroupId=groupId",
-            "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/incubator-jclouds/blob/5f3b8d3f/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSSecurityGroupClientLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSSecurityGroupClientLiveTest.java b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSSecurityGroupClientLiveTest.java
deleted file mode 100644
index 76c7e91..0000000
--- a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/AWSSecurityGroupClientLiveTest.java
+++ /dev/null
@@ -1,85 +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.aws.ec2.services;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-
-import java.util.Set;
-
-import org.jclouds.ec2.domain.SecurityGroup;
-import org.jclouds.ec2.services.SecurityGroupClientLiveTest;
-import org.jclouds.ec2.util.IpPermissions;
-import org.jclouds.net.domain.IpPermission;
-import org.jclouds.net.domain.IpProtocol;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.ImmutableMultimap;
-
-/**
- * 
- * @author Adrian Cole
- */
-@Test(groups = "live", singleThreaded = true)
-public class AWSSecurityGroupClientLiveTest extends SecurityGroupClientLiveTest {
-   public AWSSecurityGroupClientLiveTest() {
-      provider = "aws-ec2";
-   }
-
-   @Test
-   void testAuthorizeSecurityGroupIngressIpPermission() throws InterruptedException {
-      final String group1Name = PREFIX + "ingress11";
-      String group2Name = PREFIX + "ingress12";
-      cleanupAndSleep(group2Name);
-      cleanupAndSleep(group1Name);
-      try {
-         String group1Id = AWSSecurityGroupClient.class.cast(client).createSecurityGroupInRegionAndReturnId(null,
-               group1Name, group1Name);
-         String group2Id = AWSSecurityGroupClient.class.cast(client).createSecurityGroupInRegionAndReturnId(null,
-               group2Name, group2Name);
-         Thread.sleep(100);// eventual consistent
-         ensureGroupsExist(group1Name, group2Name);
-         AWSSecurityGroupClient.class.cast(client).authorizeSecurityGroupIngressInRegion(null, group1Id,
-               IpPermissions.permit(IpProtocol.TCP).port(80));
-         assertEventually(new GroupHasPermission(client, group1Name, new TCPPort80AllIPs()));
-         Set<SecurityGroup> oneResult = client.describeSecurityGroupsInRegion(null, group1Name);
-         assertNotNull(oneResult);
-         assertEquals(oneResult.size(), 1);
-         final SecurityGroup group = oneResult.iterator().next();
-         assertEquals(group.getName(), group1Name);
-         IpPermissions group2CanHttpGroup1 = IpPermissions.permit(IpProtocol.TCP).port(80)
-               .originatingFromSecurityGroupId(group1Id);
-         AWSSecurityGroupClient.class.cast(client).authorizeSecurityGroupIngressInRegion(null, group2Id,
-               group2CanHttpGroup1);
-         assertEventually(new GroupHasPermission(client, group2Name, new Predicate<IpPermission>() {
-            @Override
-            public boolean apply(IpPermission arg0) {
-               return arg0.getTenantIdGroupNamePairs().equals(ImmutableMultimap.of(group.getOwnerId(), group1Name))
-                     && arg0.getFromPort() == 80 && arg0.getToPort() == 80 && arg0.getIpProtocol() == IpProtocol.TCP;
-            }
-         }));
-
-         AWSSecurityGroupClient.class.cast(client).revokeSecurityGroupIngressInRegion(null, group2Id,
-               group2CanHttpGroup1);
-         assertEventually(new GroupHasNoPermissions(client, group2Name));
-      } finally {
-         client.deleteSecurityGroupInRegion(null, group2Name);
-         client.deleteSecurityGroupInRegion(null, group1Name);
-      }
-   }
-}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/5f3b8d3f/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/BaseAWSEC2AsyncClientTest.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/BaseAWSEC2AsyncClientTest.java b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/BaseAWSEC2AsyncClientTest.java
deleted file mode 100644
index 3c712c1..0000000
--- a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/BaseAWSEC2AsyncClientTest.java
+++ /dev/null
@@ -1,135 +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.aws.ec2.services;
-
-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.aws.domain.Region;
-import org.jclouds.aws.ec2.AWSEC2ProviderMetadata;
-import org.jclouds.aws.ec2.config.AWSEC2RestClientModule;
-import org.jclouds.aws.filters.FormSigner;
-import org.jclouds.compute.domain.Image;
-import org.jclouds.date.DateService;
-import org.jclouds.ec2.compute.domain.RegionAndName;
-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.ConfiguresRestClient;
-import org.jclouds.rest.internal.BaseAsyncClientTest;
-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 BaseAWSEC2AsyncClientTest<T> extends BaseAsyncClientTest<T> {
-
-      @ConfiguresRestClient
-   protected static class StubAWSEC2RestClientModule extends AWSEC2RestClientModule {
-
-      @Override
-      protected String provideTimeStamp(DateService dateService) {
-         return "2009-11-08T15:54:08.897Z";
-      }
-
-      @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 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 StubAWSEC2RestClientModule();
-   }
-
-   protected String provider = "aws-ec2";
-
-   @Override
-   public AWSEC2ProviderMetadata createProviderMetadata(){
-      return new AWSEC2ProviderMetadata();
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/5f3b8d3f/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/MonitoringAsyncClientTest.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/MonitoringAsyncClientTest.java b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/MonitoringAsyncClientTest.java
deleted file mode 100644
index 837ac70..0000000
--- a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/MonitoringAsyncClientTest.java
+++ /dev/null
@@ -1,73 +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.aws.ec2.services;
-
-import static org.jclouds.reflect.Reflection2.method;
-
-import java.io.IOException;
-
-import org.jclouds.aws.ec2.xml.MonitoringStateHandler;
-import org.jclouds.http.functions.ParseSax;
-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 MonitoringAsyncClient}
- * 
- * @author Adrian Cole
- */
-// NOTE:without testName, this will not call @Before* and fail w/NPE during surefire
-@Test(groups = "unit", testName = "MonitoringAsyncClientTest")
-public class MonitoringAsyncClientTest extends BaseAWSEC2AsyncClientTest<MonitoringAsyncClient> {
-
-   public void testUnmonitorInstances() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(MonitoringAsyncClient.class, "unmonitorInstancesInRegion", String.class, String.class,
-            String[].class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "instance1", "instance2"));
-
-      assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1");
-      String payload = "Action=UnmonitorInstances&InstanceId.0=instance1&InstanceId.1=instance2";
-      assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n");
-      assertPayloadEquals(request, payload, "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ParseSax.class);
-      assertSaxResponseParserClassEquals(method, MonitoringStateHandler.class);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testMonitorInstances() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(MonitoringAsyncClient.class, "monitorInstancesInRegion", String.class, String.class,
-            String[].class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "instance1", "instance2"));
-
-      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=MonitorInstances&InstanceId.0=instance1&InstanceId.1=instance2",
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ParseSax.class);
-      assertSaxResponseParserClassEquals(method, MonitoringStateHandler.class);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/5f3b8d3f/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/MonitoringClientLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/MonitoringClientLiveTest.java b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/MonitoringClientLiveTest.java
deleted file mode 100644
index 1df3493..0000000
--- a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/MonitoringClientLiveTest.java
+++ /dev/null
@@ -1,65 +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.aws.ec2.services;
-
-import static org.testng.Assert.assertEquals;
-
-import java.util.Map;
-
-import org.jclouds.aws.ec2.AWSEC2ApiMetadata;
-import org.jclouds.aws.ec2.domain.MonitoringState;
-import org.jclouds.compute.internal.BaseComputeServiceContextLiveTest;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-/**
- * Tests behavior of {@code MonitoringClient}
- * 
- * @author Adrian Cole
- */
-@Test(groups = "live", singleThreaded = true)
-public class MonitoringClientLiveTest extends BaseComputeServiceContextLiveTest {
-   public MonitoringClientLiveTest() {
-      provider = "aws-ec2";
-   }
-
-   private MonitoringClient client;
-   private static final String DEFAULT_INSTANCE = "i-TODO";
-
-   
-   @Override
-   @BeforeClass(groups = { "integration", "live" })
-   public void setupContext() {
-      super.setupContext();
-      client = view.unwrap(AWSEC2ApiMetadata.CONTEXT_TOKEN).getApi().getMonitoringServices();
-   }
-
-   @Test(enabled = false)
-   // TODO get instance
-   public void testMonitorInstances() {
-      Map<String, MonitoringState> monitoringState = client.monitorInstancesInRegion(null, DEFAULT_INSTANCE);
-      assertEquals(monitoringState.get(DEFAULT_INSTANCE), MonitoringState.PENDING);
-   }
-
-   @Test(enabled = false)
-   // TODO get instance
-   public void testUnmonitorInstances() {
-      Map<String, MonitoringState> monitoringState = client.unmonitorInstancesInRegion(null, DEFAULT_INSTANCE);
-      assertEquals(monitoringState.get(DEFAULT_INSTANCE), MonitoringState.PENDING);
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/5f3b8d3f/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/PlacementGroupAsyncClientTest.java
----------------------------------------------------------------------
diff --git a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/PlacementGroupAsyncClientTest.java b/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/PlacementGroupAsyncClientTest.java
deleted file mode 100644
index 4f3eb18..0000000
--- a/providers/aws-ec2/src/test/java/org/jclouds/aws/ec2/services/PlacementGroupAsyncClientTest.java
+++ /dev/null
@@ -1,136 +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.aws.ec2.services;
-
-import static org.jclouds.reflect.Reflection2.method;
-
-import java.io.IOException;
-
-import org.jclouds.Fallbacks.EmptySetOnNotFoundOr404;
-import org.jclouds.Fallbacks.VoidOnNotFoundOr404;
-import org.jclouds.aws.ec2.xml.DescribePlacementGroupsResponseHandler;
-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 PlacementGroupAsyncClient}
- * 
- * @author Adrian Cole
- */
-// NOTE:without testName, this will not call @Before* and fail w/NPE during surefire
-@Test(groups = "unit", testName = "PlacementGroupAsyncClientTest")
-public class PlacementGroupAsyncClientTest extends BaseAWSEC2AsyncClientTest<PlacementGroupAsyncClient> {
-
-   public void testDeletePlacementGroup() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(PlacementGroupAsyncClient.class, "deletePlacementGroupInRegion", String.class,
-               String.class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "name"));
-
-      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=DeletePlacementGroup&GroupName=name",
-               "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, VoidOnNotFoundOr404.class);
-
-      checkFilters(request);
-   }
-
-   HttpRequest createPlacementGroup = HttpRequest.builder().method("POST")
-                                                 .endpoint("https://ec2.us-east-1.amazonaws.com/")
-                                                 .addHeader("Host", "ec2.us-east-1.amazonaws.com")
-                                                 .addFormParam("Action", "CreatePlacementGroup")
-                                                 .addFormParam("GroupName", "name")
-                                                 .addFormParam("Strategy", "cluster").build();
-
-   public void testCreatePlacementGroup() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(PlacementGroupAsyncClient.class, "createPlacementGroupInRegion", String.class,
-               String.class, String.class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "name", "cluster"));
-
-      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, filter.filter(createPlacementGroup).getPayload().getRawContent().toString(),
-            "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testCreatePlacementGroupDefault() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(PlacementGroupAsyncClient.class, "createPlacementGroupInRegion", String.class,
-               String.class);
-      GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "name"));
-
-      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=CreatePlacementGroup&Strategy=cluster&GroupName=name",
-               "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testDescribePlacementGroups() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(PlacementGroupAsyncClient.class, "describePlacementGroupsInRegion", String.class,
-               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=DescribePlacementGroups",
-               "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ParseSax.class);
-      assertSaxResponseParserClassEquals(method, DescribePlacementGroupsResponseHandler.class);
-      assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
-      checkFilters(request);
-   }
-
-   public void testDescribePlacementGroupsArgs() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(PlacementGroupAsyncClient.class, "describePlacementGroupsInRegion", 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=DescribePlacementGroups&GroupName.1=1&GroupName.2=2",
-               "application/x-www-form-urlencoded", false);
-
-      assertResponseParserClassEquals(method, request, ParseSax.class);
-      assertSaxResponseParserClassEquals(method, DescribePlacementGroupsResponseHandler.class);
-      assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
-      checkFilters(request);
-   }
-}