summaryrefslogtreecommitdiff
path: root/deps/rabbitmq_aws/test/src/rabbitmq_aws_json_tests.erl
diff options
context:
space:
mode:
Diffstat (limited to 'deps/rabbitmq_aws/test/src/rabbitmq_aws_json_tests.erl')
-rw-r--r--deps/rabbitmq_aws/test/src/rabbitmq_aws_json_tests.erl63
1 files changed, 63 insertions, 0 deletions
diff --git a/deps/rabbitmq_aws/test/src/rabbitmq_aws_json_tests.erl b/deps/rabbitmq_aws/test/src/rabbitmq_aws_json_tests.erl
new file mode 100644
index 0000000000..efc4b8c9c1
--- /dev/null
+++ b/deps/rabbitmq_aws/test/src/rabbitmq_aws_json_tests.erl
@@ -0,0 +1,63 @@
+-module(rabbitmq_aws_json_tests).
+
+-include_lib("eunit/include/eunit.hrl").
+
+-include("rabbitmq_aws.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"}]}
+ ],
+ ?assertEqual(Expectation, rabbitmq_aws_json:decode(Value))
+ 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"}]}
+ ],
+ ?assertEqual(Expectation, rabbitmq_aws_json:decode(Value))
+ end},
+ {"list values", fun() ->
+ Value = "{\"misc\": [\"foo\", true, 123]\}",
+ Expectation = [{"misc", ["foo", true, 123]}],
+ ?assertEqual(Expectation, rabbitmq_aws_json:decode(Value))
+ end},
+ {"empty objects", fun() ->
+ Value = "{\"tags\": [{}]}",
+ Expectation = [{"tags", [{}]}],
+ ?assertEqual(Expectation, rabbitmq_aws_json:decode(Value))
+ end}
+ ].