Search in sources :

Example 16 with Query

use of org.apache.cayenne.query.Query in project cayenne by apache.

the class DataNodeQueriesIT method testPerfomQueriesSelectingSQLTemplate2.

@Test
public void testPerfomQueriesSelectingSQLTemplate2() throws Exception {
    createFourArtists();
    String template = "SELECT * FROM ARTIST ORDER BY ARTIST_ID";
    SQLTemplate query = new SQLTemplate(Object.class, template);
    sqlTemplateCustomizer.updateSQLTemplate(query);
    MockOperationObserver observer = new MockOperationObserver();
    node.performQueries(Collections.singletonList((Query) query), observer);
    List<DataRow> data = observer.rowsForQuery(query);
    assertEquals(4, data.size());
    DataRow row = data.get(2);
    assertEquals(3, row.size());
    Number id = (Number) row.get("ARTIST_ID");
    assertNotNull(id);
    assertEquals(201, id.intValue());
}
Also used : SQLTemplate(org.apache.cayenne.query.SQLTemplate) Query(org.apache.cayenne.query.Query) DataRow(org.apache.cayenne.DataRow) Test(org.junit.Test)

Example 17 with Query

use of org.apache.cayenne.query.Query in project cayenne by apache.

the class DataNodeQueriesIT method testPerfomQueriesSQLTemplate.

@Test
public void testPerfomQueriesSQLTemplate() throws Exception {
    String template = "INSERT INTO ARTIST (ARTIST_ID, ARTIST_NAME, DATE_OF_BIRTH) " + "VALUES (#bind($id), #bind($name), #bind($dob 'DATE'))";
    SQLTemplate query = new SQLTemplate(Object.class, template);
    Map<String, Object> bindings = new HashMap<>();
    bindings.put("id", 1l);
    bindings.put("name", "a1");
    bindings.put("dob", new Date(System.currentTimeMillis()));
    query.setParameters(bindings);
    MockOperationObserver observer = new MockOperationObserver();
    node.performQueries(Collections.singletonList((Query) query), observer);
    assertNotNull(observer.countsForQuery(query));
    assertEquals(1, observer.countsForQuery(query)[0]);
    // check the data
    assertEquals(1, tArtist.getRowCount());
    assertEquals(1l, tArtist.getLong("ARTIST_ID"));
    assertEquals("a1", tArtist.getString("ARTIST_NAME").trim());
}
Also used : SQLTemplate(org.apache.cayenne.query.SQLTemplate) Query(org.apache.cayenne.query.Query) HashMap(java.util.HashMap) Date(java.sql.Date) Test(org.junit.Test)

Example 18 with Query

use of org.apache.cayenne.query.Query in project cayenne by apache.

the class DataNodeQueriesIT method testRunMultiLineSQLTemplateUNIX.

@Test
public void testRunMultiLineSQLTemplateUNIX() throws Exception {
    String templateString = "INSERT INTO ARTIST (ARTIST_ID, ARTIST_NAME)" + "\n" + "VALUES (1, 'A')";
    Query template = new SQLTemplate(Object.class, templateString);
    node.performQueries(Collections.singletonList(template), new MockOperationObserver());
}
Also used : SQLTemplate(org.apache.cayenne.query.SQLTemplate) Query(org.apache.cayenne.query.Query) Test(org.junit.Test)

Example 19 with Query

use of org.apache.cayenne.query.Query in project cayenne by apache.

the class DataContextDelegateIT method testWillPerformQueryBlocked.

@Test
public void testWillPerformQueryBlocked() throws Exception {
    final List<Query> queriesPerformed = new ArrayList<Query>(1);
    DataContextDelegate delegate = new MockDataContextDelegate() {

        @Override
        public Query willPerformQuery(DataContext context, Query query) {
            queriesPerformed.add(query);
            return null;
        }
    };
    context.setDelegate(delegate);
    SelectQuery query = new SelectQuery(Gallery.class);
    List<?> results = context.performQuery(query);
    assertTrue("Delegate is not notified of a query being run.", queriesPerformed.contains(query));
    assertEquals(1, queriesPerformed.size());
    assertNotNull(results);
    // blocked
    assertEquals("Delegate couldn't block the query.", 0, results.size());
}
Also used : SelectQuery(org.apache.cayenne.query.SelectQuery) SelectQuery(org.apache.cayenne.query.SelectQuery) Query(org.apache.cayenne.query.Query) MockQuery(org.apache.cayenne.query.MockQuery) ArrayList(java.util.ArrayList) Test(org.junit.Test)

Example 20 with Query

use of org.apache.cayenne.query.Query in project cayenne by apache.

the class DataContextDelegateIT method testWillPerformGenericQuery.

@Test
public void testWillPerformGenericQuery() throws Exception {
    final List<Query> queriesPerformed = new ArrayList<Query>(1);
    DataContextDelegate delegate = new MockDataContextDelegate() {

        @Override
        public Query willPerformGenericQuery(DataContext context, Query query) {
            queriesPerformed.add(query);
            return query;
        }
    };
    context.setDelegate(delegate);
    // test that delegate is consulted before select
    MockQuery query = new MockQuery();
    context.performGenericQuery(query);
    assertTrue("Delegate is not notified of a query being run.", queriesPerformed.contains(query));
    assertEquals(1, queriesPerformed.size());
    assertTrue("Delegate unexpectedly blocked the query.", query.isRouteCalled());
}
Also used : SelectQuery(org.apache.cayenne.query.SelectQuery) Query(org.apache.cayenne.query.Query) MockQuery(org.apache.cayenne.query.MockQuery) ArrayList(java.util.ArrayList) MockQuery(org.apache.cayenne.query.MockQuery) Test(org.junit.Test)

Aggregations

Query (org.apache.cayenne.query.Query)43 Test (org.junit.Test)25 SelectQuery (org.apache.cayenne.query.SelectQuery)15 SQLTemplate (org.apache.cayenne.query.SQLTemplate)14 ArrayList (java.util.ArrayList)10 CayenneRuntimeException (org.apache.cayenne.CayenneRuntimeException)8 DataRow (org.apache.cayenne.DataRow)6 QueryResponse (org.apache.cayenne.QueryResponse)6 MockQuery (org.apache.cayenne.query.MockQuery)6 List (java.util.List)5 ObjectIdQuery (org.apache.cayenne.query.ObjectIdQuery)5 Collection (java.util.Collection)4 HashMap (java.util.HashMap)4 ObjectContext (org.apache.cayenne.ObjectContext)4 ObjectId (org.apache.cayenne.ObjectId)4 Persistent (org.apache.cayenne.Persistent)4 MockOperationObserver (org.apache.cayenne.access.MockOperationObserver)4 Map (java.util.Map)3 DbEntity (org.apache.cayenne.map.DbEntity)3 EntityResolver (org.apache.cayenne.map.EntityResolver)3