-module(hope_kv_list_SUITE).
+-include_lib("hope_kv_list.hrl").
+
%% Callbacks
-export(
[ all/0
DictUnsup = [{a, 1}, {b, 2}, {c, 3}, {d, 4}],
DictDups = [{a, 1}, {b, 2}, {c, 3}, {a, 4}],
DictMissing = [{a, 1}, {b, 2}],
+
{ok, ok} =
hope_kv_list:validate_unique_presence(DictOk, KeysRequired),
+ #hope_kv_list_presence_violations
+ { keys_missing = []
+ , keys_duplicated = []
+ , keys_unsupported = []
+ } =
+ hope_kv_list:find_unique_presence_violations(DictOk, KeysRequired),
+
{error, [{keys_unsupported, [d]}]} =
hope_kv_list:validate_unique_presence(DictUnsup, KeysRequired),
+ #hope_kv_list_presence_violations
+ { keys_missing = []
+ , keys_duplicated = []
+ , keys_unsupported = [d]
+ } =
+ hope_kv_list:find_unique_presence_violations(DictUnsup, KeysRequired),
+
{error, [{keys_duplicated, [a]}]} =
hope_kv_list:validate_unique_presence(DictDups, KeysRequired),
+ #hope_kv_list_presence_violations
+ { keys_missing = []
+ , keys_duplicated = [a]
+ , keys_unsupported = []
+ } =
+ hope_kv_list:find_unique_presence_violations(DictDups, KeysRequired),
+
{error, [{keys_missing, [c]}]} =
- hope_kv_list:validate_unique_presence(DictMissing, KeysRequired).
+ hope_kv_list:validate_unique_presence(DictMissing, KeysRequired),
+ #hope_kv_list_presence_violations
+ { keys_missing = [c]
+ , keys_duplicated = []
+ , keys_unsupported = []
+ } =
+ hope_kv_list:find_unique_presence_violations(DictMissing, KeysRequired).