Current section
Files
Jump to
Current section
Files
test/support/test_value_store.ex
defmodule HAP.Test.TestValueStore do
@moduledoc """
A simple GenServer backed value store for testing
"""
@behaviour HAP.ValueStore
use GenServer
def start_link(config) do
GenServer.start_link(__MODULE__, config, name: __MODULE__)
end
@impl HAP.ValueStore
def get_value(opts) do
GenServer.call(__MODULE__, {:get, opts})
end
@impl HAP.ValueStore
def put_value(value, opts) do
GenServer.call(__MODULE__, {:put, value, opts})
end
@impl GenServer
def init(_) do
{:ok, %{}}
end
@impl GenServer
def handle_call({:get, opts}, _from, state) do
{:reply, Map.get(state, Keyword.get(opts, :label), 0), state}
end
@impl GenServer
def handle_call({:put, value, opts}, _from, state) do
{:reply, :ok, Map.put(state, Keyword.get(opts, :label), value)}
end
end