From 7e8e2ca4601c18307aa2ea5c59801834563f98be Mon Sep 17 00:00:00 2001 From: andreisavu Date: Mon, 12 Dec 2011 16:49:45 +0200 Subject: [PATCH] Added tests for GlobalAccountAsyncClient --- .../GlobalAccountAsyncClientTest.java | 66 ++++++++++++++++++- 1 file changed, 64 insertions(+), 2 deletions(-) diff --git a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalAccountAsyncClientTest.java b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalAccountAsyncClientTest.java index 7ba3e13159..b1464935d2 100644 --- a/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalAccountAsyncClientTest.java +++ b/apis/cloudstack/src/test/java/org/jclouds/cloudstack/features/GlobalAccountAsyncClientTest.java @@ -18,19 +18,81 @@ */ package org.jclouds.cloudstack.features; +import org.jclouds.cloudstack.domain.Account; +import org.jclouds.cloudstack.options.CreateAccountOptions; +import org.jclouds.cloudstack.options.UpdateAccountOptions; +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 com.google.inject.TypeLiteral; +import java.lang.reflect.Method; + /** * Tests behavior of {@code GlobalAccountAsyncClient} - * + * * @author Adrian */ @Test(groups = "unit", testName = "GlobalAccountAsyncClientTest") public class GlobalAccountAsyncClientTest extends BaseCloudStackAsyncClientTest { - + + public void testCreateAccount() throws Exception { + Method method = GlobalAccountAsyncClient.class.getMethod("createAccount", String.class, Account.Type.class, + String.class, String.class, String.class, String.class, CreateAccountOptions[].class); + HttpRequest httpRequest = processor.createRequest(method, "user", Account.Type.USER, "email@example.com", + "FirstName", "LastName", "hashed-password"); + + assertRequestLineEquals(httpRequest, + "GET http://localhost:8080/client/api?response=json&command=createAccount&password=hashed-password&" + + "username=user&email=email%40example.com&accounttype=0&firstname=FirstName&lastname=LastName 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 testUpdateAccount() throws Exception { + Method method = GlobalAccountAsyncClient.class.getMethod("updateAccount", String.class, long.class, + String.class, UpdateAccountOptions[].class); + HttpRequest httpRequest = processor.createRequest(method, "account", 42L, "new-account-name"); + + assertRequestLineEquals(httpRequest, + "GET http://localhost:8080/client/api?response=json&command=updateAccount&account=account&" + + "newname=new-account-name&domainid=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 testDeleteAccount() throws Exception { + Method method = GlobalAccountAsyncClient.class.getMethod("deleteAccount", long.class); + HttpRequest httpRequest = processor.createRequest(method, 42L); + + assertRequestLineEquals(httpRequest, + "GET http://localhost:8080/client/api?response=json&command=deleteAccount&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>() {