X-Git-Url: http://jaekl.net/gitweb/?p=squelch.git;a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fjaekl%2Fsquelch%2Fstmt%2FTabularTest.java;fp=src%2Ftest%2Fjava%2Fnet%2Fjaekl%2Fsquelch%2Fstmt%2FTabularTest.java;h=f6749f29293218d6c93464f438ea371fdb2c9ebd;hp=6b5462dac3f00320f1a4b0b4cbdeebc0344fffbb;hb=dde7f6828b7e2fc479d2285754e4a150be7958a5;hpb=dad47827334a0732966cc197dfe1e3ac303fb694 diff --git a/src/test/java/net/jaekl/squelch/stmt/TabularTest.java b/src/test/java/net/jaekl/squelch/stmt/TabularTest.java index 6b5462d..f6749f2 100644 --- a/src/test/java/net/jaekl/squelch/stmt/TabularTest.java +++ b/src/test/java/net/jaekl/squelch/stmt/TabularTest.java @@ -1,7 +1,12 @@ package net.jaekl.squelch.stmt; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.io.PrintWriter; +import java.nio.charset.StandardCharsets; import java.sql.SQLException; import java.sql.Types; @@ -11,18 +16,17 @@ import net.jaekl.squelch.sql.Row; import org.junit.Test; public class TabularTest { - private static class TabularMock extends Tabular { - @Override - Column[] getCols() throws SQLException { - return null; - } - - @Override - Row getNext() { - return null; - } + @Test + public void test_centrePad() { + Tabular tabular = new TabularMock(); + + assertEquals("Vestibule", tabular.centrePad("Vestibule", 2)); + assertEquals(" Fred ", tabular.centrePad("Fred", 8)); + assertEquals("NULL", tabular.centrePad(null, 0)); + assertEquals(" NULL ", tabular.centrePad(null, 8)); + assertEquals(" Wilma ", tabular.centrePad("Wilma", 12)); } - + @Test public void test_classForSqlType() { Object[][] data = { @@ -70,7 +74,53 @@ public class TabularTest { assertEquals(expected, actual); } } + + @Test + public void test_printCsv_empTable() throws IOException, SQLException + { + TabularMock tabular = createEmpTable(); + + try ( + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + PrintWriter pw = new PrintWriter(new OutputStreamWriter(baos, StandardCharsets.UTF_8)); + ) + { + tabular.printCsv(pw); + pw.close(); + baos.close(); + String actual = baos.toString(); + assertEquals( "EmpId,FirstName,LastName\n" + + "12345,Fred,Flintstone\n" + + "7654321,Barney,Rubble\n", + actual); + } + } + @Test + public void test_printTable_empTable() throws IOException, SQLException + { + TabularMock tabular = createEmpTable(); + + try ( + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + PrintWriter pw = new PrintWriter(new OutputStreamWriter(baos, StandardCharsets.UTF_8)); + ) + { + tabular.printTable(pw); + pw.close(); + baos.close(); + String actual = baos.toString(); + assertEquals( "+-------+---------+----------+\n" + + "| EmpId |FirstName| LastName |\n" + + "+-------+---------+----------+\n" + + "|12345 |Fred |Flintstone|\n" + + "|7654321|Barney |Rubble |\n" + + "+-------+---------+----------+\n" + + "2 row(s) returned.\n", + actual); + } + } + @Test public void test_repChar() { Tabular tabular = new TabularMock(); @@ -80,15 +130,30 @@ public class TabularTest { assertEquals("###", tabular.repChar('#', 3)); assertEquals("------", tabular.repChar('-', 6)); } - - @Test - public void test_centrePad() { - Tabular tabular = new TabularMock(); + + private TabularMock createEmpTable() + { + TabularMock tabular = new TabularMock(); - assertEquals("Vestibule", tabular.centrePad("Vestibule", 2)); - assertEquals(" Fred ", tabular.centrePad("Fred", 8)); - assertEquals("NULL", tabular.centrePad(null, 0)); - assertEquals(" NULL ", tabular.centrePad(null, 8)); - assertEquals(" Wilma ", tabular.centrePad("Wilma", 12)); + Column[] cols = { + new Column("EmpId", Long.class, 10), + new Column("FirstName", String.class, 14), + new Column("LastName", 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, "Flintstone"); + tabular.mock_addRow(row); + + row = new Row(cols.length); + row.setValue(1, Long.valueOf(7654321)); + row.setValue(2, "Barney"); + row.setValue(3, "Rubble"); + tabular.mock_addRow(row); + + return tabular; } }