1 package test.atlassian.mail;
2
3 import com.atlassian.mail.MailFactory;
4 import com.atlassian.mail.server.MailServerManager;
5 import com.sun.mail.util.PropUtil;
6 import org.junit.Test;
7 import org.junit.runner.RunWith;
8 import org.powermock.core.classloader.annotations.PrepareForTest;
9 import org.powermock.modules.junit4.PowerMockRunner;
10 import test.mock.mail.MockMailSendingAlwaysOnSettings;
11
12 import javax.mail.Session;
13
14 import static org.junit.Assert.*;
15
16 @RunWith(PowerMockRunner.class)
17 @PrepareForTest({Session.class, PropUtil.class})
18 public class TestMailFactory
19 {
20 @Test
21 public void shouldClearTheMailServerManagerReferenceWhenRefreshIsCalled() throws Exception
22 {
23 final MailServerManager initialServeManagerInstance = MailFactory.getServerManager();
24 assertNotNull(initialServeManagerInstance);
25
26 MailFactory.refresh();
27
28 final MailServerManager resetServerManagerInstance = MailFactory.getServerManager();
29
30 assertNotSame(initialServeManagerInstance, resetServerManagerInstance);
31 }
32
33 @Test
34 public void shouldRetrieveMailSettingsFromConfigurationFileGivenThatItTheSettingsClassHasBeenSpecifiedInIt()
35 {
36 assertTrue(MockMailSendingAlwaysOnSettings.class.equals(MailFactory.getSettings().getClass()));
37 }
38 }