package dbfit.api; import dbfit.util.DbParameterAccessor; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import java.sql.SQLException; import java.util.HashMap; import static dbfit.util.Direction.*; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; public class DbTableTest { @Rule public ExpectedException expectedEx = ExpectedException.none(); @Test public void exceptionWhenAccessingNonexistentColumn() throws SQLException { DBEnvironment env = mock(DBEnvironment.class); when(env.getAllColumns("mytable")).thenReturn(columns("some_column")); expectedEx.expect(RuntimeException.class); expectedEx.expectMessage("No such database column or parameter: 'nonexistent_column'"); new DbTable(env, "mytable").getDbParameterAccessor("nonexistent_column", INPUT); } private HashMap<String, DbParameterAccessor> columns(String... columnNames) { HashMap<String, DbParameterAccessor> columns = new HashMap<String, DbParameterAccessor>(); for (String columnName : columnNames) { columns.put(columnName, null); } return columns; } }