You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2013/12/09 23:24:26 UTC

[2/3] JCLOUDS-390. Update calculation of subscriptions according recent changes in the cloudsigma2 provder API.

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/237dcbed/cloudsigma2/src/test/java/org/jclouds/cloudsigma2/CloudSigma2ApiExpectTest.java
----------------------------------------------------------------------
diff --git a/cloudsigma2/src/test/java/org/jclouds/cloudsigma2/CloudSigma2ApiExpectTest.java b/cloudsigma2/src/test/java/org/jclouds/cloudsigma2/CloudSigma2ApiExpectTest.java
index 65f6623..3941910 100644
--- a/cloudsigma2/src/test/java/org/jclouds/cloudsigma2/CloudSigma2ApiExpectTest.java
+++ b/cloudsigma2/src/test/java/org/jclouds/cloudsigma2/CloudSigma2ApiExpectTest.java
@@ -18,6 +18,7 @@ package org.jclouds.cloudsigma2;
 
 import com.google.common.collect.ImmutableList;
 import org.jclouds.cloudsigma2.domain.AccountBalance;
+import org.jclouds.cloudsigma2.domain.CalcSubscription;
 import org.jclouds.cloudsigma2.domain.CreateSubscriptionRequest;
 import org.jclouds.cloudsigma2.domain.CurrentUsage;
 import org.jclouds.cloudsigma2.domain.Discount;
@@ -37,6 +38,7 @@ import org.jclouds.cloudsigma2.domain.ProfileInfo;
 import org.jclouds.cloudsigma2.domain.Server;
 import org.jclouds.cloudsigma2.domain.ServerInfo;
 import org.jclouds.cloudsigma2.domain.Subscription;
+import org.jclouds.cloudsigma2.domain.SubscriptionCalculator;
 import org.jclouds.cloudsigma2.domain.SubscriptionResource;
 import org.jclouds.cloudsigma2.domain.Tag;
 import org.jclouds.cloudsigma2.domain.TagResource;
@@ -52,6 +54,7 @@ import org.testng.annotations.Test;
 
 import javax.ws.rs.core.MediaType;
 import java.math.BigInteger;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -110,18 +113,18 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestsSendResponses(
             getBuilder()
                   .endpoint(endpoint + "drives/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/drives.json", MediaType.APPLICATION_JSON))
-            .build()
-            , getBuilder()
-            .endpoint(endpoint + "drives/")
-            .addQueryParam("limit", "2")
-            .addQueryParam("offset", "2")
-            .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/drives-last-page.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/drives.json", MediaType.APPLICATION_JSON))
+                  .build(),
+            getBuilder()
+                  .endpoint(endpoint + "drives/")
+                  .addQueryParam("limit", "2")
+                  .addQueryParam("offset", "2")
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/drives-last-page.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       List<Drive> drives = api.listDrives().concat().toList();
 
@@ -136,10 +139,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             getBuilder()
                   .endpoint(endpoint + "drives/?limit=3&offset=3")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/drives.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/drives.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       for (Drive drive : api.listDrives(new PaginationOptions.Builder().limit(3).offset(3).build())) {
          assertNotNull(drive);
@@ -151,18 +154,20 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestsSendResponses(
             getBuilder()
                   .endpoint(endpoint + "drives/detail/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/drives-detail-first-page.json", MediaType.APPLICATION_JSON))
-            .build()
-            , getBuilder()
-            .endpoint(endpoint + "drives/detail/")
-            .addQueryParam("limit", "2")
-            .addQueryParam("offset", "2")
-            .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/drives-detail-last-page.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/drives-detail-first-page.json",
+                        MediaType.APPLICATION_JSON))
+                  .build(),
+            getBuilder()
+                  .endpoint(endpoint + "drives/detail/")
+                  .addQueryParam("limit", "2")
+                  .addQueryParam("offset", "2")
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/drives-detail-last-page.json",
+                        MediaType.APPLICATION_JSON))
+                  .build());
 
       List<DriveInfo> drives = api.listDrivesInfo().concat().toList();
 
@@ -177,10 +182,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             getBuilder()
                   .endpoint(endpoint + "drives/detail/?limit=3&offset=3")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/drives-detail.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/drives-detail.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       for (DriveInfo driveInfo : api.listDrivesInfo(new PaginationOptions.Builder().limit(3).offset(3).build())) {
          assertNotNull(driveInfo);
@@ -193,10 +198,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             getBuilder()
                   .endpoint(endpoint + "drives/" + uuid + "/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/drives-detail.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/drives-detail.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       DriveInfo result = api.getDriveInfo(uuid);
       assertNotNull(result);
@@ -206,13 +211,13 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
    public void testCreateDrive() throws Exception {
       CloudSigma2Api api = requestSendsResponse(
             postBuilder()
-                  .payload(payloadFromResourceWithContentType("/drives-create-request.json"
-                        , MediaType.APPLICATION_JSON))
+                  .payload(payloadFromResourceWithContentType("/drives-create-request.json",
+                        MediaType.APPLICATION_JSON))
                   .endpoint(endpoint + "drives/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/drives-single.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/drives-single.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       DriveInfo result = api.createDrive(new DriveInfo.Builder()
             .media(org.jclouds.cloudsigma2.domain.MediaType.DISK)
@@ -227,13 +232,13 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
    public void testCreateDrives() throws Exception {
       CloudSigma2Api api = requestSendsResponse(
             postBuilder()
-                  .payload(payloadFromResourceWithContentType("/drives-create-multiple-request.json"
-                        , MediaType.APPLICATION_JSON))
+                  .payload(payloadFromResourceWithContentType("/drives-create-multiple-request.json",
+                     MediaType.APPLICATION_JSON))
                   .endpoint(endpoint + "drives/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/drives-detail.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/drives-detail.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       List<DriveInfo> result = api.createDrives(ImmutableList.of(
             new DriveInfo.Builder()
@@ -241,19 +246,19 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
                   .name("test_drive_0")
                   .size(new BigInteger("1024000000"))
                   .allowMultimount(false)
-                  .build()
-            , new DriveInfo.Builder()
-            .media(org.jclouds.cloudsigma2.domain.MediaType.DISK)
-            .name("test_drive_1")
-            .size(new BigInteger("1024000000"))
-            .allowMultimount(false)
-            .build()
-            , new DriveInfo.Builder()
-            .media(org.jclouds.cloudsigma2.domain.MediaType.DISK)
-            .name("test_drive_2")
-            .size(new BigInteger("1024000000"))
-            .allowMultimount(false)
-            .build()));
+                  .build(),
+            new DriveInfo.Builder()
+                  .media(org.jclouds.cloudsigma2.domain.MediaType.DISK)
+                  .name("test_drive_1")
+                  .size(new BigInteger("1024000000"))
+                  .allowMultimount(false)
+                  .build(),
+            new DriveInfo.Builder()
+                  .media(org.jclouds.cloudsigma2.domain.MediaType.DISK)
+                  .name("test_drive_2")
+                  .size(new BigInteger("1024000000"))
+                  .allowMultimount(false)
+                  .build()));
       assertNotNull(result);
       assertEquals(result.size(), 3);
    }
@@ -264,9 +269,9 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             deleteBuilder()
                   .endpoint(endpoint + "drives/" + uuid + "/")
-                  .build()
-            , responseBuilder()
-            .build());
+                  .build(),
+            responseBuilder()
+                  .build());
 
       api.deleteDrive(uuid);
    }
