Add unit tests for Config.java.
[cfb.git] / test / net / jaekl / cfb / ConfigTest.java
1 package net.jaekl.cfb;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertTrue;
5
6 import java.io.IOException;
7 import java.util.List;
8
9 import net.jaekl.qd.util.FileIOMock;
10 import net.jaekl.qd.util.FileMock;
11
12 import org.junit.AfterClass;
13 import org.junit.BeforeClass;
14 import org.junit.Test;
15
16 public class ConfigTest {
17         private static final String CHRIS = "chris@localhost";
18         private static final String HUDSON = "hudson@jenkins.org";
19         private static final String MAIL_FROM = "findbugs@jaekl.net";
20         private static final String MAIL_TO = CHRIS + "," + HUDSON;
21         private static final String LOCALHOST = "localhost";
22
23         private static final String SAMPLE1 = 
24                           "; Path (relative or absolute) to the FINDBUGS_HOME, i.e., where FindBugs is installed\n"
25                         + "FindBugsHome=../findbugs-3.0.1/\n"
26                         + "; List (comma-separated) of email addresses to which notifications should be sent\n"
27                         + "notify=" + MAIL_TO + "\n"
28                         + "\n"
29                         + "; Mail server setup\n"
30                         + "mail.smtp.host=" + LOCALHOST + "\n"
31                         + "mail.from=" + MAIL_FROM + "\n";
32
33         @BeforeClass 
34         public static void beforeClass() {
35                 FileIOMock.mock_setInstance();
36         }
37         
38         @AfterClass
39         public static void afterClass() {
40                 FileIOMock.mock_clearInstance();
41         }
42         
43         @Test
44         public void testReadFile() throws IOException {
45                 Config config = new Config();
46                 
47                 FileMock fm = new FileMock("config.properties");
48                 fm.mock_setContent(SAMPLE1);
49                 
50                 config.readFile(fm);
51                 
52                 assertEquals(MAIL_FROM, config.getMailFrom());
53                 assertEquals(LOCALHOST, config.getMailSmtpHost());
54                 
55                 List<String> notify = config.getNotify();
56                 assertTrue(notify.contains(CHRIS));
57                 assertTrue(notify.contains(HUDSON));
58         }
59         
60         @Test
61         public void testReadEmptyFile() throws IOException {
62                 Config config = new Config();
63                 FileMock fm = new FileMock("empty.properties");
64                 fm.mock_setContent("");
65                 
66                 config.readFile(fm);
67                 
68                 assertEquals("findbugs@localhost", config.getMailFrom());
69                 assertEquals("localhost", config.getMailSmtpHost());
70                 assertEquals(0, config.getNotify().size());
71         }
72 }