/* * Copyright (C) 2011-2016 Markus Junginger, greenrobot (http://greenrobot.org) * * This file is part of greenDAO Generator. * * greenDAO Generator is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * greenDAO Generator is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with greenDAO Generator. If not, see <http://www.gnu.org/licenses/>. */ package org.greenrobot.greendao.daotest.query; import java.util.ArrayList; import java.util.List; import org.greenrobot.greendao.query.LazyList; import org.greenrobot.greendao.query.Query; import org.greenrobot.greendao.query.QueryBuilder; import org.greenrobot.greendao.daotest.TestEntity; import org.greenrobot.greendao.daotest.TestEntityDao.Properties; import org.greenrobot.greendao.daotest.entity.TestEntityTestBase; public class RawQueryTest extends TestEntityTestBase { @Override protected void setUp() throws Exception { super.setUp(); QueryBuilder.LOG_SQL = true; QueryBuilder.LOG_VALUES = true; } public void testRawQueryEmptySql() { insert(3); Query<TestEntity> query = dao.queryRawCreate(""); List<TestEntity> result = query.list(); assertEquals(3, result.size()); } public void testRawQueryEqualsString() { ArrayList<TestEntity> inserted = insert(3); String value = getSimpleString(1); String sql = "WHERE " + Properties.SimpleString.columnName + "=?"; List<TestEntity> result = dao.queryRawCreate(sql, value).list(); assertEquals(1, result.size()); TestEntity resultEntity = result.get(0); assertEquals(value, resultEntity.getSimpleString()); assertEquals(inserted.get(1).getId(), resultEntity.getId()); } public void testRawQueryCreate_setParameterInQuery() { insert(3); String value = getSimpleString(2); String sql = "WHERE " + Properties.SimpleString.columnName + "=?"; Query<TestEntity> query = dao.queryRawCreate(sql, getSimpleString(1)); query.list(); query.setParameter(0, value); List<TestEntity> result = query.list(); assertEquals(1, result.size()); assertEquals(value, result.get(0).getSimpleString()); } public void testRawQueryLazyList() { ArrayList<TestEntity> list = insert(2); LazyList<TestEntity> listLazy = dao.queryRawCreate("").listLazy(); assertEquals(list.size(), listLazy.size()); assertNull(listLazy.peek(0)); assertNull(listLazy.peek(1)); assertNotNull(listLazy.get(1)); assertNull(listLazy.peek(0)); assertNotNull(listLazy.peek(1)); assertNotNull(listLazy.get(0)); assertNotNull(listLazy.peek(0)); assertNotNull(listLazy.peek(1)); } }