a database layer insipred by caqti and ecto
1open Repodb
2open Common
3
4let test_field_name () =
5 Alcotest.(check string) "field name" "name" (Field.name name_field)
6
7let test_field_qualified_name () =
8 Alcotest.(check string)
9 "qualified name" "users.name"
10 (Field.qualified_name name_field)
11
12let test_field_get () =
13 let user = make_user ~name:"Alice" () in
14 Alcotest.(check string) "get field value" "Alice" (Field.get name_field user)
15
16let test_field_set () =
17 let user = make_user ~name:"Alice" () in
18 let updated = Field.set name_field "Bob" user in
19 Alcotest.(check string) "set field value" "Bob" updated.name
20
21let test_field_is_primary_key () =
22 Alcotest.(check bool) "id is primary key" true (Field.is_primary_key id_field);
23 Alcotest.(check bool)
24 "name is not primary key" false
25 (Field.is_primary_key name_field)
26
27let test_field_is_nullable () =
28 Alcotest.(check bool)
29 "name is not nullable" false
30 (Field.is_nullable name_field)
31
32let tests =
33 [
34 ("field name", `Quick, test_field_name);
35 ("field qualified_name", `Quick, test_field_qualified_name);
36 ("field get", `Quick, test_field_get);
37 ("field set", `Quick, test_field_set);
38 ("field is_primary_key", `Quick, test_field_is_primary_key);
39 ("field is_nullable", `Quick, test_field_is_nullable);
40 ]