From 938d62a66694e5494538238a509e32b806635cb9 Mon Sep 17 00:00:00 2001 From: Stefan Strigler Date: Tue, 30 May 2023 14:44:26 +0200 Subject: [PATCH] test: handle bad payload --- apps/emqx_bridge/test/emqx_bridge_testlib.erl | 1 + .../src/emqx_bridge_iotdb_impl.erl | 2 -- .../test/emqx_bridge_iotdb_impl_SUITE.erl | 30 +++++++++++++++++++ 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/apps/emqx_bridge/test/emqx_bridge_testlib.erl b/apps/emqx_bridge/test/emqx_bridge_testlib.erl index 383290027..5b4323e7c 100644 --- a/apps/emqx_bridge/test/emqx_bridge_testlib.erl +++ b/apps/emqx_bridge/test/emqx_bridge_testlib.erl @@ -116,6 +116,7 @@ create_bridge(Config, Overrides) -> Name = ?config(bridge_name, Config), BridgeConfig0 = ?config(bridge_config, Config), BridgeConfig = emqx_utils_maps:deep_merge(BridgeConfig0, Overrides), + ct:pal("creating bridge with config: ~p", [BridgeConfig]), emqx_bridge:create(BridgeType, Name, BridgeConfig). create_bridge_api(Config) -> diff --git a/apps/emqx_bridge_iotdb/src/emqx_bridge_iotdb_impl.erl b/apps/emqx_bridge_iotdb/src/emqx_bridge_iotdb_impl.erl index e8eb8efb0..ec7250a8d 100644 --- a/apps/emqx_bridge_iotdb/src/emqx_bridge_iotdb_impl.erl +++ b/apps/emqx_bridge_iotdb/src/emqx_bridge_iotdb_impl.erl @@ -403,8 +403,6 @@ device_id(Message, State) -> case maps:get(payload, Message) of #{<<"device_id">> := DeviceId} -> DeviceId; - #{device_id := DeviceId} -> - DeviceId; _NotFound -> Topic = maps:get(topic, Message), case re:replace(Topic, "/", ".", [global, {return, binary}]) of diff --git a/apps/emqx_bridge_iotdb/test/emqx_bridge_iotdb_impl_SUITE.erl b/apps/emqx_bridge_iotdb/test/emqx_bridge_iotdb_impl_SUITE.erl index a6569e067..3b3f323b0 100644 --- a/apps/emqx_bridge_iotdb/test/emqx_bridge_iotdb_impl_SUITE.erl +++ b/apps/emqx_bridge_iotdb/test/emqx_bridge_iotdb_impl_SUITE.erl @@ -326,6 +326,36 @@ t_sync_query_fail(Config) -> end, emqx_bridge_testlib:t_sync_query(Config, MakeMessageFun, IsSuccessCheck, iotdb_bridge_on_query). +t_sync_query_badpayload(Config) -> + DeviceId = iotdb_device(Config), + BadPayload = #{foo => bar}, + IsSuccessCheck = + fun(Result) -> + ?assertEqual({error, invalid_data}, Result) + end, + emqx_bridge_testlib:t_sync_query( + Config, + make_message_fun(DeviceId, BadPayload), + IsSuccessCheck, + iotdb_bridge_on_query + ), + ok. + +t_async_query_badpayload(Config) -> + DeviceId = iotdb_device(Config), + BadPayload = #{foo => bar}, + IsSuccessCheck = + fun(Result) -> + ?assertEqual({error, invalid_data}, Result) + end, + emqx_bridge_testlib:t_async_query( + Config, + make_message_fun(DeviceId, BadPayload), + IsSuccessCheck, + iotdb_bridge_on_query_async + ), + ok. + t_create_via_http(Config) -> emqx_bridge_testlib:t_create_via_http(Config).