Updated Branches:
  refs/heads/master 5733d694f -> 22f9233e3

Cleanup tests

* Use TestNG assertions
* Formatted code in compute tests
* Removed unnecessary local variables in tests to avoid using them by
  mistake between independent tests.


Project: http://git-wip-us.apache.org/repos/asf/incubator-jclouds-chef/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-chef/commit/22f9233e
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-chef/tree/22f9233e
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-chef/diff/22f9233e

Branch: refs/heads/master
Commit: 22f9233e38083f8c362059c3299df2ea6f129d0d
Parents: 5733d69
Author: Ignasi Barrera <[email protected]>
Authored: Mon Sep 9 16:20:46 2013 +0200
Committer: Ignasi Barrera <[email protected]>
Committed: Tue Sep 10 14:25:05 2013 +0200

----------------------------------------------------------------------
 .../compute/ChefComputeServiceLiveTest.java     |  15 +--
 ...puteServiceIntegratedChefClientLiveTest.java | 129 +++++++++----------
 .../chef/internal/BaseChefApiLiveTest.java      |  24 ++--
 3 files changed, 78 insertions(+), 90 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-jclouds-chef/blob/22f9233e/compute/src/test/java/org/jclouds/chef/compute/ChefComputeServiceLiveTest.java
----------------------------------------------------------------------
diff --git 
a/compute/src/test/java/org/jclouds/chef/compute/ChefComputeServiceLiveTest.java
 
b/compute/src/test/java/org/jclouds/chef/compute/ChefComputeServiceLiveTest.java
index 0c8fcc5..67a716a 100644
--- 
a/compute/src/test/java/org/jclouds/chef/compute/ChefComputeServiceLiveTest.java
+++ 
b/compute/src/test/java/org/jclouds/chef/compute/ChefComputeServiceLiveTest.java
@@ -20,10 +20,11 @@ import static com.google.common.collect.Iterables.any;
 import static com.google.common.collect.Iterables.concat;
 import static com.google.common.collect.Iterables.getLast;
 import static 
org.jclouds.chef.predicates.CookbookVersionPredicates.containsRecipe;
-import static 
org.jclouds.chef.predicates.CookbookVersionPredicates.containsRecipes;
 import static org.jclouds.compute.options.TemplateOptions.Builder.runScript;
 import static org.jclouds.reflect.Reflection2.typeToken;
 import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
+import static org.testng.Assert.fail;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -69,14 +70,8 @@ public class ChefComputeServiceLiveTest extends 
BaseComputeServiceIntegratedChef
          view.getChefService().updateBootstrapConfigForGroup(group, bootstrap);
          assertEquals(view.getChefService().getRunListForGroup(group), 
runList);
       } else {
-         assert false : String.format("recipe %s not in %s", recipe, 
cookbookVersions);
+         fail(String.format("recipe %s not in %s", recipe, cookbookVersions));
       }
-
-      // TODO move this to a unit test
-      assert any(cookbookVersions, containsRecipe("apache2::mod_proxy"));
-      assert any(cookbookVersions, containsRecipes("apache2", 
"apache2::mod_proxy", "apache2::mod_proxy_http"));
-      assert !any(cookbookVersions, containsRecipe("apache2::bar"));
-      assert !any(cookbookVersions, containsRecipe("foo::bar"));
    }
 
    @Test(dependsOnMethods = "testCanUpdateRunList")
@@ -94,9 +89,9 @@ public class ChefComputeServiceLiveTest extends 
BaseComputeServiceIntegratedChef
          URI uri = URI.create("http://"; + getLast(node.getPublicAddresses()));
          InputStream content = computeContext.utils().http().get(uri);
          String string = Strings2.toStringAndClose(content);
-         assert string.indexOf("It works!") >= 0 : string;
+         assertTrue(string.indexOf("It works!") >= 0,
+               String.format("The default Apache page was not found: %s", 
string));
       }
-
    }
 
    @AfterClass(groups = { "integration", "live" })

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-chef/blob/22f9233e/compute/src/test/java/org/jclouds/chef/compute/internal/BaseComputeServiceIntegratedChefClientLiveTest.java
----------------------------------------------------------------------
diff --git 
a/compute/src/test/java/org/jclouds/chef/compute/internal/BaseComputeServiceIntegratedChefClientLiveTest.java
 
