summaryrefslogtreecommitdiff
path: root/src/mango/src/mango_selector.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mango/src/mango_selector.erl')
-rw-r--r--src/mango/src/mango_selector.erl25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/mango/src/mango_selector.erl b/src/mango/src/mango_selector.erl
index 584b2dffb..7de16bd51 100644
--- a/src/mango/src/mango_selector.erl
+++ b/src/mango/src/mango_selector.erl
@@ -982,4 +982,29 @@ has_required_fields_or_nested_or_false_test() ->
Normalized = normalize(Selector),
?assertEqual(false, has_required_fields(Normalized, RequiredFields)).
+%% This test shows the shape match/2 expects for its arguments.
+match_demo_test_() ->
+ Doc =
+ {[
+ {<<"_id">>, <<"foo">>},
+ {<<"_rev">>, <<"bar">>},
+ {<<"user_id">>, 11}
+ ]},
+ Check = fun(Selector) ->
+ % Call match_int/2 to avoid ERROR for missing metric; this is confusing
+ % in the middle of test output.
+ match_int(mango_selector:normalize(Selector), Doc)
+ end,
+ [
+ % matching
+ ?_assertEqual(true, Check({[{<<"user_id">>, 11}]})),
+ ?_assertEqual(true, Check({[{<<"_id">>, <<"foo">>}]})),
+ ?_assertEqual(true, Check({[{<<"_id">>, <<"foo">>}, {<<"_rev">>, <<"bar">>}]})),
+ % non-matching
+ ?_assertEqual(false, Check({[{<<"user_id">>, 1234}]})),
+ % string 11 doesn't match number 11
+ ?_assertEqual(false, Check({[{<<"user_id">>, <<"11">>}]})),
+ ?_assertEqual(false, Check({[{<<"_id">>, <<"foo">>}, {<<"_rev">>, <<"quux">>}]}))
+ ].
+
-endif.