private Optional<Blob> getBlobFromMessage(BlobId blobId, MailboxSession mailboxSession) { return retrieveMessageId(blobId) .flatMap(messageId -> loadMessageAsBlob(messageId, mailboxSession)) .map(Throwing.function( blob -> Blob.builder() .id(blobId) .contentType(MESSAGE_RFC822_CONTENT_TYPE) .payload(IOUtils.toByteArray(blob)) .build())); }
@Test public void buildShouldThrowOnMissingPayload() { assertThatThrownBy(() -> Blob.builder() .id(ID) .contentType(CONTENT_TYPE) .build()) .isInstanceOf(IllegalStateException.class); } }
@Test public void buildShouldThrowOnMissingContentType() { assertThatThrownBy(() -> Blob.builder() .id(ID) .payload(PAYLOAD) .build()) .isInstanceOf(IllegalStateException.class); }
@Test public void toBlobShouldGenerateTheAttachmentBlob() { byte[] bytes = "mystream".getBytes(CHARSET); String content = "content"; Attachment attachment = Attachment.builder() .bytes(bytes) .type(content) .build(); Blob expected = Blob.builder() .id(BlobId.fromBytes(bytes)) .contentType(content) .payload(bytes) .build(); assertThat(attachment.toBlob()).isEqualTo(expected); } }
@Test public void buildShouldConstructValidBlob() { assertThat( Blob.builder() .id(ID) .contentType(CONTENT_TYPE) .payload(PAYLOAD) .build()) .isEqualTo( new Blob(ID, PAYLOAD, CONTENT_TYPE)); }
public Blob toBlob() { return Blob.builder() .id(BlobId.fromBytes(bytes)) .payload(bytes) .contentType(type) .build(); }