You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2014/11/23 23:00:51 UTC

[10/50] [abbrv] jclouds git commit: JCLOUDS-272: Migrate search role tests from ChefApiTest to ChefApiExpectTest.

JCLOUDS-272: Migrate search role tests from ChefApiTest to ChefApiExpectTest.


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

Branch: refs/heads/1.8.x
Commit: eee53e38db0c95883edd653d65fe437efed255bf
Parents: 223540a
Author: Noorul Islam K M <no...@noorul.com>
Authored: Wed Sep 18 13:05:37 2013 +0530
Committer: Ignasi Barrera <na...@apache.org>
Committed: Mon Sep 23 09:24:43 2013 +0200

----------------------------------------------------------------------
 .../org/jclouds/chef/ChefApiExpectTest.java     | 53 ++++++++++++++++++--
 .../test/java/org/jclouds/chef/ChefApiTest.java | 34 -------------
 apis/chef/src/test/resources/search_role.json   | 34 +++++++++++++
 .../src/test/resources/search_role_empty.json   |  5 ++
 4 files changed, 89 insertions(+), 37 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/eee53e38/apis/chef/src/test/java/org/jclouds/chef/ChefApiExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/chef/src/test/java/org/jclouds/chef/ChefApiExpectTest.java b/apis/chef/src/test/java/org/jclouds/chef/ChefApiExpectTest.java
index c3a9372..90e99da 100644
--- a/apis/chef/src/test/java/org/jclouds/chef/ChefApiExpectTest.java
+++ b/apis/chef/src/test/java/org/jclouds/chef/ChefApiExpectTest.java
@@ -25,6 +25,9 @@ import javax.ws.rs.core.MediaType;
 
 import org.jclouds.chef.config.ChefHttpApiModule;
 import org.jclouds.chef.domain.CookbookDefinition;
+import org.jclouds.chef.domain.Role;
+import org.jclouds.chef.domain.SearchResult;
+import org.jclouds.chef.options.SearchOptions;
 import org.jclouds.date.TimeStamp;
 import org.jclouds.http.HttpRequest;
 import org.jclouds.http.HttpResponse;
@@ -36,7 +39,7 @@ import com.google.inject.Module;
 
 /**
  * Expect tests for the {@link ChefApi} class.
- * 
+ *
  * @author Noorul Islam K M
  */
 @Test(groups = "unit", testName = "ChefApiExpectTest")
@@ -91,7 +94,7 @@ public class ChefApiExpectTest extends BaseChefApiExpectTest<ChefApi> {
       Set<String> nodes = api.listNodes();
       assertTrue(nodes.isEmpty(), String.format("Expected nodes to be empty but was: %s", nodes));
    }
