rabbitmq-server/deps/rabbitmq_aws/test/rabbitmq_aws_json_tests.erl

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

72 lines
3.9 KiB
Erlang
Raw Permalink Normal View History

-module(rabbitmq_aws_json_tests).
2016-05-18 02:09:48 +08:00
-include_lib("eunit/include/eunit.hrl").
parse_test_() ->
[
{"string decoding", fun() ->
Value = "{\"requestId\":\"bda7fbdb-eddb-41fa-8626-7ba87923d690\",\"number\":128,\"enabled\":true,\"tagSet\":[{\"resourceId\":\"i-13a4abea\",\"resourceType\":\"instance\",\"key\":\"Environment\",\"value\":\"prod-us-east-1\"},{\"resourceId\":\"i-13a4abea\",\"resourceType\":\"instance\",\"key\":\"aws:cloudformation:logical-id\",\"value\":\"AutoScalingGroup\"},{\"resourceId\":\"i-13a4abea\",\"resourceType\":\"instance\",\"key\":\"aws:cloudformation:stack-name\",\"value\":\"prod-us-east-1-ecs-1\"}]}",
Expectation = [
{"requestId","bda7fbdb-eddb-41fa-8626-7ba87923d690"},
{"number", 128},
{"enabled", true},
{"tagSet",
[{"resourceId","i-13a4abea"},
{"resourceType","instance"},
{"key","Environment"},
{"value","prod-us-east-1"},
{"resourceId","i-13a4abea"},
{"resourceType","instance"},
{"key","aws:cloudformation:logical-id"},
{"value","AutoScalingGroup"},
{"resourceId","i-13a4abea"},
{"resourceType","instance"},
{"key","aws:cloudformation:stack-name"},
{"value","prod-us-east-1-ecs-1"}]}
],
Proplist = rabbitmq_aws_json:decode(Value),
?assertEqual(proplists:get_value("requestId", Expectation), proplists:get_value("requestId", Proplist)),
?assertEqual(proplists:get_value("number", Expectation), proplists:get_value("number", Proplist)),
?assertEqual(proplists:get_value("enabled", Expectation), proplists:get_value("enabled", Proplist)),
?assertEqual(lists:usort(proplists:get_value("tagSet", Expectation)),
lists:usort(proplists:get_value("tagSet", Proplist)))
2016-05-18 02:09:48 +08:00
end},
{"binary decoding", fun() ->
Value = <<"{\"requestId\":\"bda7fbdb-eddb-41fa-8626-7ba87923d690\",\"number\":128,\"enabled\":true,\"tagSet\":[{\"resourceId\":\"i-13a4abea\",\"resourceType\":\"instance\",\"key\":\"Environment\",\"value\":\"prod-us-east-1\"},{\"resourceId\":\"i-13a4abea\",\"resourceType\":\"instance\",\"key\":\"aws:cloudformation:logical-id\",\"value\":\"AutoScalingGroup\"},{\"resourceId\":\"i-13a4abea\",\"resourceType\":\"instance\",\"key\":\"aws:cloudformation:stack-name\",\"value\":\"prod-us-east-1-ecs-1\"}]}">>,
Expectation = [
{"requestId","bda7fbdb-eddb-41fa-8626-7ba87923d690"},
{"number", 128},
{"enabled", true},
{"tagSet",
[{"resourceId","i-13a4abea"},
{"resourceType","instance"},
{"key","Environment"},
{"value","prod-us-east-1"},
{"resourceId","i-13a4abea"},
{"resourceType","instance"},
{"key","aws:cloudformation:logical-id"},
{"value","AutoScalingGroup"},
{"resourceId","i-13a4abea"},
{"resourceType","instance"},
{"key","aws:cloudformation:stack-name"},
{"value","prod-us-east-1-ecs-1"}]}
],
Proplist = rabbitmq_aws_json:decode(Value),
?assertEqual(proplists:get_value("requestId", Expectation), proplists:get_value("requestId", Proplist)),
?assertEqual(proplists:get_value("number", Expectation), proplists:get_value("number", Proplist)),
?assertEqual(proplists:get_value("enabled", Expectation), proplists:get_value("enabled", Proplist)),
?assertEqual(lists:usort(proplists:get_value("tagSet", Expectation)),
lists:usort(proplists:get_value("tagSet", Proplist)))
2016-05-18 02:39:43 +08:00
end},
{"list values", fun() ->
Value = "{\"misc\": [\"foo\", true, 123]\}",
Expectation = [{"misc", ["foo", true, 123]}],
?assertEqual(Expectation, rabbitmq_aws_json:decode(Value))
2019-08-06 15:06:23 +08:00
end},
{"empty objects", fun() ->
Value = "{\"tags\": [{}]}",
Expectation = [{"tags", [{}]}],
?assertEqual(Expectation, rabbitmq_aws_json:decode(Value))
end}
2016-05-18 02:09:48 +08:00
].