package marubinotto.h2.fulltext; import static marubinotto.util.CollectionUtils.list; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.sql.Types; import org.junit.Before; import org.junit.Test; public class IndexedTableInfoTest extends TestWithDataSource { @Before public void given() throws Exception { super.given(); FullTextSearch.init(getConnection()); createTestTable(); } @Test public void indexAllColumns() throws Exception { insertIndex("PUBLIC", "TEST", null); IndexedTableInfo result = IndexedTableInfo.newInstance(getConnection(), "PUBLIC", "TEST"); assertTableInfoIsTest(result); assertEquals(list(0, 1, 2), result.indexColumns); } @Test public void indexOneColumn() throws Exception { insertIndex("PUBLIC", "TEST", "COLUMN1"); IndexedTableInfo result = IndexedTableInfo.newInstance(getConnection(), "PUBLIC", "TEST"); assertTableInfoIsTest(result); assertEquals(list(1), result.indexColumns); } @Test public void indexTwoColumns() throws Exception { insertIndex("PUBLIC", "TEST", "COLUMN1,COLUMN2"); IndexedTableInfo result = IndexedTableInfo.newInstance(getConnection(), "PUBLIC", "TEST"); assertTableInfoIsTest(result); assertEquals(list(1, 2), result.indexColumns); } @Test public void haveIndexedColumnsChanged() throws Exception { IndexedTableInfo info = new IndexedTableInfo(); info.indexColumns = list(1); Object[] oldRow = new Object[]{1, "foo", "bar"}; assertFalse(info.haveIndexedColumnsChanged(oldRow, new Object[]{1, "foo", "bar"})); assertTrue(info.haveIndexedColumnsChanged(oldRow, new Object[]{1, "changed", "bar"})); assertFalse(info.haveIndexedColumnsChanged(oldRow, new Object[]{1, "foo", "changed"})); } @Test public void createConditionSqlWithKeys() throws Exception { IndexedTableInfo object = new IndexedTableInfo(); object.columns = list("ID", "NAME"); object.columnTypes = list(Types.INTEGER, Types.VARCHAR); object.keys = list(0); String result = object.createConditionSqlWithKeys(new Object[]{1, "Akane"}); assertEquals("\"ID\"=1", result); } }