MAILBOX-359 Gathering non related event DTOs into one class
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/a8095043 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/a8095043 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/a8095043 Branch: refs/heads/master Commit: a809504323cc1a533af873d6782e7f51d9da3a6b Parents: 9e5b1bf Author: tran tien duc <[email protected]> Authored: Mon Dec 17 15:39:01 2018 +0700 Committer: Benoit Tellier <[email protected]> Committed: Wed Dec 19 18:05:58 2018 +0700 ---------------------------------------------------------------------- .../org/apache/james/mailbox/FlagsBuilder.java | 5 - .../apache/james/mailbox/MailboxListener.java | 3 +- .../org/apache/james/event/json/DTOs.scala | 104 +++++++++++++++---- .../james/event/json/EventSerializer.scala | 39 ++++--- .../apache/james/event/json/MetaDataDTO.scala | 90 ---------------- .../event/json/AddedSerializationTest.java | 20 ++-- 6 files changed, 120 insertions(+), 141 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/a8095043/mailbox/api/src/main/java/org/apache/james/mailbox/FlagsBuilder.java ---------------------------------------------------------------------- diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/FlagsBuilder.java b/mailbox/api/src/main/java/org/apache/james/mailbox/FlagsBuilder.java index f36189b..7a791ec 100644 --- a/mailbox/api/src/main/java/org/apache/james/mailbox/FlagsBuilder.java +++ b/mailbox/api/src/main/java/org/apache/james/mailbox/FlagsBuilder.java @@ -61,11 +61,6 @@ public class FlagsBuilder { return this; } - public FlagsBuilder merge(FlagsBuilder flagsBuilder) { - internalFlags.add(flagsBuilder.internalFlags); - return this; - } - public Flags build() { return new Flags(internalFlags); } http://git-wip-us.apache.org/repos/asf/james-project/blob/a8095043/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxListener.java ---------------------------------------------------------------------- diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxListener.java b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxListener.java index 60d8aa2..83797ca 100644 --- a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxListener.java +++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxListener.java @@ -24,6 +24,7 @@ import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.SortedMap; import org.apache.james.core.User; import org.apache.james.core.quota.QuotaCount; @@ -451,7 +452,7 @@ public interface MailboxListener { class Added extends MetaDataHoldingEvent { private final Map<MessageUid, MessageMetaData> added; - public Added(MailboxSession.SessionId sessionId, User user, MailboxPath path, MailboxId mailboxId, Map<MessageUid, MessageMetaData> uids) { + public Added(MailboxSession.SessionId sessionId, User user, MailboxPath path, MailboxId mailboxId, SortedMap<MessageUid, MessageMetaData> uids) { super(sessionId, user, path, mailboxId); this.added = ImmutableMap.copyOf(uids); } http://git-wip-us.apache.org/repos/asf/james-project/blob/a8095043/mailbox/event/json/src/main/scala/org/apache/james/event/json/DTOs.scala ---------------------------------------------------------------------- diff --git a/mailbox/event/json/src/main/scala/org/apache/james/event/json/DTOs.scala b/mailbox/event/json/src/main/scala/org/apache/james/event/json/DTOs.scala index 3e04d1c..ee4529e 100644 --- a/mailbox/event/json/src/main/scala/org/apache/james/event/json/DTOs.scala +++ b/mailbox/event/json/src/main/scala/org/apache/james/event/json/DTOs.scala @@ -1,31 +1,38 @@ -/**************************************************************** - * Licensed to the Apache Software Foundation (ASF) under one * - * or more contributor license agreements. See the NOTICE file * - * distributed with this work for additional information * - * regarding copyright ownership. The ASF licenses this file * - * to you under the Apache License, Version 2.0 (the * - * "License"); you may not use this file except in compliance * - * with the License. You may obtain a copy of the License at * - * * - * http://www.apache.org/licenses/LICENSE-2.0 * - * * - * Unless required by applicable law or agreed to in writing, * - * software distributed under the License is distributed on an * - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * - * KIND, either express or implied. See the License for the * - * specific language governing permissions and limitations * - * under the License. * - ****************************************************************/ +/** ************************************************************** + * Licensed to the Apache Software Foundation (ASF) under one * + * or more contributor license agreements. See the NOTICE file * + * distributed with this work for additional information * + * regarding copyright ownership. The ASF licenses this file * + * to you under the Apache License, Version 2.0 (the * + * "License"); you may not use this file except in compliance * + * with the License. You may obtain a copy of the License at * + * * + * http://www.apache.org/licenses/LICENSE-2.0 * + * * + * Unless required by applicable law or agreed to in writing, * + * software distributed under the License is distributed on an * + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * + * KIND, either express or implied. See the License for the * + * specific language governing permissions and limitations * + * under the License. * + * ***************************************************************/ package org.apache.james.event.json +import java.time.Instant +import java.util.Date + +import javax.mail.{Flags => JavaMailFlags} import org.apache.james.core.quota.QuotaValue import org.apache.james.mailbox.acl.{ACLDiff => JavaACLDiff} -import org.apache.james.mailbox.model.{MailboxACL, MailboxPath => JavaMailboxPath, Quota => JavaQuota} +import org.apache.james.mailbox.model.{MailboxACL, MessageId, MailboxPath => JavaMailboxPath, MessageMetaData => JavaMessageMetaData, + Quota => JavaQuota} +import org.apache.james.mailbox.{FlagsBuilder, MessageUid} import scala.collection.JavaConverters._ object DTOs { + object ACLDiff { def fromJava(javaACLDiff: JavaACLDiff): ACLDiff = ACLDiff( javaACLDiff.getOldACL.getEntries.asScala.toMap, @@ -63,4 +70,63 @@ object DTOs { .limitsByScope(limits.asJava) .build() } + + object MessageMetaData { + def fromJava(javaMessageMetaData: JavaMessageMetaData): MessageMetaData = DTOs.MessageMetaData( + javaMessageMetaData.getUid, + javaMessageMetaData.getModSeq, + javaMessageMetaData.getFlags, + javaMessageMetaData.getSize, + javaMessageMetaData.getInternalDate.toInstant, + javaMessageMetaData.getMessageId) + } + + case class MessageMetaData(uid: MessageUid, modSeq: Long, flags: JavaMailFlags, size: Long, internalDate: Instant, messageId: MessageId) { + def toJava: JavaMessageMetaData = new JavaMessageMetaData(uid, modSeq, flags, size, Date.from(internalDate), messageId) + } + + object Flags { + val ANSWERED = "\\Answered" + val DELETED = "\\Deleted" + val DRAFT = "\\Draft" + val FLAGGED = "\\Flagged" + val RECENT = "\\Recent" + val SEEN = "\\Seen" + val ALL_SYSTEM_FLAGS = List(ANSWERED, DELETED, DRAFT, FLAGGED, RECENT, SEEN) + + def toJavaFlags(serializedFlags: Array[String]): JavaMailFlags = { + serializedFlags + .map(toJavaMailFlag) + .foldLeft(new FlagsBuilder)((builder, flag) => builder.add(flag)) + .build() + } + + def toJavaMailFlag(flag: String): JavaMailFlags = ALL_SYSTEM_FLAGS.contains(flag) match { + case true => new FlagsBuilder().add(stringToSystemFlag(flag)).build() + case false => new FlagsBuilder().add(flag).build() + } + + def fromJavaFlags(flags: JavaMailFlags): Array[String] = { + flags.getUserFlags ++ flags.getSystemFlags.map(flag => systemFlagToString(flag)) + } + + private def stringToSystemFlag(serializedFlag: String): JavaMailFlags.Flag = serializedFlag match { + case ANSWERED => JavaMailFlags.Flag.ANSWERED + case DELETED => JavaMailFlags.Flag.DELETED + case DRAFT => JavaMailFlags.Flag.DRAFT + case FLAGGED => JavaMailFlags.Flag.FLAGGED + case RECENT => JavaMailFlags.Flag.RECENT + case SEEN => JavaMailFlags.Flag.SEEN + case _ => throw new IllegalArgumentException(serializedFlag + " is not a system flag") + } + + private def systemFlagToString(flag: JavaMailFlags.Flag): String = flag match { + case JavaMailFlags.Flag.ANSWERED => ANSWERED + case JavaMailFlags.Flag.DELETED => DELETED + case JavaMailFlags.Flag.DRAFT => DRAFT + case JavaMailFlags.Flag.FLAGGED => FLAGGED + case JavaMailFlags.Flag.RECENT => RECENT + case JavaMailFlags.Flag.SEEN => SEEN + } + } } http://git-wip-us.apache.org/repos/asf/james-project/blob/a8095043/mailbox/event/json/src/main/scala/org/apache/james/event/json/EventSerializer.scala ---------------------------------------------------------------------- diff --git a/mailbox/event/json/src/main/scala/org/apache/james/event/json/EventSerializer.scala b/mailbox/event/json/src/main/scala/org/apache/james/event/json/EventSerializer.scala index a638165..01cb1b8 100644 --- a/mailbox/event/json/src/main/scala/org/apache/james/event/json/EventSerializer.scala +++ b/mailbox/event/json/src/main/scala/org/apache/james/event/json/EventSerializer.scala @@ -20,19 +20,22 @@ package org.apache.james.event.json import java.time.Instant -import java.util.Optional +import java.util.{Optional, TreeMap => JavaTreeMap} import javax.mail.{Flags => JavaMailFlags} import julienrf.json.derived import org.apache.james.core.quota.{QuotaCount, QuotaSize, QuotaValue} import org.apache.james.core.{Domain, User} import org.apache.james.event.json.DTOs.{ACLDiff, MailboxPath, Quota} -import org.apache.james.event.json.MetaDataDTO.Flags import org.apache.james.mailbox.MailboxListener.{Added => JavaAdded, Expunged => JavaExpunged, MailboxACLUpdated => JavaMailboxACLUpdated, MailboxAdded => JavaMailboxAdded, MailboxDeletion => JavaMailboxDeletion, MailboxRenamed => JavaMailboxRenamed, QuotaUsageUpdatedEvent => JavaQuotaUsageUpdatedEvent} import org.apache.james.mailbox.MailboxSession.SessionId import org.apache.james.mailbox.model.{MailboxId, MessageId, QuotaRoot, MailboxACL => JavaMailboxACL, Quota => JavaQuota} +import org.apache.james.event.json.DTOs.{Flags, MailboxPath, Quota} +import org.apache.james.mailbox.MailboxListener.{Added => JavaAdded, Expunged => JavaExpunged, MailboxAdded => JavaMailboxAdded, MailboxDeletion => JavaMailboxDeletion, MailboxRenamed => JavaMailboxRenamed, QuotaUsageUpdatedEvent => JavaQuotaUsageUpdatedEvent} +import org.apache.james.mailbox.MailboxSession.SessionId +import org.apache.james.mailbox.model.{MailboxId, MessageId, QuotaRoot, MessageMetaData => JavaMessageMetaData, Quota => JavaQuota} import org.apache.james.mailbox.{MessageUid, Event => JavaEvent} import play.api.libs.json.{JsArray, JsError, JsNull, JsNumber, JsObject, JsResult, JsString, JsSuccess, Json, OFormat, Reads, Writes} @@ -68,23 +71,23 @@ private object DTO { } case class Added(sessionId: SessionId, user: User, path: MailboxPath, mailboxId: MailboxId, - added: Map[MessageUid, MetaDataDTO.MessageMetaData]) extends Event { + added: Map[MessageUid, DTOs.MessageMetaData]) extends Event { override def toJava: JavaEvent = new JavaAdded( sessionId, user, path.toJava, mailboxId, - added.map(entry => entry._1 -> entry._2.toJava).asJava) + new JavaTreeMap[MessageUid, JavaMessageMetaData](added.mapValues(_.toJava).asJava)) } case class Expunged(sessionId: SessionId, user: User, path: MailboxPath, mailboxId: MailboxId, - expunged: Map[MessageUid, MetaDataDTO.MessageMetaData]) extends Event { + expunged: Map[MessageUid, DTOs.MessageMetaData]) extends Event { override def toJava: JavaEvent = new JavaExpunged( sessionId, user, path.toJava, mailboxId, - expunged.map(entry => entry._1 -> entry._2.toJava).asJava) + expunged.mapValues(_.toJava).asJava) } } @@ -96,6 +99,11 @@ private object ScalaConverter { aclDiff = ACLDiff.fromJava(event.getAclDiff), mailboxId = event.getMailboxId) + private def toScala[T <: QuotaValue[T]](java: JavaQuota[T]): DTOs.Quota[T] = DTOs.Quota( + used = java.getUsed, + limit = java.getLimit, + limits = java.getLimitByScope.asScala.toMap) + private def toScala(event: JavaMailboxAdded): DTO.MailboxAdded = DTO.MailboxAdded( mailboxPath = MailboxPath.fromJava(event.getMailboxPath), mailboxId = event.getMailboxId, @@ -111,7 +119,6 @@ private object ScalaConverter { totalDeletedSize = event.getTotalDeletedSize, mailboxId = event.getMailboxId) - private def toScala(event: JavaMailboxRenamed): DTO.MailboxRenamed = DTO.MailboxRenamed( sessionId = event.getSessionId, user = event.getUser, @@ -131,7 +138,7 @@ private object ScalaConverter { user = event.getUser, path = MailboxPath.fromJava(event.getMailboxPath), mailboxId = event.getMailboxId, - added = event.getAdded.asScala.map(entry => entry._1 -> MetaDataDTO.MessageMetaData.fromJava(entry._2)).toMap + added = event.getAdded.asScala.mapValues(DTOs.MessageMetaData.fromJava).toMap ) private def toScala(event: JavaExpunged): DTO.Expunged = DTO.Expunged( @@ -139,17 +146,17 @@ private object ScalaConverter { user = event.getUser, path = MailboxPath.fromJava(event.getMailboxPath), mailboxId = event.getMailboxId, - expunged = event.getExpunged.asScala.map(entry => entry._1 -> MetaDataDTO.MessageMetaData.fromJava(entry._2)).toMap + expunged = event.getExpunged.asScala.mapValues(DTOs.MessageMetaData.fromJava).toMap ) def toScala(javaEvent: JavaEvent): Event = javaEvent match { + case e: JavaAdded => toScala(e) + case e: JavaExpunged => toScala(e) case e: JavaMailboxACLUpdated => toScala(e) case e: JavaMailboxAdded => toScala(e) case e: JavaMailboxDeletion => toScala(e) case e: JavaMailboxRenamed => toScala(e) case e: JavaQuotaUsageUpdatedEvent => toScala(e) - case e: JavaAdded => toScala(e) - case e: JavaExpunged => toScala(e) case _ => throw new RuntimeException("no Scala conversion known") } } @@ -170,7 +177,7 @@ private class JsonSerialize(mailboxIdFactory: MailboxId.Factory, messageIdFactor implicit val messageIdWrites: Writes[MessageId] = value => JsString(value.serialize()) implicit val messageUidWrites: Writes[MessageUid] = value => JsNumber(value.asLong()) implicit val flagsWrites: Writes[JavaMailFlags] = value => JsArray(Flags.fromJavaFlags(value).map(flag => JsString(flag))) - implicit val messageMetaDataWrites: Writes[MetaDataDTO.MessageMetaData] = Json.writes[MetaDataDTO.MessageMetaData] + implicit val messageMetaDataWrites: Writes[DTOs.MessageMetaData] = Json.writes[DTOs.MessageMetaData] implicit val aclEntryKeyReads: Reads[JavaMailboxACL.EntryKey] = { case JsString(keyAsString) => JsSuccess(JavaMailboxACL.EntryKey.deserialize(keyAsString)) @@ -255,10 +262,10 @@ private class JsonSerialize(mailboxIdFactory: MailboxId.Factory, messageIdFactor } implicit val aclDiffReads: Reads[ACLDiff] = Json.reads[ACLDiff] - implicit val mailboxPathReads: Reads[MailboxPath] = Json.reads[MailboxPath] - implicit val quotaCReads: Reads[Quota[QuotaCount]] = Json.reads[Quota[QuotaCount]] - implicit val quotaSReads: Reads[Quota[QuotaSize]] = Json.reads[Quota[QuotaSize]] - implicit val messageMetaDataReads: Reads[MetaDataDTO.MessageMetaData] = Json.reads[MetaDataDTO.MessageMetaData] + implicit val quotaCReads: Reads[DTOs.Quota[QuotaCount]] = Json.reads[DTOs.Quota[QuotaCount]] + implicit val quotaSReads: Reads[DTOs.Quota[QuotaSize]] = Json.reads[DTOs.Quota[QuotaSize]] + implicit val mailboxPathReads: Reads[DTOs.MailboxPath] = Json.reads[DTOs.MailboxPath] + implicit val messageMetaDataReads: Reads[DTOs.MessageMetaData] = Json.reads[DTOs.MessageMetaData] implicit val eventOFormat: OFormat[Event] = derived.oformat() http://git-wip-us.apache.org/repos/asf/james-project/blob/a8095043/mailbox/event/json/src/main/scala/org/apache/james/event/json/MetaDataDTO.scala ---------------------------------------------------------------------- diff --git a/mailbox/event/json/src/main/scala/org/apache/james/event/json/MetaDataDTO.scala b/mailbox/event/json/src/main/scala/org/apache/james/event/json/MetaDataDTO.scala deleted file mode 100644 index ee314f0..0000000 --- a/mailbox/event/json/src/main/scala/org/apache/james/event/json/MetaDataDTO.scala +++ /dev/null @@ -1,90 +0,0 @@ -/** ************************************************************** - * Licensed to the Apache Software Foundation (ASF) under one * - * or more contributor license agreements. See the NOTICE file * - * distributed with this work for additional information * - * regarding copyright ownership. The ASF licenses this file * - * to you under the Apache License, Version 2.0 (the * - * "License"); you may not use this file except in compliance * - * with the License. You may obtain a copy of the License at * - * * - * http://www.apache.org/licenses/LICENSE-2.0 * - * * - * Unless required by applicable law or agreed to in writing, * - * software distributed under the License is distributed on an * - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * - * KIND, either express or implied. See the License for the * - * specific language governing permissions and limitations * - * under the License. * - * ***************************************************************/ - -package org.apache.james.event.json - -import java.time.Instant -import java.util.Date - -import javax.mail.{Flags => JavaMailFlags} -import org.apache.james.mailbox.model.{MessageId, MessageMetaData => JavaMessageMetaData} -import org.apache.james.mailbox.{FlagsBuilder, MessageUid} - -object MetaDataDTO { - - object MessageMetaData { - def fromJava(javaMessageMetaData: JavaMessageMetaData): MessageMetaData = MetaDataDTO.MessageMetaData( - javaMessageMetaData.getUid, - javaMessageMetaData.getModSeq, - javaMessageMetaData.getFlags, - javaMessageMetaData.getSize, - javaMessageMetaData.getInternalDate.toInstant, - javaMessageMetaData.getMessageId) - } - - object Flags { - val ANSWERED = "\\Answered" - val DELETED = "\\Deleted" - val DRAFT = "\\Draft" - val FLAGGED = "\\Flagged" - val RECENT = "\\Recent" - val SEEN = "\\Seen" - val ALL_SYSTEM_FLAGS = List(ANSWERED, DELETED, DRAFT, FLAGGED, RECENT, SEEN) - - def toJavaFlags(serializedFlags: Array[String]): JavaMailFlags = { - serializedFlags - .map(toFlagBuilder) - .reduceOption(_ merge _) - .getOrElse(new FlagsBuilder()) - .build() - } - - def toFlagBuilder(flag: String): FlagsBuilder = ALL_SYSTEM_FLAGS.contains(flag) match { - case true => new FlagsBuilder().add(stringToSystemFlag(flag)) - case false => new FlagsBuilder().add(flag) - } - - def fromJavaFlags(flags: JavaMailFlags): Array[String] = { - flags.getUserFlags ++ flags.getSystemFlags.map(flag => systemFlagToString(flag)) - } - - private def stringToSystemFlag(serializedFlag: String): JavaMailFlags.Flag = serializedFlag match { - case ANSWERED => JavaMailFlags.Flag.ANSWERED - case DELETED => JavaMailFlags.Flag.DELETED - case DRAFT => JavaMailFlags.Flag.DRAFT - case FLAGGED => JavaMailFlags.Flag.FLAGGED - case RECENT => JavaMailFlags.Flag.RECENT - case SEEN => JavaMailFlags.Flag.SEEN - case _ => throw new IllegalArgumentException(serializedFlag + " is not a system flag") - } - - private def systemFlagToString(flag: JavaMailFlags.Flag): String = flag match { - case JavaMailFlags.Flag.ANSWERED => ANSWERED - case JavaMailFlags.Flag.DELETED => DELETED - case JavaMailFlags.Flag.DRAFT => DRAFT - case JavaMailFlags.Flag.FLAGGED => FLAGGED - case JavaMailFlags.Flag.RECENT => RECENT - case JavaMailFlags.Flag.SEEN => SEEN - } - } - - case class MessageMetaData(uid: MessageUid, modSeq: Long, flags: JavaMailFlags, size: Long, internalDate: Instant, messageId: MessageId) { - def toJava: JavaMessageMetaData = new JavaMessageMetaData(uid, modSeq, flags, size, Date.from(internalDate), messageId) - } -} http://git-wip-us.apache.org/repos/asf/james-project/blob/a8095043/mailbox/event/json/src/test/java/org/apache/james/event/json/AddedSerializationTest.java ---------------------------------------------------------------------- diff --git a/mailbox/event/json/src/test/java/org/apache/james/event/json/AddedSerializationTest.java b/mailbox/event/json/src/test/java/org/apache/james/event/json/AddedSerializationTest.java index 3ddc475..cbc481a 100644 --- a/mailbox/event/json/src/test/java/org/apache/james/event/json/AddedSerializationTest.java +++ b/mailbox/event/json/src/test/java/org/apache/james/event/json/AddedSerializationTest.java @@ -27,8 +27,8 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import java.time.Instant; import java.util.Date; -import java.util.Map; import java.util.NoSuchElementException; +import java.util.SortedMap; import javax.mail.Flags; @@ -46,7 +46,7 @@ import org.apache.james.mailbox.model.TestMessageId; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; -import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSortedMap; class AddedSerializationTest { @@ -64,7 +64,7 @@ class AddedSerializationTest { .add(Flags.Flag.ANSWERED, Flags.Flag.DRAFT) .add("User Custom Flag") .build(); - private static final Map<MessageUid, MessageMetaData> ADDED = ImmutableMap.of( + private static final SortedMap<MessageUid, MessageMetaData> ADDED = ImmutableSortedMap.of( MESSAGE_UID, new MessageMetaData(MESSAGE_UID, MOD_SEQ, FLAGS, SIZE, Date.from(INSTANT), MESSAGE_ID)); private static final MailboxListener.Added DEFAULT_ADDED_EVENT = new MailboxListener.Added(SESSION_ID, USER, MAILBOX_PATH, MAILBOX_ID, ADDED); @@ -109,7 +109,7 @@ class AddedSerializationTest { @Nested class WithEmptyAddedMap { - private final MailboxListener.Added emptyAddedEvent = new MailboxListener.Added(SESSION_ID, USER, MAILBOX_PATH, MAILBOX_ID, ImmutableMap.of()); + private final MailboxListener.Added emptyAddedEvent = new MailboxListener.Added(SESSION_ID, USER, MAILBOX_PATH, MAILBOX_ID, ImmutableSortedMap.of()); private final String emptyAddedEventJson = "{" + " \"Added\": {" + @@ -145,7 +145,7 @@ class AddedSerializationTest { class WithEmptyFlags { private final Flags emptyFlags = new FlagsBuilder().build(); private final MailboxListener.Added emptyFlagsAddedEvent = new MailboxListener.Added(SESSION_ID, USER, MAILBOX_PATH, MAILBOX_ID, - ImmutableMap.of( + ImmutableSortedMap.of( MESSAGE_UID, new MessageMetaData(MESSAGE_UID, MOD_SEQ, emptyFlags, SIZE, Date.from(INSTANT), MESSAGE_ID))); @@ -192,7 +192,7 @@ class AddedSerializationTest { .add("Custom 1", "Custom 2", "") .build(); private final MailboxListener.Added onlyUserFlagsAddedEvent = new MailboxListener.Added(SESSION_ID, USER, MAILBOX_PATH, MAILBOX_ID, - ImmutableMap.of( + ImmutableSortedMap.of( MESSAGE_UID, new MessageMetaData(MESSAGE_UID, MOD_SEQ, onlyUserFlags, SIZE, Date.from(INSTANT), MESSAGE_ID))); @@ -240,7 +240,7 @@ class AddedSerializationTest { .add(Flags.Flag.SEEN, Flags.Flag.ANSWERED, Flags.Flag.DELETED) .build(); private final MailboxListener.Added onlySystemFlagsAddedEvent = new MailboxListener.Added(SESSION_ID, USER, MAILBOX_PATH, MAILBOX_ID, - ImmutableMap.of( + ImmutableSortedMap.of( MESSAGE_UID, new MessageMetaData(MESSAGE_UID, MOD_SEQ, onlySystemFlags, SIZE, Date.from(INSTANT), MESSAGE_ID))); @@ -326,7 +326,7 @@ class AddedSerializationTest { @Test void addedShouldDeserializeWhenInternalDateIsInGoodISOFormat() { - Map<MessageUid, MessageMetaData> added = ImmutableMap.of( + SortedMap<MessageUid, MessageMetaData> added = ImmutableSortedMap.of( MESSAGE_UID, new MessageMetaData(MESSAGE_UID, MOD_SEQ, FLAGS, SIZE, Date.from(Instant.parse("2018-12-14T09:41:51Z")), MESSAGE_ID)); MailboxListener.Added eventRoundToMillis = new MailboxListener.Added(SESSION_ID, USER, MAILBOX_PATH, MAILBOX_ID, added); @@ -358,7 +358,7 @@ class AddedSerializationTest { @Test void addedShouldDeserializeWhenInternalDateIsMissingMilliSeconds() { - Map<MessageUid, MessageMetaData> added = ImmutableMap.of( + SortedMap<MessageUid, MessageMetaData> added = ImmutableSortedMap.of( MESSAGE_UID, new MessageMetaData(MESSAGE_UID, MOD_SEQ, FLAGS, SIZE, Date.from(Instant.parse("2018-12-14T09:41:51Z")), MESSAGE_ID)); MailboxListener.Added eventRoundToMillis = new MailboxListener.Added(SESSION_ID, USER, MAILBOX_PATH, MAILBOX_ID, added); @@ -390,7 +390,7 @@ class AddedSerializationTest { @Test void addedShouldDeserializeWhenInternalDateIsMissingSeconds() { - Map<MessageUid, MessageMetaData> added = ImmutableMap.of( + SortedMap<MessageUid, MessageMetaData> added = ImmutableSortedMap.of( MESSAGE_UID, new MessageMetaData(MESSAGE_UID, MOD_SEQ, FLAGS, SIZE, Date.from(Instant.parse("2018-12-14T09:41:00Z")), MESSAGE_ID)); MailboxListener.Added eventRoundToMinute = new MailboxListener.Added(SESSION_ID, USER, MAILBOX_PATH, MAILBOX_ID, added); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
