diff options
Diffstat (limited to 'src/couch/test/eunit/couch_flags_config_tests.erl')
-rw-r--r-- | src/couch/test/eunit/couch_flags_config_tests.erl | 139 |
1 files changed, 85 insertions, 54 deletions
diff --git a/src/couch/test/eunit/couch_flags_config_tests.erl b/src/couch/test/eunit/couch_flags_config_tests.erl index 6fe2d5860..05707718b 100644 --- a/src/couch/test/eunit/couch_flags_config_tests.erl +++ b/src/couch/test/eunit/couch_flags_config_tests.erl @@ -19,9 +19,9 @@ couch_flags_config_test_() -> setup, fun setup/0, fun teardown/1, - [fun all_combinations_return_same_result/0] - ++ latest_overide_wins() - ++ [ + [fun all_combinations_return_same_result/0] ++ + latest_overide_wins() ++ + [ {"rules_are_sorted", fun rules_are_sorted/0} ] } @@ -29,50 +29,72 @@ couch_flags_config_test_() -> all_combinations_return_same_result() -> Config = [ - {"foo, bar||*", "true"}, - {"baz, qux||*", "false"}, - {"baz||shards/test*", "true"}, - {"baz||shards/blacklist*", "false"}, - {"bar||shards/test*", "false"}, - {"bar||shards/test/blacklist*", "true"} + {"foo, bar||*", "true"}, + {"baz, qux||*", "false"}, + {"baz||shards/test*", "true"}, + {"baz||shards/blacklist*", "false"}, + {"bar||shards/test*", "false"}, + {"bar||shards/test/blacklist*", "true"} ], Expected = [ - {{<<"shards/test/blacklist*">>},{<<"shards/test/blacklist*">>,22,[bar, baz, foo]}}, - {{<<"shards/test*">>},{<<"shards/test*">>, 12, [baz, foo]}}, - {{<<"shards/blacklist*">>},{<<"shards/blacklist*">>, 17, [bar, foo]}}, - {{<<"*">>},{<<"*">>, 1, [bar, foo]}} + {{<<"shards/test/blacklist*">>}, {<<"shards/test/blacklist*">>, 22, [bar, baz, foo]}}, + {{<<"shards/test*">>}, {<<"shards/test*">>, 12, [baz, foo]}}, + {{<<"shards/blacklist*">>}, {<<"shards/blacklist*">>, 17, [bar, foo]}}, + {{<<"*">>}, {<<"*">>, 1, [bar, foo]}} ], Combinations = couch_tests_combinatorics:permutations(Config), - lists:foreach(fun(Items) -> - ?assertEqual(Expected, couch_flags_config:data(Items)) - end, Combinations). + lists:foreach( + fun(Items) -> + ?assertEqual(Expected, couch_flags_config:data(Items)) + end, + Combinations + ). rules_are_sorted() -> Expected = [ - {{<<"shards/test/exact">>},{<<"shards/test/exact">>, 17, [baz,flag_bar,flag_foo]}}, - {{<<"shards/test/blacklist*">>},{<<"shards/test/blacklist*">>,22,[flag_foo]}}, - {{<<"shards/test*">>},{<<"shards/test*">>, 12, [baz,flag_bar,flag_foo]}}, - {{<<"shards/exact">>},{<<"shards/exact">>, 12, [flag_bar,flag_foo]}}, - {{<<"shards/blacklist*">>},{<<"shards/blacklist*">>, 17, []}}, - {{<<"*">>},{<<"*">>, 1, [flag_foo]}} + {{<<"shards/test/exact">>}, {<<"shards/test/exact">>, 17, [baz, flag_bar, flag_foo]}}, + {{<<"shards/test/blacklist*">>}, {<<"shards/test/blacklist*">>, 22, [flag_foo]}}, + {{<<"shards/test*">>}, {<<"shards/test*">>, 12, [baz, flag_bar, flag_foo]}}, + {{<<"shards/exact">>}, {<<"shards/exact">>, 12, [flag_bar, flag_foo]}}, + {{<<"shards/blacklist*">>}, {<<"shards/blacklist*">>, 17, []}}, + {{<<"*">>}, {<<"*">>, 1, [flag_foo]}} ], ?assertEqual(Expected, couch_flags_config:data(test_config())). latest_overide_wins() -> Cases = [ - {[ - {"flag||*", "false"}, {"flag||a*", "true"}, - {"flag||ab*", "true"}, {"flag||abc*", "true"} - ], true}, - {[ - {"flag||*", "true"}, {"flag||a*", "false"}, - {"flag||ab*", "true"}, {"flag||abc*", "false"} - ], false} + { + [ + {"flag||*", "false"}, + {"flag||a*", "true"}, + {"flag||ab*", "true"}, + {"flag||abc*", "true"} + ], + true + }, + { + [ + {"flag||*", "true"}, + {"flag||a*", "false"}, + {"flag||ab*", "true"}, + {"flag||abc*", "false"} + ], + false + } ], - [{test_id(Rules, Expected), - ?_assertEqual(Expected, lists:member(flag, - flags(hd(couch_flags_config:data(Rules)))))} - || {Rules, Expected} <- Cases]. + [ + { + test_id(Rules, Expected), + ?_assertEqual( + Expected, + lists:member( + flag, + flags(hd(couch_flags_config:data(Rules))) + ) + ) + } + || {Rules, Expected} <- Cases + ]. flags({{_Pattern}, {_Pattern, _Size, Flags}}) -> Flags. @@ -80,7 +102,6 @@ flags({{_Pattern}, {_Pattern, _Size, Flags}}) -> test_id(Items, ExpectedResult) -> lists:flatten(io_lib:format("~p -> ~p", [[P || {P, _} <- Items], ExpectedResult])). - test_config() -> [ {"flag_foo||*", "true"}, @@ -95,22 +116,32 @@ test_config() -> parse_flags_term_test_() -> LongBinary = binary:copy(<<"a">>, ?MAX_FLAG_NAME_LENGTH + 1), - ExpectedError = {error, {"Cannot parse list of tags: ~n~p", - [{too_long, LongBinary}]}}, - ExpectedUnknownError = {error,{"Cannot parse list of tags: ~n~p", - [{invalid_flag,<<"dddddddd">>}]}}, - [ - {"empty binary", ?_assertEqual( - [], couch_flags_config:parse_flags_term(<<>>))}, - {"single flag", ?_assertEqual( - [fff], couch_flags_config:parse_flags_term(<<"fff">>))}, - {"sorted", ?_assertEqual( - [aaa,bbb,fff], couch_flags_config:parse_flags_term(<<"fff,aaa,bbb">>))}, - {"whitespace", ?_assertEqual( - [aaa,bbb,fff], couch_flags_config:parse_flags_term(<<"fff , aaa, bbb ">>))}, - {"error", ?_assertEqual( - ExpectedError, couch_flags_config:parse_flags_term(LongBinary))}, - {"unknown_flag", ?_assertEqual( - ExpectedUnknownError, couch_flags_config:parse_flags_term(<<"dddddddd">>))} - ]. - + ExpectedError = {error, {"Cannot parse list of tags: ~n~p", [{too_long, LongBinary}]}}, + ExpectedUnknownError = + {error, {"Cannot parse list of tags: ~n~p", [{invalid_flag, <<"dddddddd">>}]}}, + [ + {"empty binary", + ?_assertEqual( + [], couch_flags_config:parse_flags_term(<<>>) + )}, + {"single flag", + ?_assertEqual( + [fff], couch_flags_config:parse_flags_term(<<"fff">>) + )}, + {"sorted", + ?_assertEqual( + [aaa, bbb, fff], couch_flags_config:parse_flags_term(<<"fff,aaa,bbb">>) + )}, + {"whitespace", + ?_assertEqual( + [aaa, bbb, fff], couch_flags_config:parse_flags_term(<<"fff , aaa, bbb ">>) + )}, + {"error", + ?_assertEqual( + ExpectedError, couch_flags_config:parse_flags_term(LongBinary) + )}, + {"unknown_flag", + ?_assertEqual( + ExpectedUnknownError, couch_flags_config:parse_flags_term(<<"dddddddd">>) + )} + ]. |