test: update eunit tests

This commit is contained in:
JianBo He 2024-01-29 10:48:22 +08:00
parent 9915c85b0b
commit 2e35024df1
4 changed files with 54 additions and 6 deletions

View File

@ -78,8 +78,6 @@
{<<"is_superuser">>, atom} {<<"is_superuser">>, atom}
]). ]).
-elvis([{elvis_style, nesting_level, disable}]).
%%------------------------------------------------------------------------------ %%------------------------------------------------------------------------------
%% Mnesia bootstrap %% Mnesia bootstrap
%%------------------------------------------------------------------------------ %%------------------------------------------------------------------------------
@ -177,7 +175,9 @@ import_users({PasswordType, Filename, FileData}, State) ->
Convertor = convertor(PasswordType, State), Convertor = convertor(PasswordType, State),
try try
{_NewUsersCnt, Users} = parse_import_users(Filename, FileData, Convertor), {_NewUsersCnt, Users} = parse_import_users(Filename, FileData, Convertor),
case do_import_users(Users) of case length(Users) > 0 andalso do_import_users(Users) of
false ->
error(empty_users);
ok -> ok ->
ok; ok;
{error, Reason} -> {error, Reason} ->

View File

@ -251,6 +251,30 @@ t_import_users(_) ->
sample_filename_and_data(<<"user-credentials-malformed.csv">>), sample_filename_and_data(<<"user-credentials-malformed.csv">>),
State State
) )
),
?assertEqual(
{error, empty_users},
emqx_authn_mnesia:import_users(
{hash, <<"empty_users.json">>, <<"[]">>},
State
)
),
?assertEqual(
{error, empty_users},
emqx_authn_mnesia:import_users(
{hash, <<"empty_users.csv">>, <<>>},
State
)
),
?assertEqual(
{error, empty_users},
emqx_authn_mnesia:import_users(
{hash, prepared_user_list, []},
State
)
). ).
t_import_users_plain(_) -> t_import_users_plain(_) ->

View File

@ -50,6 +50,8 @@
-dialyzer(no_improper_lists). -dialyzer(no_improper_lists).
-elvis([{elvis_style, nesting_level, disable}]).
%% %%
%% @doc Make a stream that produces no values. %% @doc Make a stream that produces no values.
@ -189,8 +191,8 @@ csv(Bin) when is_binary(Bin) ->
case get_csv_header(CSVData) of case get_csv_header(CSVData) of
{ok, CSVHeaders, CSVLines} -> {ok, CSVHeaders, CSVLines} ->
fun() -> Reader(CSVHeaders, CSVLines) end; fun() -> Reader(CSVHeaders, CSVLines) end;
{error, Reason} -> error ->
error(Reason) empty()
end. end.
csv_data(Data) -> csv_data(Data) ->
@ -203,7 +205,7 @@ get_csv_header(CSV) ->
Seq = binary:split(Line, [<<",">>, <<" ">>, <<"\n">>], [global, trim_all]), Seq = binary:split(Line, [<<",">>, <<" ">>, <<"\n">>], [global, trim_all]),
{ok, Seq, NewCSV}; {ok, Seq, NewCSV};
eof -> eof ->
{error, empty_file} error
end. end.
csv_read_line({csv_data, [Line | Lines]}) -> csv_read_line({csv_data, [Line | Lines]}) ->

View File

@ -82,3 +82,25 @@ mqueue_test() ->
[1, 42, 2], [1, 42, 2],
emqx_utils_stream:consume(emqx_utils_stream:mqueue(400)) emqx_utils_stream:consume(emqx_utils_stream:mqueue(400))
). ).
csv_test() ->
Data = <<"h1,h2,h3\r\nv1,v2,v3\r\nv4,v5,v6">>,
?assertEqual(
[
#{<<"h1">> => <<"v1">>, <<"h2">> => <<"v2">>, <<"h3">> => <<"v3">>},
#{<<"h1">> => <<"v4">>, <<"h2">> => <<"v5">>, <<"h3">> => <<"v6">>}
],
emqx_utils_stream:consume(emqx_utils_stream:csv(Data))
),
?assertEqual(
[],
emqx_utils_stream:consume(emqx_utils_stream:csv(<<"">>))
),
BadData = <<"h1,h2,h3\r\nv1,v2,v3\r\nv4,v5">>,
?assertException(
error,
bad_format,
emqx_utils_stream:consume(emqx_utils_stream:csv(BadData))
).