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": []
+}