Search in sources :

Example 1 with InStatement

use of com.orm.androrm.statement.InStatement in project androrm by androrm.

the class FilterTest method testIn.

public void testIn() {
    Filter set = new Filter();
    List<Integer> values = new ArrayList<Integer>();
    values.add(3);
    values.add(5);
    set.in("product__id", values);
    List<Rule> filters = set.getRules();
    Rule filter = filters.get(0);
    Statement s = filter.getStatement();
    Set<String> keys = s.getKeys();
    assertEquals("product__id", filter.getKey());
    assertTrue(keys.contains("id"));
    assertTrue(s instanceof InStatement);
    assertEquals("id IN ('3','5')", s.toString());
    List<Product> products = new ArrayList<Product>();
    Product p1 = new Product();
    p1.setName("test 1");
    p1.save(getContext());
    Product p2 = new Product();
    p2.setName("test 2");
    p2.save(getContext());
    products.add(p1);
    products.add(p2);
    set = new Filter();
    set.in("supplier__product", products);
    filters = set.getRules();
    filter = filters.get(0);
    s = filter.getStatement();
    keys = s.getKeys();
    assertEquals("supplier__product", filter.getKey());
    assertTrue(keys.contains("product"));
    assertTrue(s instanceof InStatement);
    assertEquals("product IN ('" + p1.getId() + "','" + p2.getId() + "')", s.toString());
}
Also used : InStatement(com.orm.androrm.statement.InStatement) Filter(com.orm.androrm.Filter) InStatement(com.orm.androrm.statement.InStatement) Statement(com.orm.androrm.statement.Statement) LikeStatement(com.orm.androrm.statement.LikeStatement) ArrayList(java.util.ArrayList) Product(com.orm.androrm.impl.Product) Rule(com.orm.androrm.Rule)

Example 2 with InStatement

use of com.orm.androrm.statement.InStatement in project androrm by androrm.

the class QuerySet method containsAll.

/**
	 * See {@link QuerySet#contains}
	 * @param values
	 * @return
	 */
public boolean containsAll(Collection<T> values) {
    if (mQuery != null) {
        List<Object> ids = new ArrayList<Object>();
        for (T item : values) {
            ids.add(item.getId());
        }
        Where where = new Where();
        where.setStatement(new InStatement(Model.PK, ids));
        SelectStatement query = new SelectStatement();
        query.from(mQuery).where(where);
        return getCount(query) == values.size();
    }
    return false;
}
Also used : SelectStatement(com.orm.androrm.statement.SelectStatement) InStatement(com.orm.androrm.statement.InStatement) ArrayList(java.util.ArrayList)

Example 3 with InStatement

use of com.orm.androrm.statement.InStatement in project androrm by androrm.

the class InStatementTest method testGetKeys.

public void testGetKeys() {
    List<Object> values = new ArrayList<Object>();
    values.add(1);
    InStatement in = new InStatement("foo", values);
    Set<String> keys = in.getKeys();
    assertEquals(1, keys.size());
    assertTrue(keys.contains("foo"));
}
Also used : InStatement(com.orm.androrm.statement.InStatement) ArrayList(java.util.ArrayList)

Example 4 with InStatement

use of com.orm.androrm.statement.InStatement in project androrm by androrm.

the class InStatementTest method testPlainStatement.

public void testPlainStatement() {
    List<Object> values = new ArrayList<Object>();
    values.add(1);
    InStatement in = new InStatement("foo", values);
    assertEquals("foo IN ('1')", in.toString());
    values.add(2);
    values.add(3);
    in = new InStatement("foo", values);
    assertEquals("foo IN ('1','2','3')", in.toString());
}
Also used : InStatement(com.orm.androrm.statement.InStatement) ArrayList(java.util.ArrayList)

Aggregations

InStatement (com.orm.androrm.statement.InStatement)4 ArrayList (java.util.ArrayList)4 Filter (com.orm.androrm.Filter)1 Rule (com.orm.androrm.Rule)1 Product (com.orm.androrm.impl.Product)1 LikeStatement (com.orm.androrm.statement.LikeStatement)1 SelectStatement (com.orm.androrm.statement.SelectStatement)1 Statement (com.orm.androrm.statement.Statement)1