You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2017/09/11 02:37:02 UTC

[18/23] james-project git commit: JAMES-2138 Webadmin default content type should be JSON

JAMES-2138 Webadmin default content type should be JSON


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/4817caa7
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/4817caa7
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/4817caa7

Branch: refs/heads/master
Commit: 4817caa7c514731e540b4ef715ac487a24acbf56
Parents: b421854
Author: benwa <bt...@linagora.com>
Authored: Wed Sep 6 13:10:40 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Sat Sep 9 10:46:36 2017 +0700

----------------------------------------------------------------------
 .../WebAdminServerIntegrationTest.java          |   6 +
 .../routes/CassandraMigrationRoutes.java        |   1 -
 .../routes/CassandraMigrationRoutesTest.java    |  45 ++++--
 .../apache/james/webadmin/WebAdminServer.java   |   1 +
 .../webadmin/routes/DomainsRoutesTest.java      |  56 ++++---
 .../james/webadmin/routes/UsersRoutesTest.java  |  79 +++++++---
 .../webadmin/routes/GlobalQuotaRoutesTest.java  | 146 +++++++++++++------
 .../routes/UserMailboxesRoutesTest.java         |  90 ++++++++----
 8 files changed, 293 insertions(+), 131 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/4817caa7/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java
index 6835242..8b6230c 100644
--- a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java
+++ b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java
@@ -22,6 +22,7 @@ package org.apache.james.webadmin.integration;
 import static com.jayway.restassured.RestAssured.given;
 import static com.jayway.restassured.config.EncoderConfig.encoderConfig;
 import static com.jayway.restassured.config.RestAssuredConfig.newConfig;
+import static org.apache.james.webadmin.Constants.JSON_CONTENT_TYPE;
 import static org.apache.james.webadmin.Constants.SEPARATOR;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.hamcrest.Matchers.containsString;
@@ -161,6 +162,7 @@ public class WebAdminServerIntegrationTest {
             .get(UserRoutes.USERS)
         .then()
             .statusCode(200)
+            .contentType(JSON_CONTENT_TYPE)
             .body(is("[{\"username\":\"username@domain\"}]"));
     }
 
@@ -203,6 +205,7 @@ public class WebAdminServerIntegrationTest {
             .get(VERSION)
         .then()
             .statusCode(200)
+            .contentType(JSON_CONTENT_TYPE)
             .body(is("{\"version\":null}"));
     }
 
@@ -214,6 +217,7 @@ public class WebAdminServerIntegrationTest {
             .get(VERSION_LATEST)
         .then()
             .statusCode(200)
+            .contentType(JSON_CONTENT_TYPE)
             .body(is("{\"version\":" + CassandraSchemaVersionManager.MAX_VERSION + "}"));
     }
 
@@ -233,6 +237,7 @@ public class WebAdminServerIntegrationTest {
             .get(VERSION)
         .then()
             .statusCode(200)
+            .contentType(JSON_CONTENT_TYPE)
             .body(is("{\"version\":" + CassandraSchemaVersionManager.MAX_VERSION + "}"));
     }
 
