Skip to content

Commit

Permalink
Move tests to their own files
Browse files Browse the repository at this point in the history
  • Loading branch information
Shane Kilkelly committed Mar 30, 2018
1 parent 1d93b6e commit 7a354bf
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 71 deletions.
41 changes: 41 additions & 0 deletions test/hammer_ets_test.exs
@@ -0,0 +1,41 @@
defmodule ETSTest do
use ExUnit.Case

setup _context do
{:ok, hammer_ets_pid} = Hammer.Backend.ETS.start_link()
{:ok, [pid: hammer_ets_pid]}
end

test "count_hit", context do
pid = context[:pid]
{stamp, key} = Hammer.Utils.stamp_key("one", 200_000)
assert {:ok, 1} = Hammer.Backend.ETS.count_hit(pid, key, stamp)
assert {:ok, 2} = Hammer.Backend.ETS.count_hit(pid, key, stamp)
assert {:ok, 3} = Hammer.Backend.ETS.count_hit(pid, key, stamp)
end

test "get_bucket", context do
pid = context[:pid]
{stamp, key} = Hammer.Utils.stamp_key("two", 200_000)
# With no hits
assert {:ok, nil} = Hammer.Backend.ETS.get_bucket(pid, key)
# With one hit
assert {:ok, 1} = Hammer.Backend.ETS.count_hit(pid, key, stamp)
assert {:ok, {{_, "two"}, 1, _, _}} = Hammer.Backend.ETS.get_bucket(pid, key)
# With two hits
assert {:ok, 2} = Hammer.Backend.ETS.count_hit(pid, key, stamp)
assert {:ok, {{_, "two"}, 2, _, _}} = Hammer.Backend.ETS.get_bucket(pid, key)
end

test "delete_buckets", context do
pid = context[:pid]
{stamp, key} = Hammer.Utils.stamp_key("three", 200_000)
# With no hits
assert {:ok, 0} = Hammer.Backend.ETS.delete_buckets(pid, "three")
# With three hits in same bucket
assert {:ok, 1} = Hammer.Backend.ETS.count_hit(pid, key, stamp)
assert {:ok, 2} = Hammer.Backend.ETS.count_hit(pid, key, stamp)
assert {:ok, 3} = Hammer.Backend.ETS.count_hit(pid, key, stamp)
assert {:ok, 1} = Hammer.Backend.ETS.delete_buckets(pid, "three")
end
end
71 changes: 0 additions & 71 deletions test/hammer_test.exs
Expand Up @@ -81,74 +81,3 @@ defmodule HammerTest do
assert {:ok, 0} = Hammer.delete_buckets("unknown-bucket")
end
end

defmodule ETSTest do
use ExUnit.Case

setup _context do
{:ok, hammer_ets_pid} = Hammer.Backend.ETS.start_link()
{:ok, [pid: hammer_ets_pid]}
end

test "count_hit", context do
pid = context[:pid]
{stamp, key} = Hammer.Utils.stamp_key("one", 200_000)
assert {:ok, 1} = Hammer.Backend.ETS.count_hit(pid, key, stamp)
assert {:ok, 2} = Hammer.Backend.ETS.count_hit(pid, key, stamp)
assert {:ok, 3} = Hammer.Backend.ETS.count_hit(pid, key, stamp)
end

test "get_bucket", context do
pid = context[:pid]
{stamp, key} = Hammer.Utils.stamp_key("two", 200_000)
# With no hits
assert {:ok, nil} = Hammer.Backend.ETS.get_bucket(pid, key)
# With one hit
assert {:ok, 1} = Hammer.Backend.ETS.count_hit(pid, key, stamp)
assert {:ok, {{_, "two"}, 1, _, _}} = Hammer.Backend.ETS.get_bucket(pid, key)
# With two hits
assert {:ok, 2} = Hammer.Backend.ETS.count_hit(pid, key, stamp)
assert {:ok, {{_, "two"}, 2, _, _}} = Hammer.Backend.ETS.get_bucket(pid, key)
end

test "delete_buckets", context do
pid = context[:pid]
{stamp, key} = Hammer.Utils.stamp_key("three", 200_000)
# With no hits
assert {:ok, 0} = Hammer.Backend.ETS.delete_buckets(pid, "three")
# With three hits in same bucket
assert {:ok, 1} = Hammer.Backend.ETS.count_hit(pid, key, stamp)
assert {:ok, 2} = Hammer.Backend.ETS.count_hit(pid, key, stamp)
assert {:ok, 3} = Hammer.Backend.ETS.count_hit(pid, key, stamp)
assert {:ok, 1} = Hammer.Backend.ETS.delete_buckets(pid, "three")
end
end

defmodule UtilsTest do
use ExUnit.Case

test "timestamp" do
assert is_integer(Hammer.Utils.timestamp())
end

test "stamp_key" do
id = "test_one_two"
{stamp, key} = Hammer.Utils.stamp_key(id, 60_000)
assert is_integer(stamp)
assert is_tuple(key)
{bucket_number, b_id} = key
assert is_integer(bucket_number)
assert b_id == id
end

test "get_backend_module" do
# With :single and default backend config
assert Hammer.Utils.get_backend_module(:single) == Hammer.Backend.ETS
# With :single and configured backend config
Application.put_env(:hammer, :backend, {Hammer.Backend.SomeBackend, []})
assert Hammer.Utils.get_backend_module(:single) == Hammer.Backend.SomeBackend
# with a specific backend config
Application.put_env(:hammer, :backend, one: {Hammer.Backend.SomeBackend, []})
assert Hammer.Utils.get_backend_module(:one) == Hammer.Backend.SomeBackend
end
end
28 changes: 28 additions & 0 deletions test/hammer_util_test.exs
@@ -0,0 +1,28 @@
defmodule UtilsTest do
use ExUnit.Case

test "timestamp" do
assert is_integer(Hammer.Utils.timestamp())
end

test "stamp_key" do
id = "test_one_two"
{stamp, key} = Hammer.Utils.stamp_key(id, 60_000)
assert is_integer(stamp)
assert is_tuple(key)
{bucket_number, b_id} = key
assert is_integer(bucket_number)
assert b_id == id
end

test "get_backend_module" do
# With :single and default backend config
assert Hammer.Utils.get_backend_module(:single) == Hammer.Backend.ETS
# With :single and configured backend config
Application.put_env(:hammer, :backend, {Hammer.Backend.SomeBackend, []})
assert Hammer.Utils.get_backend_module(:single) == Hammer.Backend.SomeBackend
# with a specific backend config
Application.put_env(:hammer, :backend, one: {Hammer.Backend.SomeBackend, []})
assert Hammer.Utils.get_backend_module(:one) == Hammer.Backend.SomeBackend
end
end

0 comments on commit 7a354bf

Please sign in to comment.