Skip to content

Commit 8eeb03b

Browse files
committed
Added junit test for emailBuilder.copying(email) (thereby resolving related FIXME) and fixed a bug where ContentTransferEncoding was not copied
1 parent 8965430 commit 8eeb03b

File tree

3 files changed

+29
-2
lines changed

3 files changed

+29
-2
lines changed

modules/simple-java-mail/src/main/java/org/simplejavamail/email/internal/EmailStartingBuilderImpl.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,6 @@ public EmailPopulatingBuilder copying(@NotNull final EmailPopulatingBuilder emai
196196
*/
197197
@SuppressWarnings({"deprecation" })
198198
@Override
199-
// FIXME junit test this copying method
200199
public EmailPopulatingBuilder copying(@NotNull final Email email) {
201200
EmailPopulatingBuilder builder = new EmailPopulatingBuilderImpl()
202201
.ignoringOverrides(ignoreDefaults)
@@ -226,6 +225,9 @@ public EmailPopulatingBuilder copying(@NotNull final Email email) {
226225
builder.withRecipients(email.getRecipients());
227226
builder.withEmbeddedImages(email.getEmbeddedImages());
228227
builder.withAttachments(email.getAttachments());
228+
if (email.getContentTransferEncoding() != null) {
229+
builder.withContentTransferEncoding(email.getContentTransferEncoding());
230+
}
229231
((InternalEmailPopulatingBuilder) builder).withHeaders(email.getHeaders(), true);
230232
if (email.getSentDate() != null) {
231233
builder.fixingSentDate(email.getSentDate());

modules/simple-java-mail/src/main/java/org/simplejavamail/email/internal/InternalEmail.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public InternalEmail(@NotNull EmailPopulatingBuilder builder) {
2828
* are applied. When sending the email, however, we still need a reference to the original email to be able to update the message id. userProvidedEmail can be set to
2929
* null in some junit tests.
3030
*/
31-
public void setUserProvidedEmail(@NotNull final Email userProvidedEmail) {
31+
public void setUserProvidedEmail(@Nullable final Email userProvidedEmail) {
3232
this.userProvidedEmail = (InternalEmail) userProvidedEmail;
3333
}
3434

modules/simple-java-mail/src/test/java/org/simplejavamail/email/internal/EmailStartingBuilderImplTest.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
package org.simplejavamail.email.internal;
22

3+
import lombok.val;
34
import org.junit.Test;
45
import org.simplejavamail.api.email.CalendarMethod;
56
import org.simplejavamail.api.email.Email;
67
import org.simplejavamail.api.email.EmailAssert;
78
import org.simplejavamail.api.email.EmailPopulatingBuilder;
9+
import org.simplejavamail.api.email.EmailWithDefaultsAndOverridesApplied;
810
import org.simplejavamail.api.email.config.DkimConfig;
911
import org.simplejavamail.converter.EmailConverter;
1012
import org.simplejavamail.email.EmailBuilder;
1113
import testutil.ConfigLoaderTestHelper;
14+
import testutil.EmailHelper;
1215

1316
import java.io.File;
1417
import java.util.Date;
@@ -22,6 +25,28 @@ public class EmailStartingBuilderImplTest {
2225
private static final String RESOURCES_PATH = determineResourceFolder("simple-java-mail") + "/test/resources";
2326
private static final String RESOURCES_TEST_MESSAGES = RESOURCES_PATH + "/test-messages";
2427

28+
@Test
29+
public void testCopying() {
30+
val email1 = EmailHelper.createDummyEmailBuilder("moo", true, false, true, true, true, false, true)
31+
.signWithDomainKey(DkimConfig.builder()
32+
.dkimPrivateKeyData("dummykey")
33+
.dkimSigningDomain("moo.com")
34+
.dkimSelector("selector")
35+
.build())
36+
.buildEmailCompletedWithDefaultsAndOverrides()
37+
.getDelegate();
38+
39+
//noinspection deprecation
40+
((InternalEmail) email1).setUserProvidedEmail(null);
41+
42+
val email2 = EmailBuilder
43+
.ignoringDefaults()
44+
.ignoringOverrides()
45+
.copying(email1).buildEmail();
46+
47+
assertThat(email2).isEqualTo(email1);
48+
}
49+
2550
@Test
2651
public void testCopyingSmimeSignedOutlookMessage() {
2752
final Email emailParsedFromMsg = EmailConverter.outlookMsgToEmail(new File(RESOURCES_TEST_MESSAGES + "/SMIME (signed and clear text).msg"));

0 commit comments

Comments
 (0)