diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalUserAsyncClientTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalUserAsyncClientTest.java index ba58ab5776..400fc9f96d 100644 --- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalUserAsyncClientTest.java +++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalUserAsyncClientTest.java @@ -19,16 +19,75 @@ package org.jclouds.cloudstack.features; import com.google.inject.TypeLiteral; +import org.jclouds.cloudstack.options.CreateUserOptions; +import org.jclouds.cloudstack.options.UpdateAccountOptions; +import org.jclouds.cloudstack.options.UpdateUserOptions; +import org.jclouds.http.HttpRequest; +import org.jclouds.http.functions.ParseFirstJsonValueNamed; +import org.jclouds.http.functions.ReleasePayloadAndReturn; +import org.jclouds.rest.functions.ReturnNullOnNotFoundOr404; import org.jclouds.rest.internal.RestAnnotationProcessor; import org.testng.annotations.Test; +import java.lang.reflect.Method; + /** * Tests behavior of {@code GlobalUserAsyncClient} - * */ @Test(groups = "unit", testName = "GlobalUserAsyncClientTest") public class GlobalUserAsyncClientTest extends BaseCloudStackAsyncClientTest { - + + public void testCreateAccount() throws Exception { + Method method = GlobalUserAsyncClient.class.getMethod("createUser", String.class, String.class, + String.class, String.class, String.class, String.class, CreateUserOptions[].class); + HttpRequest httpRequest = processor.createRequest(method, "user", "account", "email@example.com", + "hashed-password", "FirstName", "LastName"); + + assertRequestLineEquals(httpRequest, + "GET http://localhost:8080/client/api?response=json&command=createUser&lastname=LastName&" + + "username=user&email=email%40example.com&account=account&password=hashed-password&firstname=FirstName HTTP/1.1"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\n"); + assertPayloadEquals(httpRequest, null, null, false); + + assertResponseParserClassEquals(method, httpRequest, ParseFirstJsonValueNamed.class); + assertSaxResponseParserClassEquals(method, null); + assertExceptionParserClassEquals(method, ReturnNullOnNotFoundOr404.class); + + checkFilters(httpRequest); + } + + public void testUpdateUser() throws Exception { + Method method = GlobalUserAsyncClient.class.getMethod("updateUser", long.class, UpdateUserOptions[].class); + HttpRequest httpRequest = processor.createRequest(method, 42L); + + assertRequestLineEquals(httpRequest, + "GET http://localhost:8080/client/api?response=json&command=updateUser&id=42 HTTP/1.1"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\n"); + assertPayloadEquals(httpRequest, null, null, false); + + assertResponseParserClassEquals(method, httpRequest, ParseFirstJsonValueNamed.class); + assertSaxResponseParserClassEquals(method, null); + assertExceptionParserClassEquals(method, ReturnNullOnNotFoundOr404.class); + + checkFilters(httpRequest); + } + + public void testDeleteUser() throws Exception { + Method method = GlobalUserAsyncClient.class.getMethod("deleteUser", long.class); + HttpRequest httpRequest = processor.createRequest(method, 42L); + + assertRequestLineEquals(httpRequest, + "GET http://localhost:8080/client/api?response=json&command=deleteUser&id=42 HTTP/1.1"); + assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\n"); + assertPayloadEquals(httpRequest, null, null, false); + + assertResponseParserClassEquals(method, httpRequest, ReleasePayloadAndReturn.class); + assertSaxResponseParserClassEquals(method, null); + assertExceptionParserClassEquals(method, ReturnNullOnNotFoundOr404.class); + + checkFilters(httpRequest); + } + @Override protected TypeLiteral> createTypeLiteral() { return new TypeLiteral>() {