blob: e903ab6be2d36ff65ddb8e4e2b7e587736d4ac27 [file] [log] [blame]
% Licensed under the Apache License, Version 2.0 (the "License"); you may not
% use this file except in compliance with the License. You may obtain a copy of
% the License at
%
% http://www.apache.org/licenses/LICENSE-2.0
%
% Unless required by applicable law or agreed to in writing, software
% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
% License for the specific language governing permissions and limitations under
% the License.
-module(couch_mrview_http_tests).
-include_lib("couch/include/couch_eunit.hrl").
-include_lib("couch_mrview/include/couch_mrview.hrl").
mrview_http_test_() ->
[
?_assertEqual(
#mrargs{group_level = undefined, group = true},
couch_mrview_http:parse_params(
[{"group", "true"}],
undefined,
#mrargs{}
)
),
?_assertEqual(
#mrargs{group_level = 1, group = undefined},
couch_mrview_http:parse_params(
[{"group_level", "1"}],
undefined,
#mrargs{}
)
),
?_assertEqual(
#mrargs{start_key = 1, end_key = 1, group_level = undefined, group = undefined},
couch_mrview_http:parse_params(
[{"key", "1"}],
undefined,
#mrargs{}
)
),
?_assertThrow(
{query_parse_error, <<"`key(s)` is incompatible with `start_key` and `end_key`">>},
couch_mrview_http:parse_params(
[{"key", "1"}, {"start_key", "2"}],
undefined,
#mrargs{}
)
),
?_assertThrow(
{query_parse_error, <<"`key(s)` is incompatible with `start_key` and `end_key`">>},
couch_mrview_http:parse_params(
[{"end_key", "5"}, {"key", "1"}],
undefined,
#mrargs{}
)
),
?_assertThrow(
{query_parse_error, <<"`key(s)` is incompatible with `start_key` and `end_key`">>},
couch_mrview_http:parse_params(
[{"keys", "[1]"}, {"end_key", "5"}],
undefined,
#mrargs{}
)
),
?_assertEqual(
#mrargs{start_key = 1, end_key = 1, group_level = undefined},
couch_mrview_http:parse_params(
[{"keys", "[1]"}],
undefined,
#mrargs{}
)
),
?_assertEqual(
#mrargs{
keys = [1, 2], start_key = undefined, end_key = undefined, group_level = undefined
},
couch_mrview_http:parse_params(
[{"keys", "[1, 2]"}],
undefined,
#mrargs{}
)
)
].