Skip to content

Commit

Permalink
add Cache.put / Cache.fetch tests p.282 #1
Browse files Browse the repository at this point in the history
  • Loading branch information
nelsonic committed Aug 11, 2019
1 parent efdb30b commit a403e89
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 4 deletions.
4 changes: 2 additions & 2 deletions apps/info_sys/lib/info_sys/cache.ex
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ defmodule InfoSys.Cache do

@clear_interval :timer.seconds(60)

def put(key, value) do
true = :ets.insert(tab_name(__MODULE__), {key, value})
def put(name \\ __MODULE__, key, value) do
true = :ets.insert(tab_name(name), {key, value})

:ok
end
Expand Down
16 changes: 14 additions & 2 deletions apps/info_sys/test/cache_test.exs
Original file line number Diff line number Diff line change
@@ -1,11 +1,23 @@
defmodule InfoSysTest.CacheTest do
use ExUnit.Case, async: true
alias InfoSys.Cache
@@moduletag :clear_interval: 100
@moduletag clear_interval: 100

setup %{test: name, clear_interval: clear_interval} do
{:ok, pid} = Cache.start_link(name: name, clear_interval: clear_interval)
{ok, name: name, pid: pid}
{:ok, name: name, pid: pid}
end

test "key value pairs can be put and fetched from cache", %{name: name} do
assert :ok = Cache.put(name, :key1, :value1)
assert :ok = Cache.put(name, :key2, :value2)

assert Cache.fetch(name, :key1) == {:ok, :value1}
assert Cache.fetch(name, :key2) == {:ok, :value2}
end

test "unfound entry returns error", %{name: name} do
assert Cache.fetch(name, :notexists) == :error
end

end

0 comments on commit a403e89

Please sign in to comment.