version: 1.0.0
+ map_validate/2: a simple way to validate maps + gitversion.mk removed
This commit is contained in:
parent
7b5b494cbb
commit
b5e2fecca5
4 changed files with 82 additions and 8 deletions
32
test/map_validate.erl
Normal file
32
test/map_validate.erl
Normal file
|
@ -0,0 +1,32 @@
|
|||
-module(map_validate).
|
||||
-include_lib("eunit/include/eunit.hrl").
|
||||
|
||||
-define(SAMPLE, #{<<"name">> => <<"umgeher">>, email => <<"me@umgeher.org">>}).
|
||||
|
||||
returning_no_data_test() ->
|
||||
?assertEqual({error, 'no data'}, utools:map_validate('not a map', #{})),
|
||||
?assertEqual({error, 'no data'}, utools:map_validate(#{}, 'not a map')),
|
||||
?assertEqual({error, 'no data'}, utools:map_validate('not a map', 'not a map')).
|
||||
|
||||
ok_without_doc_test() ->
|
||||
?assertEqual(#{}, utools:map_validate(?SAMPLE, #{})).
|
||||
|
||||
ok_rule_required_test() ->
|
||||
Rule = #{
|
||||
key => <<"name">>,
|
||||
required => true
|
||||
},
|
||||
?assertEqual(#{<<"name">> => <<"umgeher">>}, utools:map_validate(?SAMPLE, #{rules => [Rule]})).
|
||||
|
||||
error_required_missing_test() ->
|
||||
Rule = #{key => some, required => true},
|
||||
?assertEqual({error, some}, utools:map_validate(?SAMPLE, #{rules => [Rule]})).
|
||||
|
||||
ok_rule_not_required_with_default_value_test() ->
|
||||
Rule = #{key => some, default => 123},
|
||||
?assertEqual(#{some => 123}, utools:map_validate(?SAMPLE, #{rules => [Rule]})).
|
||||
|
||||
ok_merge_test() ->
|
||||
Rule = #{key => some, default => 123},
|
||||
?assertEqual(maps:merge(?SAMPLE, #{some => 123}), utools:map_validate(?SAMPLE, #{merge => true, rules => [Rule]})).
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue