### Question:
Select implements Iterable { public Select<T> where(String whereClause) { this.whereClause = whereClause; return this; } Select(Class<T> record); static Select<T> from(Class<T> record); Select<T> orderBy(String prop); Select<T> groupBy(String prop); Select<T> limit(String limit); Select<T> offset(String offset); Select<T> where(String whereClause); Select<T> where(Condition... condition); Select<T> whereOr(Condition... args); Select<T> and(Condition... args); Select<T> or(Condition... args); Select<T> where(String whereClause, String[] args); Cursor getCursor(); List<T> list(); long count(); T first(); @Override Iterator<T> iterator();  }### Answer:
@Test public void testWhere(){ Select where = Select.from(TestRecord.class).where(Condition.prop("test").eq("satya")); assertEquals("(test = ? )", where.getWhereCond()); assertEquals(1, where.getArgs().length); assertEquals("satya", where.getArgs()[0]); where = Select.from(TestRecord.class).where(Condition.prop("test").eq("satya"), Condition.prop("prop").eq(2)); assertEquals("(test = ? AND prop = ? )", where.getWhereCond()); assertEquals(2, where.getArgs().length); assertEquals("satya", where.getArgs()[0]); assertEquals("2", where.getArgs()[1]); }