@@ -281,11 +286,11 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             deleteBuilder()
                   .endpoint(endpoint + "drives/")
-                  .payload(payloadFromResourceWithContentType("/drives-delete-multiple.json"
-                        , MediaType.APPLICATION_JSON))
-                  .build()
-            , responseBuilder()
-            .build());
+                  .payload(payloadFromResourceWithContentType("/drives-delete-multiple.json",
+                        MediaType.APPLICATION_JSON))
+                  .build(),
+            responseBuilder()
+                  .build());
 
       api.deleteDrives(deleteList);
    }
@@ -295,13 +300,13 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       String uuid = "e96f3c63-6f50-47eb-9401-a56c5ccf6b32";
       CloudSigma2Api api = requestSendsResponse(
             putBuilder()
-                  .payload(payloadFromResourceWithContentType("/drives-create-request.json"
-                        , MediaType.APPLICATION_JSON))
+                  .payload(payloadFromResourceWithContentType("/drives-create-request.json",
+                        MediaType.APPLICATION_JSON))
                   .endpoint(endpoint + "drives/" + uuid + "/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/drives-detail.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/drives-detail.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       DriveInfo result = api.editDrive(uuid, new DriveInfo.Builder()
             .media(org.jclouds.cloudsigma2.domain.MediaType.DISK)
@@ -317,13 +322,13 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       String uuid = "e96f3c63-6f50-47eb-9401-a56c5ccf6b32";
       CloudSigma2Api api = requestSendsResponse(
             postBuilder()
-                  .payload(payloadFromResourceWithContentType("/drives-create-request.json"
-                        , MediaType.APPLICATION_JSON))
+                  .payload(payloadFromResourceWithContentType("/drives-create-request.json",
+                        MediaType.APPLICATION_JSON))
                   .endpoint(endpoint + "drives/" + uuid + "/action/?do=clone")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/drives-detail.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/drives-detail.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       DriveInfo result = api.cloneDrive(uuid, new DriveInfo.Builder()
             .media(org.jclouds.cloudsigma2.domain.MediaType.DISK)
@@ -339,18 +344,18 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestsSendResponses(
             getBuilder()
                   .endpoint(endpoint + "libdrives/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/libdrives.json", MediaType.APPLICATION_JSON))
-            .build()
-            , getBuilder()
-            .endpoint(endpoint + "libdrives/")
-            .addQueryParam("limit", "2")
-            .addQueryParam("offset", "2")
-            .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/libdrives-last-page.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/libdrives.json", MediaType.APPLICATION_JSON))
+                  .build(),
+            getBuilder()
+                  .endpoint(endpoint + "libdrives/")
+                  .addQueryParam("limit", "2")
+                  .addQueryParam("offset", "2")
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/libdrives-last-page.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       List<LibraryDrive> drives = api.listLibraryDrives().concat().toList();
 
@@ -365,10 +370,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             getBuilder()
                   .endpoint(endpoint + "libdrives/?limit=3&offset=3")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/libdrives.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/libdrives.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       for (LibraryDrive libraryDrive : api.listLibraryDrives(new PaginationOptions.Builder()
             .limit(3)
@@ -384,10 +389,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             getBuilder()
                   .endpoint(endpoint + "libdrives/" + uuid + "/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/libdrives-single.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/libdrives-single.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       LibraryDrive result = api.getLibraryDrive(uuid);
       assertNotNull(result);
@@ -398,13 +403,13 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       String uuid = "e96f3c63-6f50-47eb-9401-a56c5ccf6b32";
       CloudSigma2Api api = requestSendsResponse(
             postBuilder()
-                  .payload(payloadFromResourceWithContentType("/libdrives-create-request.json"
-                        , MediaType.APPLICATION_JSON))
+                  .payload(payloadFromResourceWithContentType("/libdrives-create-request.json",
+                        MediaType.APPLICATION_JSON))
                   .endpoint(endpoint + "libdrives/" + uuid + "/action/?do=clone")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/libdrives-single.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/libdrives-single.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       DriveInfo result = api.cloneLibraryDrive(uuid, new LibraryDrive.Builder()
             .media(org.jclouds.cloudsigma2.domain.MediaType.DISK)
@@ -420,18 +425,18 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestsSendResponses(
             getBuilder()
                   .endpoint(endpoint + "servers/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/servers.json", MediaType.APPLICATION_JSON))
-            .build()
-            , getBuilder()
-            .endpoint(endpoint + "servers/")
-            .addQueryParam("limit", "2")
-            .addQueryParam("offset", "2")
-            .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/servers-last-page.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/servers.json", MediaType.APPLICATION_JSON))
+                  .build(),
+            getBuilder()
+                  .endpoint(endpoint + "servers/")
+                  .addQueryParam("limit", "2")
+                  .addQueryParam("offset", "2")
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/servers-last-page.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       List<Server> servers = api.listServers().concat().toList();
 
@@ -446,10 +451,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             getBuilder()
                   .endpoint(endpoint + "servers/?limit=3&offset=3")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/servers.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/servers.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       for (Server sever : api.listServers(new PaginationOptions.Builder().limit(3).offset(3).build())) {
          assertNotNull(sever);
@@ -461,18 +466,20 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestsSendResponses(
             getBuilder()
                   .endpoint(endpoint + "servers/detail/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/server-detail-first-page.json", MediaType.APPLICATION_JSON))
-            .build()
-            , getBuilder()
-            .endpoint(endpoint + "servers/detail/")
-            .addQueryParam("limit", "2")
-            .addQueryParam("offset", "2")
-            .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/server-detail-last-page.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/server-detail-first-page.json",
+                        MediaType.APPLICATION_JSON))
+                  .build(),
+            getBuilder()
+                  .endpoint(endpoint + "servers/detail/")
+                  .addQueryParam("limit", "2")
+                  .addQueryParam("offset", "2")
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/server-detail-last-page.json",
+                        MediaType.APPLICATION_JSON))
+                  .build());
 
       List<ServerInfo> serverInfos = api.listServersInfo().concat().toList();
 
@@ -487,10 +494,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             getBuilder()
                   .endpoint(endpoint + "servers/detail/?limit=3&offset=3")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/server-detail.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/server-detail.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       for (ServerInfo serverInfo : api.listServersInfo(new PaginationOptions.Builder().limit(3).offset(3).build())) {
          assertNotNull(serverInfo);
@@ -504,10 +511,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
                   .endpoint(endpoint + "servers/")
                   .payload(payloadFromResourceWithContentType("/servers-create-request.json"
                         , MediaType.APPLICATION_JSON))
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/servers-single.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/servers-single.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       ServerInfo result = api.createServer(new ServerInfo.Builder()
             .cpu(100)
@@ -523,31 +530,32 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             postBuilder()
                   .endpoint(endpoint + "servers/")
-                  .payload(payloadFromResourceWithContentType("/servers-create-multiple-request.json"
-                        , MediaType.APPLICATION_JSON))
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/server-detail.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .payload(payloadFromResourceWithContentType("/servers-create-multiple-request.json",
+                        MediaType.APPLICATION_JSON))
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/server-detail.json", MediaType.APPLICATION_JSON))
+                  .build());
+
       List<ServerInfo> result = api.createServers(ImmutableList.of(
             new ServerInfo.Builder()
                   .cpu(100)
                   .memory(new BigInteger("536870912"))
                   .name("test_server_0")
                   .vncPassword("testserver")
-                  .build()
-            , new ServerInfo.Builder()
-            .cpu(100)
-            .memory(new BigInteger("536870912"))
-            .name("test_server_1")
-            .vncPassword("testserver")
-            .build()
-            , new ServerInfo.Builder()
-            .cpu(100)
-            .memory(new BigInteger("536870912"))
-            .name("test_server_2")
-            .vncPassword("testserver")
-            .build()));
+                  .build(),
+            new ServerInfo.Builder()
+                  .cpu(100)
+                  .memory(new BigInteger("536870912"))
+                  .name("test_server_1")
+                  .vncPassword("testserver")
+                  .build(),
+            new ServerInfo.Builder()
+                  .cpu(100)
+                  .memory(new BigInteger("536870912"))
+                  .name("test_server_2")
+                  .vncPassword("testserver")
+                  .build()));
 
       assertNotNull(result);
    }
@@ -558,12 +566,12 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             putBuilder()
                   .endpoint(endpoint + "servers/" + uuid + "/")
-                  .payload(payloadFromResourceWithContentType("/servers-create-request.json"
-                        , MediaType.APPLICATION_JSON))
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/servers-single.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .payload(payloadFromResourceWithContentType("/servers-create-request.json",
+                        MediaType.APPLICATION_JSON))
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/servers-single.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       ServerInfo result = api.editServer(uuid, new ServerInfo.Builder()
             .name("testServerAcc")
@@ -580,9 +588,9 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             deleteBuilder()
                   .endpoint(endpoint + "servers/" + uuid + "/")
-                  .build()
-            , responseBuilder()
-            .build());
+                  .build(),
+            responseBuilder()
+                  .build());
 
       api.deleteServer(uuid);
    }
@@ -590,18 +598,18 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
    @Test
    public void testDeleteServers() throws Exception {
       List<String> deleteUuids = ImmutableList.of(
-            "33e71c37-0d0a-4a3a-a1ea-dc7265c9a154"
-            , "61d61337-884b-4c87-b4de-f7f48f9cfc84"
-            , "a19a425f-9e92-42f6-89fb-6361203071bb"
+            "33e71c37-0d0a-4a3a-a1ea-dc7265c9a154",
+            "61d61337-884b-4c87-b4de-f7f48f9cfc84",
+            "a19a425f-9e92-42f6-89fb-6361203071bb"
       );
       CloudSigma2Api api = requestSendsResponse(
             deleteBuilder()
                   .endpoint(endpoint + "servers/")
-                  .payload(payloadFromResourceWithContentType("/servers-delete-multiple-request.json"
-                        , MediaType.APPLICATION_JSON))
-                  .build()
-            , responseBuilder()
-            .build());
+                  .payload(payloadFromResourceWithContentType("/servers-delete-multiple-request.json",
+                        MediaType.APPLICATION_JSON))
+                  .build(),
+            responseBuilder()
+                  .build());
 
       api.deleteServers(deleteUuids);
    }
