-module(limit_reached_SUITE). -include_lib("common_test/include/ct.hrl"). -include_lib("eunit/include/eunit.hrl"). %%-compile([export_all, nowarn_export_all]). -export([ all/0, groups/0, init_per_suite/1, end_per_suite/1, init_per_group/2, end_per_group/2, init_per_testcase/2, end_per_testcase/2, limit_reached1_test/1, limit_reached2_test/1, limit_reached3_test/1, limit_reached4_test/1, limit_reached5_test/1 ]). all() -> [ {group, test_group1} %% перелік груп тестів або ж перелік окремих тестів %%limit_reached1_test, %%limit_reached2_test ]. groups() -> [ { test_group1, [sequence], %% виконувати тести послідовно [ limit_reached1_test, limit_reached2_test, limit_reached3_test, limit_reached4_test, limit_reached5_test ] } ]. %% виконується перед запуском переліку тестів init_per_suite(Config) -> {ok, _} = application:ensure_all_started(token_bucket), Config. %% виконується після завершення всіх тестів end_per_suite(Config) -> Config. %% виконується перед запуском групи тестів init_per_group(_GroupName, Config) -> Config. %% виконується після завершення групи тестів end_per_group(_GroupName, _Config) -> ok. %% виконується перед запуском кожного тесту init_per_testcase(_TestCase, Config) -> Config. %% виконується після кожного тесту end_per_testcase(_TestCase, Config) -> Config. limit_reached1_test(_Config) -> ?assertEqual(false, token_bucket:is_limit_reached(123) ), ct:pal("limit_reached1_test/1 : [OK]"), ok. %%Config. %%{save_config, Config}. limit_reached2_test(_Config) -> timer:sleep(1001), %% wait 1 sec R = [token_bucket:is_limit_reached(123) || _ <- lists:seq(1,5)], ?assertEqual([false,false,false,true,true], R), ct:pal("limit_reached2_test/1 : [OK]"), ok. limit_reached3_test(_Config) -> timer:sleep(1001), %% wait 1 sec R = [token_bucket:is_limit_reached(123, 4) || _ <- lists:seq(1,5)], ?assertEqual([false,false,false,false,true], R), ct:pal("limit_reached3_test/1 : [OK]"), ok. limit_reached4_test(_Config) -> timer:sleep(1001), %% wait 1 sec R = [token_bucket:is_limit_reached(123, infinity) || _ <- lists:seq(1,5)], ?assertEqual([false,false,false,false,false], R), ct:pal("limit_reached4_test/1 : [OK]"), ok. limit_reached5_test(_Config) -> timer:sleep(1001), %% wait 1 sec R = [token_bucket:is_limit_reached(123) || _ <- lists:seq(1,5)], ?assertEqual([false,false,false,true,true], R), R2 = [token_bucket:is_limit_reached(123, 4) || _ <- lists:seq(1,5)], ?assertEqual([false,true,true,true,true], R2), R3 = [token_bucket:is_limit_reached(777, 4) || _ <- lists:seq(1,5)], ?assertEqual([false,false,false,false,true], R3), timer:sleep(1001), %% wait 1 sec ?assertEqual(false, token_bucket:is_limit_reached(123) ), ct:pal("limit_reached5_test/1 : [OK]"), ok.