121 void OralFKeyTest::testBasicFKeys ()
130 { { 0,
"Student 1" }, { 0, 0, 18, 1 } },
131 { { 0,
"Student 2" }, { 0, 0, 19, 1 } },
132 { { 0,
"Student 3" }, { 0, 0, 19, 2 } },
135 for (
auto& [stud, info] : list)
137 student->Insert (stud);
138 info.StudentID_ = stud.ID_;
139 studentInfo->Insert (info);
142 namespace sph = oral::sph;
144 const auto& selected = student->Select (sph::f<&Student::ID_> == sph::f<&StudentInfo::StudentID_> &&
145 sph::f<&StudentInfo::Age_> > 18);
147 QCOMPARE (selected, expected);
150 void OralFKeyTest::testPKeyReferencesInsert ()
157 const auto id = student->Insert ({ {},
"Student 1" });
158 extra->Insert ({ .Id_ = id, .ExtraName_ =
"foo" });
160 const auto& selected = extra->Select ();
161 QCOMPARE (selected, (
QList { StudentExtra { 1,
"foo" } }));
164 void OralFKeyTest::testPKeyReferencesUpsert ()
171 const auto id = student->Insert ({ {},
"Student 1" });
172 extra->Insert ({ .Id_ = id, .ExtraName_ =
"foo" });
175 const auto& selected = extra->Select ();
176 QCOMPARE (selected, (
QList { StudentExtra { 1,
"bar" } }));