You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2021/02/09 04:29:44 UTC
[james-project] 16/33: JAMES-3491 AccountId RegistrationKey
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 4def5f5ce41e4e9589a4e4e1b118923defaa7410
Author: Lan Khuat <kh...@gmail.com>
AuthorDate: Wed Feb 3 21:41:09 2021 +0700
JAMES-3491 AccountId RegistrationKey
---
.../jmap/change/AccountIdRegistrationKey.scala | 33 ++++++++++++++
.../jmap/change/AccountIdRegistrationKeyTest.scala | 52 ++++++++++++++++++++++
2 files changed, 85 insertions(+)
diff --git a/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/change/AccountIdRegistrationKey.scala b/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/change/AccountIdRegistrationKey.scala
new file mode 100644
index 0000000..b2b969b
--- /dev/null
+++ b/server/protocols/jmap-rfc-8621/src/main/scala/org/apache/james/jmap/change/AccountIdRegistrationKey.scala
@@ -0,0 +1,33 @@
+/****************************************************************
+ * 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.jmap.change
+
+import org.apache.james.events.RegistrationKey
+import org.apache.james.jmap.api.model.AccountId
+
+case class Factory() extends RegistrationKey.Factory {
+ override val forClass: Class[_ <: RegistrationKey] = classOf[AccountIdRegistrationKey]
+
+ override def fromString(asString: String): RegistrationKey = AccountIdRegistrationKey(AccountId.fromString(asString))
+}
+
+case class AccountIdRegistrationKey(accountId: AccountId) extends RegistrationKey {
+ override def asString(): String = accountId.getIdentifier
+}
diff --git a/server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/change/AccountIdRegistrationKeyTest.scala b/server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/change/AccountIdRegistrationKeyTest.scala
new file mode 100644
index 0000000..adfb816
--- /dev/null
+++ b/server/protocols/jmap-rfc-8621/src/test/scala/org/apache/james/jmap/change/AccountIdRegistrationKeyTest.scala
@@ -0,0 +1,52 @@
+/****************************************************************
+ * 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.jmap.change
+
+import org.apache.james.jmap.api.model.AccountId
+import org.assertj.core.api.Assertions.{assertThat, assertThatThrownBy}
+import org.junit.jupiter.api.Test
+
+class AccountIdRegistrationKeyTest {
+ private val ID: String = "29883977c13473ae7cb7678ef767cbfbaffc8a44a6e463d971d23a65c1dc4af6"
+
+ private val FACTORY: Factory = Factory()
+
+ private val ACCOUNT_ID_REGISTRATION_KEY: AccountIdRegistrationKey = AccountIdRegistrationKey(AccountId.fromString(ID))
+
+ @Test
+ def asStringShouldReturnSerializedAccountId(): Unit = {
+ assertThat(ACCOUNT_ID_REGISTRATION_KEY.asString()).isEqualTo(ID)
+ }
+
+ @Test
+ def fromStringShouldReturnCorrespondingRegistrationKey(): Unit = {
+ assertThat(FACTORY.fromString(ID)).isEqualTo(ACCOUNT_ID_REGISTRATION_KEY)
+ }
+
+ @Test
+ def fromStringShouldThrowOnNullValues(): Unit = {
+ assertThatThrownBy(() => FACTORY.fromString(null)).isInstanceOf(classOf[IllegalArgumentException])
+ }
+
+ @Test
+ def fromStringShouldThrowOnEmptyValues(): Unit = {
+ assertThatThrownBy(() => FACTORY.fromString("")).isInstanceOf(classOf[IllegalArgumentException])
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org