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("*"));
}
}