@@ -617,10 +625,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             getBuilder()
                   .endpoint(endpoint + "servers/" + uuid + "/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/servers-single.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/servers-single.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       api.getServerInfo(uuid);
    }
@@ -631,9 +639,9 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             postBuilder()
                   .endpoint(endpoint + "servers/" + uuid + "/action/?do=start")
-                  .build()
-            , responseBuilder()
-            .build());
+                  .build(),
+            responseBuilder()
+                  .build());
 
       api.startServer(uuid);
    }
@@ -644,9 +652,9 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             postBuilder()
                   .endpoint(endpoint + "servers/" + uuid + "/action/?do=stop")
-                  .build()
-            , responseBuilder()
-            .build());
+                  .build(),
+            responseBuilder()
+                  .build());
 
       api.stopServer(uuid);
    }
@@ -665,9 +673,9 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
                         + uuidGroup.get(0)
                         + "&avoid="
                         + uuidGroup.get(1))
-                  .build()
-            , responseBuilder()
-            .build());
+                  .build(),
+            responseBuilder()
+                  .build());
 
       api.startServerInSeparateAvailabilityGroup(uuid, uuidGroup);
    }
@@ -678,9 +686,9 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             postBuilder()
                   .endpoint(endpoint + "servers/" + uuid + "/action/?do=open_vnc")
-                  .build()
-            , responseBuilder()
-            .build());
+                  .build(),
+            responseBuilder()
+                  .build());
 
       api.openServerVNCTunnel(uuid);
    }
@@ -691,9 +699,9 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             postBuilder()
                   .endpoint(endpoint + "servers/" + uuid + "/action/?do=close_vnc")
-                  .build()
-            , responseBuilder()
-            .build());
+                  .build(),
+            responseBuilder()
+                  .build());
 
       api.closeServerVCNTunnel(uuid);
    }
@@ -703,11 +711,11 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             getBuilder()
                   .endpoint(endpoint + "servers/availability_groups/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/servers-availability-groups.json"
-                  , MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/servers-availability-groups.json",
+                        MediaType.APPLICATION_JSON))
+                  .build());
 
       for (List<String> availabilityGroup : api.listServerAvailabilityGroup()) {
          assertNotNull(availabilityGroup);
@@ -719,20 +727,20 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestsSendResponses(
             getBuilder()
                   .endpoint(endpoint + "fwpolicies/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/fwpolicies-detail-first-page.json"
-                  , MediaType.APPLICATION_JSON))
-            .build()
-            , getBuilder()
-            .endpoint(endpoint + "fwpolicies/")
-            .addQueryParam("limit", "1")
-            .addQueryParam("offset", "1")
-            .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/fwpolicies-detail-last-page.json"
-                  , MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/fwpolicies-detail-first-page.json",
+                        MediaType.APPLICATION_JSON))
+                  .build(),
+            getBuilder()
+                  .endpoint(endpoint + "fwpolicies/")
+                  .addQueryParam("limit", "1")
+                  .addQueryParam("offset", "1")
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/fwpolicies-detail-last-page.json",
+                        MediaType.APPLICATION_JSON))
+                  .build());
 
       List<FirewallPolicy> firewallPolicies = api.listFirewallPolicies().concat().toList();
 
