package org.pegadi.sqlsearch; import org.junit.Test; import org.pegadi.articlesearch.StatusTerm; import static junit.framework.Assert.assertEquals; public class DataSourceBasedLimitResultsUtilTest { @Test public void testMySqlQueryOffsetNoWhere(){ DataSourceBasedLimitResultsUtil dataSourceBasedLimitResultsUtil = new DataSourceBasedLimitResultsUtil("com.mysql.jdbc.Driver"); SearchTerm limitClauseToSearchTerm = dataSourceBasedLimitResultsUtil.createLimitClauseToSearchTerm(new StatusTerm(6), 4, 10); assertEquals("SELECT * FROM Article WHERE Article.refStatus = 6 limit 10,4", limitClauseToSearchTerm.getQuery("*")); } @Test public void testMySqlQueryOffsetWhere(){ DataSourceBasedLimitResultsUtil dataSourceBasedLimitResultsUtil = new DataSourceBasedLimitResultsUtil("com.mysql.jdbc.Driver"); SearchTerm limitClauseToSearchTerm = dataSourceBasedLimitResultsUtil.createLimitClauseToSearchTerm(new StatusTerm(6), 4, 10); assertEquals("SELECT * FROM Article WHERE Article.refStatus = 6 limit 10,4", limitClauseToSearchTerm.getQuery("*")); } @Test public void testDerbyQueryWhere(){ DataSourceBasedLimitResultsUtil dataSourceBasedLimitResultsUtil = new DataSourceBasedLimitResultsUtil("org.apache.derby.jdbc.EmbeddedDriver"); SearchTerm limitClauseToSearchTerm = dataSourceBasedLimitResultsUtil.createLimitClauseToSearchTerm(new StatusTerm(6), 4); assertEquals("SELECT * FROM Article WHERE Article.refStatus = 6 fetch first 4 rows only", limitClauseToSearchTerm.getQuery("*")); } @Test public void testDerbyQueryOffsetNoWhere(){ DataSourceBasedLimitResultsUtil dataSourceBasedLimitResultsUtil = new DataSourceBasedLimitResultsUtil("org.apache.derby.jdbc.EmbeddedDriver"); SearchTerm limitClauseToSearchTerm = dataSourceBasedLimitResultsUtil.createLimitClauseToSearchTerm(new StatusTerm(6), 4, 10); assertEquals("SELECT * FROM Article WHERE Article.refStatus = 6 offset 10 fetch next 4 rows only", limitClauseToSearchTerm.getQuery("*")); } @Test public void testDerbyQueryOffsetWhere(){ DataSourceBasedLimitResultsUtil dataSourceBasedLimitResultsUtil = new DataSourceBasedLimitResultsUtil("org.apache.derby.jdbc.EmbeddedDriver"); SearchTerm limitClauseToSearchTerm = dataSourceBasedLimitResultsUtil.createLimitClauseToSearchTerm(new StatusTerm(6), 4, 10); assertEquals("SELECT * FROM Article WHERE Article.refStatus = 6 offset 10 fetch next 4 rows only", limitClauseToSearchTerm.getQuery("*")); } @Test public void testHsqlQueryWhere(){ DataSourceBasedLimitResultsUtil dataSourceBasedLimitResultsUtil = new DataSourceBasedLimitResultsUtil("org.hsqldb.jdbc.JDBCDriver"); SearchTerm limitClauseToSearchTerm = dataSourceBasedLimitResultsUtil.createLimitClauseToSearchTerm(new StatusTerm(6), 4); assertEquals("SELECT * FROM Article WHERE Article.refStatus = 6 limit 4", limitClauseToSearchTerm.getQuery("*")); } @Test public void testHsqlQueryOffsetNoWhere(){ DataSourceBasedLimitResultsUtil dataSourceBasedLimitResultsUtil = new DataSourceBasedLimitResultsUtil("org.hsqldb.jdbc.JDBCDriver"); SearchTerm limitClauseToSearchTerm = dataSourceBasedLimitResultsUtil.createLimitClauseToSearchTerm(new StatusTerm(6), 4, 10); assertEquals("SELECT * FROM Article WHERE Article.refStatus = 6 limit 4 10", limitClauseToSearchTerm.getQuery("*")); } @Test public void testHsqlQueryOffsetWhere(){ DataSourceBasedLimitResultsUtil dataSourceBasedLimitResultsUtil = new DataSourceBasedLimitResultsUtil("org.hsqldb.jdbc.JDBCDriver"); SearchTerm limitClauseToSearchTerm = dataSourceBasedLimitResultsUtil.createLimitClauseToSearchTerm(new StatusTerm(6), 4, 10); assertEquals("SELECT * FROM Article WHERE Article.refStatus = 6 limit 4 10", limitClauseToSearchTerm.getQuery("*")); } }