You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ra...@apache.org on 2014/12/23 05:26:59 UTC

[35/51] [partial] stratos git commit: dropping jclouds 1.8.0 clone

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/internal/BaseEC2ComputeServiceExpectTest.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/internal/BaseEC2ComputeServiceExpectTest.java b/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/internal/BaseEC2ComputeServiceExpectTest.java
deleted file mode 100644
index 4178e74..0000000
--- a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/internal/BaseEC2ComputeServiceExpectTest.java
+++ /dev/null
@@ -1,296 +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.compute.internal;
-
-import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS;
-
-import javax.ws.rs.core.MediaType;
-import java.util.Properties;
-
-import org.jclouds.compute.ComputeService;
-import org.jclouds.compute.ComputeServiceContext;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.http.HttpResponse;
-import org.testng.annotations.BeforeClass;
-
-public abstract class BaseEC2ComputeServiceExpectTest extends BaseEC2ComputeServiceContextExpectTest<ComputeService> {
-   protected String region;
-
-   @Override
-   protected Properties setupProperties() {
-      Properties properties = super.setupProperties();
-      properties.setProperty(PROPERTY_REGIONS, region);
-      properties.setProperty(provider + ".template", "osDescriptionMatches=.*fedora.*");
-      return properties;
-   }
-
-   protected HttpRequest describeAvailabilityZonesRequest;
-   protected HttpResponse describeAvailabilityZonesResponse;
-   protected HttpRequest describeImagesRequest;
-   protected HttpResponse describeImagesResponse;
-   protected HttpRequest createKeyPairRequest;
-   protected HttpResponse createKeyPairResponse;
-   protected HttpRequest createSecurityGroupRequest;
-   protected HttpResponse createSecurityGroupResponse;
-   protected HttpRequest describeSecurityGroupRequest;
-   protected HttpResponse describeSecurityGroupResponse;
-   protected HttpRequest authorizeSecurityGroupIngressRequest22;
-   protected HttpResponse authorizeSecurityGroupIngressResponse;
-   protected HttpRequest authorizeSecurityGroupIngressRequestGroup;
-   protected HttpRequest runInstancesRequest;
-   protected HttpResponse runInstancesResponse;
-   protected HttpRequest runThreeInstancesRequest;
-   protected HttpRequest runThreeToFourInstancesRequest;
-   protected HttpResponse runThreeInstancesResponse;
-   protected HttpRequest describeInstanceRequest;
-   protected HttpResponse describeInstanceResponse;
-   protected HttpRequest describeInstanceMultiIdsRequest;
-   protected HttpResponse describeInstanceMultiIdsResponse;
-   protected HttpRequest describeInstanceThreeIdsRequest;
-   protected HttpResponse describeInstanceThreeIdsResponse;
-   protected HttpRequest describeImageRequest;
-   protected HttpRequest createTagsRequest;
-   protected HttpResponse createTagsResponse;
-
-   public BaseEC2ComputeServiceExpectTest() {
-      region = "us-east-1";
-   }
-   
-   @BeforeClass
-   @Override
-   protected void setupDefaultRequests() {
-      super.setupDefaultRequests();
-      describeAvailabilityZonesRequest = 
-               formSigner.filter(HttpRequest.builder()
-                          .method("POST")
-                          .endpoint("https://ec2." + region + ".amazonaws.com/")
-                          .addHeader("Host", "ec2." + region + ".amazonaws.com")
-                          .addFormParam("Action", "DescribeAvailabilityZones").build());
-      
-      describeAvailabilityZonesResponse = 
-               HttpResponse.builder().statusCode(200)
-                           .payload(payloadFromResourceWithContentType(
-                                 "/availabilityZones-" + region + ".xml", MediaType.APPLICATION_XML)).build();
-      describeImagesRequest = 
-               formSigner.filter(HttpRequest.builder()
-                          .method("POST")
-                          .endpoint("https://ec2." + region + ".amazonaws.com/")
-                          .addHeader("Host", "ec2." + region + ".amazonaws.com")
-                          .addFormParam("Action", "DescribeImages").build());
-      
-      describeImagesResponse = 
-               HttpResponse.builder().statusCode(200)
-                           .payload(payloadFromResourceWithContentType(
-                                 "/describe_images.xml", MediaType.APPLICATION_XML)).build();
-      
-      createKeyPairRequest = 
-               formSigner.filter(HttpRequest.builder()
-                          .method("POST")
-                          .endpoint("https://ec2." + region + ".amazonaws.com/")
-                          .addHeader("Host", "ec2." + region + ".amazonaws.com")
-                          .addFormParam("Action", "CreateKeyPair")
-                          .addFormParam("KeyName", "jclouds#test#0").build());
-
-      createKeyPairResponse = 
-               HttpResponse.builder().statusCode(200)
-                           .payload(payloadFromResourceWithContentType(
-                                 "/create_keypair.xml", MediaType.APPLICATION_XML)).build();
-      
-      createSecurityGroupRequest = 
-               formSigner.filter(HttpRequest.builder()
-                          .method("POST")
-                          .endpoint("https://ec2." + region + ".amazonaws.com/")
-                          .addHeader("Host", "ec2." + region + ".amazonaws.com")
-                          .addFormParam("Action", "CreateSecurityGroup")
-                          .addFormParam("GroupDescription", "jclouds#test")
-                          .addFormParam("GroupName", "jclouds#test").build());
-
-      createSecurityGroupResponse = 
-               HttpResponse.builder().statusCode(200)
-                           .payload(payloadFromResourceWithContentType(
-                                 "/created_securitygroup.xml", MediaType.APPLICATION_XML)).build();
-
-      describeSecurityGroupRequest = 
-               formSigner.filter(HttpRequest.builder()
-                          .method("POST")
-                          .endpoint("https://ec2." + region + ".amazonaws.com/")
-                          .addHeader("Host", "ec2." + region + ".amazonaws.com")
-                          .addFormParam("Action", "DescribeSecurityGroups")
-                          .addFormParam("GroupName.1", "jclouds#test").build());
-      
-      describeSecurityGroupResponse = 
-               HttpResponse.builder().statusCode(200)
-                           .payload(payloadFromResourceWithContentType(
-                                 "/new_securitygroup.xml", MediaType.APPLICATION_XML)).build();
-      
-      authorizeSecurityGroupIngressRequest22 = 
-               formSigner.filter(HttpRequest.builder()
-                          .method("POST")
-                          .endpoint("https://ec2." + region + ".amazonaws.com/")
-                          .addHeader("Host", "ec2." + region + ".amazonaws.com")
-                          .addFormParam("Action", "AuthorizeSecurityGroupIngress")
-                          .addFormParam("CidrIp", "0.0.0.0/0")
-                          .addFormParam("FromPort", "22")
-                          .addFormParam("ToPort", "22")
-                          .addFormParam("GroupName", "jclouds#test")
-                          .addFormParam("IpProtocol", "tcp").build());
-      
-      authorizeSecurityGroupIngressRequestGroup = 
-               formSigner.filter(HttpRequest.builder()
-                          .method("POST")
-                          .endpoint("https://ec2." + region + ".amazonaws.com/")
-                          .addHeader("Host", "ec2." + region + ".amazonaws.com")
-                          .addFormParam("Action", "AuthorizeSecurityGroupIngress")
-                          .addFormParam("SourceSecurityGroupName", "jclouds#test")
-                          .addFormParam("SourceSecurityGroupOwnerId", "993194456877")
-                          .addFormParam("GroupName", "jclouds#test").build());
-      
-      authorizeSecurityGroupIngressResponse = 
-               HttpResponse.builder().statusCode(200)
-                           .payload(payloadFromResourceWithContentType(
-                                 "/authorize_securitygroup_ingress_response.xml", MediaType.APPLICATION_XML)).build();
-      
-      runInstancesRequest = 
-               formSigner.filter(HttpRequest.builder()
-                          .method("POST")
-                          .endpoint("https://ec2." + region + ".amazonaws.com/")
-                          .addHeader("Host", "ec2." + region + ".amazonaws.com")
-                          .addFormParam("Action", "RunInstances")
-                          .addFormParam("ImageId", "ami-be3adfd7")
-                          .addFormParam("InstanceType", "m1.small")
-                          .addFormParam("KeyName", "jclouds#test#0")
-                          .addFormParam("MaxCount", "1")
-                          .addFormParam("MinCount", "1")
-                          .addFormParam("SecurityGroup.1", "jclouds#test").build());
-      
-      runInstancesResponse = 
-               HttpResponse.builder().statusCode(200)
-                           .payload(payloadFromResourceWithContentType(
-                                 "/new_instance.xml", MediaType.APPLICATION_XML)).build();
-
-      runThreeInstancesRequest =
-              formSigner.filter(HttpRequest.builder()
-                      .method("POST")
-                      .endpoint("https://ec2." + region + ".amazonaws.com/")
-                      .addHeader("Host", "ec2." + region + ".amazonaws.com")
-                      .addFormParam("Action", "RunInstances")
-                      .addFormParam("ImageId", "ami-be3adfd7")
-                      .addFormParam("InstanceType", "m1.small")
-                      .addFormParam("KeyName", "jclouds#test#0")
-                      .addFormParam("MaxCount", "3")
-                      .addFormParam("MinCount", "3")
-                      .addFormParam("SecurityGroup.1", "jclouds#test").build());
-
-      runThreeToFourInstancesRequest =
-              formSigner.filter(HttpRequest.builder()
-                      .method("POST")
-                      .endpoint("https://ec2." + region + ".amazonaws.com/")
-                      .addHeader("Host", "ec2." + region + ".amazonaws.com")
-                      .addFormParam("Action", "RunInstances")
-                      .addFormParam("ImageId", "ami-be3adfd7")
-                      .addFormParam("InstanceType", "m1.small")
-                      .addFormParam("KeyName", "jclouds#test#0")
-                      .addFormParam("MaxCount", "4")
-                      .addFormParam("MinCount", "3")
-                      .addFormParam("SecurityGroup.1", "jclouds#test").build());
-
-      runThreeInstancesResponse =
-              HttpResponse.builder().statusCode(200)
-                      .payload(payloadFromResourceWithContentType(
-                              "/run_instances_three.xml", MediaType.APPLICATION_XML)).build();
-
-      describeInstanceRequest =
-               formSigner.filter(HttpRequest.builder()
-                       .method("POST")
-                       .endpoint("https://ec2." + region + ".amazonaws.com/")
-                       .addHeader("Host", "ec2." + region + ".amazonaws.com")
-                       .addFormParam("Action", "DescribeInstances")
-                       .addFormParam("InstanceId.1", "i-2baa5550").build());
-      
-      describeInstanceResponse = 
-               HttpResponse.builder().statusCode(200)
-                           .payload(payloadFromResourceWithContentType(
-                                 "/describe_instances_running-1.xml", MediaType.APPLICATION_XML)).build();
-
-      describeInstanceMultiIdsRequest = 
-               formSigner.filter(HttpRequest.builder()
-                          .method("POST")
-                          .endpoint("https://ec2." + region + ".amazonaws.com/")
-                          .addHeader("Host", "ec2." + region + ".amazonaws.com")
-                          .addFormParam("Action", "DescribeInstances")
-                          .addFormParam("InstanceId.1", "i-2baa5550")
-                          .addFormParam("InstanceId.2", "i-abcd1234").build());
-      
-      describeInstanceMultiIdsResponse = 
-               HttpResponse.builder().statusCode(200)
-                           .payload(payloadFromResourceWithContentType(
-                                 "/describe_instances_multiple.xml", MediaType.APPLICATION_XML)).build();
-
-      describeInstanceThreeIdsRequest =
-              formSigner.filter(HttpRequest.builder()
-                      .method("POST")
-                      .endpoint("https://ec2." + region + ".amazonaws.com/")
-                      .addHeader("Host", "ec2." + region + ".amazonaws.com")
-                      .addFormParam("Action", "DescribeInstances")
-                      .addFormParam("InstanceId.1", "i-2ba64342")
-                      .addFormParam("InstanceId.2", "i-2bc64242")
-                      .addFormParam("InstanceId.3", "i-2be64332").build());
-
-      describeInstanceThreeIdsResponse =
-              HttpResponse.builder().statusCode(200)
-                      .payload(payloadFromResourceWithContentType(
-                              "/describe_instances_multiple.xml", MediaType.APPLICATION_XML)).build();
-
-      //TODO: duplicate.. shouldn't need this
-      describeImageRequest = 
-               formSigner.filter(HttpRequest.builder()
-                          .method("POST")
-                          .endpoint("https://ec2." + region + ".amazonaws.com/")
-                          .addHeader("Host", "ec2." + region + ".amazonaws.com")
-                          .addFormParam("ImageId.1", "ami-aecd60c7")
-                          .addFormParam("Action", "DescribeImages").build());
-
-      createTagsRequest =
-              formSigner.filter(HttpRequest.builder()
-                      .method("POST")
-                      .endpoint("https://ec2.us-east-1.amazonaws.com/")
-                      .addHeader("Host", "ec2.us-east-1.amazonaws.com")
-                      .payload(
-                              payloadFromStringWithContentType(
-                                      "Action=CreateTags" +
-                                              "&ResourceId.1=i-2baa5550" +
-                                              "&Signature=Trp5e5%2BMqeBeBZbLYa9s9gxahQ9nkx6ETfsGl82IV8Y%3D" +
-                                              "&SignatureMethod=HmacSHA256" +
-                                              "&SignatureVersion=2" +
-                                              "&Tag.1.Key=Name" +
-                                              "&Tag.1.Value=test-2baa5550" +
-                                              "&Timestamp=2012-04-16T15%3A54%3A08.897Z" +
-                                              "&Version=2010-08-31" +
-                                              "&AWSAccessKeyId=identity",
-                                      "application/x-www-form-urlencoded"))
-                      .build());
-
-      createTagsResponse = HttpResponse.builder().statusCode(200).build();
-
-   }
-
-   @Override
-   public ComputeService apply(ComputeServiceContext input) {
-      return input.getComputeService();
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/internal/EC2TemplateBuilderImplTest.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/internal/EC2TemplateBuilderImplTest.java b/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/internal/EC2TemplateBuilderImplTest.java
deleted file mode 100644
index 9c7de8d..0000000
--- a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/internal/EC2TemplateBuilderImplTest.java
+++ /dev/null
@@ -1,230 +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.compute.internal;
-
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-import static org.jclouds.ec2.compute.domain.EC2HardwareBuilder.c1_medium;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.fail;
-
-import java.util.NoSuchElementException;
-import java.util.Set;
-
-import javax.inject.Provider;
-
-import org.jclouds.collect.Memoized;
-import org.jclouds.compute.domain.Hardware;
-import org.jclouds.compute.domain.Image;
-import org.jclouds.compute.domain.OperatingSystem;
-import org.jclouds.compute.domain.TemplateBuilder;
-import org.jclouds.compute.domain.internal.TemplateBuilderImpl;
-import org.jclouds.compute.domain.internal.TemplateBuilderImplTest;
-import org.jclouds.compute.options.TemplateOptions;
-import org.jclouds.compute.strategy.GetImageStrategy;
-import org.jclouds.compute.suppliers.ImageCacheSupplier;
-import org.jclouds.domain.Location;
-import org.jclouds.ec2.compute.domain.RegionAndName;
-import org.jclouds.ec2.compute.functions.ImagesToRegionAndIdMap;
-import org.jclouds.ec2.compute.options.EC2TemplateOptions;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Functions;
-import com.google.common.base.Supplier;
-import com.google.common.base.Suppliers;
-import com.google.common.cache.CacheBuilder;
-import com.google.common.cache.CacheLoader;
-import com.google.common.cache.LoadingCache;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Sets;
-
-@Test(groups = "unit", singleThreaded = true)
-public class EC2TemplateBuilderImplTest extends TemplateBuilderImplTest {
-
-   @Override
-   protected TemplateOptions provideTemplateOptions() {
-      return new EC2TemplateOptions();
-   }
-
-   @Override
-   protected EC2TemplateBuilderImpl createTemplateBuilder(final Image knownImage,
-         @Memoized Supplier<Set<? extends Location>> locations, @Memoized final Supplier<Set<? extends Image>> images,
-         @Memoized Supplier<Set<? extends Hardware>> sizes, Location defaultLocation,
-         Provider<TemplateOptions> optionsProvider, Provider<TemplateBuilder> templateBuilderProvider, GetImageStrategy getImageStrategy) {
-
-      LoadingCache<RegionAndName, ? extends Image> imageMap;
-      if (knownImage != null) {
-         final RegionAndName knownRegionAndName = new RegionAndName(knownImage.getLocation().getId(), knownImage.getProviderId());
-
-         imageMap = CacheBuilder.newBuilder().build(new CacheLoader<RegionAndName, Image>() {
-            @Override
-            public Image load(RegionAndName from) {
-               return from.equals(knownRegionAndName) ? knownImage : null;
-            }
-
-         });
-         
-      } else {
-         imageMap = CacheBuilder.newBuilder().build(CacheLoader.from(Functions.forMap(
-                  ImagesToRegionAndIdMap.imagesToMap(images.get()))));
-      }
-
-      return new EC2TemplateBuilderImpl(locations, new ImageCacheSupplier(images, 60), sizes, Suppliers.ofInstance(defaultLocation),
-            optionsProvider, templateBuilderProvider, getImageStrategy, Suppliers.<LoadingCache<RegionAndName, ? extends Image>>ofInstance(imageMap));
-   }
-
-   @Override
-   protected String getProviderFormatId(String uniqueLabel) {
-       return "us-east-1/" + uniqueLabel;
-   }
-
-   @Override
-   @Test
-   public void testHardwareWithImageIdPredicateOnlyAcceptsImageWhenLocationNull() {
-      // not possible to have null region in ec2
-   }
-   
-   @SuppressWarnings("unchecked")
-   @Test
-   public void testParseOnDemand() {
-
-      Supplier<Set<? extends Location>> locations = Suppliers.<Set<? extends Location>> ofInstance(ImmutableSet
-            .<Location> of(region));
-      Supplier<Set<? extends Image>> images = Suppliers.<Set<? extends Image>> ofInstance(Sets
-            .<Image> newLinkedHashSet());
-      Supplier<Set<? extends Hardware>> sizes = Suppliers.<Set<? extends Hardware>> ofInstance(ImmutableSet
-            .<Hardware> of(c1_medium().build()));
-
-      Provider<TemplateOptions> optionsProvider = createMock(Provider.class);
-      Provider<TemplateBuilder> templateBuilderProvider = createMock(Provider.class);
-      TemplateOptions defaultOptions = createMock(TemplateOptions.class);
-      Image knownImage = createMock(Image.class);
-      OperatingSystem os = createMock(OperatingSystem.class);
-      GetImageStrategy getImageStrategy = createMock(GetImageStrategy.class);
-
-      expect(optionsProvider.get()).andReturn(defaultOptions);
-
-      expect(knownImage.getId()).andReturn("us-east-1/ami").atLeastOnce();
-      expect(knownImage.getLocation()).andReturn(region).atLeastOnce();
-      expect(knownImage.getName()).andReturn(null).atLeastOnce();
-      expect(knownImage.getDescription()).andReturn(null).atLeastOnce();
-      expect(knownImage.getVersion()).andReturn(null).atLeastOnce();
-      expect(knownImage.getProviderId()).andReturn("ami").atLeastOnce();
-
-      expect(knownImage.getOperatingSystem()).andReturn(os).atLeastOnce();
-
-      expect(os.getName()).andReturn(null).atLeastOnce();
-      expect(os.getVersion()).andReturn(null).atLeastOnce();
-      expect(os.getFamily()).andReturn(null).atLeastOnce();
-      expect(os.getDescription()).andReturn(null).atLeastOnce();
-      expect(os.getArch()).andReturn("paravirtual").atLeastOnce();
-      expect(os.is64Bit()).andReturn(false).atLeastOnce();
-
-      replay(knownImage, os, defaultOptions, optionsProvider, templateBuilderProvider, getImageStrategy);
-
-      TemplateBuilderImpl template = createTemplateBuilder(knownImage, locations, images, sizes, region,
-            optionsProvider, templateBuilderProvider, getImageStrategy);
-
-      assertEquals(template.imageId("us-east-1/ami").build().getImage(), knownImage);
-
-      verify(knownImage, os, defaultOptions, optionsProvider, templateBuilderProvider, getImageStrategy);
-   }
-
-   @SuppressWarnings("unchecked")
-   @Test
-   public void testParseOnDemandWithoutRegionEncodedIntoId() {
-
-      Supplier<Set<? extends Location>> locations = Suppliers.<Set<? extends Location>> ofInstance(ImmutableSet
-            .<Location> of(region));
-      Supplier<Set<? extends Image>> images = Suppliers.<Set<? extends Image>> ofInstance(ImmutableSet.<Image> of());
-      Supplier<Set<? extends Hardware>> sizes = Suppliers.<Set<? extends Hardware>> ofInstance(ImmutableSet
-            .<Hardware> of(c1_medium().build()));
-
-      Provider<TemplateOptions> optionsProvider = createMock(Provider.class);
-      Provider<TemplateBuilder> templateBuilderProvider = createMock(Provider.class);
-      TemplateOptions defaultOptions = createMock(TemplateOptions.class);
-      Image knownImage = createMock(Image.class);
-      GetImageStrategy getImageStrategy = createMock(GetImageStrategy.class);
-      expect(knownImage.getId()).andReturn("region/ami").anyTimes();
-      expect(knownImage.getProviderId()).andReturn("ami").anyTimes();
-      expect(knownImage.getLocation()).andReturn(region).anyTimes();
-
-      expect(optionsProvider.get()).andReturn(defaultOptions);
-
-      replay(knownImage,  defaultOptions, optionsProvider, templateBuilderProvider, getImageStrategy);
-
-      TemplateBuilderImpl template = createTemplateBuilder(knownImage, locations, images, sizes, region,
-            optionsProvider, templateBuilderProvider, getImageStrategy);
-      try {
-         template.imageId("ami").build();
-         fail("Expected IllegalArgumentException");
-      } catch (IllegalArgumentException e) {
-
-      }
-
-      verify(knownImage,  defaultOptions, optionsProvider, templateBuilderProvider, getImageStrategy);
-   }
-
-   @SuppressWarnings("unchecked")
-   @Test(expectedExceptions = NoSuchElementException.class)
-   public void testParseOnDemandNotFound() {
-
-      Supplier<Set<? extends Location>> locations = Suppliers.<Set<? extends Location>> ofInstance(ImmutableSet
-            .<Location> of(region));
-      Supplier<Set<? extends Image>> images = Suppliers.<Set<? extends Image>> ofInstance(ImmutableSet.<Image> of());
-      Supplier<Set<? extends Hardware>> sizes = Suppliers.<Set<? extends Hardware>> ofInstance(ImmutableSet
-            .<Hardware> of(c1_medium().build()));
-
-      Location defaultLocation = createMock(Location.class);
-      Provider<TemplateOptions> optionsProvider = createMock(Provider.class);
-      Provider<TemplateBuilder> templateBuilderProvider = createMock(Provider.class);
-      TemplateOptions defaultOptions = createMock(TemplateOptions.class);
-      GetImageStrategy getImageStrategy = createMock(GetImageStrategy.class);
-      Image knownImage = createMock(Image.class);
-      expect(knownImage.getId()).andReturn("region/ami").anyTimes();
-      expect(knownImage.getProviderId()).andReturn("ami").anyTimes();
-      expect(knownImage.getLocation()).andReturn(region).anyTimes();
-
-      expect(defaultLocation.getId()).andReturn("region");
-      expect(optionsProvider.get()).andReturn(defaultOptions);
-
-      replay(knownImage,  defaultOptions, defaultLocation, optionsProvider, templateBuilderProvider, getImageStrategy);
-
-      TemplateBuilderImpl template = createTemplateBuilder(knownImage, locations, images, sizes, defaultLocation,
-            optionsProvider, templateBuilderProvider, getImageStrategy);
-
-      assertEquals(template.imageId("region/bad").build().getImage(), knownImage);
-
-      verify(knownImage,  defaultOptions, defaultLocation, optionsProvider, templateBuilderProvider, getImageStrategy);
-   }
-
-   // The EC2 provider already overrides the getImage method so this test is not useful for EC2
-   @Override
-   @Test(enabled = false)
-   public void testFindImageWithIdDefaultToGetImageStrategy() {
-
-   }
-
-   // The EC2 provider already overrides the getImage method so this test is not useful for EC2
-   @Override
-   public void testFindImageWithIdDefaultToGetImageStrategyAndPopulatesTheCache() {
-
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/loaders/CreateSecurityGroupIfNeededTest.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/loaders/CreateSecurityGroupIfNeededTest.java b/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/loaders/CreateSecurityGroupIfNeededTest.java
deleted file mode 100644
index 98ee834..0000000
--- a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/loaders/CreateSecurityGroupIfNeededTest.java
+++ /dev/null
@@ -1,105 +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.compute.loaders;
-
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.createNiceMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.expectLastCall;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-import static org.testng.Assert.assertEquals;
-
-import java.util.Set;
-import java.util.concurrent.ExecutionException;
-
-import org.jclouds.ec2.compute.domain.RegionAndName;
-import org.jclouds.ec2.compute.domain.RegionNameAndIngressRules;
-import org.jclouds.ec2.domain.SecurityGroup;
-import org.jclouds.ec2.domain.UserIdGroupPair;
-import org.jclouds.ec2.features.SecurityGroupApi;
-import org.jclouds.net.domain.IpProtocol;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Predicate;
-import com.google.common.base.Predicates;
-import com.google.common.collect.ImmutableSet;
-
-@Test(groups = "unit", singleThreaded = true, testName = "CreateSecurityGroupIfNeeded")
-public class CreateSecurityGroupIfNeededTest {
-
-   @SuppressWarnings("unchecked")
-   @Test
-   public void testWhenPort22AndToItselfAuthorizesIngressTwice() throws ExecutionException {
-
-      SecurityGroupApi client = createMock(SecurityGroupApi.class);
-      Predicate<RegionAndName> tester = Predicates.alwaysTrue();
-
-      SecurityGroup group = createNiceMock(SecurityGroup.class);
-      Set<SecurityGroup> groups = ImmutableSet.<SecurityGroup> of(group);
-
-      client.createSecurityGroupInRegion("region", "group", "group");
-      client.authorizeSecurityGroupIngressInRegion("region", "group", IpProtocol.TCP, 22, 22, "0.0.0.0/0");
-      expect(client.describeSecurityGroupsInRegion("region", "group")).andReturn(Set.class.cast(groups));
-      expect(group.getOwnerId()).andReturn("ownerId");
-      client.authorizeSecurityGroupIngressInRegion("region", "group", new UserIdGroupPair("ownerId", "group"));
-
-      replay(client);
-      replay(group);
-
-      CreateSecurityGroupIfNeeded function = new CreateSecurityGroupIfNeeded(client, tester);
-
-      assertEquals("group", function.load(new RegionNameAndIngressRules("region", "group", new int[] { 22 }, true)));
-
-      verify(client);
-      verify(group);
-
-   }
-
-   @Test
-   public void testIllegalStateExceptionCreatingGroupJustReturns() throws ExecutionException {
-
-      SecurityGroupApi client = createMock(SecurityGroupApi.class);
-      Predicate<RegionAndName> tester = Predicates.alwaysTrue();
-
-      client.createSecurityGroupInRegion("region", "group", "group");
-      expectLastCall().andThrow(new IllegalStateException());
-
-      replay(client);
-
-      CreateSecurityGroupIfNeeded function = new CreateSecurityGroupIfNeeded(client, tester);
-
-      assertEquals("group", function.load(new RegionNameAndIngressRules("region", "group", new int[] { 22 }, true)));
-
-      verify(client);
-
-   }
-
-   @Test(expectedExceptions = RuntimeException.class)
-   public void testWhenEventualConsistencyExpiresIllegalStateException() throws ExecutionException {
-
-      SecurityGroupApi client = createMock(SecurityGroupApi.class);
-      Predicate<RegionAndName> tester = Predicates.alwaysFalse();
-
-      client.createSecurityGroupInRegion("region", "group", "group");
-
-      replay(client);
-
-      CreateSecurityGroupIfNeeded function = new CreateSecurityGroupIfNeeded(client, tester);
-      function.load(new RegionNameAndIngressRules("region", "group", new int[] { 22 }, true));
-   }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/loaders/LoadPublicIpForInstanceOrNullTest.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/loaders/LoadPublicIpForInstanceOrNullTest.java b/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/loaders/LoadPublicIpForInstanceOrNullTest.java
deleted file mode 100644
index fde64ca..0000000
--- a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/loaders/LoadPublicIpForInstanceOrNullTest.java
+++ /dev/null
@@ -1,103 +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.compute.loaders;
-
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-import static org.testng.Assert.assertEquals;
-
-import org.jclouds.ec2.EC2Api;
-import org.jclouds.ec2.compute.domain.RegionAndName;
-import org.jclouds.ec2.domain.PublicIpInstanceIdPair;
-import org.jclouds.ec2.features.ElasticIPAddressApi;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Optional;
-import com.google.common.collect.ImmutableSet;
-
-@Test(groups = "unit", singleThreaded = true, testName = "LoadPublicIpForInstanceOrNullTest")
-public class LoadPublicIpForInstanceOrNullTest {
-
-   @Test
-   public void testReturnsPublicIpOnMatch() throws Exception {
-      EC2Api client = createMock(EC2Api.class);
-      ElasticIPAddressApi ipClient = createMock(ElasticIPAddressApi.class);
-
-      expect(client.getElasticIPAddressApi()).andReturn((Optional) Optional.of(ipClient)).atLeastOnce();
-      expect(ipClient.describeAddressesInRegion("region")).andReturn(
-               ImmutableSet.<PublicIpInstanceIdPair> of(new PublicIpInstanceIdPair("region", "1.1.1.1", "i-blah")))
-               .atLeastOnce();
-
-      replay(client);
-      replay(ipClient);
-
-      LoadPublicIpForInstanceOrNull parser = new LoadPublicIpForInstanceOrNull(client);
-
-      assertEquals(parser.load(new RegionAndName("region", "i-blah")), "1.1.1.1");
-
-      verify(client);
-      verify(ipClient);
-   }
-
-   @Test
-   public void testReturnsNullWhenNotFound() throws Exception {
-      EC2Api client = createMock(EC2Api.class);
-      ElasticIPAddressApi ipClient = createMock(ElasticIPAddressApi.class);
-
-      expect(client.getElasticIPAddressApi()).andReturn((Optional) Optional.of(ipClient)).atLeastOnce();
-
-      expect(ipClient.describeAddressesInRegion("region")).andReturn(ImmutableSet.<PublicIpInstanceIdPair> of())
-               .atLeastOnce();
-
-      replay(client);
-      replay(ipClient);
-
-      LoadPublicIpForInstanceOrNull parser = new LoadPublicIpForInstanceOrNull(client);
-
-      assertEquals(parser.load(new RegionAndName("region", "i-blah")), null);
-
-      verify(client);
-      verify(ipClient);
-
-   }
-
-   @Test
-   public void testReturnsNullWhenNotAssigned() throws Exception {
-      EC2Api client = createMock(EC2Api.class);
-      ElasticIPAddressApi ipClient = createMock(ElasticIPAddressApi.class);
-
-      expect(client.getElasticIPAddressApi()).andReturn((Optional) Optional.of(ipClient)).atLeastOnce();
-
-      expect(ipClient.describeAddressesInRegion("region")).andReturn(
-               ImmutableSet.<PublicIpInstanceIdPair> of(new PublicIpInstanceIdPair("region", "1.1.1.1", null)))
-               .atLeastOnce();
-
-      replay(client);
-      replay(ipClient);
-
-      LoadPublicIpForInstanceOrNull parser = new LoadPublicIpForInstanceOrNull(client);
-
-      assertEquals(parser.load(new RegionAndName("region", "i-blah")), null);
-
-      verify(client);
-      verify(ipClient);
-
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/loaders/RegionAndIdToImageTest.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/loaders/RegionAndIdToImageTest.java b/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/loaders/RegionAndIdToImageTest.java
deleted file mode 100644
index 86ff871..0000000
--- a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/loaders/RegionAndIdToImageTest.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.compute.loaders;
-
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.createNiceMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-import static org.jclouds.ec2.options.DescribeImagesOptions.Builder.imageIds;
-import static org.testng.Assert.assertEquals;
-
-import java.util.NoSuchElementException;
-import java.util.Set;
-import java.util.concurrent.ExecutionException;
-
-import org.jclouds.compute.domain.Image;
-import org.jclouds.ec2.EC2Api;
-import org.jclouds.ec2.compute.domain.RegionAndName;
-import org.jclouds.ec2.compute.functions.EC2ImageParser;
-import org.jclouds.ec2.features.AMIApi;
-import org.jclouds.rest.ResourceNotFoundException;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Optional;
-import com.google.common.collect.ImmutableSet;
-
-@Test(groups = "unit")
-public class RegionAndIdToImageTest {
-
-   @SuppressWarnings("unchecked")
-   @Test
-   public void testApply() throws ExecutionException {
-
-      EC2ImageParser parser = createMock(EC2ImageParser.class);
-      EC2Api caller = createMock(EC2Api.class);
-      AMIApi client = createMock(AMIApi.class);
-
-      org.jclouds.ec2.domain.Image ec2Image = createMock(org.jclouds.ec2.domain.Image.class);
-      Image image = createNiceMock(Image.class);
-      Set<? extends org.jclouds.ec2.domain.Image> images = ImmutableSet.<org.jclouds.ec2.domain.Image> of(ec2Image);
-
-      expect(caller.getAMIApi()).andReturn((Optional) Optional.of(client)).atLeastOnce();
-      expect(client.describeImagesInRegion("region", imageIds("ami"))).andReturn(Set.class.cast(images));
-      expect(parser.apply(ec2Image)).andReturn(image);
-
-      replay(caller);
-      replay(image);
-      replay(parser);
-      replay(client);
-
-      RegionAndIdToImage function = new RegionAndIdToImage(parser, caller);
-
-      assertEquals(function.load(new RegionAndName("region", "ami")), image);
-
-      verify(caller);
-      verify(image);
-      verify(image);
-      verify(client);
-
-   }
-
-   @SuppressWarnings("unchecked")
-   @Test(expectedExceptions = ExecutionException.class)
-   public void testApplyNotFoundMakesExecutionException() throws ExecutionException {
-
-      EC2ImageParser parser = createMock(EC2ImageParser.class);
-      EC2Api caller = createMock(EC2Api.class);
-      AMIApi client = createMock(AMIApi.class);
-
-      org.jclouds.ec2.domain.Image ec2Image = createMock(org.jclouds.ec2.domain.Image.class);
-      Image image = createNiceMock(Image.class);
-      Set<? extends org.jclouds.ec2.domain.Image> images = ImmutableSet.<org.jclouds.ec2.domain.Image> of(ec2Image);
-
-      expect(caller.getAMIApi()).andReturn((Optional) Optional.of(client)).atLeastOnce();
-      expect(client.describeImagesInRegion("region", imageIds("ami"))).andReturn(Set.class.cast(images));
-      expect(parser.apply(ec2Image)).andThrow(new ResourceNotFoundException());
-
-      replay(caller);
-      replay(image);
-      replay(parser);
-      replay(client);
-
-      RegionAndIdToImage function = new RegionAndIdToImage(parser, caller);
-
-      assertEquals(function.load(new RegionAndName("region", "ami")), null);
-
-      verify(caller);
-      verify(image);
-      verify(parser);
-      verify(client);
-
-   }
-
-   @SuppressWarnings("unchecked")
-   @Test(expectedExceptions = ExecutionException.class)
-   public void testApplyNoSuchElementExceptionMakesExecutionException() throws ExecutionException {
-
-      EC2ImageParser parser = createMock(EC2ImageParser.class);
-      EC2Api caller = createMock(EC2Api.class);
-      AMIApi client = createMock(AMIApi.class);
-
-      org.jclouds.ec2.domain.Image ec2Image = createMock(org.jclouds.ec2.domain.Image.class);
-      Image image = createNiceMock(Image.class);
-      Set<? extends org.jclouds.ec2.domain.Image> images = ImmutableSet.<org.jclouds.ec2.domain.Image> of(ec2Image);
-
-      expect(caller.getAMIApi()).andReturn((Optional) Optional.of(client)).atLeastOnce();
-      expect(client.describeImagesInRegion("region", imageIds("ami"))).andReturn(Set.class.cast(images));
-      expect(parser.apply(ec2Image)).andThrow(new NoSuchElementException());
-
-      replay(caller);
-      replay(image);
-      replay(parser);
-      replay(client);
-
-      RegionAndIdToImage function = new RegionAndIdToImage(parser, caller);
-
-      assertEquals(function.load(new RegionAndName("region", "ami")), null);
-
-      verify(caller);
-      verify(image);
-      verify(parser);
-      verify(client);
-
-   }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/options/EC2TemplateOptionsTest.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/options/EC2TemplateOptionsTest.java b/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/options/EC2TemplateOptionsTest.java
deleted file mode 100644
index a3f6cde..0000000
--- a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/options/EC2TemplateOptionsTest.java
+++ /dev/null
@@ -1,325 +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.compute.options;
-
-import static org.jclouds.ec2.compute.options.EC2TemplateOptions.Builder.authorizePublicKey;
-import static org.jclouds.ec2.compute.options.EC2TemplateOptions.Builder.blockOnPort;
-import static org.jclouds.ec2.compute.options.EC2TemplateOptions.Builder.inboundPorts;
-import static org.jclouds.ec2.compute.options.EC2TemplateOptions.Builder.installPrivateKey;
-import static org.jclouds.ec2.compute.options.EC2TemplateOptions.Builder.keyPair;
-import static org.jclouds.ec2.compute.options.EC2TemplateOptions.Builder.noKeyPair;
-import static org.jclouds.ec2.compute.options.EC2TemplateOptions.Builder.securityGroups;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-
-import java.io.IOException;
-
-import com.google.common.collect.ImmutableSet;
-import org.jclouds.compute.options.TemplateOptions;
-import org.testng.annotations.Test;
-
-/**
- * Tests possible uses of EC2TemplateOptions and EC2TemplateOptions.Builder.*
- */
-public class EC2TemplateOptionsTest {
-
-   public void testAs() {
-      TemplateOptions options = new EC2TemplateOptions();
-      assertEquals(options.as(EC2TemplateOptions.class), options);
-   }
-
-   @Test(expectedExceptions = NullPointerException.class, expectedExceptionsMessageRegExp = "all security groups must be non-empty")
-   public void testsecurityGroupsIterableBadFormat() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      options.securityGroups(ImmutableSet.of("group1", ""));
-   }
-
-   @Test(expectedExceptions = IllegalArgumentException.class)
-   public void testsecurityGroupsIterableEmptyNotOk() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      options.securityGroups(ImmutableSet.<String> of());
-   }
-
-   @Test
-   public void testsecurityGroupsIterable() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      options.securityGroups(ImmutableSet.of("group1", "group2"));
-      assertEquals(options.getGroups(), ImmutableSet.of("group1", "group2"));
-
-   }
-
-   @Test
-   public void testsecurityGroupsIterableStatic() {
-      EC2TemplateOptions options = securityGroups(ImmutableSet.of("group1", "group2"));
-      assertEquals(options.getGroups(), ImmutableSet.of("group1", "group2"));
-   }
-
-   @Test(expectedExceptions = NullPointerException.class, expectedExceptionsMessageRegExp = "all security groups must be non-empty")
-   public void testsecurityGroupsVarArgsBadFormat() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      options.securityGroups("mygroup", "");
-   }
-
-   @Test
-   public void testsecurityGroupsVarArgs() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      options.securityGroups("group1", "group2");
-      assertEquals(options.getGroups(), ImmutableSet.of("group1", "group2"));
-
-   }
-
-   @Test(expectedExceptions = IllegalArgumentException.class)
-   public void testsecurityGroupsVarArgsEmptyNotOk() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      options.securityGroups();
-   }
-
-   @Test
-   public void testDefaultGroupsVarArgsEmpty() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      assertEquals(options.getGroups(), ImmutableSet.of());
-   }
-
-   @Test
-   public void testsecurityGroupsVarArgsStatic() {
-      EC2TemplateOptions options = securityGroups("group1", "group2");
-      assertEquals(options.getGroups(), ImmutableSet.of("group1", "group2"));
-   }
-
-   @Test(expectedExceptions = NullPointerException.class, expectedExceptionsMessageRegExp = "use noKeyPair option to request boot without a keypair")
-   public void testkeyPairBadFormat() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      options.keyPair("");
-   }
-
-   @Test(expectedExceptions = IllegalStateException.class)
-   public void testkeyPairAndNoKeyPair() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      options.keyPair("mykeypair");
-      options.noKeyPair();
-   }
-
-   @Test(expectedExceptions = IllegalStateException.class)
-   public void testNoKeyPairAndKeyPair() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      options.noKeyPair();
-      options.keyPair("mykeypair");
-   }
-
-   @Test
-   public void testkeyPair() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      options.keyPair("mykeypair");
-      assertEquals(options.getKeyPair(), "mykeypair");
-   }
-
-   @Test
-   public void testNullkeyPair() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      assertEquals(options.getKeyPair(), null);
-   }
-
-   @Test
-   public void testkeyPairStatic() {
-      EC2TemplateOptions options = keyPair("mykeypair");
-      assertEquals(options.getKeyPair(), "mykeypair");
-   }
-
-   @Test(expectedExceptions = NullPointerException.class)
-   public void testkeyPairNPE() {
-      keyPair(null);
-   }
-
-   @Test
-   public void testnoKeyPair() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      options.noKeyPair();
-      assertEquals(options.getKeyPair(), null);
-      assert !options.shouldAutomaticallyCreateKeyPair();
-   }
-
-   @Test
-   public void testFalsenoKeyPair() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      assertEquals(options.getKeyPair(), null);
-      assert options.shouldAutomaticallyCreateKeyPair();
-   }
-
-   @Test
-   public void testnoKeyPairStatic() {
-      EC2TemplateOptions options = noKeyPair();
-      assertEquals(options.getKeyPair(), null);
-      assert !options.shouldAutomaticallyCreateKeyPair();
-   }
-
-   // superclass tests
-   @Test(expectedExceptions = IllegalArgumentException.class)
-   public void testinstallPrivateKeyBadFormat() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      options.installPrivateKey("whompy");
-   }
-
-   @Test
-   public void testinstallPrivateKey() throws IOException {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      options.installPrivateKey("-----BEGIN RSA PRIVATE KEY-----");
-      assertEquals(options.getPrivateKey(), "-----BEGIN RSA PRIVATE KEY-----");
-   }
-
-   @Test
-   public void testNullinstallPrivateKey() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      assertEquals(options.getPrivateKey(), null);
-   }
-
-   @Test
-   public void testinstallPrivateKeyStatic() throws IOException {
-      EC2TemplateOptions options = installPrivateKey("-----BEGIN RSA PRIVATE KEY-----");
-      assertEquals(options.getPrivateKey(), "-----BEGIN RSA PRIVATE KEY-----");
-   }
-
-   @Test(expectedExceptions = NullPointerException.class)
-   public void testinstallPrivateKeyNPE() {
-      installPrivateKey(null);
-   }
-
-   @Test(expectedExceptions = IllegalArgumentException.class)
-   public void testauthorizePublicKeyBadFormat() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      options.authorizePublicKey("whompy");
-   }
-
-   @Test
-   public void testauthorizePublicKey() throws IOException {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      options.authorizePublicKey("ssh-rsa");
-      assertEquals(options.getPublicKey(), "ssh-rsa");
-   }
-
-   @Test
-   public void testNullauthorizePublicKey() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      assertEquals(options.getPublicKey(), null);
-   }
-
-   @Test
-   public void testauthorizePublicKeyStatic() throws IOException {
-      EC2TemplateOptions options = authorizePublicKey("ssh-rsa");
-      assertEquals(options.getPublicKey(), "ssh-rsa");
-   }
-
-   @Test(expectedExceptions = NullPointerException.class)
-   public void testauthorizePublicKeyNPE() {
-      authorizePublicKey(null);
-   }
-
-   @Test(expectedExceptions = IllegalArgumentException.class)
-   public void testblockOnPortBadFormat() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      options.blockOnPort(-1, -1);
-   }
-
-   @Test
-   public void testblockOnPort() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      options.blockOnPort(22, 30);
-      assertEquals(options.getPort(), 22);
-      assertEquals(options.getSeconds(), 30);
-
-   }
-
-   @Test
-   public void testNullblockOnPort() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      assertEquals(options.getPort(), -1);
-      assertEquals(options.getSeconds(), -1);
-   }
-
-   @Test
-   public void testblockOnPortStatic() {
-      EC2TemplateOptions options = blockOnPort(22, 30);
-      assertEquals(options.getPort(), 22);
-      assertEquals(options.getSeconds(), 30);
-   }
-
-   @Test(expectedExceptions = IllegalArgumentException.class)
-   public void testinboundPortsBadFormat() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      options.inboundPorts(-1, -1);
-   }
-
-   @Test
-   public void testinboundPorts() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      options.inboundPorts(22, 30);
-      assertEquals(options.getInboundPorts()[0], 22);
-      assertEquals(options.getInboundPorts()[1], 30);
-
-   }
-
-   @Test
-   public void testDefaultOpen22() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      assertEquals(options.getInboundPorts()[0], 22);
-   }
-
-   @Test
-   public void testinboundPortsStatic() {
-      EC2TemplateOptions options = inboundPorts(22, 30);
-      assertEquals(options.getInboundPorts()[0], 22);
-      assertEquals(options.getInboundPorts()[1], 30);
-   }
-
-   @Test
-   public void testMaxCountDefault() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      assertEquals(options.getMaxCount(), 0);
-   }
-
-   @Test
-   public void testMaxCount() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      options.maxCount(2);
-      assertEquals(options.getMaxCount(), 2);
-   }
-
-   @Test
-   public void testMaxCountNull() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      options.maxCount(null);
-      assertEquals(options.getMaxCount(), 0);
-   }
-
-   @Test
-   public void testClientTokenDefault() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      assertNull(options.getClientToken());
-   }
-
-   @Test
-   public void testClientToken() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      options.clientToken("some-token");
-      assertEquals(options.getClientToken(), "some-token");
-   }
-
-   @Test(expectedExceptions = NullPointerException.class)
-   public void testClientTokenNPE() {
-      EC2TemplateOptions options = new EC2TemplateOptions();
-      options.clientToken(null);
-   }
-}

