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 <btell...@linagora.com> Authored: Wed Sep 6 13:10:40 2017 +0700 Committer: benwa <btell...@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-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org