X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=test%2Fhope_kv_list_SUITE.erl;h=4fcde442b984c4f852ab4de0a0bf26171a33320e;hb=5e835f3eb36c027fa126352271931d9eb39b9b84;hp=65d4d1f0acfe09a121bdd79e516d967b7660248d;hpb=56b05e819f4531cdd2f32fa1054c9297436877b4;p=hope.git diff --git a/test/hope_kv_list_SUITE.erl b/test/hope_kv_list_SUITE.erl index 65d4d1f..4fcde44 100644 --- a/test/hope_kv_list_SUITE.erl +++ b/test/hope_kv_list_SUITE.erl @@ -4,15 +4,20 @@ -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(GROUP_KV_LIST, kv_list). +-define(DICT_MODULE , dict_module). +-define(DICT_MODULE_KV_LIST , hope_kv_list). %% ============================================================================ @@ -20,16 +25,55 @@ %% ============================================================================ all() -> - [{group, ?GROUP_KV_LIST}]. + [{group, ?DICT_MODULE_KV_LIST}]. groups() -> Tests = - [ + [ t_set_new + , t_set_existing + , t_pop ], Properties = [], - [{?GROUP_KV_LIST, Properties, Tests}]. + [{?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).