@@ -746,10 +754,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             getBuilder()
                   .endpoint(endpoint + "fwpolicies/?limit=2&offset=2")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/fwpolicies-detail.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/fwpolicies-detail.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       for (FirewallPolicy firewallPolicy : api.listFirewallPolicies(new PaginationOptions.Builder()
             .limit(2)
@@ -764,20 +772,20 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestsSendResponses(
             getBuilder()
                   .endpoint(endpoint + "fwpolicies/detail/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/fwpolicies-detail-first-page.json"
-                  , MediaType.APPLICATION_JSON))
-            .build()
-            , getBuilder()
-            .endpoint(endpoint + "fwpolicies/detail/")
-            .addQueryParam("limit", "1")
-            .addQueryParam("offset", "1")
-            .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/fwpolicies-detail-last-page.json"
-                  , MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/fwpolicies-detail-first-page.json",
+                        MediaType.APPLICATION_JSON))
+                  .build(),
+            getBuilder()
+                  .endpoint(endpoint + "fwpolicies/detail/")
+                  .addQueryParam("limit", "1")
+                  .addQueryParam("offset", "1")
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/fwpolicies-detail-last-page.json",
+                        MediaType.APPLICATION_JSON))
+                  .build());
 
       List<FirewallPolicy> firewallPolicies = api.listFirewallPoliciesInfo().concat().toList();
 
@@ -791,10 +799,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             getBuilder()
                   .endpoint(endpoint + "fwpolicies/detail/?limit=2&offset=2")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/fwpolicies-detail.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/fwpolicies-detail.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       for (FirewallPolicy firewallPolicy : api.listFirewallPoliciesInfo(new PaginationOptions.Builder()
             .limit(2)
@@ -809,12 +817,12 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             postBuilder()
                   .endpoint(endpoint + "fwpolicies/")
-                  .payload(payloadFromResourceWithContentType("/fwpolicies-create-multiple-request.json"
-                        , MediaType.APPLICATION_JSON))
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/fwpolicies-detail.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .payload(payloadFromResourceWithContentType("/fwpolicies-create-multiple-request.json",
+                        MediaType.APPLICATION_JSON))
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/fwpolicies-detail.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       List<FirewallPolicy> result = api.createFirewallPolicies(ImmutableList.of(
             new FirewallPolicy.Builder()
@@ -831,46 +839,47 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
                               .sourcePort("321")
                               .build()
                   ))
-                  .build()
-            , new FirewallPolicy.Builder()
-            .name("My awesome policy")
-            .rules(ImmutableList.of(
-                  new FirewallRule.Builder()
-                        .action(FirewallAction.DROP)
-                        .comment("Drop traffic from the VM to IP address 23.0.0.0/32")
-                        .direction(FirewallDirection.OUT)
-                        .destinationIp("23.0.0.0/32")
-                        .build()
-                  , new FirewallRule.Builder()
-                  .action(FirewallAction.ACCEPT)
-                  .comment("Allow SSH traffic to the VM from our office in Dubai")
-                  .direction(FirewallDirection.IN)
-                  .destinationPort("22")
-                  .ipProtocol(FirewallIpProtocol.TCP)
-                  .sourceIp("172.66.32.0/24")
-                  .build()
-                  , new FirewallRule.Builder()
-                  .action(FirewallAction.DROP)
-                  .comment("Drop all other SSH traffic to the VM")
-                  .direction(FirewallDirection.IN)
-                  .destinationPort("22")
-                  .ipProtocol(FirewallIpProtocol.TCP)
-                  .build()
-                  , new FirewallRule.Builder()
-                  .action(FirewallAction.DROP)
-                  .comment("Drop all UDP traffic to the VM, not originating from 172.66.32.55")
-                  .direction(FirewallDirection.IN)
-                  .ipProtocol(FirewallIpProtocol.UDP)
-                  .sourceIp("!172.66.32.55/32")
-                  .build()
-                  , new FirewallRule.Builder()
-                  .action(FirewallAction.DROP)
-                  .comment("Drop any traffic, to the VM with destination port not between 1-1024")
-                  .direction(FirewallDirection.IN)
-                  .destinationPort("!1:1024")
-                  .ipProtocol(FirewallIpProtocol.TCP)
-                  .build()))
-            .build()));
+                  .build(),
+            new FirewallPolicy.Builder()
+                  .name("My awesome policy")
+                  .rules(ImmutableList.of(
+                        new FirewallRule.Builder()
+                              .action(FirewallAction.DROP)
+                              .comment("Drop traffic from the VM to IP address 23.0.0.0/32")
+                              .direction(FirewallDirection.OUT)
+                              .destinationIp("23.0.0.0/32")
+                              .build(),
+                        new FirewallRule.Builder()
+                              .action(FirewallAction.ACCEPT)
+                              .comment("Allow SSH traffic to the VM from our office in Dubai")
+                              .direction(FirewallDirection.IN)
+                              .destinationPort("22")
+                              .ipProtocol(FirewallIpProtocol.TCP)
+                              .sourceIp("172.66.32.0/24")
+                              .build(),
+                        new FirewallRule.Builder()
+                              .action(FirewallAction.DROP)
+                              .comment("Drop all other SSH traffic to the VM")
+                              .direction(FirewallDirection.IN)
+                              .destinationPort("22")
+                              .ipProtocol(FirewallIpProtocol.TCP)
+                              .build(),
+                        new FirewallRule.Builder()
+                              .action(FirewallAction.DROP)
+                              .comment("Drop all UDP traffic to the VM, not originating from 172.66.32.55")
+                              .direction(FirewallDirection.IN)
+                              .ipProtocol(FirewallIpProtocol.UDP)
+                              .sourceIp("!172.66.32.55/32")
+                              .build(),
+                        new FirewallRule.Builder()
+                              .action(FirewallAction.DROP)
+                              .comment("Drop any traffic, to the VM with destination port not between 1-1024")
+                              .direction(FirewallDirection.IN)
+                              .destinationPort("!1:1024")
+                              .ipProtocol(FirewallIpProtocol.TCP)
+                              .build()))
+                  .build()));
+
       assertNotNull(result);
    }
 
@@ -879,12 +888,12 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             postBuilder()
                   .endpoint(endpoint + "fwpolicies/")
