AbstractSQLBuilder { public String buildInsertSQL(final DataRecord dataRecord) { String sqlCacheKey = INSERT_SQL_CACHE_KEY_PREFIX + dataRecord.getTableName(); if (!sqlCacheMap.containsKey(sqlCacheKey)) { sqlCacheMap.put(sqlCacheKey, buildInsertSQLInternal(dataRecord.getTableName(), dataRecord.getColumns())); } return sqlCacheMap.get(sqlCacheKey); }  String buildInsertSQL(final DataRecord dataRecord); String buildUpdateSQL(final DataRecord dataRecord, final Collection<Column> conditionColumns); String buildDeleteSQL(final DataRecord dataRecord, final Collection<Column> conditionColumns); String buildCountSQL(final String tableName);  }
@Test public void assertBuildInsertSQL() { String actual = sqlBuilder.buildInsertSQL(mockDataRecord("t1")); assertThat(actual, is("INSERT INTO `t1`(`id`,`sc`,`c1`,`c2`,`c3`) VALUES(?,?,?,?,?)")); }