Rename hope_kv_list_SUITE to hope_dictionary_SUITE.
[hope.git] / test / hope_dictionary_SUITE.erl
diff --git a/test/hope_dictionary_SUITE.erl b/test/hope_dictionary_SUITE.erl
new file mode 100644 (file)
index 0000000..a0848a3
--- /dev/null
@@ -0,0 +1,79 @@
+-module(hope_dictionary_SUITE).
+
+%% Callbacks
+-export(
+    [ all/0
+    , groups/0
+    , init_per_group/2
+    , end_per_group/2
+    ]).
+
+%% Test cases
+-export(
+    [ t_set_new/1
+    , t_set_existing/1
+    , t_pop/1
+    ]).
+
+
+-define(DICT_MODULE         , dict_module).
+-define(DICT_MODULE_KV_LIST , hope_kv_list).
+
+
+%% ============================================================================
+%% Common Test callbacks
+%% ============================================================================
+
+all() ->
+    [{group, ?DICT_MODULE_KV_LIST}].
+
+groups() ->
+    Tests =
+        [ t_set_new
+        , t_set_existing
+        , t_pop
+        ],
+    Properties = [],
+    [{?DICT_MODULE_KV_LIST, Properties, Tests}].
+
+init_per_group(DictModule, Cfg) ->
+    hope_kv_list:set(Cfg, ?DICT_MODULE, DictModule).
+
+end_per_group(_DictModule, _Cfg) ->
+    ok.
+
+
+%% =============================================================================
+%%  Test cases
+%% =============================================================================
+
+t_set_new(Cfg) ->
+    {some, DictModule} = hope_kv_list:get(Cfg, ?DICT_MODULE),
+    Key           = key,
+    ValExpected   = bar,
+    ListInitial   = DictModule:empty(),
+    ListResulting = DictModule:set(ListInitial, Key, ValExpected),
+    {some, ValResulting} = DictModule:get(ListResulting, Key),
+    ValResulting = ValExpected.
+
+t_set_existing(Cfg) ->
+    {some, DictModule} = hope_kv_list:get(Cfg, ?DICT_MODULE),
+    Key           = key,
+    ValInitial    = foo,
+    ValExpected   = bar,
+    ListInitial   = [{donald, duck}, {Key, ValInitial}],
+    ListResulting = DictModule:set(ListInitial, Key, ValExpected),
+    {some, ValResulting} = DictModule:get(ListResulting, Key),
+    ValResulting = ValExpected.
+
+t_pop(Cfg) ->
+    {some, DictModule} = hope_kv_list:get(Cfg, ?DICT_MODULE),
+    KVList = [{a, 1}, {b, 2}, {c, 3}],
+    Dict1 = DictModule:of_kv_list(KVList),
+    {{some, 1} , Dict2} = DictModule:pop(Dict1, a),
+    {none      , Dict3} = DictModule:pop(Dict2, a),
+    {{some, 2} , Dict4} = DictModule:pop(Dict3, b),
+    {none      , Dict5} = DictModule:pop(Dict4, b),
+    {{some, 3} , Dict6} = DictModule:pop(Dict5, c),
+    {none      , Dict7} = DictModule:pop(Dict6, c),
+    [] = DictModule:to_kv_list(Dict7).
This page took 0.029074 seconds and 4 git commands to generate.