-                  .payload(payloadFromResourceWithContentType("/fwpolicies-create-request.json"
-                        , MediaType.APPLICATION_JSON))
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/fwpolicies-single.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .payload(payloadFromResourceWithContentType("/fwpolicies-create-request.json",
+                        MediaType.APPLICATION_JSON))
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/fwpolicies-single.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       FirewallPolicy result = api.createFirewallPolicy(new FirewallPolicy.Builder()
             .name("My awesome policy")
@@ -894,93 +903,95 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
                         .comment("Drop traffic from the VM to IP address 23.0.0.0/32")
                         .direction(FirewallDirection.OUT)
                         .destinationIp("23.0.0.0/32")
-                        .build()
-                  , new FirewallRule.Builder()
-                  .action(FirewallAction.ACCEPT)
-                  .comment("Allow SSH traffic to the VM from our office in Dubai")
-                  .direction(FirewallDirection.IN)
-                  .destinationPort("22")
-                  .ipProtocol(FirewallIpProtocol.TCP)
-                  .sourceIp("172.66.32.0/24")
-                  .build()
-                  , new FirewallRule.Builder()
-                  .action(FirewallAction.DROP)
-                  .comment("Drop all other SSH traffic to the VM")
-                  .direction(FirewallDirection.IN)
-                  .destinationPort("22")
-                  .ipProtocol(FirewallIpProtocol.TCP)
-                  .build()
-                  , new FirewallRule.Builder()
-                  .action(FirewallAction.DROP)
-                  .comment("Drop all UDP traffic to the VM, not originating from 172.66.32.55")
-                  .direction(FirewallDirection.IN)
-                  .ipProtocol(FirewallIpProtocol.UDP)
-                  .sourceIp("!172.66.32.55/32")
-                  .build()
-                  , new FirewallRule.Builder()
-                  .action(FirewallAction.DROP)
-                  .comment("Drop any traffic, to the VM with destination port not between 1-1024")
-                  .direction(FirewallDirection.IN)
-                  .destinationPort("!1:1024")
-                  .ipProtocol(FirewallIpProtocol.TCP)
-                  .build()))
-            .build());
-      assertNotNull(result);
-   }
-
-   @Test
-   public void testEditFirewallPolicy() throws Exception {
-      String uuid = "cf8479b4-c98b-46c8-ab9c-108bb00c8218";
-      CloudSigma2Api api = requestSendsResponse(
-            putBuilder()
-                  .endpoint(endpoint + "fwpolicies/" + uuid + "/")
-                  .payload(payloadFromResourceWithContentType("/fwpolicies-create-request.json"
-                        , MediaType.APPLICATION_JSON))
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/fwpolicies-single.json", MediaType.APPLICATION_JSON))
-            .build());
-
-      FirewallPolicy result = api.editFirewallPolicy(uuid,
-            new FirewallPolicy.Builder()
-                  .name("My awesome policy")
-                  .rules(ImmutableList.of(
-                        new FirewallRule.Builder()
-                              .action(FirewallAction.DROP)
-                              .comment("Drop traffic from the VM to IP address 23.0.0.0/32")
-                              .direction(FirewallDirection.OUT)
-                              .destinationIp("23.0.0.0/32")
-                              .build()
-                        , new FirewallRule.Builder()
+                        .build(),
+                  new FirewallRule.Builder()
                         .action(FirewallAction.ACCEPT)
                         .comment("Allow SSH traffic to the VM from our office in Dubai")
                         .direction(FirewallDirection.IN)
                         .destinationPort("22")
                         .ipProtocol(FirewallIpProtocol.TCP)
                         .sourceIp("172.66.32.0/24")
-                        .build()
-                        , new FirewallRule.Builder()
+                        .build(),
+                  new FirewallRule.Builder()
                         .action(FirewallAction.DROP)
                         .comment("Drop all other SSH traffic to the VM")
                         .direction(FirewallDirection.IN)
                         .destinationPort("22")
                         .ipProtocol(FirewallIpProtocol.TCP)
-                        .build()
-                        , new FirewallRule.Builder()
+                        .build(),
+                  new FirewallRule.Builder()
                         .action(FirewallAction.DROP)
                         .comment("Drop all UDP traffic to the VM, not originating from 172.66.32.55")
                         .direction(FirewallDirection.IN)
                         .ipProtocol(FirewallIpProtocol.UDP)
                         .sourceIp("!172.66.32.55/32")
-                        .build()
-                        , new FirewallRule.Builder()
+                        .build(),
+                  new FirewallRule.Builder()
                         .action(FirewallAction.DROP)
                         .comment("Drop any traffic, to the VM with destination port not between 1-1024")
                         .direction(FirewallDirection.IN)
                         .destinationPort("!1:1024")
                         .ipProtocol(FirewallIpProtocol.TCP)
                         .build()))
+            .build());
+
+      assertNotNull(result);
+   }
+
+   @Test
+   public void testEditFirewallPolicy() throws Exception {
+      String uuid = "cf8479b4-c98b-46c8-ab9c-108bb00c8218";
+      CloudSigma2Api api = requestSendsResponse(
+            putBuilder()
+                  .endpoint(endpoint + "fwpolicies/" + uuid + "/")
+                  .payload(payloadFromResourceWithContentType("/fwpolicies-create-request.json",
+                        MediaType.APPLICATION_JSON))
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/fwpolicies-single.json", MediaType.APPLICATION_JSON))
+                  .build());
+
+      FirewallPolicy result = api.editFirewallPolicy(uuid,
+            new FirewallPolicy.Builder()
+                  .name("My awesome policy")
+                  .rules(ImmutableList.of(
+                        new FirewallRule.Builder()
+                              .action(FirewallAction.DROP)
+                              .comment("Drop traffic from the VM to IP address 23.0.0.0/32")
+                              .direction(FirewallDirection.OUT)
+                              .destinationIp("23.0.0.0/32")
+                              .build(),
+                        new FirewallRule.Builder()
+                              .action(FirewallAction.ACCEPT)
+                              .comment("Allow SSH traffic to the VM from our office in Dubai")
+                              .direction(FirewallDirection.IN)
+                              .destinationPort("22")
+                              .ipProtocol(FirewallIpProtocol.TCP)
+                              .sourceIp("172.66.32.0/24")
+                              .build(),
+                        new FirewallRule.Builder()
+                              .action(FirewallAction.DROP)
+                              .comment("Drop all other SSH traffic to the VM")
+                              .direction(FirewallDirection.IN)
+                              .destinationPort("22")
+                              .ipProtocol(FirewallIpProtocol.TCP)
+                              .build(),
+                        new FirewallRule.Builder()
+                              .action(FirewallAction.DROP)
+                              .comment("Drop all UDP traffic to the VM, not originating from 172.66.32.55")
+                              .direction(FirewallDirection.IN)
+                              .ipProtocol(FirewallIpProtocol.UDP)
+                              .sourceIp("!172.66.32.55/32")
+                              .build(),
+                        new FirewallRule.Builder()
+                              .action(FirewallAction.DROP)
+                              .comment("Drop any traffic, to the VM with destination port not between 1-1024")
+                              .direction(FirewallDirection.IN)
+                              .destinationPort("!1:1024")
+                              .ipProtocol(FirewallIpProtocol.TCP)
+                              .build()))
                   .build());
+
       assertNotNull(result);
    }
 
