%% Test cases
-export(
- [
+ [ t_set_new/1
+ , t_set_existing/1
+ , t_pop/1
]).
%% Common Test callbacks
%% ============================================================================
+%% TODO: Make tests generic for any dictionary.
+%% TODO: Each group should test a type of dictionary against the generic cases.
+
all() ->
[{group, ?GROUP_KV_LIST}].
groups() ->
Tests =
- [
+ [ t_set_new
+ , t_set_existing
+ , t_pop
],
Properties = [],
[{?GROUP_KV_LIST, Properties, Tests}].
%% =============================================================================
%% Test cases
%% =============================================================================
+
+t_set_new(_Config) ->
+ Key = key,
+ ValExpected = bar,
+ ListInitial = hope_kv_list:empty(),
+ ListResulting = hope_kv_list:set(ListInitial, Key, ValExpected),
+ {some, ValResulting} = hope_kv_list:get(ListResulting, Key),
+ ValResulting = ValExpected.
+
+t_set_existing(_Config) ->
+ Key = key,
+ ValInitial = foo,
+ ValExpected = bar,
+ ListInitial = [{donald, duck}, {Key, ValInitial}],
+ ListResulting = hope_kv_list:set(ListInitial, Key, ValExpected),
+ {some, ValResulting} = hope_kv_list:get(ListResulting, Key),
+ ValResulting = ValExpected.
+
+t_pop(_Config) ->
+ KVList = [{a, 1}, {b, 2}, {c, 3}],
+ Dict1 = hope_kv_list:of_kv_list(KVList),
+ {{some, 1}, Dict2} = hope_kv_list:pop(Dict1, a),
+ {none , _Dict3} = hope_kv_list:pop(Dict2, a).