### Question:
JDBCSink extends NamedSink { static String valueList(Row row) { if (row == null || row.isEmpty()) { return null; } return (String) row.getColumnNames(). stream(). map(e -> asInsertSQL(row, e)). reduce((t, u) -> t + "," + u). get(); } JDBCSink();   JDBCSink(UnmanagedConnectionProvider connection, String table); @Override void init(); @Override void processRow(Row columns); @Override void close(); @Override int hashCode(); @Override boolean equals(Object obj);  }### Answer:
@Test public void stringValueList() { String expected = "'java','tengah'"; String columns = JDBCSink.valueList(getEntries()); assertThat(columns, is(expected)); }
@Test public void emptyValueList() { String columns = JDBCSink.valueList(new Row()); assertNull(columns); }