@@ -990,10 +1001,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             getBuilder()
                   .endpoint(endpoint + "vlans/" + uuid + "/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/vlan-single.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/vlan-single.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       VLANInfo result = api.getVLANInfo(uuid);
       assertNotNull(result);
@@ -1004,18 +1015,18 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestsSendResponses(
             getBuilder()
                   .endpoint(endpoint + "vlans/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/vlans.json", MediaType.APPLICATION_JSON))
-            .build()
-            , getBuilder()
-            .endpoint(endpoint + "vlans/")
-            .addQueryParam("limit", "1")
-            .addQueryParam("offset", "1")
-            .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/vlans-last-page.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/vlans.json", MediaType.APPLICATION_JSON))
+                  .build(),
+            getBuilder()
+                  .endpoint(endpoint + "vlans/")
+                  .addQueryParam("limit", "1")
+                  .addQueryParam("offset", "1")
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/vlans-last-page.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       List<VLANInfo> vlans = api.listVLANs().concat().toList();
 
@@ -1029,10 +1040,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             getBuilder()
                   .endpoint(endpoint + "vlans/?limit=2&offset=2")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/vlans.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/vlans.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       for (VLANInfo vlanInfo : api.listVLANs(new PaginationOptions.Builder().limit(2).offset(2).build())) {
          assertNotNull(vlanInfo);
@@ -1044,18 +1055,18 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestsSendResponses(
             getBuilder()
                   .endpoint(endpoint + "vlans/detail/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/vlans.json", MediaType.APPLICATION_JSON))
-            .build()
-            , getBuilder()
-            .endpoint(endpoint + "vlans/detail/")
-            .addQueryParam("limit", "1")
-            .addQueryParam("offset", "1")
-            .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/vlans-last-page.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/vlans.json", MediaType.APPLICATION_JSON))
+                  .build(),
+            getBuilder()
+                  .endpoint(endpoint + "vlans/detail/")
+                  .addQueryParam("limit", "1")
+                  .addQueryParam("offset", "1")
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/vlans-last-page.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       List<VLANInfo> vlanInfos = api.listVLANInfo().concat().toList();
 
@@ -1069,10 +1080,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             getBuilder()
                   .endpoint(endpoint + "vlans/detail/?limit=2&offset=2")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/vlans.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/vlans.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       for (VLANInfo vlanInfo : api.listVLANInfo(new PaginationOptions.Builder().limit(2).offset(2).build())) {
          assertNotNull(vlanInfo);
@@ -1091,15 +1102,12 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
             putBuilder()
                   .endpoint(endpoint + "vlans/" + uuid + "/")
                   .payload(payloadFromResourceWithContentType("/vlans-edit-request.json", MediaType.APPLICATION_JSON))
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/vlan-single.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/vlan-single.json", MediaType.APPLICATION_JSON))
+                  .build());
 
-      VLANInfo result = api.editVLAN(uuid
-            , new VLANInfo.Builder()
-            .meta(meta)
-            .build());
+      VLANInfo result = api.editVLAN(uuid, new VLANInfo.Builder().meta(meta).build());
       assertNotNull(result);
    }
 
@@ -1108,18 +1116,18 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestsSendResponses(
             getBuilder()
                   .endpoint(endpoint + "ips/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/ips.json", MediaType.APPLICATION_JSON))
-            .build()
-            , getBuilder()
-            .endpoint(endpoint + "ips/")
-            .addQueryParam("limit", "1")
-            .addQueryParam("offset", "1")
-            .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/ips-last-page.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/ips.json", MediaType.APPLICATION_JSON))
+                  .build(),
+            getBuilder()
+                  .endpoint(endpoint + "ips/")
+                  .addQueryParam("limit", "1")
+                  .addQueryParam("offset", "1")
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/ips-last-page.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       List<IP> ips = api.listIPs().concat().toList();
 
@@ -1133,10 +1141,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             getBuilder()
                   .endpoint(endpoint + "ips/?limit=2&offset=2")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/ips.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/ips.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       for (IP ip : api.listIPs(new PaginationOptions.Builder().limit(2).offset(2).build())) {
          assertNotNull(ip);
@@ -1148,18 +1156,18 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestsSendResponses(
             getBuilder()
                   .endpoint(endpoint + "ips/detail/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/ips.json", MediaType.APPLICATION_JSON))
-            .build()
-            , getBuilder()
-            .endpoint(endpoint + "ips/detail/")
-            .addQueryParam("limit", "1")
-            .addQueryParam("offset", "1")
-            .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/ips-last-page.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/ips.json", MediaType.APPLICATION_JSON))
+                  .build(),
+            getBuilder()
+                  .endpoint(endpoint + "ips/detail/")
+                  .addQueryParam("limit", "1")
+                  .addQueryParam("offset", "1")
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/ips-last-page.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       List<IPInfo> ipInfos = api.listIPInfo().concat().toList();
 
@@ -1173,10 +1181,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             getBuilder()
                   .endpoint(endpoint + "ips/detail/?limit=2&offset=2")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/ips.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/ips.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       for (IPInfo ipInfo : api.listIPInfo(new PaginationOptions.Builder().limit(2).offset(2).build())) {
          assertNotNull(ipInfo);
@@ -1189,10 +1197,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             getBuilder()
                   .endpoint(endpoint + "ips/" + uuid + "/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/ips-single.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/ips-single.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       IPInfo result = api.getIPInfo(uuid);
       assertNotNull(result);
@@ -1210,15 +1218,12 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
             putBuilder()
                   .endpoint(endpoint + "ips/" + uuid + "/")
                   .payload(payloadFromResourceWithContentType("/ips-edit-request.json", MediaType.APPLICATION_JSON))
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/ips-single.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/ips-single.json", MediaType.APPLICATION_JSON))
+                  .build());
 
-      IPInfo result = api.editIP(uuid
-            , new IPInfo.Builder()
-            .meta(meta)
-            .build());
+      IPInfo result = api.editIP(uuid, new IPInfo.Builder().meta(meta).build());
       assertNotNull(result);
    }
 
@@ -1227,18 +1232,20 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestsSendResponses(
             getBuilder()
                   .endpoint(endpoint + "tags/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/tags-detail-first-page.json", MediaType.APPLICATION_JSON))
-            .build()
-            , getBuilder()
-            .endpoint(endpoint + "tags/")
-            .addQueryParam("limit", "1")
-            .addQueryParam("offset", "1")
-            .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/tags-detail-last-page.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/tags-detail-first-page.json",
+                        MediaType.APPLICATION_JSON))
+                  .build(),
+            getBuilder()
+                  .endpoint(endpoint + "tags/")
+                  .addQueryParam("limit", "1")
+                  .addQueryParam("offset", "1")
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/tags-detail-last-page.json",
+                        MediaType.APPLICATION_JSON))
+                  .build());
 
       List<Tag> tags = api.listTags().concat().toList();
 
@@ -1252,10 +1259,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             getBuilder()
                   .endpoint(endpoint + "tags/?limit=2&offset=2")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/tags-detail.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/tags-detail.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       for (Tag tag : api.listTags(new PaginationOptions.Builder().limit(2).offset(2).build())) {
          assertNotNull(tag);
@@ -1267,18 +1274,21 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestsSendResponses(
             getBuilder()
                   .endpoint(endpoint + "tags/detail/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/tags-detail-first-page.json", MediaType.APPLICATION_JSON))
-            .build()
-            , getBuilder()
-            .endpoint(endpoint + "tags/detail/")
-            .addQueryParam("limit", "1")
-            .addQueryParam("offset", "1")
-            .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/tags-detail-last-page.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/tags-detail-first-page.json",
+                        MediaType.APPLICATION_JSON))
+                  .build(),
+            getBuilder()
+                  .endpoint(endpoint + "tags/detail/")
+                  .addQueryParam("limit", "1")
+                  .addQueryParam("offset", "1")
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/tags-detail-last-page.json",
+                        MediaType.APPLICATION_JSON))
+                  .build());
+
 
       List<Tag> tags = api.listTagsInfo().concat().toList();
 
