@Test
public void testProcessQuery() throws VantiqSQLException {

    assumeTrue(testDBUsername != null && testDBPassword != null && testDBURL != null && jdbcDriverLoc != null);
    jdbc.setupJDBC(testDBURL, testDBUsername, testDBPassword, false, 0);
    
    HashMap[] queryResult;
    int deleteResult;
    
    // Try processQuery with a nonsense query
    try {
        queryResult = jdbc.processQuery("jibberish");
        fail("Should have thrown exception.");
    } catch (VantiqSQLException e) {
        // Expected behavior
    }
    
    // Select the row that we previously inserted
    try {
        queryResult = jdbc.processQuery(SELECT_QUERY);
        assert (Integer) queryResult[0].get("id") == 1;
        assert (Integer) queryResult[0].get("age") == 25;
        assert queryResult[0].get("first").equals("Santa");
        assert queryResult[0].get("last").equals("Claus");
    } catch (VantiqSQLException e) {
        fail("Should not throw an exception: " + e.getMessage());
    }
    
    // Delete row from the table
    try {
        deleteResult = jdbc.processPublish(DELETE_ROW);
        assert deleteResult > 0;
    } catch (VantiqSQLException e) {
        fail("Should not throw an exception: " + e.getMessage());
    }
    
    // Try selecting again, should return empty HashMap Array since row was deleted
    try {
        queryResult = jdbc.processQuery(SELECT_QUERY);
        assert queryResult.length == 0;
    } catch (VantiqSQLException e) {
        fail("Should not throw an exception: " + e.getMessage());
    }
    
    jdbc.close();
}