Add eunit cases and fix typo.

This commit is contained in:
Gilbert Wong 2018-10-24 15:59:22 +08:00
parent 3f761cbe6a
commit a1092a6784
2 changed files with 62 additions and 30 deletions

View File

@ -33,35 +33,35 @@
-export([shutdown/2]). -export([shutdown/2]).
-record(pstate, { -record(pstate, {
zone, zone,
sendfun, sendfun,
peername, peername,
peercert, peercert,
proto_ver, proto_ver,
proto_name, proto_name,
ackprops, ackprops,
client_id, client_id,
is_assigned, is_assigned,
conn_pid, conn_pid,
conn_props, conn_props,
ack_props, ack_props,
username, username,
session, session,
clean_start, clean_start,
topic_aliases, topic_aliases,
packet_size, packet_size,
will_topic, will_topic,
will_msg, will_msg,
keepalive, keepalive,
mountpoint, mountpoint,
is_super, is_super,
is_bridge, is_bridge,
enable_ban, enable_ban,
enable_acl, enable_acl,
recv_stats, recv_stats,
send_stats, send_stats,
connected, connected,
connected_at connected_at
}). }).
-type(state() :: #pstate{}). -type(state() :: #pstate{}).
@ -71,6 +71,8 @@
-compile(export_all). -compile(export_all).
-endif. -endif.
-define(NO_PROPS, undefined).
-define(LOG(Level, Format, Args, PState), -define(LOG(Level, Format, Args, PState),
emqx_logger:Level([{client, PState#pstate.client_id}], "MQTT(~s@~s): " ++ Format, emqx_logger:Level([{client, PState#pstate.client_id}], "MQTT(~s@~s): " ++ Format,
[PState#pstate.client_id, esockd_net:format(PState#pstate.peername) | Args])). [PState#pstate.client_id, esockd_net:format(PState#pstate.peername) | Args])).
@ -672,7 +674,7 @@ authenticate(Credentials, Password) ->
{error, Error} {error, Error}
end. end.
set_property(Name, Value, undefined) -> set_property(Name, Value, ?NO_PROPS) ->
#{Name => Value}; #{Name => Value};
set_property(Name, Value, Props) -> set_property(Name, Value, Props) ->
Props#{Name => Value}. Props#{Name => Value}.

View File

@ -0,0 +1,30 @@
%% Copyright (c) 2018 EMQ Technologies Co., Ltd. All Rights Reserved.
%%
%% Licensed under the Apache License, Version 2.0 (the "License");
%% you may not use this file except in compliance with the License.
%% You may obtain a copy of the License at
%%
%% http://www.apache.org/licenses/LICENSE-2.0
%%
%% Unless required by applicable law or agreed to in writing, software
%% distributed under the License is distributed on an "AS IS" BASIS,
%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
%% See the License for the specific language governing permissions and
%% limitations under the License.
-module(emqx_protocol_tests).
-include_lib("eunit/include/eunit.hrl").
set_property_test() ->
?assertEqual(#{test => test_property}, emqx_protocol:set_property(test, test_property, undefined)),
TestMap = #{test => test_property},
?assertEqual(#{test => test_property, test1 => test_property2},
emqx_protocol:set_property(test1, test_property2, TestMap)),
ok.
init_username_test() ->
?assertEqual(<<"Peercert">>,
emqx_protocol:init_username(<<"Peercert">>, [{peer_cert_as_username, crt}])),
?assertEqual(undefined,
emqx_protocol:init_username(undefined, [{peer_cert_as_username, undefined}])).