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 ma...@apache.org on 2017/09/11 08:56:39 UTC
[16/18] james-project git commit: fixup! MAILBOX-304 Provides a new
version of AttachmentDao relying on Blobs storage
fixup! MAILBOX-304 Provides a new version of AttachmentDao relying on Blobs storage
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/f16436aa
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/f16436aa
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/f16436aa
Branch: refs/heads/master
Commit: f16436aa63f0abb4ff609df7d32a3325d2d73ddc
Parents: 55faae7
Author: benwa <bt...@linagora.com>
Authored: Fri Sep 8 18:44:03 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Sep 8 18:44:03 2017 +0700
----------------------------------------------------------------------
.../mail/CassandraAttachmentFallbackTest.java | 180 +++++++++++++++++++
.../CassandraAttachmentFallbackTestTest.java | 180 -------------------
2 files changed, 180 insertions(+), 180 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/f16436aa/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentFallbackTest.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentFallbackTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentFallbackTest.java
new file mode 100644
index 0000000..91a6c6c
--- /dev/null
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentFallbackTest.java
@@ -0,0 +1,180 @@
+/****************************************************************
+ * 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.mailbox.cassandra.mail;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+
+import java.nio.charset.StandardCharsets;
+
+import org.apache.james.backends.cassandra.CassandraCluster;
+import org.apache.james.backends.cassandra.DockerCassandraRule;
+import org.apache.james.backends.cassandra.init.CassandraModuleComposite;
+import org.apache.james.mailbox.cassandra.ids.BlobId;
+import org.apache.james.mailbox.cassandra.modules.CassandraAttachmentModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraBlobModule;
+import org.apache.james.mailbox.exception.AttachmentNotFoundException;
+import org.apache.james.mailbox.model.Attachment;
+import org.apache.james.mailbox.model.AttachmentId;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Test;
+import org.testcontainers.shaded.com.google.common.collect.ImmutableList;
+
+public class CassandraAttachmentFallbackTest {
+ public static final AttachmentId ATTACHMENT_ID_1 = AttachmentId.from("id1");
+ public static final AttachmentId ATTACHMENT_ID_2 = AttachmentId.from("id2");
+
+ @ClassRule
+ public static DockerCassandraRule cassandraServer = new DockerCassandraRule();
+
+ private CassandraCluster cassandra;
+
+ private CassandraAttachmentDAOV2 attachmentDAOV2;
+ private CassandraAttachmentDAO attachmentDAO;
+ private CassandraAttachmentMapper attachmentMapper;
+ private CassandraBlobsDAO blobsDAO;
+
+ @Before
+ public void setUp() throws Exception {
+ CassandraModuleComposite compositeModule = new CassandraModuleComposite(
+ new CassandraAttachmentModule(),
+ new CassandraBlobModule());
+
+ cassandra = CassandraCluster.create(
+ compositeModule,
+ cassandraServer.getIp(),
+ cassandraServer.getBindingPort());
+
+ attachmentDAOV2 = new CassandraAttachmentDAOV2(cassandra.getConf());
+ attachmentDAO = new CassandraAttachmentDAO(cassandra.getConf());
+ blobsDAO = new CassandraBlobsDAO(cassandra.getConf());
+ attachmentMapper = new CassandraAttachmentMapper(attachmentDAO, attachmentDAOV2, blobsDAO);
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ cassandra.close();
+ }
+
+ @Test
+ public void getAttachmentShouldThrowWhenAbsentFromV1AndV2() throws Exception {
+ assertThatThrownBy(() -> attachmentMapper.getAttachment(ATTACHMENT_ID_1))
+ .isInstanceOf(AttachmentNotFoundException.class);
+ }
+
+ @Test
+ public void getAttachmentsShouldReturnEmptyWhenAbsentFromV1AndV2() throws Exception {
+ assertThat(attachmentMapper.getAttachments(ImmutableList.of(ATTACHMENT_ID_1)))
+ .isEmpty();
+ }
+
+ @Test
+ public void getAttachmentShouldReturnV2WhenPresentInV1AndV2() throws Exception {
+ Attachment attachment = Attachment.builder()
+ .attachmentId(ATTACHMENT_ID_1)
+ .type("application/json")
+ .bytes("{\"property\":`\"value\"}".getBytes(StandardCharsets.UTF_8))
+ .build();
+ Attachment otherAttachment = Attachment.builder()
+ .attachmentId(ATTACHMENT_ID_1)
+ .type("application/json")
+ .bytes("{\"property\":`\"different\"}".getBytes(StandardCharsets.UTF_8))
+ .build();
+
+ BlobId blobId = blobsDAO.save(attachment.getBytes()).join();
+ attachmentDAOV2.storeAttachment(CassandraAttachmentDAOV2.from(attachment, blobId)).join();
+ attachmentDAO.storeAttachment(otherAttachment).join();
+
+ assertThat(attachmentMapper.getAttachment(ATTACHMENT_ID_1))
+ .isEqualTo(attachment);
+ }
+
+ @Test
+ public void getAttachmentShouldReturnV1WhenV2Absent() throws Exception {
+ Attachment attachment = Attachment.builder()
+ .attachmentId(ATTACHMENT_ID_1)
+ .type("application/json")
+ .bytes("{\"property\":`\"value\"}".getBytes(StandardCharsets.UTF_8))
+ .build();
+
+ attachmentDAO.storeAttachment(attachment).join();
+
+ assertThat(attachmentMapper.getAttachment(ATTACHMENT_ID_1))
+ .isEqualTo(attachment);
+ }
+
+ @Test
+ public void getAttachmentsShouldReturnV2WhenV2AndV1() throws Exception {
+ Attachment attachment = Attachment.builder()
+ .attachmentId(ATTACHMENT_ID_1)
+ .type("application/json")
+ .bytes("{\"property\":`\"value\"}".getBytes(StandardCharsets.UTF_8))
+ .build();
+ Attachment otherAttachment = Attachment.builder()
+ .attachmentId(ATTACHMENT_ID_1)
+ .type("application/json")
+ .bytes("{\"property\":`\"different\"}".getBytes(StandardCharsets.UTF_8))
+ .build();
+
+ BlobId blobId = blobsDAO.save(attachment.getBytes()).join();
+ attachmentDAOV2.storeAttachment(CassandraAttachmentDAOV2.from(attachment, blobId)).join();
+ attachmentDAO.storeAttachment(otherAttachment).join();
+
+ assertThat(attachmentMapper.getAttachments(ImmutableList.of(ATTACHMENT_ID_1)))
+ .containsExactly(attachment);
+ }
+
+ @Test
+ public void getAttachmentsShouldReturnV1WhenV2Absent() throws Exception {
+ Attachment attachment = Attachment.builder()
+ .attachmentId(ATTACHMENT_ID_1)
+ .type("application/json")
+ .bytes("{\"property\":`\"value\"}".getBytes(StandardCharsets.UTF_8))
+ .build();
+
+ attachmentDAO.storeAttachment(attachment).join();
+
+ assertThat(attachmentMapper.getAttachments(ImmutableList.of(ATTACHMENT_ID_1)))
+ .containsExactly(attachment);
+ }
+
+ @Test
+ public void getAttachmentsShouldCombineElementsFromV1AndV2() throws Exception {
+ Attachment attachment = Attachment.builder()
+ .attachmentId(ATTACHMENT_ID_1)
+ .type("application/json")
+ .bytes("{\"property\":`\"value\"}".getBytes(StandardCharsets.UTF_8))
+ .build();
+ Attachment otherAttachment = Attachment.builder()
+ .attachmentId(ATTACHMENT_ID_2)
+ .type("application/json")
+ .bytes("{\"property\":`\"different\"}".getBytes(StandardCharsets.UTF_8))
+ .build();
+
+ BlobId blobId = blobsDAO.save(attachment.getBytes()).join();
+ attachmentDAOV2.storeAttachment(CassandraAttachmentDAOV2.from(attachment, blobId)).join();
+ attachmentDAO.storeAttachment(otherAttachment).join();
+
+ assertThat(attachmentMapper.getAttachments(ImmutableList.of(ATTACHMENT_ID_1, ATTACHMENT_ID_2)))
+ .containsExactly(attachment, otherAttachment);
+ }
+}
http://git-wip-us.apache.org/repos/asf/james-project/blob/f16436aa/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentFallbackTestTest.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentFallbackTestTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentFallbackTestTest.java
deleted file mode 100644
index a186bbc..0000000
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentFallbackTestTest.java
+++ /dev/null
@@ -1,180 +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.mailbox.cassandra.mail;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.assertThatThrownBy;
-
-import java.nio.charset.StandardCharsets;
-
-import org.apache.james.backends.cassandra.CassandraCluster;
-import org.apache.james.backends.cassandra.DockerCassandraRule;
-import org.apache.james.backends.cassandra.init.CassandraModuleComposite;
-import org.apache.james.mailbox.cassandra.ids.BlobId;
-import org.apache.james.mailbox.cassandra.modules.CassandraAttachmentModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraBlobModule;
-import org.apache.james.mailbox.exception.AttachmentNotFoundException;
-import org.apache.james.mailbox.model.Attachment;
-import org.apache.james.mailbox.model.AttachmentId;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.ClassRule;
-import org.junit.Test;
-import org.testcontainers.shaded.com.google.common.collect.ImmutableList;
-
-public class CassandraAttachmentFallbackTestTest {
- public static final AttachmentId ATTACHMENT_ID_1 = AttachmentId.from("id1");
- public static final AttachmentId ATTACHMENT_ID_2 = AttachmentId.from("id2");
-
- @ClassRule
- public static DockerCassandraRule cassandraServer = new DockerCassandraRule();
-
- private CassandraCluster cassandra;
-
- private CassandraAttachmentDAOV2 attachmentDAOV2;
- private CassandraAttachmentDAO attachmentDAO;
- private CassandraAttachmentMapper attachmentMapper;
- private CassandraBlobsDAO blobsDAO;
-
- @Before
- public void setUp() throws Exception {
- CassandraModuleComposite compositeModule = new CassandraModuleComposite(
- new CassandraAttachmentModule(),
- new CassandraBlobModule());
-
- cassandra = CassandraCluster.create(
- compositeModule,
- cassandraServer.getIp(),
- cassandraServer.getBindingPort());
-
- attachmentDAOV2 = new CassandraAttachmentDAOV2(cassandra.getConf());
- attachmentDAO = new CassandraAttachmentDAO(cassandra.getConf());
- blobsDAO = new CassandraBlobsDAO(cassandra.getConf());
- attachmentMapper = new CassandraAttachmentMapper(attachmentDAO, attachmentDAOV2, blobsDAO);
- }
-
- @After
- public void tearDown() throws Exception {
- cassandra.close();
- }
-
- @Test
- public void getAttachmentShouldThrowWhenAbsentFromV1AndV2() throws Exception {
- assertThatThrownBy(() -> attachmentMapper.getAttachment(ATTACHMENT_ID_1))
- .isInstanceOf(AttachmentNotFoundException.class);
- }
-
- @Test
- public void getAttachmentsShouldReturnEmptyWhenAbsentFromV1AndV2() throws Exception {
- assertThat(attachmentMapper.getAttachments(ImmutableList.of(ATTACHMENT_ID_1)))
- .isEmpty();
- }
-
- @Test
- public void getAttachmentShouldReturnV2WhenPresentInV1AndV2() throws Exception {
- Attachment attachment = Attachment.builder()
- .attachmentId(ATTACHMENT_ID_1)
- .type("application/json")
- .bytes("{\"property\":`\"value\"}".getBytes(StandardCharsets.UTF_8))
- .build();
- Attachment otherAttachment = Attachment.builder()
- .attachmentId(ATTACHMENT_ID_1)
- .type("application/json")
- .bytes("{\"property\":`\"different\"}".getBytes(StandardCharsets.UTF_8))
- .build();
-
- BlobId blobId = blobsDAO.save(attachment.getBytes()).join();
- attachmentDAOV2.storeAttachment(CassandraAttachmentDAOV2.from(attachment, blobId)).join();
- attachmentDAO.storeAttachment(otherAttachment).join();
-
- assertThat(attachmentMapper.getAttachment(ATTACHMENT_ID_1))
- .isEqualTo(attachment);
- }
-
- @Test
- public void getAttachmentShouldReturnV1WhenV2Absent() throws Exception {
- Attachment attachment = Attachment.builder()
- .attachmentId(ATTACHMENT_ID_1)
- .type("application/json")
- .bytes("{\"property\":`\"value\"}".getBytes(StandardCharsets.UTF_8))
- .build();
-
- attachmentDAO.storeAttachment(attachment).join();
-
- assertThat(attachmentMapper.getAttachment(ATTACHMENT_ID_1))
- .isEqualTo(attachment);
- }
-
- @Test
- public void getAttachmentsShouldReturnV2WhenV2AndV1() throws Exception {
- Attachment attachment = Attachment.builder()
- .attachmentId(ATTACHMENT_ID_1)
- .type("application/json")
- .bytes("{\"property\":`\"value\"}".getBytes(StandardCharsets.UTF_8))
- .build();
- Attachment otherAttachment = Attachment.builder()
- .attachmentId(ATTACHMENT_ID_1)
- .type("application/json")
- .bytes("{\"property\":`\"different\"}".getBytes(StandardCharsets.UTF_8))
- .build();
-
- BlobId blobId = blobsDAO.save(attachment.getBytes()).join();
- attachmentDAOV2.storeAttachment(CassandraAttachmentDAOV2.from(attachment, blobId)).join();
- attachmentDAO.storeAttachment(otherAttachment).join();
-
- assertThat(attachmentMapper.getAttachments(ImmutableList.of(ATTACHMENT_ID_1)))
- .containsExactly(attachment);
- }
-
- @Test
- public void getAttachmentsShouldReturnV1WhenV2Absent() throws Exception {
- Attachment attachment = Attachment.builder()
- .attachmentId(ATTACHMENT_ID_1)
- .type("application/json")
- .bytes("{\"property\":`\"value\"}".getBytes(StandardCharsets.UTF_8))
- .build();
-
- attachmentDAO.storeAttachment(attachment).join();
-
- assertThat(attachmentMapper.getAttachments(ImmutableList.of(ATTACHMENT_ID_1)))
- .containsExactly(attachment);
- }
-
- @Test
- public void getAttachmentsShouldCombineElementsFromV1AndV2() throws Exception {
- Attachment attachment = Attachment.builder()
- .attachmentId(ATTACHMENT_ID_1)
- .type("application/json")
- .bytes("{\"property\":`\"value\"}".getBytes(StandardCharsets.UTF_8))
- .build();
- Attachment otherAttachment = Attachment.builder()
- .attachmentId(ATTACHMENT_ID_2)
- .type("application/json")
- .bytes("{\"property\":`\"different\"}".getBytes(StandardCharsets.UTF_8))
- .build();
-
- BlobId blobId = blobsDAO.save(attachment.getBytes()).join();
- attachmentDAOV2.storeAttachment(CassandraAttachmentDAOV2.from(attachment, blobId)).join();
- attachmentDAO.storeAttachment(otherAttachment).join();
-
- assertThat(attachmentMapper.getAttachments(ImmutableList.of(ATTACHMENT_ID_1, ATTACHMENT_ID_2)))
- .containsExactly(attachment, otherAttachment);
- }
-}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org