v / vlib / orm / orm_option_array_test.v
46 lines · 41 sloc · 750 bytes · 99be39cbd15d4bbb5ab14d2f870199908c00bc8d
Raw
1// vtest retry: 3
2import db.sqlite
3
4struct Member {
5 id int @[primary]
6 children ?[]Child @[fkey: parent_id]
7}
8
9struct Child {
10 id int @[primary]
11 parent_id int
12}
13
14fn test_main() {
15 mut db := sqlite.connect(':memory:') or { panic(err) }
16 defer {
17 db.close() or { panic(err) }
18 }
19 sql db {
20 create table Member
21 } or { println(err) }
22 sql db {
23 create table Child
24 } or { println(err) }
25 new_member := Member{
26 id: 1
27 children: [Child{
28 id: 1
29 parent_id: 1
30 }, Child{
31 id: 2
32 parent_id: 1
33 }]
34 }
35 sql db {
36 insert new_member into Member
37 }!
38
39 rows := sql db {
40 select from Member
41 }!
42
43 assert rows[0].children?.len == 2
44 assert rows[0].children?[0].id == 1
45 assert rows[0].children?[1].id == 2
46}
47