persontest.groovy
来自「Groovy动态语言 运行在JVM中的动态语言 可以方便的处理业务逻辑变化大的业」· GROOVY 代码 · 共 65 行
GROOVY
65 行
package groovy.sql
import javax.sql.DataSource
import org.axiondb.jdbc.AxionDataSource
class PersonTest extends GroovyTestCase {
def type
void testFoo() {
def persons = createDataSet()
def blogs = persons.findAll { it.lastName == "Bloggs" }
assertSql(blogs, "select * from person where lastName = ?", ['Bloggs'])
}
void testWhereWithAndClause() {
def persons = createDataSet()
def blogs = persons.findAll { it.lastName == "Bloggs" }
def bigBlogs = blogs.findAll { it.size > 100 }
assertSql(bigBlogs, "select * from person where lastName = ? and size > ?", ['Bloggs', 100])
}
void testWhereClosureWithAnd() {
def persons = createDataSet()
def blogs = persons.findAll { it.size < 10 && it.lastName == "Bloggs" }
assertSql(blogs, "select * from person where size < ? and lastName = ?", [10, 'Bloggs'])
}
protected def compareFn(value) {
value > 1 && value < 10
}
protected def assertSql(dataSet, expectedSql, expectedParams) {
def sql = dataSet.sql
def params = dataSet.parameters
assert sql == expectedSql
assert params == expectedParams
}
protected DataSource createDataSource() {
return new AxionDataSource("jdbc:axiondb:foo" + getMethodName())
}
protected def createDataSet() {
def type = Person
assert type != null , "failed to load Person class"
def dataSource = createDataSource()
def sql = new Sql(dataSource)
return sql.dataSet(type)
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?