1   package test.atlassian.mail.server.util;
2   
3   import alt.javax.mail.internet.MimeMessage;
4   import alt.javax.mail.internet.MimeMessageImpl;
5   import com.atlassian.mail.Email;
6   import com.atlassian.mail.MailException;
7   import com.atlassian.mail.server.impl.util.MessageCreator;
8   import junit.framework.TestCase;
9   import test.mock.mail.MockSession;
10  
11  import javax.mail.MessagingException;
12  import javax.mail.internet.InternetAddress;
13  import java.io.UnsupportedEncodingException;
14  
15  public class TestMessageCreator extends TestCase
16  {
17      MimeMessage message = new MimeMessageImpl(new MockSession() );
18      MessageCreator messageCreator = new MessageCreator();
19  
20      public void testDefaultFromContainsPersonalName() throws MessagingException, UnsupportedEncodingException, MailException
21      {
22          _testFromName("Default Personal Name <from@example.com>", null, "Default Personal Name", "from@example.com");
23      }
24  
25      public void testFromNameOverriddenByDefaultFromName() throws MessagingException, UnsupportedEncodingException, MailException //JRA-5000
26      {
27          _testFromName("Default Personal Name <from@example.com>", "Personal From Name", "Default Personal Name", "from@example.com");
28      }
29  
30      private void _testFromName(String defaultFrom, String fromName, String expectedPersonalName, String expectedFromAddress) throws MessagingException, UnsupportedEncodingException, MailException
31      {
32          Email email = new Email("to@example.com");
33          if (fromName != null)
34              email.setFromName(fromName);
35  
36          messageCreator.updateMimeMessage(email, defaultFrom, "[EMAIL]",message);
37          InternetAddress fromAddress = (InternetAddress) message.getFrom()[0];
38  
39          assertEquals(expectedFromAddress, fromAddress.getAddress());
40          assertEquals(expectedPersonalName, fromAddress.getPersonal());
41      }
42  
43  }