Author: matthieu
Date: Thu Jan 21 15:51:48 2016
New Revision: 1725994
URL: http://svn.apache.org/viewvc?rev=1725994&view=rev
Log:
JAMES-1662 configure jsonPath to return null on absent json nodes
Modified:
james/project/trunk/server/protocols/jmap-integration-testing/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java
Modified:
james/project/trunk/server/protocols/jmap-integration-testing/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java
URL:
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap-integration-testing/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java?rev=1725994&r1=1725993&r2=1725994&view=diff
==============================================================================
---
james/project/trunk/server/protocols/jmap-integration-testing/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java
(original)
+++
james/project/trunk/server/protocols/jmap-integration-testing/src/test/java/org/apache/james/jmap/methods/GetMailboxesMethodTest.java
Thu Jan 21 15:51:48 2016
@@ -36,7 +36,10 @@ import java.util.Map;
import javax.mail.Flags;
import com.google.common.collect.ImmutableMap;
+import com.jayway.jsonpath.Configuration;
import com.jayway.jsonpath.JsonPath;
+import com.jayway.jsonpath.Option;
+import com.jayway.jsonpath.ParseContext;
import org.apache.james.backends.cassandra.EmbeddedCassandra;
import org.apache.james.jmap.JmapAuthentication;
import org.apache.james.jmap.JmapServer;
@@ -60,6 +63,7 @@ public abstract class GetMailboxesMethod
private EmbeddedElasticSearch embeddedElasticSearch = new
EmbeddedElasticSearch(temporaryFolder);
private EmbeddedCassandra cassandra =
EmbeddedCassandra.createStartServer();
private JmapServer jmapServer = jmapServer(temporaryFolder,
embeddedElasticSearch, cassandra);
+ private ParseContext jsonPath;
protected abstract JmapServer jmapServer(TemporaryFolder temporaryFolder,
EmbeddedElasticSearch embeddedElasticSearch, EmbeddedCassandra cassandra);
@@ -75,6 +79,9 @@ public abstract class GetMailboxesMethod
public void setup() throws Exception {
RestAssured.port = jmapServer.getPort();
RestAssured.config =
newConfig().encoderConfig(encoderConfig().defaultContentCharset(Charsets.UTF_8));
+ jsonPath = JsonPath.using(Configuration.builder()
+ .options(Option.DEFAULT_PATH_LEAF_TO_NULL)
+ .build());
String domain = "domain.tld";
String username = "username@" + domain;
@@ -157,7 +164,7 @@ public abstract class GetMailboxesMethod
.asString();
String firstResponsePath = "$.[0].[1]";
- assertThat(JsonPath.parse(response).<Integer>read(firstResponsePath +
".list.length()")).isEqualTo(0);
+ assertThat(jsonPath.parse(response).<Integer>read(firstResponsePath +
".list.length()")).isEqualTo(0);
}
@Test
@@ -229,20 +236,20 @@ public abstract class GetMailboxesMethod
.asString();
String firstMailboxPath = "$.[0].[1].list.[0]";
- assertThat(JsonPath.parse(response).<String>read(firstMailboxPath +
".name")).isEqualTo("name");
- assertThat(JsonPath.parse(response).<String>read(firstMailboxPath +
".parentId")).isNull();
- assertThat(JsonPath.parse(response).<String>read(firstMailboxPath +
".role")).isNull();
- assertThat(JsonPath.parse(response).<Integer>read(firstMailboxPath +
".sortOrder")).isEqualTo(1000);
- assertThat(JsonPath.parse(response).<Boolean>read(firstMailboxPath +
".mustBeOnlyMailbox")).isFalse();
- assertThat(JsonPath.parse(response).<Boolean>read(firstMailboxPath +
".mayReadItems")).isFalse();
- assertThat(JsonPath.parse(response).<Boolean>read(firstMailboxPath +
".mayAddItems")).isFalse();
- assertThat(JsonPath.parse(response).<Boolean>read(firstMailboxPath +
".mayRemoveItems")).isFalse();
- assertThat(JsonPath.parse(response).<Boolean>read(firstMailboxPath +
".mayCreateChild")).isFalse();
- assertThat(JsonPath.parse(response).<Boolean>read(firstMailboxPath +
".mayRename")).isFalse();
- assertThat(JsonPath.parse(response).<Boolean>read(firstMailboxPath +
".mayDelete")).isFalse();
- assertThat(JsonPath.parse(response).<Integer>read(firstMailboxPath +
".totalMessages")).isEqualTo(1);
- assertThat(JsonPath.parse(response).<Integer>read(firstMailboxPath +
".unreadMessages")).isEqualTo(1);
- assertThat(JsonPath.parse(response).<Integer>read(firstMailboxPath +
".unreadThreads")).isEqualTo(0);
+ assertThat(jsonPath.parse(response).<String>read(firstMailboxPath +
".name")).isEqualTo("name");
+ assertThat(jsonPath.parse(response).<String>read(firstMailboxPath +
".parentId")).isNull();
+ assertThat(jsonPath.parse(response).<String>read(firstMailboxPath +
".role")).isNull();
+ assertThat(jsonPath.parse(response).<Integer>read(firstMailboxPath +
".sortOrder")).isEqualTo(1000);
+ assertThat(jsonPath.parse(response).<Boolean>read(firstMailboxPath +
".mustBeOnlyMailbox")).isFalse();
+ assertThat(jsonPath.parse(response).<Boolean>read(firstMailboxPath +
".mayReadItems")).isFalse();
+ assertThat(jsonPath.parse(response).<Boolean>read(firstMailboxPath +
".mayAddItems")).isFalse();
+ assertThat(jsonPath.parse(response).<Boolean>read(firstMailboxPath +
".mayRemoveItems")).isFalse();
+ assertThat(jsonPath.parse(response).<Boolean>read(firstMailboxPath +
".mayCreateChild")).isFalse();
+ assertThat(jsonPath.parse(response).<Boolean>read(firstMailboxPath +
".mayRename")).isFalse();
+ assertThat(jsonPath.parse(response).<Boolean>read(firstMailboxPath +
".mayDelete")).isFalse();
+ assertThat(jsonPath.parse(response).<Integer>read(firstMailboxPath +
".totalMessages")).isEqualTo(1);
+ assertThat(jsonPath.parse(response).<Integer>read(firstMailboxPath +
".unreadMessages")).isEqualTo(1);
+ assertThat(jsonPath.parse(response).<Integer>read(firstMailboxPath +
".unreadThreads")).isEqualTo(0);
}
@SuppressWarnings("unchecked")
@@ -264,7 +271,7 @@ public abstract class GetMailboxesMethod
.content(startsWith("[[\"mailboxes\",{\"accountId\":null,\"state\":null,\"list\":[{\"id\":\""))
.extract()
.asString();
- assertThat(JsonPath.parse(response).<List<Map<String,
Object>>>read("$.[0].[1].list[*].['name','sortOrder']"))
+ assertThat(jsonPath.parse(response).<List<Map<String,
Object>>>read("$.[0].[1].list[*].['name','sortOrder']"))
.hasSize(2)
.containsOnly(
ImmutableMap.of("name", "trash", "sortOrder", 60),
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]