| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- %%--------------------------------------------------------------------
- %% Copyright (c) 2024 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.
- %%--------------------------------------------------------------------
- %% Most of the functions are tested as rule-engine string funcs
- -module(emqx_variform_bif_tests).
- -compile(export_all).
- -compile(nowarn_export_all).
- -include_lib("eunit/include/eunit.hrl").
- regex_extract_test_() ->
- [
- ?_assertEqual([<<"12345">>], regex_extract("Order number: 12345", "(\\d+)")),
- ?_assertEqual(
- [<<"Hello">>, <<"world">>], regex_extract("Hello, world!", "(\\w+).*\s(\\w+)")
- ),
- ?_assertEqual([], regex_extract("No numbers here!", "(\\d+)")),
- ?_assertEqual(
- [<<"2021">>, <<"05">>, <<"20">>],
- regex_extract("Date: 2021-05-20", "(\\d{4})-(\\d{2})-(\\d{2})")
- ),
- ?_assertEqual([<<"Hello">>], regex_extract("Hello, world!", "(Hello)")),
- ?_assertEqual(
- [<<"12">>, <<"34">>], regex_extract("Items: 12, Price: 34", "(\\d+).*\s(\\d+)")
- ),
- ?_assertEqual(
- [<<"john.doe@example.com">>],
- regex_extract("Contact: john.doe@example.com", "([\\w\\.]+@[\\w\\.]+)")
- ),
- ?_assertEqual([], regex_extract("Just some text, nothing more.", "([A-Z]\\d{3})")),
- ?_assertEqual(
- [<<"admin">>, <<"1234">>],
- regex_extract("User: admin, Pass: 1234", "User: (\\w+), Pass: (\\d+)")
- ),
- ?_assertEqual([], regex_extract("", "(\\d+)")),
- ?_assertEqual([], regex_extract("$$$###!!!", "(\\d+)")),
- ?_assertEqual([<<"23.1">>], regex_extract("Erlang 23.1 version", "(\\d+\\.\\d+)")),
- ?_assertEqual(
- [<<"192.168.1.1">>],
- regex_extract("Server IP: 192.168.1.1 at port 8080", "(\\d+\\.\\d+\\.\\d+\\.\\d+)")
- )
- ].
- regex_extract(Str, RegEx) ->
- emqx_variform_bif:regex_extract(Str, RegEx).
- rand_str_test() ->
- ?assertEqual(3, size(emqx_variform_bif:rand_str(3))),
- ?assertThrow(#{reason := badarg}, size(emqx_variform_bif:rand_str(0))).
- rand_int_test() ->
- N = emqx_variform_bif:rand_int(10),
- ?assert(N =< 10 andalso N >= 1),
- ?assertThrow(#{reason := badarg}, emqx_variform_bif:rand_int(0)),
- ?assertThrow(#{reason := badarg}, emqx_variform_bif:rand_int(-1)).
- base64_encode_decode_test() ->
- RandBytes = crypto:strong_rand_bytes(100),
- Encoded = emqx_variform_bif:base64_encode(RandBytes),
- ?assertEqual(RandBytes, emqx_variform_bif:base64_decode(Encoded)).
|