package uk.co.acuminous.julez.jdbc; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; import java.util.Arrays; import org.junit.Test; public class DefaultEventSqlTest { @Test public void returnsSelectSql() { assertEquals("SELECT * FROM event ORDER BY timestamp ASC, id ASC", new DefaultEventSql("id").getSelectStatement()); } @Test public void returnsInsertSql() { assertEquals("INSERT INTO event (foo) VALUES (?)", new DefaultEventSql("foo").getInsertStatement()); assertEquals("INSERT INTO event (id,timestamp,type) VALUES (?,?,?)", new DefaultEventSql("id", "timestamp", "type").getInsertStatement()); } @Test public void errorsWhenNoColumnNamesAreSpecifie() { try { new DefaultEventSql(); fail("Expected IllegalArgumentException"); } catch(IllegalArgumentException e) { assertEquals("At least one column name is required", e.getMessage()); } } @Test public void returnsColumnNames() { String[] columnNames = new String[] {"id"}; DefaultEventSql sql = new DefaultEventSql(columnNames); assertEquals(Arrays.asList(columnNames), sql.getColumnNames()); } }