-   
+
    public void testListRecipesInEnvironmentReturnsValidSet() {
       ChefApi api = requestSendsResponse(
             signed(getHttpRequestBuilder("GET", "/environments/dev/recipes").build()),
@@ -156,6 +159,50 @@ public class ChefApiExpectTest extends BaseChefApiExpectTest<ChefApi> {
       assertTrue(cookbooks.isEmpty(), String.format("Expected cookbooks to be empty but was: %s", cookbooks));
    }
 
+   public void testSearchRolesReturnsValidResult() {
+      ChefApi api = requestSendsResponse(
+            signed(getHttpRequestBuilder("GET", "/search/role").build()),
+            HttpResponse.builder().statusCode(200)
+                  .payload(payloadFromResourceWithContentType("/search_role.json", MediaType.APPLICATION_JSON)) //
+                  .build());
+      SearchResult<? extends Role> result = api.searchRoles();
+      assertEquals(result.size(), 1);
+      assertEquals(result.iterator().next().getName(), "webserver");
+   }
+
+   public void testSearchRolesReturnsEmptyResult() {
+      ChefApi api = requestSendsResponse(
+            signed(getHttpRequestBuilder("GET", "/search/role").build()),
+            HttpResponse.builder().statusCode(200)
+                  .payload(payloadFromResourceWithContentType("/search_role_empty.json", MediaType.APPLICATION_JSON)) //
+                  .build());
+      SearchResult<? extends Role> result = api.searchRoles();
+      assertTrue(result.isEmpty(), String.format("Expected search result to be empty but was: %s", result));
+   }
+
+   public void testSearchRolesWithOptionsReturnsValidResult() {
+      ChefApi api = requestSendsResponse(
+            signed(getHttpRequestBuilder("GET", "/search/role").addQueryParam("q", "name:webserver").build()),
+            HttpResponse.builder().statusCode(200)
+                  .payload(payloadFromResourceWithContentType("/search_role.json", MediaType.APPLICATION_JSON)) //
+                  .build());
+      SearchOptions options = SearchOptions.Builder.query("name:webserver");
+      SearchResult<? extends Role> result = api.searchRoles(options);
+      assertEquals(result.size(), 1);
+      assertEquals(result.iterator().next().getName(), "webserver");
+   }
+
+   public void testSearchRolesWithOptionsReturnsEmptyResult() {
+      ChefApi api = requestSendsResponse(
+            signed(getHttpRequestBuilder("GET", "/search/role").addQueryParam("q", "name:dummy").build()),
+            HttpResponse.builder().statusCode(200)
+                  .payload(payloadFromResourceWithContentType("/search_role_empty.json", MediaType.APPLICATION_JSON)) //
+                  .build());
+      SearchOptions options = SearchOptions.Builder.query("name:dummy");
+      SearchResult<? extends Role> result = api.searchRoles(options);
+      assertTrue(result.isEmpty(), String.format("Expected search result to be empty but was: %s", result));
+   }
+
    @Override
    protected Module createModule() {
       return new TestChefRestClientModule();
@@ -173,5 +220,5 @@ public class ChefApiExpectTest extends BaseChefApiExpectTest<ChefApi> {
    protected ChefApiMetadata createApiMetadata() {
       return new ChefApiMetadata();
    }
-   
+
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/eee53e38/apis/chef/src/test/java/org/jclouds/chef/ChefApiTest.java
----------------------------------------------------------------------
diff --git a/apis/chef/src/test/java/org/jclouds/chef/ChefApiTest.java b/apis/chef/src/test/java/org/jclouds/chef/ChefApiTest.java
index e6e2c66..5899486 100644
--- a/apis/chef/src/test/java/org/jclouds/chef/ChefApiTest.java
+++ b/apis/chef/src/test/java/org/jclouds/chef/ChefApiTest.java
@@ -635,40 +635,6 @@ public class ChefApiTest extends BaseAsyncApiTest<ChefApi> {
 
    }
 
-   public void testSearchRoles() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(ChefApi.class, "searchRoles");
-      GeneratedHttpRequest httpRequest = processor.apply(Invocation.create(method, ImmutableList.of()));
-
-      assertRequestLineEquals(httpRequest, "GET http://localhost:4000/search/role HTTP/1.1");
-      assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefApiMetadata.DEFAULT_API_VERSION
-            + "-test\n");
-      assertPayloadEquals(httpRequest, null, null, false);
-
-      assertResponseParserClassEquals(method, httpRequest, ParseSearchRolesFromJson.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, MapHttp4xxCodesToExceptions.class);
-
-      checkFilters(httpRequest);
-
-   }
-
-   public void testSearchRolesWithOptions() throws SecurityException, NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(ChefApi.class, "searchRoles", SearchOptions.class);
-      GeneratedHttpRequest httpRequest = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(SearchOptions.Builder.query("text"))));
-
-      assertRequestLineEquals(httpRequest, "GET http://localhost:4000/search/role?q=text HTTP/1.1");
-      assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\nX-Chef-Version: " + ChefApiMetadata.DEFAULT_API_VERSION
-            + "-test\n");
-      assertPayloadEquals(httpRequest, null, null, false);
-
-      assertResponseParserClassEquals(method, httpRequest, ParseSearchRolesFromJson.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, MapHttp4xxCodesToExceptions.class);
-
-      checkFilters(httpRequest);
-
-   }
 
    public void testSearchClients() throws SecurityException, NoSuchMethodException, IOException {
       Invokable<?, ?> method = method(ChefApi.class, "searchClients");

http://git-wip-us.apache.org/repos/asf/jclouds/blob/eee53e38/apis/chef/src/test/resources/search_role.json
----------------------------------------------------------------------
diff --git a/apis/chef/src/test/resources/search_role.json b/apis/chef/src/test/resources/search_role.json
new file mode 100644
index 0000000..5e51663
--- /dev/null
+++ b/apis/chef/src/test/resources/search_role.json
@@ -0,0 +1,34 @@
+{
+    "total": 1,
+    "start": 0,
+    "rows": [
+        {
+            "name": "webserver",
+            "description": "The base role for systems that serve HTTP traffic",
+            "json_class": "Chef::Role",
+            "default_attributes": {
+                "apache2": {
+                    "listen_ports": [
+                        "80",
+                        "443"
+                    ]
+                }
+            },
+            "override_attributes": {
+                "apache2": {
+                    "max_children": "50"
+                }
+            },
+            "chef_type": "role",
+            "run_list": [],
+            "env_run_lists": {
+                "prod": [
+                    "recipe[apache2]"
+                ],
+                "staging": [
+                    "recipe[apache2::staging]"
+                ]
+            }
+        }
+    ]
+}

http://git-wip-us.apache.org/repos/asf/jclouds/blob/eee53e38/apis/chef/src/test/resources/search_role_empty.json
----------------------------------------------------------------------
diff --git a/apis/chef/src/test/resources/search_role_empty.json b/apis/chef/src/test/resources/search_role_empty.json
new file mode 100644
index 0000000..ab859ca
--- /dev/null
+++ b/apis/chef/src/test/resources/search_role_empty.json
@@ -0,0 +1,5 @@
+{
+    "total": 0,
+    "start": 0,
+    "rows": []
+}