@@ -1293,10 +1303,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             getBuilder()
                   .endpoint(endpoint + "tags/detail/?limit=2&offset=2")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/tags-detail.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/tags-detail.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       for (Tag tag : api.listTagsInfo(new PaginationOptions.Builder().limit(2).offset(2).build())) {
          assertNotNull(tag);
@@ -1309,10 +1319,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             getBuilder()
                   .endpoint(endpoint + "tags/" + uuid + "/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/tags-single.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/tags-single.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       Tag result = api.getTagInfo(uuid);
       assertNotNull(result);
@@ -1325,10 +1335,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
             putBuilder()
                   .endpoint(endpoint + "tags/" + uuid + "/")
                   .payload(payloadFromResourceWithContentType("/tags-create-request.json", MediaType.APPLICATION_JSON))
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/tags-single.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/tags-single.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       Tag result = api.editTag(uuid,
             new Tag.Builder()
@@ -1350,19 +1360,19 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
             postBuilder()
                   .endpoint(endpoint + "tags/")
                   .payload(payloadFromResourceWithContentType("/tags-create-request.json", MediaType.APPLICATION_JSON))
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/tags-create-single.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/tags-create-single.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       Tag result = api.createTag(new Tag.Builder()
             .name("TagCreatedWithResource")
             .resources(ImmutableList.of(
-                  new TagResource.Builder().uuid("61bcc398-c034-42f1-81c9-f6d7f62c4ea0").build()
-                  , new TagResource.Builder().uuid("8ac6ac13-a55e-4b01-bcf4-5eed7b60a3ed").build()
-                  , new TagResource.Builder().uuid("3610d935-514a-4552-acf3-a40dd0a5f961").build()
-                  , new TagResource.Builder().uuid("185.12.6.183").build()
-                  , new TagResource.Builder().uuid("96537817-f4b6-496b-a861-e74192d3ccb0").build()
+                  new TagResource.Builder().uuid("61bcc398-c034-42f1-81c9-f6d7f62c4ea0").build(),
+                  new TagResource.Builder().uuid("8ac6ac13-a55e-4b01-bcf4-5eed7b60a3ed").build(),
+                  new TagResource.Builder().uuid("3610d935-514a-4552-acf3-a40dd0a5f961").build(),
+                  new TagResource.Builder().uuid("185.12.6.183").build(),
+                  new TagResource.Builder().uuid("96537817-f4b6-496b-a861-e74192d3ccb0").build()
             ))
             .build());
       assertNotNull(result);
@@ -1375,9 +1385,9 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             deleteBuilder()
                   .endpoint(endpoint + "tags/" + uuid + "/")
-                  .build()
-            , responseBuilder()
-            .build());
+                  .build(),
+            responseBuilder()
+                  .build());
 
       api.deleteTag(uuid);
    }
@@ -1387,28 +1397,28 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             postBuilder()
                   .endpoint(endpoint + "tags/")
-                  .payload(payloadFromResourceWithContentType("/tags-create-multiple-request.json"
-                        , MediaType.APPLICATION_JSON))
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/tags-detail.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .payload(payloadFromResourceWithContentType("/tags-create-multiple-request.json",
+                        MediaType.APPLICATION_JSON))
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/tags-detail.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       List<Tag> result = api.createTags(ImmutableList.of(
             new Tag.Builder()
                   .name("new tag")
                   .resources(ImmutableList.of(new TagResource.Builder().uuid("185.12.6.183").build()))
-                  .build()
-            , new Tag.Builder()
-            .name("TagCreatedWithResource")
-            .resources(ImmutableList.of(
-                  new TagResource.Builder().uuid("61bcc398-c034-42f1-81c9-f6d7f62c4ea0").build()
-                  , new TagResource.Builder().uuid("8ac6ac13-a55e-4b01-bcf4-5eed7b60a3ed").build()
-                  , new TagResource.Builder().uuid("3610d935-514a-4552-acf3-a40dd0a5f961").build()
-                  , new TagResource.Builder().uuid("185.12.6.183").build()
-                  , new TagResource.Builder().uuid("96537817-f4b6-496b-a861-e74192d3ccb0").build()
-            ))
-            .build()));
+                  .build(),
+            new Tag.Builder()
+                  .name("TagCreatedWithResource")
+                  .resources(ImmutableList.of(
+                        new TagResource.Builder().uuid("61bcc398-c034-42f1-81c9-f6d7f62c4ea0").build(),
+                        new TagResource.Builder().uuid("8ac6ac13-a55e-4b01-bcf4-5eed7b60a3ed").build(),
+                        new TagResource.Builder().uuid("3610d935-514a-4552-acf3-a40dd0a5f961").build(),
+                        new TagResource.Builder().uuid("185.12.6.183").build(),
+                        new TagResource.Builder().uuid("96537817-f4b6-496b-a861-e74192d3ccb0").build()))
+                  .build()));
+
       assertNotNull(result);
    }
 
@@ -1417,10 +1427,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             getBuilder()
                   .endpoint(endpoint + "profile/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/profile.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/profile.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       ProfileInfo result = api.getProfileInfo();
       assertNotNull(result);
@@ -1432,10 +1442,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
             putBuilder()
                   .endpoint(endpoint + "profile/")
                   .payload(payloadFromResourceWithContentType("/profile-edit-request.json", MediaType.APPLICATION_JSON))
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/profile.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/profile.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       Map<String, String> meta = new HashMap<String, String>();
       meta.put("description", "profile info");
@@ -1481,10 +1491,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             getBuilder()
                   .endpoint(endpoint + "balance/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/balance.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/balance.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       AccountBalance result = api.getAccountBalance();
       assertNotNull(result);
@@ -1495,10 +1505,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             getBuilder()
                   .endpoint(endpoint + "currentusage/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/currentusage.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/currentusage.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       CurrentUsage result = api.getCurrentUsage();
       assertNotNull(result);
@@ -1509,18 +1519,20 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestsSendResponses(
             getBuilder()
                   .endpoint(endpoint + "subscriptions/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/subscriptions-first-page.json", MediaType.APPLICATION_JSON))
-            .build()
-            , getBuilder()
-            .endpoint(endpoint + "subscriptions/")
-            .addQueryParam("limit", "2")
-            .addQueryParam("offset", "2")
-            .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/subscriptions-last-page.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/subscriptions-first-page.json",
+                        MediaType.APPLICATION_JSON))
+                  .build(),
+            getBuilder()
+                  .endpoint(endpoint + "subscriptions/")
+                  .addQueryParam("limit", "2")
+                  .addQueryParam("offset", "2")
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/subscriptions-last-page.json",
+                        MediaType.APPLICATION_JSON))
+                  .build());
 
       List<Subscription> subscriptions = api.listSubscriptions().concat().toList();
 
