blob: 33031429c494e7183c5b15fe180710a338ea0d77 [file] [log] [blame]
package groovy.sql
class SqlCompleteTest extends TestHelper {
void testSqlQuery() {
sql = createSql()
results = [:]
sql.eachRow("select * from PERSON") { results.put(it.firstname, it.lastname) }
expected = ["James":"Strachan", "Bob":"Mcwhirter", "Sam":"Pullara"]
assert results == expected
}
void testSqlQueryWithWhereClause() {
sql = createSql()
foo = "drink"
results = []
sql.eachRow("select * from FOOD where type=${foo}") { results.add(it.name) }
expected = ["beer", "coffee"]
assert results == expected
}
void testSqlQueryWithWhereClauseWith2Arguments() {
sql = createSql()
foo = "cheese"
bar = "edam"
results = []
sql.eachRow("select * from FOOD where type=${foo} and name != ${bar}") { results.add(it.name) }
expected = ["brie", "cheddar"]
assert results == expected
}
void testSqlQueryWith2ParametersUsingQuestionMarkNotation() {
sql = createSql()
results = []
sql.eachRow("select * from FOOD where type=? and name != ?", ["cheese", "edam"]) { results.add(it.name) }
expected = ["brie", "cheddar"]
assert results == expected
}
void testDataSet() {
sql = createSql()
results = []
people = sql.dataSet("PERSON")
people.each { results.add(it.firstname) }
expected = ["James", "Bob", "Sam"]
assert results == expected
}
void testDataSetWithClosurePredicate() {
sql = createSql()
results = []
food = sql.dataSet("FOOD")
food.findAll { it.type == "cheese" }.each { results.add(it.name) }
expected = ["edam", "brie", "cheddar"]
assert results == expected
}
void testUpdatingDataSet() {
sql = createSql()
results = []
features = sql.dataSet("FEATURE")
features.each {
/** @todo Axion doesn't yet support ResultSet updating
if (it.id == 1) {
it.name = it.name + " Rocks!"
println("Changing name to ${it.name}")
}
*/
results.add(it.name)
}
expected = ["GDO", "GPath", "GroovyMarkup"]
assert results == expected
}
void testGStringToSqlConversion(){
foo = 'loincloth'
bar = 'wasteband'
sql = createSql()
expected = "A narrow ? supported by a ?!!"
gstring = "A narrow ${foo} supported by a ${bar}!!"
result = sql.asSql(gstring, gstring.values.toList())
assert result == expected
}
void testExecuteUpdate(){
foo='food-drink'
food = 'food'
drink = 'drink'
bar='guinness'
sql = createSql();
expected = 0
result = sql.executeUpdate("update FOOD set type=? where name=?",[foo,bar]);
assert result == expected
expected = 1
result = sql.executeUpdate("insert into FOOD (type,name) values (${food},${bar})");
assert result == expected
result = sql.executeUpdate("insert into FOOD (type,name) values (${drink},${bar})");
assert result == expected
result = sql.executeUpdate("insert into FOOD (type,name) values ('drink','guinness')");
assert result == expected
expected = 3
result = sql.executeUpdate("update FOOD set type=? where name=?",[foo,bar]);
assert result == expected
}
}