Make all these set_parameter tests more readable.

This commit is contained in:
Simon MacMullen 2012-06-11 16:13:15 +01:00
parent 4d0cc84b00
commit b14dac68ef
1 changed files with 34 additions and 12 deletions

View File

@ -272,22 +272,27 @@ dynamic_reconfiguration_test() ->
assert_connections(Xs, [<<"localhost">>, <<"local5673">>]), assert_connections(Xs, [<<"localhost">>, <<"local5673">>]),
%% Test this at least does not blow up %% Test this at least does not blow up
rabbitmqctl("set_parameter federation local_nodename '<<\"test\">>'"), set_param("federation", "local_nodename", <<"test">>),
assert_connections(Xs, [<<"localhost">>, <<"local5673">>]), assert_connections(Xs, [<<"localhost">>, <<"local5673">>]),
%% Test that clearing connections works %% Test that clearing connections works
rabbitmqctl("clear_parameter federation_connection localhost"), clear_param("federation_connection", "localhost"),
rabbitmqctl("clear_parameter federation_connection local5673"), clear_param("federation_connection", "local5673"),
assert_connections(Xs, []), assert_connections(Xs, []),
%% Test that readding them and changing them works %% Test that readding them and changing them works
rabbitmqctl("set_parameter federation_connection localhost '[{<<\"uri\">>,<<\"amqp://localhost\">>}]'"), set_param("federation_connection", "localhost",
[{<<"uri">>, <<"amqp://localhost">>}]),
%% Do it twice so we at least hit the no-restart optimisation %% Do it twice so we at least hit the no-restart optimisation
rabbitmqctl("set_parameter federation_connection localhost '[{<<\"uri\">>,<<\"amqp://\">>}]'"), set_param("federation_connection", "localhost",
rabbitmqctl("set_parameter federation_connection localhost '[{<<\"uri\">>,<<\"amqp://\">>}]'"), [{<<"uri">>, <<"amqp://">>}]),
set_param("federation_connection", "localhost",
[{<<"uri">>, <<"amqp://">>}]),
assert_connections(Xs, [<<"localhost">>]), assert_connections(Xs, [<<"localhost">>]),
%% And re-add the last - for next test %% And re-add the last - for next test
rabbitmqctl("set_parameter federation_connection local5673 '[{<<\"uri\">>,<<\"amqp://localhost:5673\">>}]'") set_param("federation_connection", "local5673",
[{<<"uri">>, <<"amqp://localhost:5673">>}])
end, [x(<<"all.fed1">>), x(<<"all.fed2">>)]). end, [x(<<"all.fed1">>), x(<<"all.fed2">>)]).
dynamic_reconfiguration_integrity_test() -> dynamic_reconfiguration_integrity_test() ->
@ -299,15 +304,19 @@ dynamic_reconfiguration_integrity_test() ->
assert_connections(Xs, []), assert_connections(Xs, []),
%% Create the set - links appear %% Create the set - links appear
rabbitmqctl("set_parameter federation_upstream_set new-set '[[{<<\"connection\">>,<<\"localhost\">>}]]'"), set_param("federation_upstream_set", "new-set",
[[{<<"connection">>, <<"localhost">>}]]),
assert_connections(Xs, [<<"localhost">>]), assert_connections(Xs, [<<"localhost">>]),
%% Add nonexistent connections to set - nothing breaks %% Add nonexistent connections to set - nothing breaks
rabbitmqctl("set_parameter federation_upstream_set new-set '[[{<<\"connection\">>,<<\"localhost\">>}],[{<<\"connection\">>,<<\"does-not-exist\">>}]]'"), set_param("federation_upstream_set", "new-set",
[[{<<"connection">>, <<"localhost">>}],
[{<<"connection">>, <<"does-not-exist">>}]]),
assert_connections(Xs, [<<"localhost">>]), assert_connections(Xs, [<<"localhost">>]),
%% Change connection in set - links change %% Change connection in set - links change
rabbitmqctl("set_parameter federation_upstream_set new-set '[[{<<\"connection\">>,<<\"local5673\">>}]]'"), set_param("federation_upstream_set", "new-set",
[[{<<"connection">>, <<"local5673">>}]]),
assert_connections(Xs, [<<"local5673">>]) assert_connections(Xs, [<<"local5673">>])
end, [x(<<"new.fed1">>), x(<<"new.fed2">>)]). end, [x(<<"new.fed1">>), x(<<"new.fed2">>)]).
@ -320,11 +329,11 @@ federate_unfederate_test() ->
assert_connections(Xs, []), assert_connections(Xs, []),
%% Federate them - links appear %% Federate them - links appear
rabbitmqctl("set_parameter policy dyn '[{<<\"prefix\">>, <<\"dyn.\">>}, {<<\"policy\">>, [{<<\"federation-upstream-set\">>, <<\"all\">>}]}].'"), set_param("policy", "dyn", policy(<<"dyn.">>, <<"all">>)),
assert_connections(Xs, [<<"localhost">>, <<"local5673">>]), assert_connections(Xs, [<<"localhost">>, <<"local5673">>]),
%% Unfederate them - links disappear %% Unfederate them - links disappear
rabbitmqctl("clear_parameter policy dyn"), clear_param("policy", "dyn"),
assert_connections(Xs, []) assert_connections(Xs, [])
end, [x(<<"dyn.exch1">>), x(<<"dyn.exch2">>)]). end, [x(<<"dyn.exch1">>), x(<<"dyn.exch2">>)]).
@ -369,11 +378,24 @@ stop_other_node({Name, _Port}) ->
" stop-other-node"), " stop-other-node"),
timer:sleep(1000). timer:sleep(1000).
set_param(Component, Key, Value) ->
rabbitmqctl(fmt("set_parameter ~s ~s '~p'", [Component, Key, Value])).
clear_param(Component, Key) ->
rabbitmqctl(fmt("clear_parameter ~s ~s", [Component, Key])).
fmt(Fmt, Args) ->
string:join(string:tokens(rabbit_misc:format(Fmt, Args), [$\n]), " ").
rabbitmqctl(Args) -> rabbitmqctl(Args) ->
?assertCmd( ?assertCmd(
plugin_dir() ++ "/../rabbitmq-server/scripts/rabbitmqctl " ++ Args), plugin_dir() ++ "/../rabbitmq-server/scripts/rabbitmqctl " ++ Args),
timer:sleep(100). timer:sleep(100).
policy(Prefix, UpstreamSet) ->
[{<<"prefix">>, Prefix},
{<<"policy">>, [{<<"federation-upstream-set">>, UpstreamSet}]}].
plugin_dir() -> plugin_dir() ->
{ok, [[File]]} = init:get_argument(config), {ok, [[File]]} = init:get_argument(config),
filename:dirname(filename:dirname(File)). filename:dirname(filename:dirname(File)).