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 bt...@apache.org on 2020/04/22 02:31:59 UTC
[james-project] 19/37: JAMES-2997 Renable AttachmentMapperTest
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 aad93ebb28fd0f53f6e4e25b5911f4abf3b50790
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Fri Jan 17 17:03:47 2020 +0700
JAMES-2997 Renable AttachmentMapperTest
---
.../mail/CassandraAttachmentMapperTest.java | 3 -
.../inmemory/mail/MemoryAttachmentMapperTest.java | 3 -
.../store/mail/model/AttachmentMapperTest.java | 294 +++++++--------------
3 files changed, 100 insertions(+), 200 deletions(-)
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapperTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapperTest.java
index 4edf53e..8935848 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapperTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapperTest.java
@@ -31,7 +31,6 @@ import org.apache.james.mailbox.store.mail.model.AttachmentMapperTest;
import org.junit.jupiter.api.extension.RegisterExtension;
class CassandraAttachmentMapperTest extends AttachmentMapperTest {
-/*
private static final CassandraModule MODULES = CassandraModule.aggregateModules(
CassandraAttachmentModule.MODULE,
CassandraBlobModule.MODULE);
@@ -49,6 +48,4 @@ class CassandraAttachmentMapperTest extends AttachmentMapperTest {
protected MessageId generateMessageId() {
return new CassandraMessageId.Factory().generate();
}
-
- */
}
diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryAttachmentMapperTest.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryAttachmentMapperTest.java
index e3ece02..f65fc8f 100644
--- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryAttachmentMapperTest.java
+++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/MemoryAttachmentMapperTest.java
@@ -25,7 +25,6 @@ import org.apache.james.mailbox.store.mail.AttachmentMapper;
import org.apache.james.mailbox.store.mail.model.AttachmentMapperTest;
class MemoryAttachmentMapperTest extends AttachmentMapperTest {
-/*
@Override
protected AttachmentMapper createAttachmentMapper() {
return new InMemoryAttachmentMapper();
@@ -35,6 +34,4 @@ class MemoryAttachmentMapperTest extends AttachmentMapperTest {
protected MessageId generateMessageId() {
return new InMemoryMessageId.Factory().generate();
}
-
- */
}
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentMapperTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentMapperTest.java
index 93f4c21..9299fe3 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentMapperTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentMapperTest.java
@@ -22,6 +22,7 @@ package org.apache.james.mailbox.store.mail.model;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import java.io.ByteArrayInputStream;
import java.nio.charset.StandardCharsets;
import java.util.Collection;
import java.util.List;
@@ -31,7 +32,9 @@ import org.apache.james.mailbox.exception.AttachmentNotFoundException;
import org.apache.james.mailbox.model.Attachment;
import org.apache.james.mailbox.model.AttachmentId;
import org.apache.james.mailbox.model.MessageId;
+import org.apache.james.mailbox.model.ParsedAttachment;
import org.apache.james.mailbox.store.mail.AttachmentMapper;
+import org.assertj.core.api.SoftAssertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -40,7 +43,6 @@ import com.google.common.collect.ImmutableList;
import reactor.core.publisher.Mono;
public abstract class AttachmentMapperTest {
- /*
private static final AttachmentId UNKNOWN_ATTACHMENT_ID = AttachmentId.from("unknown");
private static final Username OWNER = Username.of("owner");
private static final Username ADDITIONAL_OWNER = Username.of("additionalOwner");
@@ -69,40 +71,43 @@ public abstract class AttachmentMapperTest {
}
@Test
+ void storeAttachmentForOwnerShouldReturnSuppliedInformation() throws Exception {
+ String content = "content";
+ byte[] bytes = "payload".getBytes(StandardCharsets.UTF_8);
+
+ Attachment stored = Mono.from(attachmentMapper.storeAttachmentForOwner(content, new ByteArrayInputStream(bytes), OWNER)).block();
+
+ SoftAssertions.assertSoftly(solftly -> {
+ solftly.assertThat(stored.getSize()).isEqualTo(bytes.length);
+ solftly.assertThat(stored.getType()).isEqualTo(content);
+ });
+ }
+
+ @Test
void getAttachmentShouldReturnTheAttachmentWhenReferenced() throws Exception {
- //Given
- Attachment expected = Attachment.builder()
- .bytes("payload".getBytes(StandardCharsets.UTF_8))
- .type("content")
- .build();
- AttachmentId attachmentId = expected.getAttachmentId();
- Mono.from(attachmentMapper.storeAttachmentForOwner(expected, OWNER)).block();
- //When
- Attachment attachment = attachmentMapper.getAttachment(attachmentId);
- //Then
- assertThat(attachment).isEqualTo(expected);
+ String content = "content";
+ byte[] bytes = "payload".getBytes(StandardCharsets.UTF_8);
+
+ Attachment stored = Mono.from(attachmentMapper.storeAttachmentForOwner(content, new ByteArrayInputStream(bytes), OWNER)).block();
+
+ Attachment attachment = attachmentMapper.getAttachment(stored.getAttachmentId());
+
+ SoftAssertions.assertSoftly(solftly -> {
+ solftly.assertThat(attachment.getAttachmentId()).isEqualTo(stored.getAttachmentId());
+ solftly.assertThat(attachment.getSize()).isEqualTo(bytes.length);
+ solftly.assertThat(attachment.getType()).isEqualTo(content);
+ });
}
@Test
- void getAttachmentShouldReturnTheAttachmentsWhenMultipleStored() throws Exception {
- //Given
- Attachment expected1 = Attachment.builder()
- .bytes("payload1".getBytes(StandardCharsets.UTF_8))
- .type("content1")
- .build();
- Attachment expected2 = Attachment.builder()
- .bytes("payload2".getBytes(StandardCharsets.UTF_8))
- .type("content2")
- .build();
- AttachmentId attachmentId1 = expected1.getAttachmentId();
- AttachmentId attachmentId2 = expected2.getAttachmentId();
- //When
- attachmentMapper.storeAttachmentsForMessage(ImmutableList.of(expected1, expected2), generateMessageId());
- //Then
- Attachment attachment1 = attachmentMapper.getAttachment(attachmentId1);
- Attachment attachment2 = attachmentMapper.getAttachment(attachmentId2);
- assertThat(attachment1).isEqualTo(expected1);
- assertThat(attachment2).isEqualTo(expected2);
+ void loadAttachmentContentShouldReturnStoredContent() throws Exception {
+ String content = "content";
+ byte[] bytes = "payload".getBytes(StandardCharsets.UTF_8);
+
+ Attachment stored = Mono.from(attachmentMapper.storeAttachmentForOwner(content, new ByteArrayInputStream(bytes), OWNER)).block();
+
+ assertThat(attachmentMapper.loadAttachmentContent(stored.getAttachmentId()))
+ .hasSameContentAs(new ByteArrayInputStream(bytes));
}
@Test
@@ -121,24 +126,15 @@ public abstract class AttachmentMapperTest {
@Test
void getAttachmentsShouldReturnTheAttachmentsWhenSome() {
//Given
- Attachment expected = Attachment.builder()
- .bytes("payload".getBytes(StandardCharsets.UTF_8))
- .type("content")
- .build();
- AttachmentId attachmentId = expected.getAttachmentId();
- Mono.from(attachmentMapper.storeAttachmentForOwner(expected, OWNER)).block();
-
- Attachment expected2 = Attachment.builder()
- .bytes("payload2".getBytes(StandardCharsets.UTF_8))
- .type("content")
- .build();
- AttachmentId attachmentId2 = expected2.getAttachmentId();
- Mono.from(attachmentMapper.storeAttachmentForOwner(expected2, OWNER)).block();
-
- //When
- List<Attachment> attachments = attachmentMapper.getAttachments(ImmutableList.of(attachmentId, attachmentId2));
- //Then
- assertThat(attachments).contains(expected, expected2);
+ String content1 = "content";
+ byte[] bytes1 = "payload".getBytes(StandardCharsets.UTF_8);
+ Attachment stored1 = Mono.from(attachmentMapper.storeAttachmentForOwner(content1, new ByteArrayInputStream(bytes1), OWNER)).block();
+ String content2 = "content";
+ byte[] bytes2 = "payload".getBytes(StandardCharsets.UTF_8);
+ Attachment stored2 = Mono.from(attachmentMapper.storeAttachmentForOwner(content2, new ByteArrayInputStream(bytes2), OWNER)).block();
+
+ assertThat(attachmentMapper.getAttachments(ImmutableList.of(stored1.getAttachmentId(), stored2.getAttachmentId())))
+ .contains(stored1, stored2);
}
@Test
@@ -150,172 +146,84 @@ public abstract class AttachmentMapperTest {
@Test
void getOwnerMessageIdsShouldReturnEmptyWhenStoredWithoutMessageId() throws Exception {
- //Given
- Attachment attachment = Attachment.builder()
- .bytes("payload".getBytes(StandardCharsets.UTF_8))
- .type("content")
- .build();
- AttachmentId attachmentId = attachment.getAttachmentId();
- Mono.from(attachmentMapper.storeAttachmentForOwner(attachment, OWNER)).block();
-
- //When
- Collection<MessageId> messageIds = attachmentMapper.getRelatedMessageIds(attachmentId);
- //Then
- assertThat(messageIds).isEmpty();
+ String content = "content";
+ byte[] bytes = "payload".getBytes(StandardCharsets.UTF_8);
+ Attachment stored = Mono.from(attachmentMapper.storeAttachmentForOwner(content, new ByteArrayInputStream(bytes), OWNER)).block();
+
+ assertThat(attachmentMapper.getRelatedMessageIds(stored.getAttachmentId())).isEmpty();
}
@Test
- void getOwnerMessageIdsShouldReturnMessageIdWhenStoredWithMessageId() throws Exception {
- //Given
- Attachment attachment = Attachment.builder()
- .bytes("payload".getBytes(StandardCharsets.UTF_8))
- .type("content")
- .build();
- AttachmentId attachmentId = attachment.getAttachmentId();
+ void getRelatedMessageIdsShouldReturnMessageIdWhenStoredWithMessageId() throws Exception {
MessageId messageId = generateMessageId();
- attachmentMapper.storeAttachmentsForMessage(ImmutableList.of(attachment), messageId);
-
- //When
- Collection<MessageId> messageIds = attachmentMapper.getRelatedMessageIds(attachmentId);
- //Then
- assertThat(messageIds).containsOnly(messageId);
- }
+ AttachmentId attachmentId = attachmentMapper.storeAttachmentsForMessage(ImmutableList.of(ParsedAttachment.builder()
+ .contentType("content")
+ .content(new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)))
+ .noName()
+ .noCid()
+ .inline(false)), messageId)
+ .get(0).getAttachmentId();
- @Test
- void getOwnerMessageIdsShouldReturnTwoMessageIdsWhenStoredTwice() throws Exception {
- //Given
- Attachment attachment = Attachment.builder()
- .bytes("payload".getBytes(StandardCharsets.UTF_8))
- .type("content")
- .build();
- AttachmentId attachmentId = attachment.getAttachmentId();
- MessageId messageId1 = generateMessageId();
- MessageId messageId2 = generateMessageId();
- attachmentMapper.storeAttachmentsForMessage(ImmutableList.of(attachment), messageId1);
- attachmentMapper.storeAttachmentsForMessage(ImmutableList.of(attachment), messageId2);
-
- //When
- Collection<MessageId> messageIds = attachmentMapper.getRelatedMessageIds(attachmentId);
- //Then
- assertThat(messageIds).containsOnly(messageId1, messageId2);
+ assertThat(attachmentMapper.getRelatedMessageIds(attachmentId)).containsOnly(messageId);
}
@Test
void getOwnerMessageIdsShouldReturnOnlyMatchingMessageId() throws Exception {
- //Given
- Attachment attachment = Attachment.builder()
- .bytes("payload".getBytes(StandardCharsets.UTF_8))
- .type("content")
- .build();
- Attachment otherAttachment = Attachment.builder()
- .bytes("something different".getBytes(StandardCharsets.UTF_8))
- .type("content")
- .build();
- AttachmentId attachmentId = attachment.getAttachmentId();
MessageId messageId1 = generateMessageId();
- MessageId messageId2 = generateMessageId();
- attachmentMapper.storeAttachmentsForMessage(ImmutableList.of(attachment), messageId1);
- attachmentMapper.storeAttachmentsForMessage(ImmutableList.of(otherAttachment), messageId2);
-
- //When
- Collection<MessageId> messageIds = attachmentMapper.getRelatedMessageIds(attachmentId);
- //Then
- assertThat(messageIds).containsOnly(messageId1);
- }
-
- @Test
- void getOwnerMessageIdsShouldReturnOnlyOneMessageIdWhenStoredTwice() throws Exception {
- //Given
- Attachment attachment = Attachment.builder()
- .bytes("payload".getBytes(StandardCharsets.UTF_8))
- .type("content")
- .build();
- AttachmentId attachmentId = attachment.getAttachmentId();
- MessageId messageId = generateMessageId();
- attachmentMapper.storeAttachmentsForMessage(ImmutableList.of(attachment), messageId);
- attachmentMapper.storeAttachmentsForMessage(ImmutableList.of(attachment), messageId);
-
- //When
- Collection<MessageId> messageIds = attachmentMapper.getRelatedMessageIds(attachmentId);
- //Then
- assertThat(messageIds).containsOnly(messageId);
- }
+ AttachmentId attachmentId1 = attachmentMapper.storeAttachmentsForMessage(ImmutableList.of(ParsedAttachment.builder()
+ .contentType("content")
+ .content(new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)))
+ .noName()
+ .noCid()
+ .inline(false)), messageId1)
+ .get(0).getAttachmentId();
+ attachmentMapper.storeAttachmentsForMessage(ImmutableList.of(ParsedAttachment.builder()
+ .contentType("content")
+ .content(new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)))
+ .noName()
+ .noCid()
+ .inline(false)), generateMessageId())
+ .get(0).getAttachmentId();
- @Test
- void getOwnerMessageIdsShouldReturnMessageIdForTwoAttachmentsWhenBothStoredAtTheSameTime() throws Exception {
- //Given
- Attachment attachment = Attachment.builder()
- .bytes("payload".getBytes(StandardCharsets.UTF_8))
- .type("content")
- .build();
- Attachment attachment2 = Attachment.builder()
- .bytes("other payload".getBytes(StandardCharsets.UTF_8))
- .type("content")
- .build();
- AttachmentId attachmentId = attachment.getAttachmentId();
- AttachmentId attachmentId2 = attachment2.getAttachmentId();
- MessageId messageId = generateMessageId();
- attachmentMapper.storeAttachmentsForMessage(ImmutableList.of(attachment, attachment2), messageId);
-
- //When
- Collection<MessageId> messageIds = attachmentMapper.getRelatedMessageIds(attachmentId);
- Collection<MessageId> messageIds2 = attachmentMapper.getRelatedMessageIds(attachmentId2);
- //Then
- assertThat(messageIds).isEqualTo(messageIds2);
+ assertThat(attachmentMapper.getRelatedMessageIds(attachmentId1)).containsOnly(messageId1);
}
@Test
void getOwnersShouldBeRetrievedWhenExplicitlySpecified() throws Exception {
- //Given
- Attachment attachment = Attachment.builder()
- .bytes("payload".getBytes(StandardCharsets.UTF_8))
- .type("content")
- .build();
-
- AttachmentId attachmentId = attachment.getAttachmentId();
- Mono.from(attachmentMapper.storeAttachmentForOwner(attachment, OWNER)).block();
-
- //When
- Collection<Username> expectedOwners = ImmutableList.of(OWNER);
- Collection<Username> actualOwners = attachmentMapper.getOwners(attachmentId);
- //Then
- assertThat(actualOwners).containsOnlyElementsOf(expectedOwners);
+ String content = "content";
+ byte[] bytes = "payload".getBytes(StandardCharsets.UTF_8);
+ Attachment stored = Mono.from(attachmentMapper.storeAttachmentForOwner(content, new ByteArrayInputStream(bytes), OWNER)).block();
+
+ Collection<Username> actualOwners = attachmentMapper.getOwners(stored.getAttachmentId());
+
+ assertThat(actualOwners).containsOnly(OWNER);
}
@Test
- void getOwnersShouldReturnEmptyWhenMessageIdReferenced() throws Exception {
- //Given
- Attachment attachment = Attachment.builder()
- .bytes("payload".getBytes(StandardCharsets.UTF_8))
- .type("content")
- .build();
+ void getOwnersShouldNotReturnUnrelatedOwners() throws Exception {
+ String content = "content";
+ byte[] bytes = "payload".getBytes(StandardCharsets.UTF_8);
+ Attachment stored = Mono.from(attachmentMapper.storeAttachmentForOwner(content, new ByteArrayInputStream(bytes), OWNER)).block();
+ String content2 = "content";
+ byte[] bytes2 = "payload".getBytes(StandardCharsets.UTF_8);
+ Attachment stored2 = Mono.from(attachmentMapper.storeAttachmentForOwner(content2, new ByteArrayInputStream(bytes2), ADDITIONAL_OWNER)).block();
- AttachmentId attachmentId = attachment.getAttachmentId();
- attachmentMapper.storeAttachmentsForMessage(ImmutableList.of(attachment), generateMessageId());
+ Collection<Username> actualOwners = attachmentMapper.getOwners(stored.getAttachmentId());
- //When
- Collection<Username> actualOwners = attachmentMapper.getOwners(attachmentId);
- //Then
- assertThat(actualOwners).isEmpty();
+ assertThat(actualOwners).containsOnly(OWNER);
}
@Test
- void getOwnersShouldReturnAllOwners() throws Exception {
- //Given
- Attachment attachment = Attachment.builder()
- .bytes("payload".getBytes(StandardCharsets.UTF_8))
- .type("content")
- .build();
-
- AttachmentId attachmentId = attachment.getAttachmentId();
- Mono.from(attachmentMapper.storeAttachmentForOwner(attachment, OWNER)).block();
- Mono.from(attachmentMapper.storeAttachmentForOwner(attachment, ADDITIONAL_OWNER)).block();
-
- //When
- Collection<Username> expectedOwners = ImmutableList.of(OWNER, ADDITIONAL_OWNER);
- Collection<Username> actualOwners = attachmentMapper.getOwners(attachmentId);
- //Then
- assertThat(actualOwners).containsOnlyElementsOf(expectedOwners);
+ void getOwnersShouldReturnEmptyWhenMessageIdReferenced() throws Exception {
+ AttachmentId attachmentId = attachmentMapper.storeAttachmentsForMessage(ImmutableList.of(ParsedAttachment.builder()
+ .contentType("content")
+ .content(new ByteArrayInputStream("".getBytes(StandardCharsets.UTF_8)))
+ .noName()
+ .noCid()
+ .inline(false)), generateMessageId())
+ .get(0).getAttachmentId();
+
+ assertThat(attachmentMapper.getOwners(attachmentId)).isEmpty();
}
@Test
@@ -324,6 +232,4 @@ public abstract class AttachmentMapperTest {
assertThat(actualOwners).isEmpty();
}
-
- */
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org