package org.araqne.logdb.query.parser;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import org.araqne.logdb.QueryParseException;
import org.araqne.logdb.query.command.Limit;
import org.junit.Test;
public class LimitParserTest {
@Test
public void testLimitOnly() {
LimitParser parser = new LimitParser();
Limit limit = (Limit) parser.parse(null, "limit 10");
assertEquals(0, limit.getOffset());
assertEquals(10, limit.getLimit());
}
@Test
public void testOffsetAndLimit() {
LimitParser parser = new LimitParser();
Limit limit = (Limit) parser.parse(null, "limit 5 10");
assertEquals(5, limit.getOffset());
assertEquals(10, limit.getLimit());
}
@Test
public void testError20600(){
LimitParser p = new LimitParser();
String query = "limit ";
try {
p.parse(null, query);
fail();
} catch (QueryParseException e) {
if(e.isDebugMode()){
System.out.println("query " + query);
System.out.println(e.getMessage());
}
assertEquals("20600", e.getType());
assertEquals(6, e.getStartOffset());
assertEquals(6, e.getEndOffset());
}
query = "limit 5 10 15";
try {
p.parse(null, query);
fail();
} catch (QueryParseException e) {
if(e.isDebugMode()){
System.out.println("query " + query);
System.out.println(e.getMessage());
}
assertEquals("20600", e.getType());
assertEquals(6, e.getStartOffset());
assertEquals(12, e.getEndOffset());
}
}
@Test
public void testError20601(){
LimitParser p = new LimitParser();
String query = "limit 1 a";
try {
p.parse(null, query);
fail();
} catch (QueryParseException e) {
if(e.isDebugMode()){
System.out.println("query " + query);
System.out.println(e.getMessage());
}
assertEquals("20601", e.getType());
assertEquals(6, e.getStartOffset());
assertEquals(8, e.getEndOffset());
}
}
}