X-Git-Url: http://jaekl.net/gitweb/?a=blobdiff_plain;f=test%2Fnet%2Fjaekl%2Fcfb%2FConfigTest.java;h=11bd5b2defe375fc3f887cc5f75a68515efa2e43;hb=a62d41ddf11fd3769f6894b4385314f536360a89;hp=3fafe87bf0c668cefae6a5db021bd958ee93ef0e;hpb=f829b23412e21d657d63a81897794e833ef162ab;p=cfb.git diff --git a/test/net/jaekl/cfb/ConfigTest.java b/test/net/jaekl/cfb/ConfigTest.java index 3fafe87..11bd5b2 100644 --- a/test/net/jaekl/cfb/ConfigTest.java +++ b/test/net/jaekl/cfb/ConfigTest.java @@ -1,24 +1,90 @@ package net.jaekl.cfb; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import java.io.IOException; +import java.util.List; + +import net.jaekl.qd.util.FileIOMock; +import net.jaekl.qd.util.FileMock; + +import org.junit.AfterClass; +import org.junit.BeforeClass; import org.junit.Test; public class ConfigTest { + private static final String CHRIS = "chris@localhost"; + private static final String DB_HOST = "dbserver"; + private static final int DB_PORT = 1234; + private static final String DB_NAME = "Fred"; + private static final String DB_PASS = "Pebbles"; + private static final String DB_USER = "Wilma"; + private static final String HUDSON = "hudson@jenkins.org"; + private static final String MAIL_FROM = "findbugs@jaekl.net"; + private static final String MAIL_TO = CHRIS + "," + HUDSON; + private static final String LOCALHOST = "localhost"; private static final String SAMPLE1 = "; Path (relative or absolute) to the FINDBUGS_HOME, i.e., where FindBugs is installed\n" + "FindBugsHome=../findbugs-3.0.1/\n" + "; List (comma-separated) of email addresses to which notifications should be sent\n" - + "notify=chris@localhost\n" + + "notify=" + MAIL_TO + "\n" + "\n" + "; Mail server setup\n" - + "mail.smtp.host=localhost\n" - + "mail.from=findbugs@localhost\n"; + + "mail.smtp.host=" + LOCALHOST + "\n" + + "mail.from=" + MAIL_FROM + "\n" + + "\n" + + "; Database\n" + + "db.host=" + DB_HOST + "\n" + + "db.port=" + DB_PORT + "\n" + + "db.name=" + DB_NAME + "\n" + + "db.user=" + DB_USER + "\n" + + "db.pass=" + DB_PASS + "\n"; + @BeforeClass + public static void beforeClass() { + FileIOMock.mock_setInstance(); + } + + @AfterClass + public static void afterClass() { + FileIOMock.mock_clearInstance(); + } + @Test - public void testReadFile() { - // TODO: wrap file access so that we can test this + public void testReadFile() throws IOException { + Config config = new Config(); + + FileMock fm = new FileMock("config.properties"); + fm.mock_setContent(SAMPLE1); + + config.readFile(fm); + + assertEquals(MAIL_FROM, config.getMailFrom()); + assertEquals(LOCALHOST, config.getMailSmtpHost()); + + List notify = config.getNotify(); + assertTrue(notify.contains(CHRIS)); + assertTrue(notify.contains(HUDSON)); + + assertEquals(DB_HOST, config.getDbHost()); + assertEquals(DB_PORT, config.getDbPort()); + assertEquals(DB_NAME, config.getDbName()); + assertEquals(DB_USER, config.getDbUser()); + assertEquals(DB_PASS, config.getDbPass()); + } + + @Test + public void testReadEmptyFile() throws IOException { + Config config = new Config(); + FileMock fm = new FileMock("empty.properties"); + fm.mock_setContent(""); + + config.readFile(fm); + + assertEquals("findbugs@localhost", config.getMailFrom()); + assertEquals("localhost", config.getMailSmtpHost()); + assertEquals(0, config.getNotify().size()); } - }