mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
orm: support fn calls in where
(#17127)
This commit is contained in:
48
vlib/orm/orm_fn_calls_test.v
Normal file
48
vlib/orm/orm_fn_calls_test.v
Normal file
@ -0,0 +1,48 @@
|
||||
import db.sqlite
|
||||
|
||||
struct User {
|
||||
id int [primary; sql: serial]
|
||||
name string
|
||||
age int
|
||||
}
|
||||
|
||||
fn get_acceptable_age() int {
|
||||
return 21
|
||||
}
|
||||
|
||||
fn test_fn_calls() {
|
||||
mut db := sqlite.connect(':memory:') or { panic(err) }
|
||||
|
||||
sql db {
|
||||
create table User
|
||||
}
|
||||
|
||||
first_user := User{
|
||||
name: 'first'
|
||||
age: 25
|
||||
}
|
||||
|
||||
second_user := User{
|
||||
name: 'second'
|
||||
age: 14
|
||||
}
|
||||
|
||||
sql db {
|
||||
insert first_user into User
|
||||
insert second_user into User
|
||||
}
|
||||
|
||||
users_with_acceptable_age := sql db {
|
||||
select from User where age >= get_acceptable_age()
|
||||
}
|
||||
|
||||
assert users_with_acceptable_age.len == 1
|
||||
assert users_with_acceptable_age.first().name == 'first'
|
||||
|
||||
users_with_non_acceptable_age := sql db {
|
||||
select from User where age < get_acceptable_age()
|
||||
}
|
||||
|
||||
assert users_with_non_acceptable_age.len == 1
|
||||
assert users_with_non_acceptable_age.first().name == 'second'
|
||||
}
|
Reference in New Issue
Block a user