X-Git-Url: http://jaekl.net/gitweb/?p=cfb.git;a=blobdiff_plain;f=test%2Fnet%2Fjaekl%2Fcfb%2FCFBTest.java;h=08d9c393f626e431214536a7001933d6adce3301;hp=de10fe7206675d49aca12856ac166456620958e0;hb=e6448f6cf67e5a5409f24b531c2443b3bed53b52;hpb=a4a577abc3f9b2b1147caafd1cb39fa8c2622cd4 diff --git a/test/net/jaekl/cfb/CFBTest.java b/test/net/jaekl/cfb/CFBTest.java index de10fe7..08d9c39 100644 --- a/test/net/jaekl/cfb/CFBTest.java +++ b/test/net/jaekl/cfb/CFBTest.java @@ -2,6 +2,7 @@ package net.jaekl.cfb; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -9,12 +10,14 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.PrintWriter; +import java.io.StringWriter; import java.nio.charset.Charset; import java.sql.Connection; import java.sql.SQLException; import java.util.Locale; import net.jaekl.cfb.analyze.Analysis; +import net.jaekl.cfb.analyze.FBMsgFileNotFoundException; import net.jaekl.cfb.analyze.MessageMap; import net.jaekl.cfb.db.CfbSchema; import net.jaekl.cfb.db.Column; @@ -25,6 +28,7 @@ import net.jaekl.cfb.db.Table; import net.jaekl.cfb.db.TypeMismatchException; import net.jaekl.cfb.db.driver.DbDriverMock; import net.jaekl.cfb.util.Command; +import net.jaekl.cfb.util.EnvMock; import net.jaekl.cfb.xml.MessagesXmlData; import org.junit.Before; @@ -133,4 +137,67 @@ public class CFBTest { assertEquals(PROJECT_NAME, row.getValue(1)); assertEquals(VERSION, row.getValue(2)); } + + @Test + public void testTrans() + { + Object[][] data = { + { "hello", new Object[] {}, "[hello]" }, + { "hello", new Object[] {"world"}, "[hello][world]"} + }; + + for (Object[] datum : data) { + String key = (String)datum[0]; + Object[] params = (Object[])datum[1]; + String expected = (String)datum[2]; + String actual = m_cfb.trans(key, params); + assertEquals(expected, actual); + } + } + + @Test + public void testReportException_FBMsgFileNotFoundException() throws IOException + { + String[][] data = { + { + "/home/fred/findbugs3.0.1", "messages.xml", + "[cannot.load.fbmsg.file][messages.xml]\n[findbugs.home.is.set.to][FINDBUGS_HOME][/home/fred/findbugs3.0.1]\n" + }, + { + null, "messages.xml", + "[cannot.load.fbmsg.file][messages.xml]\n[findbugs.home.is.not.set][FINDBUGS_HOME]\n" + }, + { + null, null, "[cannot.load.fbmsg.file][null]\n[findbugs.home.is.not.set][FINDBUGS_HOME]\n" + } + }; + EnvMock envMock = EnvMock.mock_putInstance(); + + for (String[] datum : data) + { + String fbHome = datum[0]; + String filename = datum[1]; + String expected = datum[2]; + + try ( + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + ) + { + envMock.mock_putEnv(CFB.FINDBUGS_HOME, fbHome); + FBMsgFileNotFoundException exc = new FBMsgFileNotFoundException(filename); + m_cfb.reportException(pw, exc); + + pw.close(); + sw.close(); + + String actual = sw.toString(); + boolean pass = actual.endsWith(expected); + if (!pass) { + System.out.println("Expected:\n" + expected + "\nActual:\n" + actual); + } + assertTrue(pass); + } + } + } }