@@ -251,6 +256,7 @@ public class WebAdminServerIntegrationTest {
             .get(VERSION)
         .then()
             .statusCode(200)
+            .contentType(JSON_CONTENT_TYPE)
             .body(is("{\"version\":" + CassandraSchemaVersionManager.MAX_VERSION + "}"));
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/4817caa7/server/protocols/webadmin/webadmin-cassandra/src/main/java/org/apache/james/webadmin/routes/CassandraMigrationRoutes.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-cassandra/src/main/java/org/apache/james/webadmin/routes/CassandraMigrationRoutes.java b/server/protocols/webadmin/webadmin-cassandra/src/main/java/org/apache/james/webadmin/routes/CassandraMigrationRoutes.java
index c9564e7..c574f13 100644
--- a/server/protocols/webadmin/webadmin-cassandra/src/main/java/org/apache/james/webadmin/routes/CassandraMigrationRoutes.java
+++ b/server/protocols/webadmin/webadmin-cassandra/src/main/java/org/apache/james/webadmin/routes/CassandraMigrationRoutes.java
@@ -34,7 +34,6 @@ import spark.Service;
 
 public class CassandraMigrationRoutes implements Routes {
 
-
     private static final Logger LOGGER = LoggerFactory.getLogger(CassandraMigrationRoutes.class);
 
     public static final String VERSION_BASE = "/cassandra/version";

http://git-wip-us.apache.org/repos/asf/james-project/blob/4817caa7/server/protocols/webadmin/webadmin-cassandra/src/test/java/org/apache/james/webadmin/routes/CassandraMigrationRoutesTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-cassandra/src/test/java/org/apache/james/webadmin/routes/CassandraMigrationRoutesTest.java b/server/protocols/webadmin/webadmin-cassandra/src/test/java/org/apache/james/webadmin/routes/CassandraMigrationRoutesTest.java
index 17aaa2b..d3554d0 100644
--- a/server/protocols/webadmin/webadmin-cassandra/src/test/java/org/apache/james/webadmin/routes/CassandraMigrationRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-cassandra/src/test/java/org/apache/james/webadmin/routes/CassandraMigrationRoutesTest.java
@@ -24,13 +24,14 @@ import static com.jayway.restassured.RestAssured.when;
 import static com.jayway.restassured.config.EncoderConfig.encoderConfig;
 import static com.jayway.restassured.config.RestAssuredConfig.newConfig;
 import static org.apache.james.webadmin.WebAdminServer.NO_CONFIGURATION;
-import static org.hamcrest.CoreMatchers.is;
+import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
 import static org.mockito.Mockito.when;
+
 import java.util.Map;
 import java.util.Optional;
 import java.util.concurrent.CompletableFuture;
@@ -41,6 +42,10 @@ import org.apache.james.metrics.logger.DefaultMetricFactory;
 import org.apache.james.webadmin.WebAdminServer;
 import org.apache.james.webadmin.service.CassandraMigrationService;
 import org.apache.james.webadmin.utils.JsonTransformer;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
 
 import com.google.common.base.Charsets;
 import com.google.common.collect.ImmutableMap;
@@ -48,11 +53,6 @@ import com.jayway.restassured.RestAssured;
 import com.jayway.restassured.builder.RequestSpecBuilder;
 import com.jayway.restassured.http.ContentType;
 
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-
 public class CassandraMigrationRoutesTest {
 
     private static final Integer LATEST_VERSION = 3;
@@ -101,20 +101,33 @@ public class CassandraMigrationRoutesTest {
     public void getShouldReturnTheCurrentVersion() throws Exception {
         when(schemaVersionDAO.getCurrentSchemaVersion()).thenReturn(CompletableFuture.completedFuture(Optional.of(CURRENT_VERSION)));
 
-        when()
-            .get()
-        .then()
-            .statusCode(200)
-            .body(is("{\"version\":2}"));
+        Integer version =
+            when()
+                .get()
+            .then()
+                .statusCode(200)
+                .contentType(ContentType.JSON)
+                .extract()
+                .jsonPath()
+                .getInt("version");
+
+        assertThat(version).isEqualTo(CURRENT_VERSION);
     }
 
     @Test
     public void getShouldReturnTheLatestVersionWhenSetUpTheLatestVersion() throws Exception {
-        when()
-            .get("/latest")
-        .then()
-            .statusCode(200)
-            .body(is("{\"version\":" + LATEST_VERSION + "}"));
+
+        Integer version =
+            when()
+                .get("/latest")
+            .then()
+                .statusCode(200)
+                .contentType(ContentType.JSON)
+                .extract()
+                .jsonPath()
+                .getInt("version");
+
+        assertThat(version).isEqualTo(LATEST_VERSION);
     }
 
     @Ignore

http://git-wip-us.apache.org/repos/asf/james-project/blob/4817caa7/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/WebAdminServer.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/WebAdminServer.java b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/WebAdminServer.java
index cfd60b6..ba27d1c 100644
--- a/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/WebAdminServer.java
+++ b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/WebAdminServer.java
@@ -83,6 +83,7 @@ public class WebAdminServer implements Configurable {
             configureCORS();
             configureMetrics();
             service.before(authenticationFilter);
+            service.before((request, response) -> response.type(Constants.JSON_CONTENT_TYPE));
             configureMDC();
             routesList.forEach(routes -> routes.define(service));
             service.awaitInitialization();

http://git-wip-us.apache.org/repos/asf/james-project/blob/4817caa7/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainsRoutesTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainsRoutesTest.java b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainsRoutesTest.java
index 23739f9..c3eeaad 100644
--- a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainsRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/DomainsRoutesTest.java
@@ -26,8 +26,7 @@ import static com.jayway.restassured.config.EncoderConfig.encoderConfig;
 import static com.jayway.restassured.config.RestAssuredConfig.newConfig;
 import static org.apache.james.webadmin.Constants.SEPARATOR;
 import static org.apache.james.webadmin.WebAdminServer.NO_CONFIGURATION;
-import static org.hamcrest.CoreMatchers.containsString;
-import static org.hamcrest.CoreMatchers.is;
+import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.mock;
@@ -35,6 +34,7 @@ import static org.mockito.Mockito.when;
 
 import java.net.InetAddress;
 import java.nio.charset.StandardCharsets;
+import java.util.List;
 
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.domainlist.api.DomainList;
@@ -51,6 +51,7 @@ import org.junit.runner.RunWith;
 import com.jayway.restassured.RestAssured;
 import com.jayway.restassured.builder.RequestSpecBuilder;
 import com.jayway.restassured.http.ContentType;
+
 import de.bechte.junit.runners.context.HierarchicalContextRunner;
 
 @RunWith(HierarchicalContextRunner.class)
@@ -96,11 +97,18 @@ public class DomainsRoutesTest {
 
         @Test
         public void getDomainsShouldBeEmptyByDefault() {
-            given()
-                .get()
-            .then()
-                .statusCode(200)
-                .body(is("[]"));
+            List<String> domains =
+                given()
+                    .get()
+                .then()
+                    .statusCode(200)
+                    .contentType(ContentType.JSON)
+                    .extract()
+                    .body()
+                    .jsonPath()
+                    .getList(".");
+
+            assertThat(domains).isEmpty();
         }
 
         @Test
@@ -132,11 +140,18 @@ public class DomainsRoutesTest {
             with()
                 .put(DOMAIN);
 
-            when()
-                .get()
-            .then()
-                .statusCode(200)
-                .body(containsString(DOMAIN));
+            List<String> domains =
+                when()
+                    .get()
+                .then()
+                    .contentType(ContentType.JSON)
+                    .statusCode(200)
+                    .extract()
+                    .body()
+                    .jsonPath()
+                    .getList(".");
+
+            assertThat(domains).containsExactly(DOMAIN);
         }
 
         @Test
@@ -186,11 +201,18 @@ public class DomainsRoutesTest {
             .then()
                 .statusCode(204);
 
-            when()
-                .get()
-            .then()
-                .statusCode(200)
-                .body(is("[]"));
+            List<String> domains =
+                when()
+                    .get()
+                .then()
+                    .contentType(ContentType.JSON)
+                    .statusCode(200)
+                    .extract()
+                    .body()
+                    .jsonPath()
+                    .getList(".");
+
+           assertThat(domains).isEmpty();
         }
 
         @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/4817caa7/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/UsersRoutesTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/UsersRoutesTest.java b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/UsersRoutesTest.java
index cba4019..c1c7527 100644
--- a/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/UsersRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-data/src/test/java/org/apache/james/webadmin/routes/UsersRoutesTest.java
@@ -25,14 +25,15 @@ import static com.jayway.restassured.RestAssured.with;
 import static com.jayway.restassured.config.EncoderConfig.encoderConfig;
 import static com.jayway.restassured.config.RestAssuredConfig.newConfig;
 import static org.apache.james.webadmin.WebAdminServer.NO_CONFIGURATION;
-import static org.hamcrest.CoreMatchers.equalTo;
-import static org.hamcrest.CoreMatchers.is;
+import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.nio.charset.StandardCharsets;
+import java.util.List;
+import java.util.Map;
 
 import org.apache.james.domainlist.api.DomainList;
 import org.apache.james.metrics.logger.DefaultMetricFactory;
@@ -48,9 +49,11 @@ import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import com.google.common.collect.ImmutableMap;
 import com.jayway.restassured.RestAssured;
 import com.jayway.restassured.builder.RequestSpecBuilder;
 import com.jayway.restassured.http.ContentType;
+
 import de.bechte.junit.runners.context.HierarchicalContextRunner;
 
 @RunWith(HierarchicalContextRunner.class)
@@ -96,11 +99,18 @@ public class UsersRoutesTest {
 
         @Test
         public void getUsersShouldBeEmptyByDefault() {
-            when()
-                .get()
-            .then()
-                .statusCode(200)
-                .body(is("[]"));
+            List<Map<String, String>> users =
+                when()
+                    .get()
+                .then()
+                    .statusCode(200)
+                    .contentType(ContentType.JSON)
+                    .extract()
+                    .body()
+                    .jsonPath()
+                    .getList(".");
+
+            assertThat(users).isEmpty();
         }
 
         @Test
@@ -155,13 +165,20 @@ public class UsersRoutesTest {
         public void postShouldAddTheUser() {
             with()
                 .body("{\"password\":\"password\"}")
-            .put(USERNAME);
-
-            when()
-                .get()
-            .then()
-                .statusCode(200)
-                .body(equalTo("[{\"username\":\"" + USERNAME + "\"}]"));
+                .put(USERNAME);
+
+            List<Map<String, String>> users =
+                when()
+                    .get()
+                .then()
+                    .statusCode(200)
+                    .contentType(ContentType.JSON)
+                    .extract()
+                    .body()
+                    .jsonPath()
+                    .getList(".");
+
+            assertThat(users).containsExactly(ImmutableMap.of("username", USERNAME));
         }
 
         @Test
@@ -180,11 +197,18 @@ public class UsersRoutesTest {
                 .statusCode(204);
 
             // Then
-            when()
-                .get()
-            .then()
-                .statusCode(200)
-                .body(equalTo("[{\"username\":\"" + USERNAME + "\"}]"));
+            List<Map<String, String>> users =
+                when()
+                    .get()
+                .then()
+                    .statusCode(200)
+                    .contentType(ContentType.JSON)
+                    .extract()
+                    .body()
+                    .jsonPath()
+                    .getList(".");
+
+            assertThat(users).containsExactly(ImmutableMap.of("username", USERNAME));
         }
 
         @Test
@@ -269,11 +293,18 @@ public class UsersRoutesTest {
                 .statusCode(204);
 
             // Then
-            when()
-                .get()
-            .then()
-                .statusCode(200)
-                .body(equalTo("[]"));
+            List<Map<String, String>> users =
+                when()
+                    .get()
+                .then()
+                    .statusCode(200)
+                    .contentType(ContentType.JSON)
+                    .extract()
+                    .body()
+                    .jsonPath()
+                    .getList(".");
+
+            assertThat(users).isEmpty();
         }
 
         @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/4817caa7/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/GlobalQuotaRoutesTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/GlobalQuotaRoutesTest.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/GlobalQuotaRoutesTest.java
index 89f9fc0..4d6f8bd 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/GlobalQuotaRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/GlobalQuotaRoutesTest.java
@@ -24,7 +24,6 @@ import static com.jayway.restassured.config.EncoderConfig.encoderConfig;
 import static com.jayway.restassured.config.RestAssuredConfig.newConfig;
 import static org.apache.james.webadmin.WebAdminServer.NO_CONFIGURATION;
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.hamcrest.CoreMatchers.is;
 
 import org.apache.james.mailbox.inmemory.quota.InMemoryPerUserMaxQuotaManager;
 import org.apache.james.mailbox.model.Quota;
@@ -39,6 +38,7 @@ import com.google.common.base.Charsets;
 import com.jayway.restassured.RestAssured;
 import com.jayway.restassured.builder.RequestSpecBuilder;
 import com.jayway.restassured.http.ContentType;
+import com.jayway.restassured.path.json.JsonPath;
 
 public class GlobalQuotaRoutesTest {
 
@@ -69,11 +69,16 @@ public class GlobalQuotaRoutesTest {
 
     @Test
     public void getCountQuotaCountShouldReturnUnlimitedByDefault() {
-        given()
-            .get(GlobalQuotaRoutes.COUNT_ENDPOINT)
-        .then()
-            .statusCode(200)
-            .body(is(String.valueOf(Quota.UNLIMITED)));
+        long quota =
+            given()
+                .get(GlobalQuotaRoutes.COUNT_ENDPOINT)
+            .then()
+                .statusCode(200)
+                .contentType(ContentType.JSON)
+                .extract()
+                .as(Long.class);
+
+        assertThat(quota).isEqualTo(Quota.UNLIMITED);
     }
 
     @Test
@@ -81,11 +86,16 @@ public class GlobalQuotaRoutesTest {
         int value = 42;
         maxQuotaManager.setDefaultMaxMessage(value);
 
-        given()
-            .get(GlobalQuotaRoutes.COUNT_ENDPOINT)
-        .then()
-            .statusCode(200)
-            .body(is(String.valueOf(value)));
+        Long actual =
+            given()
+                .get(GlobalQuotaRoutes.COUNT_ENDPOINT)
+            .then()
+                .statusCode(200)
+                .contentType(ContentType.JSON)
+                .extract()
+                .as(Long.class);
+
+        assertThat(actual).isEqualTo(value);
     }
 
     @Test
@@ -131,23 +141,34 @@ public class GlobalQuotaRoutesTest {
 
     @Test
     public void getSizeQuotaCountShouldReturnUnlimitedByDefault() {
-        given()
-            .get(GlobalQuotaRoutes.SIZE_ENDPOINT)
-        .then()
-            .statusCode(200)
-            .body(is(String.valueOf(Quota.UNLIMITED)));
+        long quota =
+            given()
+                .get(GlobalQuotaRoutes.SIZE_ENDPOINT)
+            .then()
+                .statusCode(200)
+                .contentType(ContentType.JSON)
+                .extract()
+                .as(Long.class);
+
+        assertThat(quota).isEqualTo(Quota.UNLIMITED);
     }
 
     @Test
     public void getSizeShouldReturnStoredValue() throws Exception{
-        int value = 42;
+        long value = 42;
         maxQuotaManager.setDefaultMaxStorage(value);
 
-        given()
-            .get(GlobalQuotaRoutes.SIZE_ENDPOINT)
-        .then()
-            .statusCode(200)
-            .body(is(String.valueOf(value)));
+
+        long quota =
+            given()
+                .get(GlobalQuotaRoutes.SIZE_ENDPOINT)
+            .then()
+                .statusCode(200)
+                .contentType(ContentType.JSON)
+                .extract()
+                .as(Long.class);
+
+        assertThat(quota).isEqualTo(value);
     }
 
     @Test
@@ -193,45 +214,74 @@ public class GlobalQuotaRoutesTest {
 
     @Test
     public void getQuotaShouldReturnBothWhenValueSpecified() throws Exception {
-        maxQuotaManager.setDefaultMaxStorage(42);
-        maxQuotaManager.setDefaultMaxMessage(52);
-
-        given()
-            .get(GlobalQuotaRoutes.QUOTA_ENDPOINT)
-        .then()
-            .statusCode(200)
-            .body(is("{\"count\":52,\"size\":42}"));
+        int maxStorage = 42;
+        int maxMessage = 52;
+        maxQuotaManager.setDefaultMaxStorage(maxStorage);
+        maxQuotaManager.setDefaultMaxMessage(maxMessage);
+
+        JsonPath jsonPath =
+            given()
+                .get(GlobalQuotaRoutes.QUOTA_ENDPOINT)
+            .then()
+                .statusCode(200)
+                .contentType(ContentType.JSON)
+                .extract()
+                .jsonPath();
+
+        assertThat(jsonPath.getLong("size")).isEqualTo(maxStorage);
+        assertThat(jsonPath.getLong("count")).isEqualTo(maxMessage);
     }
 
     @Test
     public void getQuotaShouldReturnBothDefaultValues() throws Exception {
-        given()
-            .get(GlobalQuotaRoutes.QUOTA_ENDPOINT)
-        .then()
-            .statusCode(200)
-            .body(is("{\"count\":-1,\"size\":-1}"));
+        JsonPath jsonPath =
+            given()
+                .get(GlobalQuotaRoutes.QUOTA_ENDPOINT)
+            .then()
+                .statusCode(200)
+                .contentType(ContentType.JSON)
+                .extract()
+                .jsonPath();
+
+        assertThat(jsonPath.getLong("size")).isEqualTo(Quota.UNLIMITED);
+        assertThat(jsonPath.getLong("count")).isEqualTo(Quota.UNLIMITED);
     }
 
     @Test
     public void getQuotaShouldReturnBothWhenNoCount() throws Exception {
-        maxQuotaManager.setDefaultMaxStorage(42);
-
-        given()
-            .get(GlobalQuotaRoutes.QUOTA_ENDPOINT)
-        .then()
-            .statusCode(200)
-            .body(is("{\"count\":-1,\"size\":42}"));
+        int maxStorage = 42;
+        maxQuotaManager.setDefaultMaxStorage(maxStorage);
+
+        JsonPath jsonPath =
+            given()
+                .get(GlobalQuotaRoutes.QUOTA_ENDPOINT)
+            .then()
+                .statusCode(200)
+                .contentType(ContentType.JSON)
+                .extract()
+                .jsonPath();
+
+        assertThat(jsonPath.getLong("size")).isEqualTo(maxStorage);
+        assertThat(jsonPath.getLong("count")).isEqualTo(Quota.UNLIMITED);
     }
 
     @Test
     public void getQuotaShouldReturnBothWhenNoSize() throws Exception {
-        maxQuotaManager.setDefaultMaxMessage(42);
+        int maxMessage = 42;
+        maxQuotaManager.setDefaultMaxMessage(maxMessage);
 
-        given()
-            .get(GlobalQuotaRoutes.QUOTA_ENDPOINT)
-        .then()
-            .statusCode(200)
-            .body(is("{\"count\":42,\"size\":-1}"));
+
+        JsonPath jsonPath =
+            given()
+                .get(GlobalQuotaRoutes.QUOTA_ENDPOINT)
+                .then()
+                .statusCode(200)
+                .contentType(ContentType.JSON)
+                .extract()
+                .jsonPath();
+
+        assertThat(jsonPath.getLong("size")).isEqualTo(Quota.UNLIMITED);
+        assertThat(jsonPath.getLong("count")).isEqualTo(maxMessage);
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/4817caa7/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
index 503abfe..7ae6ce4 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
@@ -26,12 +26,16 @@ import static com.jayway.restassured.config.RestAssuredConfig.newConfig;
 import static org.apache.james.webadmin.Constants.SEPARATOR;
 import static org.apache.james.webadmin.WebAdminServer.NO_CONFIGURATION;
 import static org.apache.james.webadmin.routes.UserMailboxesRoutes.USERS_BASE;
+import static org.assertj.core.api.Assertions.assertThat;
 import static org.hamcrest.CoreMatchers.is;
 import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import java.util.List;
+import java.util.Map;
+
 import org.apache.james.mailbox.MailboxManager;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
@@ -63,6 +67,7 @@ import org.junit.runner.RunWith;
 
 import com.google.common.base.Charsets;
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
 import com.jayway.restassured.RestAssured;
 import com.jayway.restassured.builder.RequestSpecBuilder;
 import com.jayway.restassured.http.ContentType;
@@ -291,11 +296,18 @@ public class UserMailboxesRoutesTest {
 
         @Test
         public void getMailboxesShouldReturnEmptyListByDefault() {
-            when()
-                .get()
-            .then()
-                .statusCode(200)
-                .body(is("[]"));
+            List<Object> list =
+                when()
+                    .get()
+                .then()
+                    .statusCode(200)
+                    .contentType(ContentType.JSON)
+                    .extract()
+                    .body()
+                    .jsonPath()
+                    .getList(".");
+
+            assertThat(list).isEmpty();
         }
 
         @Test
@@ -427,11 +439,18 @@ public class UserMailboxesRoutesTest {
             with()
                 .delete();
 
-            when()
-                .get()
-            .then()
-                .statusCode(200)
-                .body(is("[]"));
+            List<Object> list =
+                when()
+                    .get()
+                .then()
+                    .statusCode(200)
+                    .contentType(ContentType.JSON)
+                    .extract()
+                    .body()
+                    .jsonPath()
+                    .getList(".");
+
+            assertThat(list).isEmpty();
         }
 
         @Test
@@ -459,11 +478,18 @@ public class UserMailboxesRoutesTest {
             with()
                 .delete(MAILBOX_NAME);
 
-            when()
-                .get()
-            .then()
-                .statusCode(200)
-                .body(is("[]"));
+            List<Object> list =
+                when()
+                    .get()
+                .then()
+                    .statusCode(200)
+                    .contentType(ContentType.JSON)
+                    .extract()
+                    .body()
+                    .jsonPath()
+                    .getList(".");
+
+            assertThat(list).isEmpty();
         }
 
         @Test
@@ -478,11 +504,18 @@ public class UserMailboxesRoutesTest {
             with()
                 .delete(MAILBOX_NAME);
 
-            when()
-                .get()
-            .then()
-                .statusCode(200)
-                .body(is("[{\"mailboxName\":\"" + mailboxName + "\"}]"));
+            List<Map<String, String>> list =
+                when()
+                    .get()
+                .then()
+                    .statusCode(200)
+                    .contentType(ContentType.JSON)
+                    .extract()
+                    .body()
+                    .jsonPath()
+                    .getList(".");
+
+            assertThat(list).containsExactly(ImmutableMap.of("mailboxName", mailboxName));
         }
 
         @Test
@@ -510,11 +543,18 @@ public class UserMailboxesRoutesTest {
             with()
                 .delete(MAILBOX_NAME + ".child");
 
-            when()
-                .get()
-            .then()
-                .statusCode(200)
-                .body(is("[{\"mailboxName\":\"myMailboxName\"}]"));
+            List<Map<String, String>> list =
+                when()
+                    .get()
+                .then()
+                    .statusCode(200)
+                    .contentType(ContentType.JSON)
+                    .extract()
+                    .body()
+                    .jsonPath()
+                    .getList(".");
+
+            assertThat(list).containsExactly(ImmutableMap.of("mailboxName", MAILBOX_NAME));
         }
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org