blob: 516960db2d9c8706767f991cbadba5cafec0a9d5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
open OUnit2
module VT = Vytree
module CT = Config_tree
let test_set_create_node test_ctxt =
let path = ["foo"; "bar"] in
let node = CT.make "root" in
let node = CT.set node path "baz" CT.ReplaceValue in
let values = CT.get_values node path in
assert_equal values ["baz"]
(* Deleting just one of many values should keep all other values intact *)
let test_delete_just_value test_ctxt =
let path = ["foo"; "bar"] in
let node = CT.make "root" in
let node = CT.set node path "baz" CT.AddValue in
let node = CT.set node path "quux" CT.AddValue in
let node = CT.delete node path (Some "quux") in
assert_equal (CT.get_values node path) ["baz"]
(* Deleting the last value should delete the whole leaf *)
let test_delete_last_value test_ctxt =
let path = ["foo"; "bar"] in
let node = CT.make "root" in
let node = CT.set node path "baz" CT.AddValue in
let node = CT.delete node path (Some "baz") in
assert_equal ((not (VT.exists node path)) && (VT.exists node ["foo"])) true
(* Deleting a non-leaf node should delete the whole subtree *)
let test_delete_subtree test_ctxt =
let path = ["foo"; "bar"] in
let node = CT.make "root" in
let node = CT.set node path "baz" CT.AddValue in
let node = CT.delete node path None in
assert_equal (VT.list_children node) []
let suite =
"VyConf config tree tests" >::: [
"test_set_create_node" >:: test_set_create_node;
"test_delete_just_value" >:: test_delete_just_value;
"test_delete_last_value" >:: test_delete_last_value;
]
let () =
run_test_tt_main suite
|