http://git-wip-us.apache.org/repos/asf/stratos/blob/a9834e9e/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java b/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java
deleted file mode 100644
index 527123a..0000000
--- a/dependencies/jclouds/apis/ec2/1.8.0-stratos/src/test/java/org/jclouds/ec2/compute/strategy/CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest.java
+++ /dev/null
@@ -1,575 +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.compute.strategy;
-
-import static com.google.common.io.BaseEncoding.base64;
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-import static org.testng.Assert.assertEquals;
-
-import javax.inject.Provider;
-import java.lang.reflect.Method;
-import java.util.Set;
-import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.ExecutionException;
-
-import com.google.common.base.Function;
-import com.google.common.cache.LoadingCache;
-import com.google.common.collect.ImmutableMultimap;
-import com.google.common.collect.ImmutableSet;
-import org.jclouds.aws.domain.Region;
-import org.jclouds.compute.domain.Hardware;
-import org.jclouds.compute.domain.Template;
-import org.jclouds.compute.functions.GroupNamingConvention;
-import org.jclouds.compute.options.TemplateOptions;
-import org.jclouds.domain.LoginCredentials;
-import org.jclouds.ec2.compute.domain.EC2HardwareBuilder;
-import org.jclouds.ec2.compute.domain.RegionAndName;
-import org.jclouds.ec2.compute.domain.RegionNameAndIngressRules;
-import org.jclouds.ec2.compute.options.EC2TemplateOptions;
-import org.jclouds.ec2.domain.BlockDeviceMapping;
-import org.jclouds.ec2.domain.KeyPair;
-import org.jclouds.ec2.options.RunInstancesOptions;
-import org.jclouds.scriptbuilder.domain.Statements;
-import org.testng.annotations.Test;
-
-@Test(groups = "unit", singleThreaded = true, testName = "CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest")
-public class CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptionsTest {
-
-   public static final LoginCredentials CREDENTIALS = LoginCredentials
-         .builder()
-         .privateKey(
-               "-----BEGIN RSA PRIVATE KEY-----\n"
-                     + "MIIEowIBAAKCAQEA0CbFlhSdbMdad2ux2BVqk6Ut5fLKb0CdbqubGcEBfwsSz9Rp4Ile76P90MpV\n"
-                     + "W1BGKL5V4MO+flG6dZnRWPVmgrNVyDTmEsALiMGjfEwbACEZ1A8C6mPa36wWO7MlxuyMjg8OczTB\n"
-                     + "EXnHNDpxE5a6KowJtzFlmgjHk2Y+Q42UIqPx47lQUv5bdMDCnfNNomSzTVRjOZLUkDja+ybCKdux\n"
-                     + "gqTsuInhuBRMx+wxff8Z43ECdJV6UPoXK3der1dlZunxGCFkCeYq0kCX7FZ7PV35X744jqhD8P+7\n"
-                     + "y5prO4W+M3DWgChUx0OlbDbSHtDVlcfdbj/+4AKYKU6rQOqh+4DPDQIDAQABAoIBAHjQuEiXKJSV\n"
-                     + "1U2RZcVtENInws9AL/2I/Jfa5Qh6vTqXG9EjklywfzkK72x7tDVvD3ngmAoAs5WwLFDL+fXvYhOk\n"
-                     + "sbql8ZCahVdYRWME7XsSu2IZYHDZipXe1XzLS7b9X8uos5Ns4E8bZuNKtI1RJDdD1vPMqRNR2z0T\n"
-                     + "0Dn3eC7t+t+t7PWaK5AXu2ot7DoOeG1QhqJbwd5pMkIn2ydBILytgmDk/2P3EtJGePIJIeQBicmw\n"
-                     + "Z0KrJFa/K2cC8AtmMJUoZMo+mh1yemDbDLCZW30PjFHbZtcszS2cydAgq/HDFkZynvZG0zhbx/To\n"
-                     + "jzcNza1AyypYwOwb2/9/ulXZp0UCgYEA+QFgWDfYLH2zwjU5b6e0UbIyd/X/yRZ+L8lOEBd0Bbu8\n"
-                     + "qO3txaDbwi7o2mG7pJENHJ3u62CHjgTGDNW9V9Q8eNoGtj3uHvMvi7FdDEK8B6izdZyR7hmZmQ/5\n"
-                     + "MIldelyiGZlz1KBSoy4FsCpA7hV7cI6H6x+Im24NxG90/wd/EgMCgYEA1f+cUyUisIO3yKOCf0hQ\n"
-                     + "aL289q2//F2cbvBxtki6I8JzTg1H3oTO2WVrXQeCA3a/yiuRUatgGH4mxrpCF6byVJyqrEWAj4kU\n"
-                     + "uTbhMgIYhLGoaF1e+vMirCRXUXox0i5X976ASzHn64V9JSd1B+UbKfpcFTYYnChmrRDzmhKN1a8C\n"
-                     + "gYBTvIHAyO7ab18/BRUOllAOVSWhr8lXv0eqHEEzKh/rOaoFCRY3qpOcZpgJsGogumK1Z+sLnoeX\n"
-                     + "W8WaVVp6KbY4UeGF8aedItyvVnLbB6ohzTqkZ4Wvk05S6cs75kXYO0SL5U3NiCiiFXz2NA9nwTOk\n"
-                     + "s1nD2PPgiQ76Kx0mEkhKLwKBgFhHEJqv+AZu37Kx2NRe5WS/2KK9/DPD/hM5tv7mM3sq7Nvm2J3v\n"
-                     + "lVDS6J5AyZ5aLzXcER9qncKcz6wtC7SsFs1Wr4VPSoBroRPikrVJbgnXK8yZr+O/xq7Scv7WdJTq\n"
-                     + "rzkw6cWbObvLnltkUn/GQBVqBPBvF2nbtLdyBbuqKb5bAoGBAI1+aoJnvXEXxT4UHrMkQcY0eXRz\n"
-                     + "3UdbzJmtjMW9CR6l9s11mV6PcZP4qnODp3nd6a+lPeL3wVYQ47DsTJ/Bx5dI17zA5mU57n6mV0a3\n"
-                     + "DbSoPKSdaKTQdo2THnVE9P9sPKZWueAcsE4Yw/qcTjoxrtUnAH/AXN250v0tkKIOvMhu\n"
-                     + "-----END RSA PRIVATE KEY-----").build();
-
-   public static final KeyPair KEYPAIR = KeyPair.builder().region(Region.AP_SOUTHEAST_1).keyName("myKeyPair")
-         .sha1OfPrivateKey("13:36:74:b9:56:bb:07:96:c0:19:ab:00:7f:9f:06:d2:16:a0:45:32")
-         .fingerprint("60:15:d1:f1:d9:e2:3c:e2:ee:a9:64:6a:42:a7:34:0c").keyMaterial(CREDENTIALS.credential).build();
-
-   private static final Provider<RunInstancesOptions> OPTIONS_PROVIDER = new javax.inject.Provider<RunInstancesOptions>() {
-
-      @Override
-      public RunInstancesOptions get() {
-         return new RunInstancesOptions();
-      }
-
-   };
-
-   public void testExecuteWithDefaultOptionsEC2() throws SecurityException, NoSuchMethodException {
-      // setup constants
-      String region = Region.AP_SOUTHEAST_1;
-      String group = "group";
-      Hardware size = EC2HardwareBuilder.m1_small().build();
-      String systemGeneratedKeyPairName = "systemGeneratedKeyPair";
-      String generatedGroup = "group";
-      Set<String> generatedGroups = ImmutableSet.of(generatedGroup);
-
-      // create mocks
-      CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = createMock(
-            CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.class,
-            new Method[] {
-                  CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.class
-                        .getDeclaredMethod("getOptionsProvider"),
-                  CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.class.getDeclaredMethod(
-                        "createNewKeyPairUnlessUserSpecifiedOtherwise", String.class, String.class,
-                        TemplateOptions.class),
-                  CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.class.getDeclaredMethod(
-                        "getSecurityGroupsForTagAndOptions", String.class, String.class, TemplateOptions.class) });
-
-      EC2TemplateOptions options = createMock(EC2TemplateOptions.class);
-      Template template = createMock(Template.class);
-
-      // setup expectations
-      expect(strategy.getOptionsProvider()).andReturn(OPTIONS_PROVIDER);
-      expect(template.getHardware()).andReturn(size).atLeastOnce();
-      expect(template.getOptions()).andReturn(options).atLeastOnce();
-      expect(options.getBlockDeviceMappings()).andReturn(ImmutableSet.<BlockDeviceMapping> of()).atLeastOnce();
-      expect(strategy.createNewKeyPairUnlessUserSpecifiedOtherwise(region, group, options)).andReturn(
-            systemGeneratedKeyPairName);
-      expect(strategy.getSecurityGroupsForTagAndOptions(region, group, options)).andReturn(generatedGroups);
-      expect(options.getUserData()).andReturn(null);
-      expect(options.getClientToken()).andReturn(null);
-
-      // replay mocks
-      replay(options);
-      replay(template);
-      replay(strategy);
-
-      // run
-      RunInstancesOptions customize = strategy.execute(region, group, template);
-      assertEquals(customize.buildQueryParameters(), ImmutableMultimap.<String, String> of());
-      assertEquals(
-            customize.buildFormParameters().entries(),
-            ImmutableMultimap.<String, String> of("InstanceType", size.getProviderId(), "SecurityGroup.1",
-                  generatedGroup, "KeyName", systemGeneratedKeyPairName).entries());
-      assertEquals(customize.buildRequestHeaders(), ImmutableMultimap.<String, String> of());
-      assertEquals(customize.buildStringPayload(), null);
-
-      // verify mocks
-      verify(options);
-      verify(template);
-      verify(strategy);
-   }
-
-   public void testExecuteWithUserData() throws SecurityException, NoSuchMethodException {
-      // setup constants
-      String region = Region.AP_SOUTHEAST_1;
-      String group = "group";
-      Hardware size = EC2HardwareBuilder.m1_small().build();
-      String systemGeneratedKeyPairName = "systemGeneratedKeyPair";
-      String generatedGroup = "group";
-      Set<String> generatedGroups = ImmutableSet.of(generatedGroup);
-
-      // create mocks
-      CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = createMock(
-            CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.class,
-            new Method[] {
-                  CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.class
-                        .getDeclaredMethod("getOptionsProvider"),
-                  CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.class.getDeclaredMethod(
-                        "createNewKeyPairUnlessUserSpecifiedOtherwise", String.class, String.class,
-                        TemplateOptions.class),
-                  CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions.class.getDeclaredMethod(
-                        "getSecurityGroupsForTagAndOptions", String.class, String.class, TemplateOptions.class) });
-
-      EC2TemplateOptions options = createMock(EC2TemplateOptions.class);
-      Template template = createMock(Template.class);
-
-      // setup expectations
-      expect(strategy.getOptionsProvider()).andReturn(OPTIONS_PROVIDER);
-      expect(template.getHardware()).andReturn(size).atLeastOnce();
-      expect(template.getOptions()).andReturn(options).atLeastOnce();
-      expect(options.getBlockDeviceMappings()).andReturn(ImmutableSet.<BlockDeviceMapping> of()).atLeastOnce();
-      expect(options.getClientToken()).andReturn("some-token");
-      expect(strategy.createNewKeyPairUnlessUserSpecifiedOtherwise(region, group, options)).andReturn(
-            systemGeneratedKeyPairName);
-      expect(strategy.getSecurityGroupsForTagAndOptions(region, group, options)).andReturn(generatedGroups);
-      expect(options.getUserData()).andReturn("hello".getBytes());
-
-      // replay mocks
-      replay(options);
-      replay(template);
-      replay(strategy);
-
-      // run
-      RunInstancesOptions customize = strategy.execute(region, group, template);
-      assertEquals(customize.buildQueryParameters(), ImmutableMultimap.<String, String> of());
-      assertEquals(
-            customize.buildFormParameters().entries(),
-            ImmutableMultimap.<String, String> of("InstanceType", size.getProviderId(), "SecurityGroup.1", "group",
-                  "KeyName", systemGeneratedKeyPairName, "UserData", base64().encode("hello".getBytes()),
-                    "ClientToken", "some-token").entries());
-
-      assertEquals(customize.buildRequestHeaders(), ImmutableMultimap.<String, String> of());
-      assertEquals(customize.buildStringPayload(), null);
-
-      // verify mocks
-      verify(options);
-      verify(template);
-      verify(strategy);
-   }
-
-   public void testCreateNewKeyPairUnlessUserSpecifiedOtherwise_reusesKeyWhenToldTo() {
-      // setup constants
-      String region = Region.AP_SOUTHEAST_1;
-      String group = "group";
-      String userSuppliedKeyPair = "myKeyPair";
-
-      // create mocks
-      CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = setupStrategy();
-      EC2TemplateOptions options = createMock(EC2TemplateOptions.class);
-      KeyPair keyPair = createMock(KeyPair.class);
-
-      // setup expectations
-      expect(options.getKeyPair()).andReturn(userSuppliedKeyPair);
-      expect(options.getLoginPrivateKey()).andReturn(null);
-      expect(options.getRunScript()).andReturn(null);
-
-      // replay mocks
-      replay(options);
-      replay(keyPair);
-      replayStrategy(strategy);
-
-      // run
-      assertEquals(strategy.createNewKeyPairUnlessUserSpecifiedOtherwise(region, group, options), userSuppliedKeyPair);
-
-      // verify mocks
-      verify(options);
-      verify(keyPair);
-      verifyStrategy(strategy);
-   }
-
-   @Test(expectedExceptions = IllegalArgumentException.class)
-   public void testCreateNewKeyPairUnlessUserSpecifiedOtherwise_reusesKeyWhenToldToWithRunScriptButNoCredentials() {
-      // setup constants
-      String region = Region.AP_SOUTHEAST_1;
-      String group = "group";
-      String userSuppliedKeyPair = "myKeyPair";
-
-      // create mocks
-      CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = setupStrategy();
-      EC2TemplateOptions options = createMock(EC2TemplateOptions.class);
-      KeyPair keyPair = createMock(KeyPair.class);
-
-      // setup expectations
-      expect(options.getKeyPair()).andReturn(userSuppliedKeyPair);
-      expect(options.getLoginUser()).andReturn(null);
-      expect(options.getLoginPassword()).andReturn(null);
-      expect(options.getLoginPrivateKey()).andReturn(null);
-      expect(options.shouldAuthenticateSudo()).andReturn(null);
-      expect(options.getRunScript()).andReturn(Statements.exec("echo foo"));
-
-      expect(strategy.credentialsMap.containsKey(new RegionAndName(region, userSuppliedKeyPair))).andReturn(false);
-
-      // replay mocks
-      replay(options);
-      replay(keyPair);
-      replayStrategy(strategy);
-
-      // run
-      assertEquals(strategy.createNewKeyPairUnlessUserSpecifiedOtherwise(region, group, options), userSuppliedKeyPair);
-
-      // verify mocks
-      verify(options);
-      verify(keyPair);
-      verifyStrategy(strategy);
-   }
-
-   public void testCreateNewKeyPairUnlessUserSpecifiedOtherwise_reusesKeyWhenToldToWithRunScriptAndCredentialsAlreadyInMap() {
-      // setup constants
-      String region = Region.AP_SOUTHEAST_1;
-      String group = "group";
-      String userSuppliedKeyPair = "myKeyPair";
-
-      // create mocks
-      CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = setupStrategy();
-      EC2TemplateOptions options = createMock(EC2TemplateOptions.class);
-      KeyPair keyPair = createMock(KeyPair.class);
-
-      // setup expectations
-      expect(options.getKeyPair()).andReturn(userSuppliedKeyPair);
-      expect(options.getLoginPrivateKey()).andReturn(null);
-      expect(options.getRunScript()).andReturn(Statements.exec("echo foo"));
-
-      expect(strategy.credentialsMap.containsKey(new RegionAndName(region, userSuppliedKeyPair))).andReturn(true);
-
-      // replay mocks
-      replay(options);
-      replay(keyPair);
-      replayStrategy(strategy);
-
-      // run
-      assertEquals(strategy.createNewKeyPairUnlessUserSpecifiedOtherwise(region, group, options), userSuppliedKeyPair);
-
-      // verify mocks
-      verify(options);
-      verify(keyPair);
-      verifyStrategy(strategy);
-   }
-
-   public void testCreateNewKeyPairUnlessUserSpecifiedOtherwise_reusesKeyWhenToldToWithRunScriptAndCredentialsSpecified() {
-      // setup constants
-      String region = Region.AP_SOUTHEAST_1;
-      String group = "group";
-      String userSuppliedKeyPair = "myKeyPair";
-
-      // create mocks
-      CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = setupStrategy();
-      EC2TemplateOptions options = createMock(EC2TemplateOptions.class);
-      KeyPair keyPair = createMock(KeyPair.class);
-
-      // setup expectations
-      expect(options.getKeyPair()).andReturn(userSuppliedKeyPair);
-      expect(options.getLoginPrivateKey()).andReturn(CREDENTIALS.getOptionalPrivateKey().get()).atLeastOnce();
-
-      // Notice that the fingerprint and sha1 generated
-      expect(strategy.credentialsMap.put(new RegionAndName(region, userSuppliedKeyPair), KEYPAIR)).andReturn(null);
-      expect(options.getRunScript()).andReturn(Statements.exec("echo foo"));
-      expect(strategy.credentialsMap.containsKey(new RegionAndName(region, userSuppliedKeyPair))).andReturn(true);
-
-      // replay mocks
-      replay(options);
-      replay(keyPair);
-      replayStrategy(strategy);
-
-      // run
-      assertEquals(strategy.createNewKeyPairUnlessUserSpecifiedOtherwise(region, group, options), userSuppliedKeyPair);
-
-      // verify mocks
-      verify(options);
-      verify(keyPair);
-      verifyStrategy(strategy);
-   }
-
-   public void testCreateNewKeyPairUnlessUserSpecifiedOtherwise_createsNewKeyPairAndReturnsItsNameByDefault()
-         throws ExecutionException {
-      // setup constants
-      String region = Region.AP_SOUTHEAST_1;
-      String group = "group";
-      String userSuppliedKeyPair = null;
-      boolean shouldAutomaticallyCreateKeyPair = true;
-      String systemGeneratedKeyPairName = "systemGeneratedKeyPair";
-
-      // create mocks
-      CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = setupStrategy();
-      EC2TemplateOptions options = createMock(EC2TemplateOptions.class);
-      KeyPair keyPair = createMock(KeyPair.class);
-
-      // setup expectations
-      expect(options.getKeyPair()).andReturn(userSuppliedKeyPair);
-      expect(options.shouldAutomaticallyCreateKeyPair()).andReturn(shouldAutomaticallyCreateKeyPair);
-      expect(keyPair.getKeyName()).andReturn(systemGeneratedKeyPairName).atLeastOnce();
-      expect(strategy.credentialsMap.containsKey(new RegionAndName(region, group))).andReturn(true);
-      expect(strategy.credentialsMap.get(new RegionAndName(region, group))).andReturn(keyPair);
-      expect(options.getRunScript()).andReturn(null);
-
-      // replay mocks
-      replay(options);
-      replay(keyPair);
-      replayStrategy(strategy);
-
-      // run
-      assertEquals(strategy.createNewKeyPairUnlessUserSpecifiedOtherwise(region, group, options),
-            systemGeneratedKeyPairName);
-
-      // verify mocks
-      verify(options);
-      verify(keyPair);
-      verifyStrategy(strategy);
-   }
-
-   public void testCreateNewKeyPairUnlessUserSpecifiedOtherwise_doesntCreateAKeyPairAndReturnsNullWhenToldNotTo() {
-      // setup constants
-      String region = Region.AP_SOUTHEAST_1;
-      String group = "group";
-      String userSuppliedKeyPair = null;
-      boolean shouldAutomaticallyCreateKeyPair = false; // here's the important
-      // part!
-
-      // create mocks
-      CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = setupStrategy();
-      EC2TemplateOptions options = createMock(EC2TemplateOptions.class);
-      KeyPair keyPair = createMock(KeyPair.class);
-
-      // setup expectations
-      expect(options.getKeyPair()).andReturn(userSuppliedKeyPair);
-      expect(options.getRunScript()).andReturn(null);
-      expect(options.shouldAutomaticallyCreateKeyPair()).andReturn(shouldAutomaticallyCreateKeyPair);
-
-      // replay mocks
-      replay(options);
-      replay(keyPair);
-      replayStrategy(strategy);
-
-      // run
-      assertEquals(strategy.createNewKeyPairUnlessUserSpecifiedOtherwise(region, group, options), null);
-
-      // verify mocks
-      verify(options);
-      verify(keyPair);
-      verifyStrategy(strategy);
-   }
-
-   public void testGetSecurityGroupsForTagAndOptions_createsNewGroupByDefaultWhenNoPortsAreSpecifiedWhenDoesntExist()
-         throws ExecutionException {
-      // setup constants
-      String region = Region.AP_SOUTHEAST_1;
-      String group = "group";
-      String generatedMarkerGroup = "jclouds#group";
-      Set<String> groupIds = ImmutableSet.<String> of();
-      int[] ports = {};
-      boolean shouldAuthorizeSelf = true;
-      Set<String> returnVal = ImmutableSet.<String> of(generatedMarkerGroup);
-
-      // create mocks
-      CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = setupStrategy();
-      EC2TemplateOptions options = createMock(EC2TemplateOptions.class);
-
-      // setup expectations
-      expect(options.getGroups()).andReturn(groupIds).atLeastOnce();
-      expect(options.getInboundPorts()).andReturn(ports).atLeastOnce();
-      RegionNameAndIngressRules regionNameAndIngressRules = new RegionNameAndIngressRules(region, generatedMarkerGroup,
-            ports, shouldAuthorizeSelf);
-      expect(strategy.securityGroupMap.getUnchecked(regionNameAndIngressRules)).andReturn(group);
-
-      // replay mocks
-      replay(options);
-      replayStrategy(strategy);
-
-      // run
-      assertEquals(strategy.getSecurityGroupsForTagAndOptions(region, group, options), returnVal);
-
-      // verify mocks
-      verify(options);
-      verifyStrategy(strategy);
-   }
-
-   public void testGetSecurityGroupsForTagAndOptions_createsNewGroupByDefaultWhenPortsAreSpecifiedWhenDoesntExist()
-         throws ExecutionException {
-      // setup constants
-      String region = Region.AP_SOUTHEAST_1;
-      String group = "group";
-      String generatedMarkerGroup = "jclouds#group";
-      Set<String> groupIds = ImmutableSet.<String> of();
-      int[] ports = { 22, 80 };
-      boolean shouldAuthorizeSelf = true;
-      Set<String> returnVal = ImmutableSet.<String> of(generatedMarkerGroup);
-
-      // create mocks
-      CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = setupStrategy();
-      EC2TemplateOptions options = createMock(EC2TemplateOptions.class);
-
-      // setup expectations
-      expect(options.getGroups()).andReturn(groupIds).atLeastOnce();
-      expect(options.getInboundPorts()).andReturn(ports).atLeastOnce();
-      RegionNameAndIngressRules regionNameAndIngressRules = new RegionNameAndIngressRules(region, generatedMarkerGroup,
-            ports, shouldAuthorizeSelf);
-      expect(strategy.securityGroupMap.getUnchecked(regionNameAndIngressRules)).andReturn(generatedMarkerGroup);
-
-      // replay mocks
-      replay(options);
-      replayStrategy(strategy);
-
-      // run
-      assertEquals(strategy.getSecurityGroupsForTagAndOptions(region, group, options), returnVal);
-
-      // verify mocks
-      verify(options);
-      verifyStrategy(strategy);
-   }
-
-   public void testGetSecurityGroupsForTagAndOptions_reusesGroupByDefaultWhenNoPortsAreSpecifiedWhenDoesExist()
-         throws ExecutionException {
-      // setup constants
-      String region = Region.AP_SOUTHEAST_1;
-      String group = "group";
-      String generatedMarkerGroup = "jclouds#group";
-      Set<String> groupIds = ImmutableSet.<String> of();
-      int[] ports = {};
-      boolean shouldAuthorizeSelf = true;
-      Set<String> returnVal = ImmutableSet.<String> of(generatedMarkerGroup);
-
-      // create mocks
-      CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = setupStrategy();
-      EC2TemplateOptions options = createMock(EC2TemplateOptions.class);
-
-      // setup expectations
-      expect(options.getGroups()).andReturn(groupIds).atLeastOnce();
-      expect(options.getInboundPorts()).andReturn(ports).atLeastOnce();
-      RegionNameAndIngressRules regionNameAndIngressRules = new RegionNameAndIngressRules(region, generatedMarkerGroup,
-            ports, shouldAuthorizeSelf);
-      expect(strategy.securityGroupMap.getUnchecked(regionNameAndIngressRules)).andReturn(generatedMarkerGroup);
-
-      // replay mocks
-      replay(options);
-      replayStrategy(strategy);
-
-      // run
-      assertEquals(strategy.getSecurityGroupsForTagAndOptions(region, group, options), returnVal);
-
-      // verify mocks
-      verify(options);
-      verifyStrategy(strategy);
-   }
-
-   public void testGetSecurityGroupsForTagAndOptions_reusesGroupByDefaultWhenNoPortsAreSpecifiedWhenDoesExistAndAcceptsUserSuppliedGroups() {
-      // setup constants
-      String region = Region.AP_SOUTHEAST_1;
-      String group = "group";
-      String generatedMarkerGroup = "jclouds#group";
-      Set<String> groupIds = ImmutableSet.<String> of("group1", "group2");
-      int[] ports = {};
-      boolean shouldAuthorizeSelf = true;
-      boolean groupExisted = true;
-      Set<String> returnVal = ImmutableSet.<String> of(generatedMarkerGroup, "group1", "group2");
-
-      // create mocks
-      CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = setupStrategy();
-      EC2TemplateOptions options = createMock(EC2TemplateOptions.class);
-
-      // setup expectations
-      expect(options.getGroups()).andReturn(groupIds).atLeastOnce();
-      RegionNameAndIngressRules regionNameAndIngressRules = new RegionNameAndIngressRules(region, generatedMarkerGroup,
-            ports, shouldAuthorizeSelf);
-
-      expect(strategy.securityGroupMap.getUnchecked(regionNameAndIngressRules))
-            .andReturn(groupExisted ? "group" : null);
-
-      // replay mocks
-      replay(options);
-      replayStrategy(strategy);
-
-      // run
-      assertEquals(strategy.getSecurityGroupsForTagAndOptions(region, group, options), returnVal);
-
-      // verify mocks
-      verify(options);
-      verifyStrategy(strategy);
-   }
-
-   private void verifyStrategy(CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy) {
-      verify(strategy.makeKeyPair);
-      verify(strategy.credentialsMap);
-      verify(strategy.securityGroupMap);
-   }
-
-   @SuppressWarnings("unchecked")
-   private CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions setupStrategy() {
-      Function<RegionAndName, KeyPair> makeKeyPair = createMock(Function.class);
-      ConcurrentMap<RegionAndName, KeyPair> credentialsMap = createMock(ConcurrentMap.class);
-      LoadingCache<RegionAndName, String> securityGroupMap = createMock(LoadingCache.class);
-      GroupNamingConvention.Factory namingConventionFactory = createMock(GroupNamingConvention.Factory.class);
-      GroupNamingConvention namingConvention = createMock(GroupNamingConvention.class);
-      expect(namingConventionFactory.create()).andReturn(namingConvention).anyTimes();
-      expect(namingConvention.sharedNameForGroup("group")).andReturn("jclouds#group").anyTimes();
-      replay(namingConventionFactory);
-      replay(namingConvention);
-      
-      return new CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions(makeKeyPair, credentialsMap,
-            securityGroupMap, OPTIONS_PROVIDER, namingConventionFactory);
-   }
-
-   private void replayStrategy(CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy) {
-      replay(strategy.makeKeyPair);
-      replay(strategy.credentialsMap);
-      replay(strategy.securityGroupMap);
-   }
-
-}