mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-07 19:22:14 +09:00
49 lines
1.7 KiB
Erlang
49 lines
1.7 KiB
Erlang
%% SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
-module(guild_manager_cache_tests).
|
|
-typing([eqwalizer]).
|
|
|
|
-include_lib("eunit/include/eunit.hrl").
|
|
|
|
cleanup_guild_from_cache_deletes_all_matches_test() ->
|
|
guild_manager_cache:ensure_guild_pid_cache(),
|
|
Pid = self(),
|
|
ets:insert(guild_pid_cache, {101, Pid}),
|
|
ets:insert(guild_pid_cache, {102, Pid}),
|
|
ets:insert(guild_pid_cache, {103, spawn(fun() -> ok end)}),
|
|
try
|
|
ok = guild_manager_cache:cleanup_guild_from_cache(Pid),
|
|
?assertEqual([], ets:lookup(guild_pid_cache, 101)),
|
|
?assertEqual([], ets:lookup(guild_pid_cache, 102))
|
|
after
|
|
ets:delete(guild_pid_cache, 101),
|
|
ets:delete(guild_pid_cache, 102),
|
|
ets:delete(guild_pid_cache, 103)
|
|
end.
|
|
|
|
lookup_cached_guild_pid_requires_registration_test() ->
|
|
process_registry:init(),
|
|
guild_manager_cache:ensure_guild_pid_cache(),
|
|
GuildId = 20201,
|
|
GuildPid = spawn(fun() ->
|
|
receive
|
|
stop -> ok
|
|
after infinity ->
|
|
ok
|
|
end
|
|
end),
|
|
timer:sleep(10),
|
|
ets:insert(guild_pid_cache, {GuildId, GuildPid}),
|
|
try
|
|
?assertEqual(not_found, guild_manager_cache:lookup_cached_guild_pid(GuildId)),
|
|
?assertEqual([], ets:lookup(guild_pid_cache, GuildId)),
|
|
GuildKey = process_registry:build_process_key(guild, GuildId),
|
|
ets:insert(guild_pid_cache, {GuildId, GuildPid}),
|
|
ets:insert(process_registry_table, {GuildKey, GuildPid}),
|
|
?assertEqual({ok, GuildPid}, guild_manager_cache:lookup_cached_guild_pid(GuildId)),
|
|
process_registry:registry_unregister(GuildKey)
|
|
after
|
|
ets:delete(guild_pid_cache, GuildId),
|
|
GuildPid ! stop
|
|
end.
|