mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-07 19:22:14 +09:00
32 lines
1017 B
Erlang
32 lines
1017 B
Erlang
%% SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
-module(session_manager_routing_tests).
|
|
-typing([eqwalizer]).
|
|
|
|
-include_lib("eunit/include/eunit.hrl").
|
|
|
|
select_shard_deterministic_test() ->
|
|
SessionId = <<"session-abc">>,
|
|
ShardCount = 8,
|
|
Shard1 = session_manager_routing:select_shard(SessionId, ShardCount),
|
|
Shard2 = session_manager_routing:select_shard(SessionId, ShardCount),
|
|
?assertEqual(Shard1, Shard2).
|
|
|
|
select_shard_in_range_test() ->
|
|
ShardCount = 8,
|
|
lists:foreach(
|
|
fun(N) ->
|
|
SessionId = list_to_binary(integer_to_list(N)),
|
|
Shard = session_manager_routing:select_shard(SessionId, ShardCount),
|
|
?assert(Shard >= 0 andalso Shard < ShardCount)
|
|
end,
|
|
lists:seq(1, 100)
|
|
).
|
|
|
|
start_call_with_drain_guard_rejects_during_drain_test() ->
|
|
State = #{shards => #{}, shard_count => 1},
|
|
?assertEqual(
|
|
{{error, draining}, State},
|
|
session_manager_routing:start_call_with_drain_guard(true, #{}, self(), State)
|
|
).
|