summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--_oasis15
-rw-r--r--test/session_test.ml40
2 files changed, 55 insertions, 0 deletions
diff --git a/_oasis b/_oasis
index 496b165..f0f45d2 100644
--- a/_oasis
+++ b/_oasis
@@ -135,6 +135,14 @@ Executable "vyconf_config_test"
Install: false
BuildDepends: oUnit, toml, ppx_deriving.runtime, vyconf
+Executable "session_test"
+ Path: test
+ MainIs: session_test.ml
+ Build$: flag(tests)
+ CompiledObject: best
+ Install: false
+ BuildDepends: oUnit, vyconf, xml-light, fileutils, pcre
+
Executable "vytree_load_test"
Path: test
MainIs: vytree_load_test.ml
@@ -184,3 +192,10 @@ Test "util_test"
TestTools: util_test
Command: $util_test
WorkingDirectory: test
+
+Test "session_test"
+ Run$: flag(tests)
+ TestTools: session_test
+ Command: $session_test
+ WorkingDirectory: test
+
diff --git a/test/session_test.ml b/test/session_test.ml
new file mode 100644
index 0000000..a3a1fb0
--- /dev/null
+++ b/test/session_test.ml
@@ -0,0 +1,40 @@
+open OUnit2
+open Session
+
+module CT = Config_tree
+module RT = Reference_tree
+
+
+(* I'm not sure if we want to account for superfluous spaces inside the strings,
+ but for now let's say we want strings "normalized"
+
+ We also assume that quotes around the values are double quotes,
+ even though the lexer will also accept single quotes.
+ *)
+
+let test_op_string_set test_ctxt =
+ let op = CfgSet (["foo"; "bar"], Some "baz quux", CT.ReplaceValue) in
+ let str = (String.trim @@ string_of_op op) in
+ assert_equal str "set foo bar \"baz quux\""
+
+let test_op_string_set_valueless test_ctxt =
+ let op = CfgSet (["foo"; "bar"], None, CT.ReplaceValue) in
+ let str = (String.trim @@ string_of_op op) in
+ assert_equal str "set foo bar"
+
+let test_op_string_delete test_ctxt =
+ let op = CfgDelete (["foo"; "bar"], Some "baz quux") in
+ let str = (String.trim @@ string_of_op op) in
+ assert_equal str "delete foo bar \"baz quux\""
+
+
+let suite =
+ "VyConf session tests" >::: [
+ "test_op_string_set" >:: test_op_string_set;
+ "test_op_string_set_valueless" >:: test_op_string_set_valueless;
+ "test_op_string_delete" >:: test_op_string_delete;
+ ]
+
+let () =
+ run_test_tt_main suite
+