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;
}
}
+ @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();
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;
+ }
}