From e579c7624b59105247c2ec38bbd8c69052c98224 Mon Sep 17 00:00:00 2001 From: Zaiming Shi Date: Thu, 25 Mar 2021 15:45:08 +0100 Subject: [PATCH] chore(channel): Add test case for receive-maximum check and override --- test/emqx_channel_SUITE.erl | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/test/emqx_channel_SUITE.erl b/test/emqx_channel_SUITE.erl index 424d6ec48..d4e056f97 100644 --- a/test/emqx_channel_SUITE.erl +++ b/test/emqx_channel_SUITE.erl @@ -235,6 +235,36 @@ t_handle_in_puback_id_not_found(_) -> {ok, _Channel} = emqx_channel:handle_in(?PUBACK_PACKET(1, ?RC_SUCCESS), channel()). % ?assertEqual(#{puback_in => 1}, emqx_channel:info(pub_stats, Channel)). +t_bad_receive_maximum(_) -> + ok = meck:expect(emqx_cm, open_session, + fun(true, _ClientInfo, _ConnInfo) -> + {ok, #{session => session(), present => false}} + end), + ok = meck:expect(emqx_zone, response_information, fun(_) -> test end), + C1 = channel(#{conn_state => idle}), + {shutdown, protocol_error, _, _} = + emqx_channel:handle_in( + ?CONNECT_PACKET(connpkt(#{'Receive-Maximum' => 0})), + C1 + ). + +t_override_client_receive_maximum(_) -> + ok = meck:expect(emqx_cm, open_session, + fun(true, _ClientInfo, _ConnInfo) -> + {ok, #{session => session(), present => false}} + end), + ok = meck:expect(emqx_zone, response_information, fun(_) -> test end), + ok = meck:expect(emqx_zone, max_inflight, fun(_) -> 0 end), + C1 = channel(#{conn_state => idle}), + ClientCapacity = 2, + {ok, [{event, connected}, _ConnAck], C2} = + emqx_channel:handle_in( + ?CONNECT_PACKET(connpkt(#{'Receive-Maximum' => ClientCapacity})), + C1 + ), + ConnInfo = emqx_channel:info(conninfo, C2), + ?assertEqual(ClientCapacity, maps:get(receive_maximum, ConnInfo)). + t_handle_in_pubrec_ok(_) -> Msg = emqx_message:make(test,?QOS_2, <<"t">>, <<"payload">>), ok = meck:expect(emqx_session, pubrec, fun(_, Session) -> {ok, Msg, Session} end),