import org.junit.Test;
import play.modules.cream.annotations.JcrNoSession;
import play.modules.cream.ocm.JcrQuery;
import play.test.UnitTest;
@JcrNoSession
public class QueryBuilderTest extends UnitTest {
@Test
public void testQuery() {
JcrQuery q = JcrQuery
.builder(
"select * from [nt:unstructured] where ISDESCENDANTNODE(${path}) AND (email = ${email} AND size = ${size}) OR (email != ${email})")
.setString("path", "/path").setString("email", "test@email.com").setLong("size", 10).build();
assertEquals(
"select * from [nt:unstructured] where ISDESCENDANTNODE('/path') AND (email = 'test@email.com' AND size = 10) OR (email != 'test@email.com')",
q.getQuery());
}
@Test
public void testBadChars() {
JcrQuery q = JcrQuery.builder("select * from test where name = ${name}").setString("name", "' inject or ...")
.build();
assertEquals("select * from test where name = '\\'' inject or ...'", q.getQuery());
}
}