summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorPhil Summers <phil@blindlime.org>2016-12-23 00:40:11 +0000
committerPhil Summers <phil@blindlime.org>2016-12-23 00:40:11 +0000
commit87e45fd308babf14f9c9d98a8ba1d89e7f4cd00b (patch)
tree1ea0f6ef1d57f3f7385ea1ade2016925a033c031 /test
parent98072015c4be78f3bb4bb048b07d261287173b81 (diff)
downloadvyconf-87e45fd308babf14f9c9d98a8ba1d89e7f4cd00b.tar.gz
vyconf-87e45fd308babf14f9c9d98a8ba1d89e7f4cd00b.zip
T230: Add missing data access functions to the Reference_tree module with unit tests
Diffstat (limited to 'test')
-rw-r--r--test/data/interface_definition_sample.xml1
-rw-r--r--test/reference_tree_test.ml72
2 files changed, 73 insertions, 0 deletions
diff --git a/test/data/interface_definition_sample.xml b/test/data/interface_definition_sample.xml
index 6a4f201..c6185c0 100644
--- a/test/data/interface_definition_sample.xml
+++ b/test/data/interface_definition_sample.xml
@@ -5,6 +5,7 @@
<node name="login" owner="login">
<children>
<tagNode name="user">
+ <keepChildOrder/>
<properties>
<help>User name</help>
<constraint>
diff --git a/test/reference_tree_test.ml b/test/reference_tree_test.ml
index 078fc00..703c0b1 100644
--- a/test/reference_tree_test.ml
+++ b/test/reference_tree_test.ml
@@ -91,6 +91,66 @@ let test_is_hidden_invalid test_ctxt =
let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
assert_equal (is_hidden r ["system"; "login"; "user"; "full-name"]) false
+let test_is_tag_valid test_ctxt =
+ let r = Vytree.make default_data "root" in
+ let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (is_tag r ["system"; "login"; "user"]) true
+
+let test_is_tag_invalid test_ctxt =
+ let r = Vytree.make default_data "root" in
+ let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (is_tag r ["system"; "login"]) false
+
+let test_is_leaf_valid test_ctxt =
+ let r = Vytree.make default_data "root" in
+ let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (is_leaf r ["system"; "login"; "user"; "full-name"]) true
+
+let test_is_leaf_invalid test_ctxt =
+ let r = Vytree.make default_data "root" in
+ let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (is_leaf r ["system"; "login"; "user"]) false
+
+let test_is_valueless_valid test_ctxt =
+ let r = Vytree.make default_data "root" in
+ let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (is_valueless r ["system"; "options"; "reboot-on-panic"]) true
+
+let test_is_valueless_invalid test_ctxt =
+ let r = Vytree.make default_data "root" in
+ let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (is_valueless r ["system"; "login"; "user"; "full-name"]) false
+
+let test_get_keep_order_valid test_ctxt =
+ let r = Vytree.make default_data "root" in
+ let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (get_keep_order r ["system"; "login"; "user"]) true
+
+let test_get_keep_order_invalid test_ctxt =
+ let r = Vytree.make default_data "root" in
+ let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (get_keep_order r ["system"; "login"; "user"; "full-name"]) false
+
+let test_get_owner_valid test_ctxt =
+ let r = Vytree.make default_data "root" in
+ let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (get_owner r ["system"; "login"]) (Some "login")
+
+let test_get_owner_invalid test_ctxt =
+ let r = Vytree.make default_data "root" in
+ let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (get_owner r ["system"; "login"; "user"]) None
+
+let test_get_help_string_valid test_ctxt =
+ let r = Vytree.make default_data "root" in
+ let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (get_help_string r ["system"; "login"; "user"; "full-name"]) ("User full name")
+
+let test_get_help_string_default test_ctxt =
+ let r = Vytree.make default_data "root" in
+ let r = load_from_xml r (in_testdata_dir test_ctxt ["interface_definition_sample.xml"]) in
+ assert_equal (get_help_string r ["system"; "host-name"]) ("No help available")
+
let suite =
"Util tests" >::: [
"test_load_valid_definition" >:: test_load_valid_definition;
@@ -109,6 +169,18 @@ let suite =
"test_is_secret_invalid" >:: test_is_secret_invalid;
"test_is_hidden_valid" >:: test_is_hidden_valid;
"test_is_hidden_invalid" >:: test_is_hidden_invalid;
+ "test_is_tag_valid" >:: test_is_tag_valid;
+ "test_is_tag_invalid" >:: test_is_tag_invalid;
+ "test_is_leaf_valid" >:: test_is_leaf_valid;
+ "test_is_leaf_invalid" >:: test_is_leaf_valid;
+ "test_is_valueless_valid" >:: test_is_valueless_valid;
+ "test_is_valueless_invalid" >:: test_is_valueless_valid;
+ "test_get_keep_order_valid" >:: test_get_keep_order_valid;
+ "test_get_keep_order_invalid" >:: test_get_keep_order_invalid;
+ "test_get_owner_valid" >:: test_get_owner_valid;
+ "test_get_owner_invalid" >:: test_get_owner_invalid;
+ "test_get_help_string_valid" >:: test_get_help_string_valid;
+ "test_get_help_string_default" >:: test_get_help_string_default;
]
let () =