From b02d815d0de1b358a253806290932e85a0ac34b6 Mon Sep 17 00:00:00 2001 From: Daniil Baturin Date: Tue, 24 Feb 2015 22:57:46 +0600 Subject: Add tests for Vytree.insert_child --- test/vyconf_tree_test.ml | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/test/vyconf_tree_test.ml b/test/vyconf_tree_test.ml index 0444177..d9cb76a 100644 --- a/test/vyconf_tree_test.ml +++ b/test/vyconf_tree_test.ml @@ -1,17 +1,51 @@ open OUnit2 open Vytree -let test1 test_ctxt = assert_equal 0 0 - +(* Destructuting a freshly made node gives us what + we made it from *) let test_make_node test_ctxt = let node = make "root" () in assert_equal (name_of_node node) "root"; assert_equal (data_of_node node) (); assert_equal (children_of_node node) [] +(* XXX: these comparisons are awkward, but this is + probably the only way to track the problem + down to insert if insert breaks *) + +(* Inserting at single-item path adds a child to + children list *) +let test_insert_immediate_child test_ctxt = + let node = make "root" () in + let node' = insert_child () node ["foo"] () in + assert_equal (children_of_node node') + [make "foo" ()] + +(* Inserting one child after another adds it to the + end of the children list *) +let test_insert_multiple_children test_ctxt = + let node = make "root" () in + let node' = insert_child () node ["foo"] () in + let node'' = insert_child () node' ["bar"] () in + assert_equal (children_of_node node'') + [make "foo" (); make "bar" ()] + +(* Inserting a child at a two-item path creates a tree + two levels deep *) +let test_insert_multi_level test_ctxt = + let node = make "root" () in + let node' = insert_child () node ["foo"; "bar"] () in + let bar = make "bar" () in + let foo = make_full "foo" () [bar] in + let root = make_full "root" () [foo] in + assert_equal root node' + let suite = "VyConf tree tests" >::: [ "test_make_node" >:: test_make_node; + "test_insert_immediate_child" >:: test_insert_immediate_child; + "test_insert_multiple_children" >:: test_insert_multiple_children; + "test_insert_multi_level" >:: test_insert_multi_level; ] let () = -- cgit v1.2.3