Current section

Files

Jump to
websocket_mock lib state.ex
Raw

lib/state.ex

defmodule WebSocketMock.State do
@moduledoc false
use Agent
def start_link(opts) do
registry_name = Keyword.get(opts, :registry_name)
state = %{replies: %{}}
Agent.start_link(fn -> state end,
name: {:via, Registry, {registry_name, :state}}
)
end
def replies(registry_name) do
Agent.get({:via, Registry, {registry_name, :state}}, fn state ->
state.replies
end)
end
def store_reply(registry_name, msg, reply) do
Agent.update({:via, Registry, {registry_name, :state}}, fn state ->
%{state | replies: Map.put(state.replies, msg, reply)}
end)
end
end