@@ -1535,10 +1547,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             getBuilder()
                   .endpoint(endpoint + "subscriptions/?limit=3&offset=3")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/subscriptions.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/subscriptions.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       for (Subscription subscription : api.listSubscriptions(new PaginationOptions.Builder()
             .limit(3)
@@ -1549,58 +1561,15 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
    }
 
    @Test
-   public void testListSubscriptionsCalculator() throws Exception {
-      CloudSigma2Api api = requestsSendResponses(
-            getBuilder()
-                  .endpoint(endpoint + "subscriptioncalculator/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/subscriptions-first-page.json", MediaType.APPLICATION_JSON))
-            .build()
-            , getBuilder()
-            .endpoint(endpoint + "subscriptioncalculator/")
-            .addQueryParam("limit", "2")
-            .addQueryParam("offset", "2")
-            .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/subscriptions-last-page.json", MediaType.APPLICATION_JSON))
-            .build());
-
-      List<Subscription> subscriptions = api.listSubscriptionsCalculator().concat().toList();
-
-      Assert.assertEquals(subscriptions.size(), 3);
-      Assert.assertEquals(subscriptions.get(0).getUuid(), "509f8e27-1e64-49bb-aa5a-baec074b0210");
-      Assert.assertEquals(subscriptions.get(1).getUuid(), "c2423c1a-8768-462c-bdc3-4ca09c1e650b");
-      Assert.assertEquals(subscriptions.get(2).getUuid(), "9bb117d3-4bc5-4e2d-a907-b20abd48eaf9");
-   }
-
-   @Test
-   public void testListSubscriptionsCalculatorPaginatedCollection() throws Exception {
-      CloudSigma2Api api = requestSendsResponse(
-            getBuilder()
-                  .endpoint(endpoint + "subscriptioncalculator/?limit=2&offset=2")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/subscriptions.json", MediaType.APPLICATION_JSON))
-            .build());
-
-      for (Subscription subscription : api.listSubscriptionsCalculator(new PaginationOptions.Builder()
-            .limit(2)
-            .offset(2)
-            .build())) {
-         assertNotNull(subscription);
-      }
-   }
-
-   @Test
    public void testGetSubscription() throws Exception {
       CloudSigma2Api api = requestSendsResponse(
             getBuilder()
                   .endpoint(endpoint + "subscriptions/5551/")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/subscriptions-single-get.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/subscriptions-single-get.json",
+                        MediaType.APPLICATION_JSON))
+                  .build());
 
       Subscription result = api.getSubscription("5551");
       assertNotNull(result);
@@ -1611,12 +1580,12 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             postBuilder()
                   .endpoint(endpoint + "subscriptions/")
-                  .payload(payloadFromResourceWithContentType("/subscriptions-create-request.json"
-                        , MediaType.APPLICATION_JSON))
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/subscriptions-single.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .payload(payloadFromResourceWithContentType("/subscriptions-create-request.json",
+                        MediaType.APPLICATION_JSON))
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/subscriptions-single.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       Subscription result = api.createSubscription(new CreateSubscriptionRequest.Builder()
             .resource(SubscriptionResource.DSSD)
@@ -1631,29 +1600,30 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             postBuilder()
                   .endpoint(endpoint + "subscriptions/")
-                  .payload(payloadFromResourceWithContentType("/subscriptions-create-multiple-request.json"
-                        , MediaType.APPLICATION_JSON))
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/subscriptions.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .payload(payloadFromResourceWithContentType("/subscriptions-create-multiple-request.json",
+                        MediaType.APPLICATION_JSON))
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/subscriptions.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       List<Subscription> result = api.createSubscriptions(ImmutableList.of(
             new CreateSubscriptionRequest.Builder()
                   .resource(SubscriptionResource.DSSD)
                   .period("1 month")
                   .amount("30000")
-                  .build()
-            , new CreateSubscriptionRequest.Builder()
-            .resource(SubscriptionResource.MEM)
-            .period("3 months")
-            .amount("30000")
-            .build()
-            , new CreateSubscriptionRequest.Builder()
-            .resource(SubscriptionResource.IP)
-            .period("1 year")
-            .amount("30000")
-            .build()));
+                  .build(),
+            new CreateSubscriptionRequest.Builder()
+                  .resource(SubscriptionResource.MEM)
+                  .period("3 months")
+                  .amount("30000")
+                  .build(),
+            new CreateSubscriptionRequest.Builder()
+                  .resource(SubscriptionResource.IP)
+                  .period("1 year")
+                  .amount("30000")
+                  .build()));
+
       assertNotNull(result);
    }
 
@@ -1663,10 +1633,10 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             postBuilder()
                   .endpoint(endpoint + "subscriptions/" + uuid + "/action/?do=extend")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/subscriptions-single.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/subscriptions-single.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       api.extendSubscription(uuid);
    }
@@ -1677,23 +1647,67 @@ public class CloudSigma2ApiExpectTest extends BaseRestApiExpectTest<CloudSigma2A
       CloudSigma2Api api = requestSendsResponse(
             postBuilder()
                   .endpoint(endpoint + "subscriptions/" + uuid + "/action/?do=auto_renew")
-                  .build()
-            , responseBuilder()
-            .payload(payloadFromResourceWithContentType("/pricing.json", MediaType.APPLICATION_JSON))
-            .build());
+                  .build(),
+            responseBuilder()
+                  .payload(payloadFromResourceWithContentType("/pricing.json", MediaType.APPLICATION_JSON))
+                  .build());
 
       api.enableSubscriptionAutorenew(uuid);
    }
 
    @Test
+   public void testCalculateSubscriptions() throws Exception {
+      List<CalcSubscription> subscriptionsToCalculate = ImmutableList.of(
+            new CalcSubscription.Builder()
+                  .amount(1)
+                  .resource(SubscriptionResource.IP)
+                  .endTime(new Date(1388145600000l))
+                  .price(5.5)
+                  .startTime(new Date(1385547361440l))
+                  .build(),
+            new CalcSubscription.Builder()
+                  .amount(1)
+                  .resource(SubscriptionResource.VLAN)
+                  .endTime(new Date(1388145600000l))
+                  .price(11)
+                  .startTime(new Date(1385547361440l))
+                  .build(),
+            new CalcSubscription.Builder()
+                  .amount(250)
+                  .resource(SubscriptionResource.CPU)
+                  .endTime(new Date(1388145600000l))
+                  .price(3.366)
+                  .startTime(new Date(1385547361440l))
+                  .build());
+
+      CloudSigma2Api api = requestSendsResponse(
+            postBuilder()
+                  .endpoint(endpoint + "subscriptioncalculator/")
+                  .payload(payloadFromResourceWithContentType("/subscriptioncalculator-request.json",
+                        MediaType.APPLICATION_JSON))
+                  .build(),
+         

<TRUNCATED>