public void testGetSecurityGroupsForTagAndOptions_DoesNorReuseGroupByDefaultWhenNoPortsAreSpecifiedWhenDoesExistAndAcceptsUserSuppliedGroups() { // setup constants String region = Region.AP_SOUTHEAST_1; String group = "group"; Set<String> groupIds = ImmutableSet.<String> of("group1", "group2"); Set<String> returnVal = ImmutableSet.<String> of("group1", "group2"); // create mocks CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = setupStrategy(); EC2TemplateOptions options = createMock(EC2TemplateOptions.class); // setup expectations expect(options.getGroups()).andReturn(groupIds).atLeastOnce(); // replay mocks replay(options); replayStrategy(strategy); // run assertEquals(strategy.getSecurityGroupsForTagAndOptions(region, group, null, options), returnVal); // verify mocks verify(options); 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 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); }
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 = new int[] {}; 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); }
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 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); }
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 = new int[] { 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 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 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 = new int[] {}; 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_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 = new int[] {}; 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 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.getPrivateKey()).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 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, null); expect(strategy.securityGroupMap.getUnchecked(regionNameAndIngressRules)).andReturn(generatedMarkerGroup); // replay mocks replay(options); replayStrategy(strategy); // run assertEquals(strategy.getSecurityGroupsForTagAndOptions(region, group, null, 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, null); expect(strategy.securityGroupMap.getUnchecked(regionNameAndIngressRules)).andReturn(generatedMarkerGroup); // replay mocks replay(options); replayStrategy(strategy); // run assertEquals(strategy.getSecurityGroupsForTagAndOptions(region, group, null, options), returnVal); // verify mocks verify(options); verifyStrategy(strategy); }
CreateKeyPairAndSecurityGroupsAsNeededAndReturnRunOptions strategy = setupStrategy(); EC2TemplateOptions options = createMock(EC2TemplateOptions.class); KeyPair keyPair = createMock(KeyPair.class); replayStrategy(strategy); 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, null); expect(strategy.securityGroupMap.getUnchecked(regionNameAndIngressRules)).andReturn(generatedMarkerGroup); // replay mocks replay(options); replayStrategy(strategy); // run assertEquals(strategy.getSecurityGroupsForTagAndOptions(region, group, null, options), returnVal); // verify mocks verify(options); 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); }
@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_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.putIfAbsent(anyObject(RegionAndName.class), anyObject(KeyPair.class))).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); }
@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); }