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 f19b2efc78..7706609995 100644 --- a/apis/chef/src/test/java/org/jclouds/chef/ChefApiExpectTest.java +++ b/apis/chef/src/test/java/org/jclouds/chef/ChefApiExpectTest.java @@ -44,7 +44,63 @@ public class ChefApiExpectTest extends BaseChefApiExpectTest { provider = "chef"; } - public void testListEnvironmentRecipesReturns2xx() { + public void testListClientsReturns2xx() { + ChefApi api = requestSendsResponse( + signed(HttpRequest.builder() // + .method("GET") // + .endpoint("http://localhost:4000/clients") // + .addHeader("X-Chef-Version", ChefApiMetadata.DEFAULT_API_VERSION) // + .addHeader("Accept", MediaType.APPLICATION_JSON).build()), // + HttpResponse.builder().statusCode(200) + .payload(payloadFromResourceWithContentType("/clients_list.json", MediaType.APPLICATION_JSON)) // + .build()); + Set nodes = api.listClients(); + assertEquals(nodes.size(), 3); + assertTrue(nodes.contains("adam"), String.format("Expected nodes to contain 'adam' but was: %s", nodes)); + } + + public void testListClientsReturns404() { + ChefApi api = requestSendsResponse( + signed(HttpRequest.builder() // + .method("GET") // + .endpoint("http://localhost:4000/clients") // + .addHeader("X-Chef-Version", ChefApiMetadata.DEFAULT_API_VERSION) // + .addHeader("Accept", MediaType.APPLICATION_JSON).build()), // + HttpResponse.builder().statusCode(404) + .build()); + Set clients = api.listClients(); + assertTrue(clients.isEmpty(), String.format("Expected clients to be empty but was: %s", clients)); + } + + public void testListNodesReturns2xx() { + ChefApi api = requestSendsResponse( + signed(HttpRequest.builder() // + .method("GET") // + .endpoint("http://localhost:4000/nodes") // + .addHeader("X-Chef-Version", ChefApiMetadata.DEFAULT_API_VERSION) // + .addHeader("Accept", MediaType.APPLICATION_JSON).build()), // + HttpResponse.builder().statusCode(200) + .payload(payloadFromResourceWithContentType("/nodes_list.json", MediaType.APPLICATION_JSON)) // + .build()); + Set nodes = api.listNodes(); + assertEquals(nodes.size(), 3); + assertTrue(nodes.contains("blah"), String.format("Expected nodes to contain 'blah' but was: %s", nodes)); + } + + public void testListNodesReturns404() { + ChefApi api = requestSendsResponse( + signed(HttpRequest.builder() // + .method("GET") // + .endpoint("http://localhost:4000/nodes") // + .addHeader("X-Chef-Version", ChefApiMetadata.DEFAULT_API_VERSION) // + .addHeader("Accept", MediaType.APPLICATION_JSON).build()), // + HttpResponse.builder().statusCode(404) + .build()); + Set nodes = api.listNodes(); + assertTrue(nodes.isEmpty(), String.format("Expected nodes to be empty but was: %s", nodes)); + } + + public void testListRecipesInEnvironmentReturns2xx() { ChefApi api = requestSendsResponse( signed(HttpRequest.builder() // .method("GET") // @@ -56,10 +112,10 @@ public class ChefApiExpectTest extends BaseChefApiExpectTest { .build()); Set recipes = api.listRecipesInEnvironment("dev"); assertEquals(recipes.size(), 3); - assertTrue(recipes.contains("apache2")); + assertTrue(recipes.contains("apache2"), String.format("Expected recipes to contain 'apache2' but was: %s", recipes)); } - public void testListEnvironmentRecipesReturns404() { + public void testListRecipesInEnvironmentReturns404() { ChefApi api = requestSendsResponse( signed(HttpRequest.builder() // .method("GET") // @@ -68,11 +124,11 @@ public class ChefApiExpectTest extends BaseChefApiExpectTest { .addHeader("Accept", MediaType.APPLICATION_JSON).build()), // HttpResponse.builder().statusCode(404) .build()); - - assertTrue(api.listRecipesInEnvironment("dev").isEmpty()); + Set recipes = api.listRecipesInEnvironment("dev"); + assertTrue(recipes.isEmpty(), String.format("Expected recipes to be empty but was: %s", recipes)); } - public void testListEnvironmentNodesReturns2xx() { + public void testListNodesInEnvironmentReturns2xx() { ChefApi api = requestSendsResponse( signed(HttpRequest.builder() // .method("GET") // @@ -80,14 +136,14 @@ public class ChefApiExpectTest extends BaseChefApiExpectTest { .addHeader("X-Chef-Version", ChefApiMetadata.DEFAULT_API_VERSION) // .addHeader("Accept", MediaType.APPLICATION_JSON).build()), // HttpResponse.builder().statusCode(200) - .payload(payloadFromResourceWithContentType("/environment_nodes.json", MediaType.APPLICATION_JSON)) // + .payload(payloadFromResourceWithContentType("/nodes_list.json", MediaType.APPLICATION_JSON)) // .build()); Set nodes = api.listNodesInEnvironment("dev"); assertEquals(nodes.size(), 3); - assertTrue(nodes.contains("blah")); + assertTrue(nodes.contains("blah"), String.format("Expected nodes to contain 'blah' but was: %s", nodes)); } - public void testListEnvironmentNodesReturns404() { + public void testListNodesInEnvironmentReturns404() { ChefApi api = requestSendsResponse( signed(HttpRequest.builder() // .method("GET") // @@ -96,8 +152,8 @@ public class ChefApiExpectTest extends BaseChefApiExpectTest { .addHeader("Accept", MediaType.APPLICATION_JSON).build()), // HttpResponse.builder().statusCode(404) .build()); - - assertTrue(api.listNodesInEnvironment("dev").isEmpty()); + Set nodes = api.listNodesInEnvironment("dev"); + assertTrue(nodes.isEmpty(), String.format("Expected nodes to be empty but was: %s", nodes)); } @Override 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 5ca105d295..e6e2c665e8 100644 --- a/apis/chef/src/test/java/org/jclouds/chef/ChefApiTest.java +++ b/apis/chef/src/test/java/org/jclouds/chef/ChefApiTest.java @@ -279,23 +279,6 @@ public class ChefApiTest extends BaseAsyncApiTest { } - public void testListClients() throws SecurityException, NoSuchMethodException, IOException { - Invokable method = method(ChefApi.class, "listClients"); - GeneratedHttpRequest httpRequest = processor.apply(Invocation.create(method, ImmutableList.of())); - - assertRequestLineEquals(httpRequest, "GET http://localhost:4000/clients 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, ParseKeySetFromJson.class); - assertSaxResponseParserClassEquals(method, null); - assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class); - - checkFilters(httpRequest); - - } - public void testGenerateKeyForClient() throws SecurityException, NoSuchMethodException, IOException { Invokable method = method(ChefApi.class, "generateKeyForClient", String.class); GeneratedHttpRequest httpRequest = processor @@ -375,23 +358,6 @@ public class ChefApiTest extends BaseAsyncApiTest { } - public void testListNodes() throws SecurityException, NoSuchMethodException, IOException { - Invokable method = method(ChefApi.class, "listNodes"); - GeneratedHttpRequest httpRequest = processor.apply(Invocation.create(method, ImmutableList.of())); - - assertRequestLineEquals(httpRequest, "GET http://localhost:4000/nodes 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, ParseKeySetFromJson.class); - assertSaxResponseParserClassEquals(method, null); - assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class); - - checkFilters(httpRequest); - - } - public void testDeleteRole() throws SecurityException, NoSuchMethodException, IOException { Invokable method = method(ChefApi.class, "deleteRole", String.class); GeneratedHttpRequest httpRequest = processor.apply(Invocation.create(method, ImmutableList. of("role"))); diff --git a/apis/chef/src/test/resources/clients_list.json b/apis/chef/src/test/resources/clients_list.json new file mode 100644 index 0000000000..000110b90e --- /dev/null +++ b/apis/chef/src/test/resources/clients_list.json @@ -0,0 +1,5 @@ +{ + "chef-webui": "http://localhost:4000/clients/chef-webui", + "chef-validator": "http://localhost:4000/clients/chef-validator", + "adam": "http://localhost:4000/clients/adam" +} diff --git a/apis/chef/src/test/resources/environment_nodes.json b/apis/chef/src/test/resources/nodes_list.json similarity index 100% rename from apis/chef/src/test/resources/environment_nodes.json rename to apis/chef/src/test/resources/nodes_list.json