public void testDeleteAll() { List<T> entityList = new ArrayList<T>(); for (int i = 0; i < 10; i++) { T entity = createEntityWithRandomPk(); entityList.add(entity); } dao.insertInTx(entityList); dao.deleteAll(); assertEquals(0, dao.count()); for (T entity : entityList) { K key = daoAccess.getKey(entity); assertNotNull(key); assertNull(dao.load(key)); } }
public void testRowId() { T entity1 = createEntityWithRandomPk(); T entity2 = createEntityWithRandomPk(); long rowId1 = dao.insert(entity1); long rowId2 = dao.insert(entity2); assertTrue(rowId1 != rowId2); }
public void testSave() { if(!checkKeyIsNullable()) { return; } dao.deleteAll(); T entity = createEntity(null); if (entity != null) { dao.save(entity); dao.save(entity); assertEquals(1, dao.count()); } }
protected T createEntityWithRandomPk() { return createEntity(nextPk()); }
protected void runLoadPkTest(int offset) { K pk = nextPk(); T entity = createEntity(pk); dao.insert(entity); Cursor cursor = queryWithDummyColumnsInFront(offset, "42", pk); try { K pk2 = daoAccess.readKey(cursor, offset); assertEquals(pk, pk2); } finally { cursor.close(); } }
public void testInsertTwice() { K pk = nextPk(); T entity = createEntity(pk); dao.insert(entity); try { dao.insert(entity); fail("Inserting twice should not work"); } catch (SQLException expected) { // OK } }
public void testInsertInTx() { dao.deleteAll(); List<T> list = new ArrayList<T>(); for (int i = 0; i < 20; i++) { list.add(createEntityWithRandomPk()); } dao.insertInTx(list); assertEquals(list.size(), dao.count()); }
public void testDelete() { K pk = nextPk(); dao.deleteByKey(pk); T entity = createEntity(pk); dao.insert(entity); assertNotNull(dao.load(pk)); dao.deleteByKey(pk); assertNull(dao.load(pk)); }
public void testQuery() { dao.insert(createEntityWithRandomPk()); K pkForQuery = nextPk(); dao.insert(createEntity(pkForQuery)); dao.insert(createEntityWithRandomPk()); String where = "WHERE " + dao.getPkColumns()[0] + "=?"; List<T> list = dao.queryRaw(where, pkForQuery.toString()); assertEquals(1, list.size()); assertEquals(pkForQuery, daoAccess.getKey(list.get(0))); }
public void testInsertAndLoad() { K pk = nextPk(); T entity = createEntity(pk); dao.insert(entity); assertEquals(pk, daoAccess.getKey(entity)); T entity2 = dao.load(pk); assertNotNull(entity2); assertEquals(daoAccess.getKey(entity), daoAccess.getKey(entity2)); }
public void testLoadAll() { dao.deleteAll(); List<T> list = new ArrayList<T>(); for (int i = 0; i < 15; i++) { T entity = createEntity(nextPk()); list.add(entity); } dao.insertInTx(list); List<T> loaded = dao.loadAll(); assertEquals(list.size(), loaded.size()); }
protected Cursor queryWithDummyColumnsInFront(int dummyCount, String valueForColumn, K pk) { StringBuilder builder = new StringBuilder("SELECT "); for (int i = 0; i < dummyCount; i++) { builder.append(valueForColumn).append(","); } SqlUtils.appendColumns(builder, "T", dao.getAllColumns()).append(" FROM "); builder.append('"').append(dao.getTablename()).append('"').append(" T"); if (pk != null) { builder.append(" WHERE "); assertEquals(1, dao.getPkColumns().length); builder.append(dao.getPkColumns()[0]).append("="); DatabaseUtils.appendValueToSql(builder, pk); } String select = builder.toString(); Cursor cursor = db.rawQuery(select, null); assertTrue(cursor.moveToFirst()); try { for (int i = 0; i < dummyCount; i++) { assertEquals(valueForColumn, cursor.getString(i)); } if (pk != null) { assertEquals(1, cursor.getCount()); } } catch (RuntimeException ex) { cursor.close(); throw ex; } return cursor; }
/** Provides a collision free PK () not returned before in the current test. */ protected K nextPk() { for (int i = 0; i < 100000; i++) { K pk = createRandomPk(); if (usedPks.add(pk)) { return pk; } } throw new IllegalStateException("Could not find a new PK"); }
protected boolean checkKeyIsNullable() { if (createEntity(null) == null) { DaoLog.d("Test is not available for entities with non-null keys"); return false; } return true; }
public void testReadWithOffset() { K pk = nextPk(); T entity = createEntity(pk); dao.insert(entity); Cursor cursor = queryWithDummyColumnsInFront(5, "42", pk); try { T entity2 = daoAccess.readEntity(cursor, 5); assertEquals(pk, daoAccess.getKey(entity2)); } finally { cursor.close(); } }
public void testCount() { dao.deleteAll(); assertEquals(0, dao.count()); dao.insert(createEntityWithRandomPk()); assertEquals(1, dao.count()); dao.insert(createEntityWithRandomPk()); assertEquals(2, dao.count()); }
public void testDelete() { K pk = nextPk(); dao.deleteByKey(pk); T entity = createEntity(pk); dao.insert(entity); assertNotNull(dao.load(pk)); dao.deleteByKey(pk); assertNull(dao.load(pk)); }
public void testQuery() { dao.insert(createEntityWithRandomPk()); K pkForQuery = nextPk(); dao.insert(createEntity(pkForQuery)); dao.insert(createEntityWithRandomPk()); String where = "WHERE " + dao.getPkColumns()[0] + "=?"; List<T> list = dao.queryRaw(where, pkForQuery.toString()); assertEquals(1, list.size()); assertEquals(pkForQuery, daoAccess.getKey(list.get(0))); }
public void testInsertAndLoad() { K pk = nextPk(); T entity = createEntity(pk); dao.insert(entity); assertEquals(pk, daoAccess.getKey(entity)); T entity2 = dao.load(pk); assertNotNull(entity2); assertEquals(daoAccess.getKey(entity), daoAccess.getKey(entity2)); }
public void testLoadAll() { dao.deleteAll(); List<T> list = new ArrayList<T>(); for (int i = 0; i < 15; i++) { T entity = createEntity(nextPk()); list.add(entity); } dao.insertInTx(list); List<T> loaded = dao.loadAll(); assertEquals(list.size(), loaded.size()); }