http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1b689dc1/abiquo/src/test/java/org/jclouds/abiquo/features/CloudApiTest.java
----------------------------------------------------------------------
diff --git a/abiquo/src/test/java/org/jclouds/abiquo/features/CloudApiTest.java 
b/abiquo/src/test/java/org/jclouds/abiquo/features/CloudApiTest.java
deleted file mode 100644
index 55a85a6..0000000
--- a/abiquo/src/test/java/org/jclouds/abiquo/features/CloudApiTest.java
+++ /dev/null
@@ -1,1097 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.abiquo.features;
-
-import static org.jclouds.abiquo.domain.DomainUtils.withHeader;
-import static org.jclouds.reflect.Reflection2.method;
-
-import java.io.IOException;
-
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.abiquo.domain.CloudResources;
-import org.jclouds.abiquo.domain.EnterpriseResources;
-import org.jclouds.abiquo.domain.InfrastructureResources;
-import org.jclouds.abiquo.domain.NetworkResources;
-import org.jclouds.abiquo.domain.cloud.options.VirtualDatacenterOptions;
-import org.jclouds.abiquo.domain.cloud.options.VirtualMachineOptions;
-import org.jclouds.abiquo.fallbacks.MovedVolume;
-import org.jclouds.abiquo.functions.ReturnTaskReferenceOrNull;
-import org.jclouds.http.functions.ParseXMLWithJAXB;
-import org.jclouds.http.functions.ReleasePayloadAndReturn;
-import org.jclouds.http.functions.ReturnStringIf2xx;
-import org.jclouds.reflect.Invocation;
-import org.jclouds.rest.internal.GeneratedHttpRequest;
-import org.testng.annotations.Test;
-
-import com.abiquo.model.rest.RESTLink;
-import com.abiquo.model.transport.AcceptedRequestDto;
-import com.abiquo.model.transport.LinksDto;
-import com.abiquo.server.core.appslibrary.VirtualMachineTemplateDto;
-import com.abiquo.server.core.cloud.VirtualApplianceDto;
-import com.abiquo.server.core.cloud.VirtualApplianceStateDto;
-import com.abiquo.server.core.cloud.VirtualAppliancesDto;
-import com.abiquo.server.core.cloud.VirtualDatacenterDto;
-import com.abiquo.server.core.cloud.VirtualDatacentersDto;
-import com.abiquo.server.core.cloud.VirtualMachineDto;
-import com.abiquo.server.core.cloud.VirtualMachineStateDto;
-import com.abiquo.server.core.cloud.VirtualMachineTaskDto;
-import com.abiquo.server.core.cloud.VirtualMachineWithNodeExtendedDto;
-import com.abiquo.server.core.enterprise.EnterpriseDto;
-import com.abiquo.server.core.infrastructure.DatacenterDto;
-import com.abiquo.server.core.infrastructure.network.PrivateIpDto;
-import com.abiquo.server.core.infrastructure.network.PublicIpDto;
-import com.abiquo.server.core.infrastructure.network.VLANNetworkDto;
-import com.abiquo.server.core.infrastructure.network.VLANNetworksDto;
-import 
com.abiquo.server.core.infrastructure.network.VMNetworkConfigurationsDto;
-import com.abiquo.server.core.infrastructure.storage.DiskManagementDto;
-import com.abiquo.server.core.infrastructure.storage.DisksManagementDto;
-import com.abiquo.server.core.infrastructure.storage.MovedVolumeDto;
-import com.abiquo.server.core.infrastructure.storage.TierDto;
-import com.abiquo.server.core.infrastructure.storage.TiersDto;
-import com.abiquo.server.core.infrastructure.storage.VolumeManagementDto;
-import com.abiquo.server.core.infrastructure.storage.VolumesManagementDto;
-import com.google.common.collect.ImmutableList;
-import com.google.common.reflect.Invokable;
-
-/**
- * Tests annotation parsing of {@code CloudApi}
- */
-@Test(groups = "unit", testName = "CloudApiTest")
-public class CloudApiTest extends BaseAbiquoApiTest<CloudApi> {
-   /*********************** Virtual Datacenter ***********************/
-
-   public void testListVirtualDatacentersParams() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, 
"listVirtualDatacenters", VirtualDatacenterOptions.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> 
of(VirtualDatacenterOptions.builder().datacenterId(1).enterpriseId(1).build())));
-
-      assertRequestLineEquals(request,
-            "GET 
http://localhost/api/cloud/virtualdatacenters?datacenter=1&enterprise=1 
HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
VirtualDatacentersDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testListVirtualDatacentersNoParams() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, 
"listVirtualDatacenters", VirtualDatacenterOptions.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> 
of(VirtualDatacenterOptions.builder().build())));
-
-      assertRequestLineEquals(request, "GET 
http://localhost/api/cloud/virtualdatacenters HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
VirtualDatacentersDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testCreateVirtualDatacenter() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, 
"createVirtualDatacenter", VirtualDatacenterDto.class,
-            DatacenterDto.class, EnterpriseDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method, 
ImmutableList.<Object> of(
-            CloudResources.virtualDatacenterPost(), 
InfrastructureResources.datacenterPut(),
-            EnterpriseResources.enterprisePut())));
-
-      assertRequestLineEquals(request,
-            "POST 
http://localhost/api/cloud/virtualdatacenters?datacenter=1&enterprise=1 
HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
VirtualDatacenterDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, 
withHeader(CloudResources.virtualDatacenterPostPayload()),
-            VirtualDatacenterDto.class, VirtualDatacenterDto.BASE_MEDIA_TYPE, 
false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testGetVirtualDatacenter() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "getVirtualDatacenter", 
Integer.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method, 
ImmutableList.<Object> of(1)));
-
-      assertRequestLineEquals(request, "GET 
http://localhost/api/cloud/virtualdatacenters/1 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
VirtualDatacenterDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, NullOnNotFoundOr404.class);
-
-      checkFilters(request);
-   }
-
-   public void testUpdateVirtualDatacenter() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, 
"updateVirtualDatacenter", VirtualDatacenterDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualDatacenterPut())));
-
-      assertRequestLineEquals(request, "PUT 
http://localhost/api/cloud/virtualdatacenters/1 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
VirtualDatacenterDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, 
withHeader(CloudResources.virtualDatacenterPutPayload()),
-            VirtualDatacenterDto.class, VirtualDatacenterDto.BASE_MEDIA_TYPE, 
false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testDeleteVirtualDatacenter() throws SecurityException, 
NoSuchMethodException {
-      Invokable<?, ?> method = method(CloudApi.class, 
"deleteVirtualDatacenter", VirtualDatacenterDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualDatacenterPut())));
-
-      assertRequestLineEquals(request, "DELETE 
http://localhost/api/cloud/virtualdatacenters/1 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, 
ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   /*********************** Ips ***********************/
-
-   public void testPurchasePublicIp() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "purchasePublicIp", 
PublicIpDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(NetworkResources.publicIpToPurchase())));
-
-      assertRequestLineEquals(request,
-            "PUT 
http://localhost/api/cloud/virtualdatacenters/5/publicips/purchased/1 
HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
PublicIpDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testReleasePublicIp() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "releasePublicIp", 
PublicIpDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(NetworkResources.publicIpToRelease())));
-
-      assertRequestLineEquals(request,
-            "PUT 
http://localhost/api/cloud/virtualdatacenters/5/publicips/topurchase/1 
HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
PublicIpDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   /*********************** Available templates ***********************/
-
-   /*********************** Storage Tiers ***********************/
-
-   public void testListStorageTiers() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "listStorageTiers", 
VirtualDatacenterDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualDatacenterPut())));
-
-      assertRequestLineEquals(request, "GET 
http://localhost/api/cloud/virtualdatacenters/1/tiers HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
TiersDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testGetStorageTier() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "getStorageTier", 
VirtualDatacenterDto.class, Integer.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualDatacenterPut(), 
1)));
-
-      assertRequestLineEquals(request, "GET 
http://localhost/api/cloud/virtualdatacenters/1/tiers/1 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
TierDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, NullOnNotFoundOr404.class);
-
-      checkFilters(request);
-   }
-
-   public void testGetDefaultNetwork() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "getDefaultNetwork", 
VirtualDatacenterDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualDatacenterPut())));
-
-      assertRequestLineEquals(request, "GET 
http://localhost/api/cloud/virtualdatacenters/1/privatenetworks/1 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
VLANNetworkDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testSetDefaultNetworkInternal() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "setDefaultNetwork", 
VirtualDatacenterDto.class,
-            VLANNetworkDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualDatacenterPut(), 
NetworkResources.privateNetworkPut())));
-
-      RESTLink netLink = NetworkResources.privateNetworkPut().getEditLink();
-
-      assertRequestLineEquals(request,
-            "PUT 
http://localhost/api/cloud/virtualdatacenters/1/action/defaultvlan HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "");
-      assertPayloadEquals(request, withHeader("<links><link href=\"" + 
netLink.getHref()
-            + "\" rel=\"internalnetwork\"/></links>"), LinksDto.class, 
LinksDto.BASE_MEDIA_TYPE, false);
-
-      assertResponseParserClassEquals(method, request, 
ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testSetDefaultNetworkExternal() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "setDefaultNetwork", 
VirtualDatacenterDto.class,
-            VLANNetworkDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualDatacenterPut(), 
NetworkResources.externalNetworkPut())));
-
-      RESTLink netLink = NetworkResources.externalNetworkPut().getEditLink();
-
-      assertRequestLineEquals(request,
-            "PUT 
http://localhost/api/cloud/virtualdatacenters/1/action/defaultvlan HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "");
-      assertPayloadEquals(request, withHeader("<links><link href=\"" + 
netLink.getHref()
-            + "\" rel=\"externalnetwork\"/></links>"), LinksDto.class, 
LinksDto.BASE_MEDIA_TYPE, false);
-
-      assertResponseParserClassEquals(method, request, 
ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   /*********************** Private Network ***********************/
-
-   public void testListPrivateNetworks() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "listPrivateNetworks", 
VirtualDatacenterDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualDatacenterPut())));
-
-      assertRequestLineEquals(request, "GET 
http://localhost/api/cloud/virtualdatacenters/1/privatenetworks HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
VLANNetworksDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testGetPrivateNetwork() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "getPrivateNetwork", 
VirtualDatacenterDto.class, Integer.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualDatacenterPut(), 
1)));
-
-      assertRequestLineEquals(request, "GET 
http://localhost/api/cloud/virtualdatacenters/1/privatenetworks/1 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
VLANNetworkDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, NullOnNotFoundOr404.class);
-
-      checkFilters(request);
-   }
-
-   public void testCreatePrivateNetwork() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "createPrivateNetwork", 
VirtualDatacenterDto.class,
-            VLANNetworkDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualDatacenterPut(), 
NetworkResources.vlanPost())));
-
-      assertRequestLineEquals(request, "POST 
http://localhost/api/cloud/virtualdatacenters/1/privatenetworks HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
VLANNetworkDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, 
withHeader(NetworkResources.vlanNetworkPostPayload()), VLANNetworkDto.class,
-            VLANNetworkDto.BASE_MEDIA_TYPE, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testUpdatePrivateNetwork() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "updatePrivateNetwork", 
VLANNetworkDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(NetworkResources.privateNetworkPut())));
-
-      assertRequestLineEquals(request, "PUT 
http://localhost/api/cloud/virtualdatacenters/1/privatenetworks/1 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
VLANNetworkDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, 
withHeader(NetworkResources.privateNetworkPutPayload()), VLANNetworkDto.class,
-            VLANNetworkDto.BASE_MEDIA_TYPE, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testDeletePrivateNetwork() throws SecurityException, 
NoSuchMethodException {
-      Invokable<?, ?> method = method(CloudApi.class, "deletePrivateNetwork", 
VLANNetworkDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(NetworkResources.privateNetworkPut())));
-
-      assertRequestLineEquals(request,
-            "DELETE 
http://localhost/api/cloud/virtualdatacenters/1/privatenetworks/1 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, 
ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   /*********************** Private Network IPs ***********************/
-
-   public void testGetPrivateNetworkIp() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "getPrivateNetworkIp", 
VLANNetworkDto.class, Integer.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(NetworkResources.privateNetworkPut(), 
1)));
-
-      assertRequestLineEquals(request,
-            "GET 
http://localhost/api/cloud/virtualdatacenters/1/privatenetworks/1/ips/1 
HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
PrivateIpDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   /*********************** Virtual Appliance ***********************/
-
-   public void testListVirtualAppliances() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "listVirtualAppliances", 
VirtualDatacenterDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualDatacenterPut())));
-
-      assertRequestLineEquals(request, "GET 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
VirtualAppliancesDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testGetVirtualAppliance() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "getVirtualAppliance", 
VirtualDatacenterDto.class, Integer.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualDatacenterPut(), 
1)));
-
-      assertRequestLineEquals(request,
-            "GET 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
VirtualApplianceDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, NullOnNotFoundOr404.class);
-
-      checkFilters(request);
-   }
-
-   public void testGetVirtualApplianceState() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, 
"getVirtualApplianceState", VirtualApplianceDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualAppliancePut())));
-
-      assertRequestLineEquals(request,
-            "GET 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/state 
HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
VirtualApplianceStateDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testCreateVirtualAppliance() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, 
"createVirtualAppliance", VirtualDatacenterDto.class,
-            VirtualApplianceDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualDatacenterPut(), 
CloudResources.virtualAppliancePost())));
-
-      assertRequestLineEquals(request,
-            "POST 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
VirtualApplianceDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, 
withHeader(CloudResources.virtualAppliancePostPayload()), 
VirtualApplianceDto.class,
-            VirtualApplianceDto.BASE_MEDIA_TYPE, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testUpdateVirtualAppliance() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, 
"updateVirtualAppliance", VirtualApplianceDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualAppliancePut())));
-
-      assertRequestLineEquals(request,
-            "PUT 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
VirtualApplianceDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, 
withHeader(CloudResources.virtualAppliancePutPayload()), 
VirtualApplianceDto.class,
-            VirtualApplianceDto.BASE_MEDIA_TYPE, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testDeleteVirtualAppliance() throws SecurityException, 
NoSuchMethodException {
-      Invokable<?, ?> method = method(CloudApi.class, 
"deleteVirtualAppliance", VirtualApplianceDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualAppliancePut())));
-
-      assertRequestLineEquals(request,
-            "DELETE 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, 
ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testDeployVirtualAppliance() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, 
"deployVirtualAppliance", VirtualApplianceDto.class,
-            VirtualMachineTaskDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualAppliancePut(), 
CloudResources.deployOptions())));
-
-      assertRequestLineEquals(request,
-            "POST 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/action/deploy
 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
AcceptedRequestDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, withHeader(CloudResources.deployPayload()), 
VirtualMachineTaskDto.class,
-            VirtualMachineTaskDto.BASE_MEDIA_TYPE, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testUndeployVirtualAppliance() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, 
"undeployVirtualAppliance", VirtualApplianceDto.class,
-            VirtualMachineTaskDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualAppliancePut(), 
CloudResources.undeployOptions())));
-
-      assertRequestLineEquals(request,
-            "POST 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/action/undeploy
 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
AcceptedRequestDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, 
withHeader(CloudResources.undeployPayload()), VirtualMachineTaskDto.class,
-            VirtualMachineTaskDto.BASE_MEDIA_TYPE, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testGetVirtualAppliancePrice() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, 
"getVirtualAppliancePrice", VirtualApplianceDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualAppliancePut())));
-
-      assertRequestLineEquals(request,
-            "GET 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/action/price
 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + MediaType.TEXT_PLAIN 
+ "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, 
ReturnStringIf2xx.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   /*********************** Virtual Machine ***********************/
-
-   public void testGetVirtualMachine() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "getVirtualMachine", 
VirtualApplianceDto.class, Integer.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualAppliancePut(), 
1)));
-
-      assertRequestLineEquals(request,
-            "GET 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1
 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
VirtualMachineWithNodeExtendedDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, NullOnNotFoundOr404.class);
-
-      checkFilters(request);
-   }
-
-   public void testCreateVirtualMachine() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "createVirtualMachine", 
VirtualApplianceDto.class,
-            VirtualMachineWithNodeExtendedDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualAppliancePut(), 
CloudResources.virtualMachinePost())));
-
-      assertRequestLineEquals(request,
-            "POST 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines
 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
VirtualMachineWithNodeExtendedDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, 
withHeader(CloudResources.virtualMachinePostPayload()),
-            VirtualMachineWithNodeExtendedDto.class, 
VirtualMachineWithNodeExtendedDto.BASE_MEDIA_TYPE, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testUpdateVirtualMachine() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "updateVirtualMachine", 
VirtualMachineWithNodeExtendedDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualMachinePut())));
-
-      assertRequestLineEquals(request,
-            "PUT 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1
 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
AcceptedRequestDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, 
withHeader(CloudResources.virtualMachinePutPayload()),
-            VirtualMachineWithNodeExtendedDto.class, 
VirtualMachineWithNodeExtendedDto.BASE_MEDIA_TYPE, false);
-
-      assertResponseParserClassEquals(method, request, 
ReturnTaskReferenceOrNull.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testUpdateVirtualMachineWithOptions() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "updateVirtualMachine", 
VirtualMachineWithNodeExtendedDto.class,
-            VirtualMachineOptions.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(
-            method,
-            ImmutableList.<Object> of(CloudResources.virtualMachinePut(), 
VirtualMachineOptions.builder().force(true)
-                  .build())));
-
-      assertRequestLineEquals(request,
-            "PUT 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1?force=true
 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
AcceptedRequestDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, 
withHeader(CloudResources.virtualMachinePutPayload()),
-            VirtualMachineWithNodeExtendedDto.class, 
VirtualMachineWithNodeExtendedDto.BASE_MEDIA_TYPE, false);
-
-      assertResponseParserClassEquals(method, request, 
ReturnTaskReferenceOrNull.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testChangeVirtualMachineState() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, 
"changeVirtualMachineState", VirtualMachineDto.class,
-            VirtualMachineStateDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualMachinePut(), 
CloudResources.virtualMachineState())));
-
-      assertRequestLineEquals(request,
-            "PUT 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1/state
 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
AcceptedRequestDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, 
withHeader(CloudResources.virtualMachineStatePayload()),
-            VirtualMachineStateDto.class, 
VirtualMachineStateDto.BASE_MEDIA_TYPE, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testDeleteVirtualMachine() throws SecurityException, 
NoSuchMethodException {
-      Invokable<?, ?> method = method(CloudApi.class, "deleteVirtualMachine", 
VirtualMachineDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualMachinePut())));
-
-      assertRequestLineEquals(request,
-            "DELETE 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1
 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, 
ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testGetVirtualMachineState() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, 
"getVirtualMachineState", VirtualMachineDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualMachinePut())));
-
-      assertRequestLineEquals(request,
-            "GET 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1/state
 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
VirtualMachineStateDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testDeployVirtualMachine() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "deployVirtualMachine", 
VirtualMachineDto.class,
-            VirtualMachineTaskDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualMachinePut(), 
CloudResources.deployOptions())));
-
-      assertRequestLineEquals(request,
-            "POST 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1/action/deploy
 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
AcceptedRequestDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, withHeader(CloudResources.deployPayload()), 
VirtualMachineTaskDto.class,
-            VirtualMachineTaskDto.BASE_MEDIA_TYPE, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testUndeployVirtualMachine() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, 
"undeployVirtualMachine", VirtualMachineDto.class,
-            VirtualMachineTaskDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualMachinePut(), 
CloudResources.undeployOptions())));
-
-      assertRequestLineEquals(request,
-            "POST 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1/action/undeploy
 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
AcceptedRequestDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, 
withHeader(CloudResources.undeployPayload()), VirtualMachineTaskDto.class,
-            VirtualMachineTaskDto.BASE_MEDIA_TYPE, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testRebootVirtualMachine() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "rebootVirtualMachine", 
VirtualMachineDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualMachinePut())));
-
-      assertRequestLineEquals(request,
-            "POST 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1/action/reset
 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
AcceptedRequestDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testListNetworkConfigurations() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, 
"listNetworkConfigurations", VirtualMachineDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualMachinePut())));
-
-      assertRequestLineEquals(
-            request,
-            "GET 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1/network/configurations
 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
VMNetworkConfigurationsDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testSetGatewayNetwork() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "setGatewayNetwork", 
VirtualMachineDto.class,
-            VLANNetworkDto.class);
-
-      VirtualMachineDto vm = CloudResources.virtualMachinePut();
-      VLANNetworkDto network = NetworkResources.privateNetworkPut();
-
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method, 
ImmutableList.<Object> of(vm, network)));
-
-      String configLink = vm.searchLink("configurations").getHref() + "/" + 
network.getId();
-
-      assertRequestLineEquals(
-            request,
-            "PUT 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1/network/configurations
 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "");
