X-Git-Url: http://jaekl.net/gitweb/?p=squelch.git;a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fjaekl%2Fsquelch%2Fstmt%2FTabularTest.java;h=1dfe4dbcf3d8e1aec893b840a4f79f529fde88db;hp=ddfe3d42533b3935b622060ab6be6b42e0a5e0c7;hb=f176f7537d01967bc909737d23e91074dbbacdb3;hpb=69dede75e1e9c8d15b017e26c419ab90cb60462a diff --git a/src/test/java/net/jaekl/squelch/stmt/TabularTest.java b/src/test/java/net/jaekl/squelch/stmt/TabularTest.java index ddfe3d4..1dfe4db 100644 --- a/src/test/java/net/jaekl/squelch/stmt/TabularTest.java +++ b/src/test/java/net/jaekl/squelch/stmt/TabularTest.java @@ -15,6 +15,7 @@ import javax.sql.rowset.serial.SerialException; import junit.framework.Assert; +import net.jaekl.squelch.db.DbDriver; import net.jaekl.squelch.db.DbDriverMock; import net.jaekl.squelch.sql.Column; import net.jaekl.squelch.sql.Row; @@ -128,6 +129,57 @@ public class TabularTest { } } + @Test + public void test_printTable_withNulls() throws IOException, SQLException + { + DbDriverMock driver = new DbDriverMock(); + + TabularMock tabular = createTableWithNulls(); + driver.set(DbDriver.SUPPRESS_NULLS, true); + + try ( + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + PrintWriter pw = new PrintWriter(new OutputStreamWriter(baos, StandardCharsets.UTF_8)); + ) + { + tabular.printTable(driver, pw, "No rows returned."); + pw.close(); + baos.close(); + String actual = baos.toString(); + assertEquals( "+---------+--------+------------+\n" + + "| EmpId | Value1 | Value3 |\n" + + "+---------+--------+------------+\n" + + "| 12345 | Fred | Flintstone |\n" + + "| 7654321 | Barney | Rubble |\n" + + "+---------+--------+------------+\n" + + "2 row(s) returned.\n", + actual); + } + + tabular = createTableWithNulls(); + driver.set(DbDriver.SUPPRESS_NULLS, false); + + try ( + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + PrintWriter pw = new PrintWriter(new OutputStreamWriter(baos, StandardCharsets.UTF_8)); + ) + { + tabular.printTable(driver, pw, "No rows returned."); + pw.close(); + baos.close(); + String actual = baos.toString(); + assertEquals( "+---------+--------+--------+------------+\n" + + "| EmpId | Value1 | Value2 | Value3 |\n" + + "+---------+--------+--------+------------+\n" + + "| 12345 | Fred | null | Flintstone |\n" + + "| 7654321 | Barney | null | Rubble |\n" + + "+---------+--------+--------+------------+\n" + + "2 row(s) returned.\n", + actual); + } + + } + @Test public void test_repChar() { Tabular tabular = new TabularMock(); @@ -210,4 +262,33 @@ public class TabularTest { return tabular; } + + private TabularMock createTableWithNulls() + { + TabularMock tabular = new TabularMock(); + + Column[] cols = { + new Column("EmpId", Long.class, 10), + new Column("Value1", String.class, 14), + new Column("Value2", String.class, 14), + new Column("Value3", String.class, 14) + }; + tabular.mock_setCols(cols); + + Row row = new Row(cols.length); + row.setValue(1, Long.valueOf(12345)); + row.setValue(2, "Fred"); + row.setValue(3, null); + row.setValue(4, "Flintstone"); + tabular.mock_addRow(row); + + row = new Row(cols.length); + row.setValue(1, Long.valueOf(7654321)); + row.setValue(2, "Barney"); + row.setValue(3, null); + row.setValue(4, "Rubble"); + tabular.mock_addRow(row); + + return tabular; + } }