b/compute/src/test/java/org/jclouds/chef/compute/internal/BaseComputeServiceIntegratedChefClientLiveTest.java
index 4eca736..4c87592 100644
--- 
a/compute/src/test/java/org/jclouds/chef/compute/internal/BaseComputeServiceIntegratedChefClientLiveTest.java
+++ 
b/compute/src/test/java/org/jclouds/chef/compute/internal/BaseComputeServiceIntegratedChefClientLiveTest.java
@@ -16,6 +16,8 @@
  */
 package org.jclouds.chef.compute.internal;
 
+import static com.google.common.base.Throwables.propagate;
+import java.io.IOException;
 import java.io.InputStream;
 import java.util.Properties;
 import java.util.concurrent.ConcurrentHashMap;
@@ -43,82 +45,71 @@ import com.google.inject.Module;
 /**
  * @author Adrian Cole
  */
-public abstract class BaseComputeServiceIntegratedChefClientLiveTest
-               extends
-                       BaseViewLiveTest<ChefContext> {
+public abstract class BaseComputeServiceIntegratedChefClientLiveTest extends 
BaseViewLiveTest<ChefContext> {
 
-       protected TemplateBuilderSpec template;
-       protected LoginCredentials loginCredentials = LoginCredentials.builder()
-                       .user("root").build();
+   protected TemplateBuilderSpec template;
+   protected LoginCredentials loginCredentials = 
LoginCredentials.builder().user("root").build();
 
-       // isolate tests from eachother, as default credentialStore is static
-       protected Module credentialStoreModule = new CredentialStoreModule(
-                       new CopyInputStreamInputSupplierMap(
-                                       new ConcurrentHashMap<String, 
InputSupplier<InputStream>>()));
+   // isolate tests from each other, as default credentialStore is static
+   protected Module credentialStoreModule = new CredentialStoreModule(new 
CopyInputStreamInputSupplierMap(
+         new ConcurrentHashMap<String, InputSupplier<InputStream>>()));
 
-       private String computeProvider;
+   private String computeProvider;
 
-       protected Properties setupComputeProperties() {
-               Properties overrides = new Properties();
-               overrides.setProperty(Constants.PROPERTY_TRUST_ALL_CERTS, 
"true");
-               overrides.setProperty(Constants.PROPERTY_RELAX_HOSTNAME, 
"true");
-               computeProvider = setIfTestSystemPropertyPresent(overrides, 
provider
-                               + ".compute.provider");
-               setIfTestSystemPropertyPresent(overrides, provider
-                               + ".compute.identity");
-               setIfTestSystemPropertyPresent(overrides, provider
-                               + ".compute.credential");
-               setIfTestSystemPropertyPresent(overrides, provider
-                               + ".compute.endpoint");
-               setIfTestSystemPropertyPresent(overrides, provider
-                               + ".compute.api-version");
-               setIfTestSystemPropertyPresent(overrides, provider
-                               + ".compute.build-version");
-               String spec = setIfTestSystemPropertyPresent(overrides, provider
-                               + ".compute.template");
-               if (spec != null) {
-                       template = TemplateBuilderSpec.parse(spec);
-                       if (template.getLoginUser() != null) {
-                               Iterable<String> userPass = 
Splitter.on(':').split(
-                                               template.getLoginUser());
-                               Builder loginCredentialsBuilder = 
LoginCredentials.builder();
-                               
loginCredentialsBuilder.user(Iterables.get(userPass, 0));
-                               if (Iterables.size(userPass) == 2)
-                                       loginCredentialsBuilder
-                                                       
.password(Iterables.get(userPass, 1));
-                               if (template.getAuthenticateSudo() != null)
-                                       
loginCredentialsBuilder.authenticateSudo(template
-                                                       .getAuthenticateSudo());
-                               loginCredentials = 
loginCredentialsBuilder.build();
-                       }
-               }
-               return overrides;
-       }
+   protected Properties setupComputeProperties() {
+      Properties overrides = new Properties();
+      overrides.setProperty(Constants.PROPERTY_TRUST_ALL_CERTS, "true");
+      overrides.setProperty(Constants.PROPERTY_RELAX_HOSTNAME, "true");
+      computeProvider = setIfTestSystemPropertyPresent(overrides, provider + 
".compute.provider");
+      setIfTestSystemPropertyPresent(overrides, provider + 
".compute.identity");
+      setIfTestSystemPropertyPresent(overrides, provider + 
".compute.credential");
+      setIfTestSystemPropertyPresent(overrides, provider + 
".compute.endpoint");
+      setIfTestSystemPropertyPresent(overrides, provider + 
".compute.api-version");
+      setIfTestSystemPropertyPresent(overrides, provider + 
".compute.build-version");
+      String spec = setIfTestSystemPropertyPresent(overrides, provider + 
".compute.template");
+      if (spec != null) {
+         template = TemplateBuilderSpec.parse(spec);
+         if (template.getLoginUser() != null) {
+            Iterable<String> userPass = 
Splitter.on(':').split(template.getLoginUser());
+            Builder loginCredentialsBuilder = LoginCredentials.builder();
+            loginCredentialsBuilder.user(Iterables.get(userPass, 0));
+            if (Iterables.size(userPass) == 2)
+               loginCredentialsBuilder.password(Iterables.get(userPass, 1));
+            if (template.getAuthenticateSudo() != null)
+               
loginCredentialsBuilder.authenticateSudo(template.getAuthenticateSudo());
+            loginCredentials = loginCredentialsBuilder.build();
+         }
+      }
+      return overrides;
+   }
 
-       @Override
-       protected Iterable<Module> setupModules() {
-               return ImmutableSet.<Module> of(getLoggingModule(),
-                               credentialStoreModule, getSshModule());
-       }
+   @Override
+   protected Iterable<Module> setupModules() {
+      return ImmutableSet.<Module> of(getLoggingModule(), 
credentialStoreModule, getSshModule());
+   }
 
-       protected Module getSshModule() {
-               return new SshjSshClientModule();
-       }
+   protected Module getSshModule() {
+      return new SshjSshClientModule();
+   }
 
-       protected volatile ComputeServiceContext computeContext;
+   protected volatile ComputeServiceContext computeContext;
 
-       @Override
-       protected void initializeContext() {
-               super.initializeContext();
-               computeContext = ContextBuilder.newBuilder(computeProvider)
-                               
.modules(setupModules()).overrides(setupComputeProperties())
-                               .buildView(ComputeServiceContext.class);
-       }
+   @Override
+   protected void initializeContext() {
+      super.initializeContext();
+      computeContext = 
ContextBuilder.newBuilder(computeProvider).modules(setupModules())
+            
.overrides(setupComputeProperties()).buildView(ComputeServiceContext.class);
+   }
 
-       @AfterClass(groups = {"integration", "live"})
-       @Override
-       protected void tearDownContext() {
-               Closeables.closeQuietly(computeContext);
-               super.tearDownContext();
-       }
+   @AfterClass(groups = { "integration", "live" })
+   @Override
+   protected void tearDownContext() {
+      try {
+         Closeables.close(computeContext, true);
+      } catch (IOException e) {
+         throw propagate(e);
+      } finally {
+         super.tearDownContext();
+      }
+   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-jclouds-chef/blob/22f9233e/core/src/test/java/org/jclouds/chef/internal/BaseChefApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/jclouds/chef/internal/BaseChefApiLiveTest.java 
b/core/src/test/java/org/jclouds/chef/internal/BaseChefApiLiveTest.java
index 0130821..0cd9562 100644
--- a/core/src/test/java/org/jclouds/chef/internal/BaseChefApiLiveTest.java
+++ b/core/src/test/java/org/jclouds/chef/internal/BaseChefApiLiveTest.java
@@ -46,6 +46,7 @@ import org.jclouds.chef.domain.Metadata;
 import org.jclouds.chef.domain.Node;
 import org.jclouds.chef.domain.Resource;
 import org.jclouds.chef.domain.Role;
+import org.jclouds.chef.domain.Sandbox;
 import org.jclouds.chef.domain.SearchResult;
 import org.jclouds.chef.domain.UploadSandbox;
 import org.jclouds.chef.options.CreateClientOptions;
@@ -76,10 +77,9 @@ public abstract class BaseChefApiLiveTest<A extends ChefApi> 
extends BaseChefLiv
 
    // It may take a bit until the search index is populated
    protected int maxWaitForIndexInMs = 60000;
-
-   private Node node;
-   private Role role;
-   protected DatabagItem databagItem;
+   
+   // The id of the data bag item used in search tests
+   private String databagitemId;
 
    public void testCreateNewCookbook() throws Exception {
       // Define the file you want in the cookbook
@@ -103,7 +103,8 @@ public abstract class BaseChefApiLiveTest<A extends 
ChefApi> extends BaseChefLiv
          if (status.needsUpload()) {
             api.uploadContent(status.getUrl(), content);
          }
-         api.commitSandbox(site.getSandboxId(), true);
+         Sandbox sandbox = api.commitSandbox(site.getSandboxId(), true);
+         assertTrue(sandbox.isCompleted(), "Sandbox should be completed after 
uploading");
       } catch (RuntimeException e) {
          api.commitSandbox(site.getSandboxId(), false);
          fail("Could not upload content");
@@ -210,7 +211,7 @@ public abstract class BaseChefApiLiveTest<A extends 
ChefApi> extends BaseChefLiv
    public void testCreateNode() throws Exception {
       api.deleteNode(PREFIX);
       api.createNode(Node.builder().name(PREFIX).runListElement("role[" + 
PREFIX + "]").environment("_default").build());
-      node = api.getNode(PREFIX);
+      Node node = api.getNode(PREFIX);
       // TODO check recipes
       assertNotNull(node, "Created node should not be null");
       Set<String> nodes = api.listNodes();
@@ -235,7 +236,7 @@ public abstract class BaseChefApiLiveTest<A extends 
ChefApi> extends BaseChefLiv
    public void testCreateRole() throws Exception {
       api.deleteRole(PREFIX);
       
api.createRole(Role.builder().name(PREFIX).runListElement("recipe[java]").build());
-      role = api.getRole(PREFIX);
+      Role role = api.getRole(PREFIX);
       assertNotNull(role, "Created role should not be null");
       assertEquals(role.getName(), PREFIX);
       assertEquals(role.getRunList(), Collections.singleton("recipe[java]"));
@@ -272,7 +273,8 @@ public abstract class BaseChefApiLiveTest<A extends 
ChefApi> extends BaseChefLiv
       Properties config = new Properties();
       config.setProperty("foo", "bar");
       api.deleteDatabagItem(PREFIX, PREFIX);
-      databagItem = api.createDatabagItem(PREFIX, new DatabagItem("config", 
json.toJson(config)));
+      DatabagItem databagItem = api.createDatabagItem(PREFIX, new 
DatabagItem("config", json.toJson(config)));
+      databagitemId = databagItem.getId();
       assertNotNull(databagItem, "Created data bag item should not be null");
       assertEquals(databagItem.getId(), "config");
 
@@ -401,7 +403,7 @@ public abstract class BaseChefApiLiveTest<A extends 
ChefApi> extends BaseChefLiv
             assertNotNull(results);
             if (results.size() > 0) {
                assertEquals(results.size(), 1);
-               assertEquals(results.iterator().next().getId(), 
databagItem.getId());
+               assertEquals(results.iterator().next().getId(), databagitemId);
                return true;
             } else {
                // The index may still not be populated
@@ -410,7 +412,7 @@ public abstract class BaseChefApiLiveTest<A extends 
ChefApi> extends BaseChefLiv
          }
       }, maxWaitForIndexInMs, 5000L, MILLISECONDS);
 
-      SearchOptions options = SearchOptions.Builder.query("id:" + 
databagItem.getId());
+      SearchOptions options = SearchOptions.Builder.query("id:" + 
databagitemId);
       assertTrue(waitForIndex.apply(options));
    }
 
@@ -475,7 +477,7 @@ public abstract class BaseChefApiLiveTest<A extends 
ChefApi> extends BaseChefLiv
    public void testListEnvironmentNodes() {
       api.deleteNode(ENV_NODE);
       api.createNode(Node.builder().name(ENV_NODE).runListElement("role[" + 
PREFIX + "]").environment(PREFIX).build());
-      node = api.getNode(ENV_NODE);
+      Node node = api.getNode(ENV_NODE);
       assertNotNull(node, "Created node should not be null");
       Set<String> nodeList = api.listEnvironmentNodes(PREFIX);
       assertTrue(!nodeList.isEmpty());

Reply via email to