-      assertPayloadEquals(request, withHeader("<links><link href=\"" + 
configLink
-            + "\" rel=\"network_configuration\"/></links>"), LinksDto.class, 
LinksDto.BASE_MEDIA_TYPE, false);
-
-      assertResponseParserClassEquals(method, request, 
ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   /*********************** Virtual Machine Template ***********************/
-
-   public void testGetVirtualMachineTemplate() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, 
"getVirtualMachineTemplate", VirtualMachineDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualMachinePut())));
-
-      assertRequestLineEquals(request,
-            "GET 
http://localhost/api/admin/enterprises/1/datacenterrepositories/1/virtualmachinetemplates/1
 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
VirtualMachineTemplateDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testListAttachedVolumes() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "listAttachedVolumes", 
VirtualMachineDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualMachinePut())));
-
-      assertRequestLineEquals(request,
-            "GET 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1/storage/volumes
 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
VolumesManagementDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testDetachAllVolumes() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "detachAllVolumes", 
VirtualMachineDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualMachinePut())));
-
-      assertRequestLineEquals(request,
-            "DELETE 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1/storage/volumes
 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
AcceptedRequestDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, 
ReturnTaskReferenceOrNull.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testReplaceVolumes() throws SecurityException, 
NoSuchMethodException, IOException {
-      VolumeManagementDto first = CloudResources.volumePut();
-      VolumeManagementDto second = CloudResources.volumePut();
-      second.getEditLink().setHref(second.getEditLink().getHref() + "second");
-
-      Invokable<?, ?> method = method(CloudApi.class, "replaceVolumes", 
VirtualMachineDto.class,
-            VirtualMachineOptions.class, VolumeManagementDto[].class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(
-            method,
-            ImmutableList.<Object> of(CloudResources.virtualMachinePut(), 
VirtualMachineOptions.builder().force(true)
-                  .build(), new VolumeManagementDto[] { first, second })));
-
-      String editLink = CloudResources.volumePut().getEditLink().getHref();
-      assertRequestLineEquals(
-            request,
-            "PUT 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1/storage/volumes?force=true
 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
AcceptedRequestDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, withHeader("<links><link href=\"" + 
editLink + "\" rel=\"volume\"/><link href=\""
-            + editLink + "second\" rel=\"volume\"/></links>"), LinksDto.class, 
LinksDto.BASE_MEDIA_TYPE, false);
-
-      assertResponseParserClassEquals(method, request, 
ReturnTaskReferenceOrNull.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testListAttachedHardDisks() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "listAttachedHardDisks", 
VirtualMachineDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualMachinePut())));
-
-      assertRequestLineEquals(request,
-            "GET 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1/storage/disks
 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
DisksManagementDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testDetachAllHardDisks() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "detachAllHardDisks", 
VirtualMachineDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualMachinePut())));
-
-      assertRequestLineEquals(request,
-            "DELETE 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1/storage/disks
 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
AcceptedRequestDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, 
ReturnTaskReferenceOrNull.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testReplaceHardDisks() throws SecurityException, 
NoSuchMethodException, IOException {
-      DiskManagementDto first = CloudResources.hardDiskPut();
-      DiskManagementDto second = CloudResources.hardDiskPut();
-      second.getEditLink().setHref(second.getEditLink().getHref() + "second");
-
-      Invokable<?, ?> method = method(CloudApi.class, "replaceHardDisks", 
VirtualMachineDto.class,
-            DiskManagementDto[].class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualMachinePut(), new 
DiskManagementDto[] { first, second })));
-
-      String editLink = CloudResources.hardDiskPut().getEditLink().getHref();
-      assertRequestLineEquals(request,
-            "PUT 
http://localhost/api/cloud/virtualdatacenters/1/virtualappliances/1/virtualmachines/1/storage/disks
 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
AcceptedRequestDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, withHeader("<links><link href=\"" + 
editLink + "\" rel=\"disk\"/><link href=\""
-            + editLink + "second\" rel=\"disk\"/></links>"), LinksDto.class, 
LinksDto.BASE_MEDIA_TYPE, false);
-
-      assertResponseParserClassEquals(method, request, 
ReturnTaskReferenceOrNull.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   /*********************** Hard disks ***********************/
-
-   public void testListHardDisks() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "listHardDisks", 
VirtualDatacenterDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualDatacenterPut())));
-
-      assertRequestLineEquals(request, "GET 
http://localhost/api/cloud/virtualdatacenters/1/disks HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
DisksManagementDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testGetHardDisk() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "getHardDisk", 
VirtualDatacenterDto.class, Integer.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualDatacenterPut(), 
1)));
-
-      assertRequestLineEquals(request, "GET 
http://localhost/api/cloud/virtualdatacenters/1/disks/1 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
DiskManagementDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, NullOnNotFoundOr404.class);
-
-      checkFilters(request);
-   }
-
-   public void testCreateHardDisk() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "createHardDisk", 
VirtualDatacenterDto.class,
-            DiskManagementDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualDatacenterPut(), 
CloudResources.hardDiskPost())));
-
-      assertRequestLineEquals(request, "POST 
http://localhost/api/cloud/virtualdatacenters/1/disks HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
DiskManagementDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, 
withHeader(CloudResources.hardDiskPostPayload()), DiskManagementDto.class,
-            DiskManagementDto.BASE_MEDIA_TYPE, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testDeleteHardDisk() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "deleteHardDisk", 
DiskManagementDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.hardDiskPut())));
-
-      assertRequestLineEquals(request, "DELETE 
http://localhost/api/cloud/virtualdatacenters/1/disks/1 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, 
ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   /*********************** Volumes ***********************/
-
-   public void testGetVolume() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "getVolume", 
VirtualDatacenterDto.class, Integer.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualDatacenterPut(), 
1)));
-
-      assertRequestLineEquals(request, "GET 
http://localhost/api/cloud/virtualdatacenters/1/volumes/1 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
VolumeManagementDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, NullOnNotFoundOr404.class);
-
-      checkFilters(request);
-   }
-
-   public void testCreateVolume() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "createVolume", 
VirtualDatacenterDto.class,
-            VolumeManagementDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.virtualDatacenterPut(), 
CloudResources.volumePost())));
-
-      assertRequestLineEquals(request, "POST 
http://localhost/api/cloud/virtualdatacenters/1/volumes HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
VolumeManagementDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, 
withHeader(CloudResources.volumePostPayload()), VolumeManagementDto.class,
-            VolumeManagementDto.BASE_MEDIA_TYPE, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testUpdateVolume() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "updateVolume", 
VolumeManagementDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.volumePut())));
-
-      assertRequestLineEquals(request, "PUT 
http://localhost/api/cloud/virtualdatacenters/1/volumes/1 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
AcceptedRequestDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, 
withHeader(CloudResources.volumePutPayload()), VolumeManagementDto.class,
-            VolumeManagementDto.BASE_MEDIA_TYPE, false);
-
-      assertResponseParserClassEquals(method, request, 
ReturnTaskReferenceOrNull.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testDeleteVolume() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "deleteVolume", 
VolumeManagementDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.volumePut())));
-
-      assertRequestLineEquals(request, "DELETE 
http://localhost/api/cloud/virtualdatacenters/1/volumes/1 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, 
ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testMoveVolume() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(CloudApi.class, "moveVolume", 
VolumeManagementDto.class,
-            VirtualDatacenterDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(CloudResources.volumePut(), 
CloudResources.virtualDatacenterPut())));
-
-      assertRequestLineEquals(request,
-            "POST 
http://localhost/api/cloud/virtualdatacenters/1/volumes/1/action/move 
HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
MovedVolumeDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, 
withHeader(CloudResources.virtualDatacenterRefPayload()), LinksDto.class,
-            LinksDto.BASE_MEDIA_TYPE, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, MovedVolume.class);
-
-      checkFilters(request);
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1b689dc1/abiquo/src/test/java/org/jclouds/abiquo/features/ConfigApiTest.java
----------------------------------------------------------------------
diff --git 
a/abiquo/src/test/java/org/jclouds/abiquo/features/ConfigApiTest.java 
b/abiquo/src/test/java/org/jclouds/abiquo/features/ConfigApiTest.java
deleted file mode 100644
index faf7ee5..0000000
--- a/abiquo/src/test/java/org/jclouds/abiquo/features/ConfigApiTest.java
+++ /dev/null
@@ -1,279 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.abiquo.features;
-
-import static org.jclouds.abiquo.domain.DomainUtils.withHeader;
-import static org.jclouds.reflect.Reflection2.method;
-
-import java.io.IOException;
-
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.abiquo.domain.ConfigResources;
-import org.jclouds.abiquo.domain.config.options.LicenseOptions;
-import org.jclouds.abiquo.domain.config.options.PropertyOptions;
-import org.jclouds.http.functions.ParseXMLWithJAXB;
-import org.jclouds.http.functions.ReleasePayloadAndReturn;
-import org.jclouds.reflect.Invocation;
-import org.jclouds.rest.internal.GeneratedHttpRequest;
-import org.testng.annotations.Test;
-
-import com.abiquo.server.core.appslibrary.CategoriesDto;
-import com.abiquo.server.core.appslibrary.CategoryDto;
-import com.abiquo.server.core.config.LicenseDto;
-import com.abiquo.server.core.config.LicensesDto;
-import com.abiquo.server.core.config.SystemPropertiesDto;
-import com.abiquo.server.core.config.SystemPropertyDto;
-import com.abiquo.server.core.enterprise.PrivilegeDto;
-import com.abiquo.server.core.enterprise.PrivilegesDto;
-import com.google.common.collect.ImmutableList;
-import com.google.common.reflect.Invokable;
-
-/**
- * Tests annotation parsing of {@code ConfigApi}.
- */
-@Test(groups = "unit", testName = "ConfigApiTest")
-public class ConfigApiTest extends BaseAbiquoApiTest<ConfigApi> {
-   /*********************** License ***********************/
-
-   public void testListLicenses() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(ConfigApi.class, "listLicenses");
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method, 
ImmutableList.of()));
-
-      assertRequestLineEquals(request, "GET 
http://localhost/api/config/licenses HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
LicensesDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testListLicenseWithOptions() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(ConfigApi.class, "listLicenses", 
LicenseOptions.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> 
of(LicenseOptions.builder().active(true).build())));
-
-      assertRequestLineEquals(request, "GET 
http://localhost/api/config/licenses?active=true HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
LicensesDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testAddLicense() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(ConfigApi.class, "addLicense", 
LicenseDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(ConfigResources.licensePost())));
-
-      assertRequestLineEquals(request, "POST 
http://localhost/api/config/licenses HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
LicenseDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, 
withHeader(ConfigResources.licensePostPayload()), LicenseDto.class,
-            LicenseDto.BASE_MEDIA_TYPE, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testRemoveLicense() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(ConfigApi.class, "removeLicense", 
LicenseDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(ConfigResources.licensePut())));
-
-      assertRequestLineEquals(request, "DELETE 
http://localhost/api/config/licenses/1 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, 
ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   /*********************** Privilege ***********************/
-
-   public void testListPrivileges() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(ConfigApi.class, "listPrivileges");
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method, 
ImmutableList.of()));
-
-      assertRequestLineEquals(request, "GET 
http://localhost/api/config/privileges HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
PrivilegesDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testGetPrivilege() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(ConfigApi.class, "getPrivilege", 
Integer.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method, 
ImmutableList.<Object> of(1)));
-
-      assertRequestLineEquals(request, "GET 
http://localhost/api/config/privileges/1 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
PrivilegeDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, NullOnNotFoundOr404.class);
-
-      checkFilters(request);
-   }
-
-   /*********************** System Properties ***********************/
-
-   public void testListSystemProperties() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(ConfigApi.class, "listSystemProperties");
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method, 
ImmutableList.of()));
-
-      assertRequestLineEquals(request, "GET 
http://localhost/api/config/properties HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
SystemPropertiesDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testListSystemPropertiesWithOptions() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(ConfigApi.class, "listSystemProperties", 
PropertyOptions.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> 
of(PropertyOptions.builder().component("api").build())));
-
-      assertRequestLineEquals(request, "GET 
http://localhost/api/config/properties?component=api HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
SystemPropertiesDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testUpdateSystemProperty() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(ConfigApi.class, "updateSystemProperty", 
SystemPropertyDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(ConfigResources.propertyPut())));
-
-      assertRequestLineEquals(request, "PUT 
http://localhost/api/config/properties/1 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
SystemPropertyDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, 
withHeader(ConfigResources.propertyPutPayload()), SystemPropertyDto.class,
-            SystemPropertyDto.BASE_MEDIA_TYPE, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   /*********************** Category ***********************/
-
-   public void testListCategories() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(ConfigApi.class, "listCategories");
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method, 
ImmutableList.of()));
-
-      assertRequestLineEquals(request, "GET 
http://localhost/api/config/categories HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
CategoriesDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testGetCategory() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(ConfigApi.class, "getCategory", 
Integer.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method, 
ImmutableList.<Object> of(1)));
-
-      assertRequestLineEquals(request, "GET 
http://localhost/api/config/categories/1 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
CategoryDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, NullOnNotFoundOr404.class);
-
-      checkFilters(request);
-   }
-
-   public void testCreateCategory() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(ConfigApi.class, "createCategory", 
CategoryDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(ConfigResources.categoryPost())));
-
-      assertRequestLineEquals(request, "POST 
http://localhost/api/config/categories HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
CategoryDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, 
withHeader(ConfigResources.categoryPostPayload()), CategoryDto.class,
-            CategoryDto.BASE_MEDIA_TYPE, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testUpdateCategory() throws SecurityException, 
NoSuchMethodException, IOException {
-      Invokable<?, ?> method = method(ConfigApi.class, "updateCategory", 
CategoryDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(ConfigResources.categoryPut())));
-
-      assertRequestLineEquals(request, "PUT 
http://localhost/api/config/categories/1 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "Accept: " + 
CategoryDto.BASE_MEDIA_TYPE + "\n");
-      assertPayloadEquals(request, 
withHeader(ConfigResources.categoryPutPayload()), CategoryDto.class,
-            CategoryDto.BASE_MEDIA_TYPE, false);
-
-      assertResponseParserClassEquals(method, request, ParseXMLWithJAXB.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-
-   public void testDeleteCategory() throws SecurityException, 
NoSuchMethodException {
-      Invokable<?, ?> method = method(ConfigApi.class, "deleteCategory", 
CategoryDto.class);
-      GeneratedHttpRequest request = processor.apply(Invocation.create(method,
-            ImmutableList.<Object> of(ConfigResources.categoryPut())));
-
-      assertRequestLineEquals(request, "DELETE 
http://localhost/api/config/categories/1 HTTP/1.1");
-      assertNonPayloadHeadersEqual(request, "");
-      assertPayloadEquals(request, null, null, false);
-
-      assertResponseParserClassEquals(method, request, 
ReleasePayloadAndReturn.class);
-      assertSaxResponseParserClassEquals(method, null);
-      assertFallbackClassEquals(method, null);
-
-      checkFilters(request);
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1b689dc1/abiquo/src/test/java/org/jclouds/abiquo/features/EnterpriseApiExpectTest.java
----------------------------------------------------------------------
diff --git 
a/abiquo/src/test/java/org/jclouds/abiquo/features/EnterpriseApiExpectTest.java 
b/abiquo/src/test/java/org/jclouds/abiquo/features/EnterpriseApiExpectTest.java
deleted file mode 100644
index dcd4f7e..0000000
--- 
a/abiquo/src/test/java/org/jclouds/abiquo/features/EnterpriseApiExpectTest.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.abiquo.features;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-
-import java.net.URI;
-import java.util.List;
-
-import org.jclouds.abiquo.AbiquoApi;
-import org.jclouds.abiquo.domain.PaginatedCollection;
-import org.jclouds.abiquo.domain.enterprise.options.EnterpriseOptions;
-import org.jclouds.abiquo.domain.enterprise.options.UserOptions;
-import org.jclouds.collect.PagedIterable;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.http.HttpResponse;
-import org.testng.annotations.Test;
-
-import com.abiquo.model.rest.RESTLink;
-import com.abiquo.server.core.enterprise.EnterpriseDto;
-import com.abiquo.server.core.enterprise.EnterprisesDto;
-import com.abiquo.server.core.enterprise.UserDto;
-import com.abiquo.server.core.enterprise.UsersDto;
-import com.abiquo.server.core.infrastructure.DatacenterDto;
-
-/**
- * Expect tests for the {@link EnterpriseApi} class.
- */
-@Test(groups = "unit", testName = "EnterpriseApiExpectTest")
-public class EnterpriseApiExpectTest extends 
BaseAbiquoApiExpectTest<EnterpriseApi> {
-
-   public void testListUsersWithoutPagination() {
-      EnterpriseApi api = requestsSendResponses(
-            
HttpRequest.builder().method("GET").endpoint(URI.create("http://localhost/api/admin/enterprises/1/users";))
 //
-                  .addHeader("Cookie", tokenAuth) //
-                  .addHeader("Accept", normalize(UsersDto.MEDIA_TYPE)) //
-                  .build(),
-            HttpResponse
-                  .builder()
-                  .statusCode(200)
-                  .payload(
-                        
payloadFromResourceWithContentType("/payloads/users-page.xml", 
normalize(UsersDto.MEDIA_TYPE))) //
-                  .build(),
-            
HttpRequest.builder().method("GET").endpoint(URI.create("http://localhost/api/admin/enterprises/1/users";))
 //
-                  .addHeader("Cookie", tokenAuth) //
-                  .addHeader("Accept", normalize(UsersDto.MEDIA_TYPE)) //
-                  .addQueryParam("numResults", "2") //
-                  .addQueryParam("page", "1") //
-                  .build(),
-            HttpResponse
-                  .builder()
-                  .statusCode(200)
-                  .payload(
-                        
payloadFromResourceWithContentType("/payloads/users-lastpage.xml",
-                              normalize(UsersDto.MEDIA_TYPE))) //
-                  .build());
-
-      EnterpriseDto enterprise = new EnterpriseDto();
-      enterprise.addLink(new RESTLink("users", 
"http://localhost/api/admin/enterprises/1/users";));
-
-      PagedIterable<UserDto> result = api.listUsers(enterprise);
-      List<UserDto> all = result.concat().toList();
-
-      assertEquals(all.size(), 3);
-      assertEquals(all.get(0).getId().intValue(), 1);
-      assertEquals(all.get(1).getId().intValue(), 2);
-      assertEquals(all.get(2).getId().intValue(), 3);
-   }
-
-   public void testListUsersWithPagination() {
-      EnterpriseApi api = requestSendsResponse(
-            
HttpRequest.builder().method("GET").endpoint(URI.create("http://localhost/api/admin/enterprises/1/users";))
 //
-                  .addHeader("Cookie", tokenAuth) //
-                  .addHeader("Accept", normalize(UsersDto.MEDIA_TYPE)) //
-                  .addQueryParam("page", "1") //
-                  .build(),
-            HttpResponse
-                  .builder()
-                  .statusCode(200)
-                  .payload(
-                        
payloadFromResourceWithContentType("/payloads/users-lastpage.xml",
-                              normalize(UsersDto.MEDIA_TYPE))) //
-                  .build());
-
-      EnterpriseDto enterprise = new EnterpriseDto();
-      enterprise.addLink(new RESTLink("users", 
"http://localhost/api/admin/enterprises/1/users";));
-
-      UserOptions options = UserOptions.builder().page(1).build();
-      PaginatedCollection<UserDto, UsersDto> result = 
api.listUsers(enterprise, options);
-
-      assertEquals(result.size(), 1);
-      assertEquals(result.getTotalSize().intValue(), 3);
-      assertEquals(result.get(0).getId().intValue(), 3);
-      assertNotNull(result.searchLink("first"));
-      assertNotNull(result.searchLink("last"));
-   }
-
-   public void testListEnterprises() {
-      EnterpriseApi api = requestSendsResponse(
-            
HttpRequest.builder().method("GET").endpoint(URI.create("http://localhost/api/admin/enterprises";))
 //
-                  .addHeader("Cookie", tokenAuth) //
-                  .addHeader("Accept", normalize(EnterprisesDto.MEDIA_TYPE)) //
-                  .addQueryParam("limit", "1") //
-                  .addQueryParam("has", "text") //
-                  .build(),
-            HttpResponse
-                  .builder()
-                  .statusCode(200)
-                  .payload(
-                        
payloadFromResourceWithContentType("/payloads/enterprises-page.xml",
-                              normalize(EnterprisesDto.MEDIA_TYPE))) //
-                  .build());
-
-      EnterpriseOptions options = 
EnterpriseOptions.builder().limit(1).has("text").build();
-      PaginatedCollection<EnterpriseDto, EnterprisesDto> result = 
api.listEnterprises(options);
-
-      assertEquals(result.size(), 1);
-      assertEquals(result.getTotalSize().intValue(), 2);
-      assertEquals(result.get(0).getId().intValue(), 1);
-      assertNotNull(result.searchLink("first"));
-      assertNotNull(result.searchLink("last"));
-   }
-
-   public void testListEnterprisesByDatacenterWithOptions() {
-      EnterpriseApi api = requestSendsResponse(
-            HttpRequest.builder().method("GET")
-                  
.endpoint(URI.create("http://localhost/api/admin/datacenters/1/action/enterprises";))
 //
-                  .addHeader("Cookie", tokenAuth) //
-                  .addHeader("Accept", normalize(EnterprisesDto.MEDIA_TYPE)) //
-                  .addQueryParam("limit", "1") //
-                  .addQueryParam("has", "text") //
-                  .build(),
-            HttpResponse
-                  .builder()
-                  .statusCode(200)
-                  .payload(
-                        
payloadFromResourceWithContentType("/payloads/enterprises-page.xml",
-                              normalize(EnterprisesDto.MEDIA_TYPE))) //
-                  .build());
-
-      DatacenterDto datacenter = new DatacenterDto();
-      datacenter.addLink(new RESTLink("enterprises", 
"http://localhost/api/admin/datacenters/1/action/enterprises";));
-
-      EnterpriseOptions options = 
EnterpriseOptions.builder().limit(1).has("text").build();
-      PaginatedCollection<EnterpriseDto, EnterprisesDto> result = 
api.listEnterprises(datacenter, options);
-
-      assertEquals(result.size(), 1);
-      assertEquals(result.getTotalSize().intValue(), 2);
-      assertEquals(result.get(0).getId().intValue(), 1);
-      assertNotNull(result.searchLink("first"));
-      assertNotNull(result.searchLink("last"));
-   }
-
-   public void testListEnterprisesReturns2xx() {
-      EnterpriseApi api = requestsSendResponses(
-            
HttpRequest.builder().method("GET").endpoint(URI.create("http://localhost/api/admin/enterprises";))
 //
-                  .addHeader("Cookie", tokenAuth) //
-                  .addHeader("Accept", normalize(EnterprisesDto.MEDIA_TYPE)) //
-                  .build(),
-            HttpResponse
-                  .builder()
-                  .statusCode(200)
-                  .payload(
-                        
payloadFromResourceWithContentType("/payloads/enterprises-page.xml",
-                              normalize(EnterprisesDto.MEDIA_TYPE))) //
-                  .build(),
-            
HttpRequest.builder().method("GET").endpoint(URI.create("http://localhost/api/admin/enterprises";))
 //
-                  .addHeader("Cookie", tokenAuth) //
-                  .addHeader("Accept", normalize(EnterprisesDto.MEDIA_TYPE)) //
-                  .addQueryParam("startwith", "1") //
-                  .build(),
-            HttpResponse
-                  .builder()
-                  .statusCode(200)
-                  .payload(
-                        
payloadFromResourceWithContentType("/payloads/enterprises-lastpage.xml",
-                              normalize(EnterprisesDto.MEDIA_TYPE))) //
-                  .build());
-
-      PagedIterable<EnterpriseDto> result = api.listEnterprises();
-      List<EnterpriseDto> all = result.concat().toList();
-
-      assertEquals(all.size(), 2);
-      assertEquals(all.get(0).getId().intValue(), 1);
-      assertEquals(all.get(1).getId().intValue(), 2);
-   }
-
-   @Override
-   protected EnterpriseApi clientFrom(AbiquoApi api) {
-      return api.getEnterpriseApi();
-   }
-}

Reply via email to