2022-11-22 15:41:59 +00:00
|
|
|
defmodule FloofTest do
|
|
|
|
use ExUnit.Case
|
|
|
|
doctest Floof
|
|
|
|
|
2022-11-23 23:56:38 +00:00
|
|
|
test "SessionManager basic" do
|
|
|
|
cur = self()
|
|
|
|
spawn_link(fn ->
|
|
|
|
Floof.SessionManager.push(:a, 0)
|
|
|
|
Floof.SessionManager.push(:a, 2)
|
|
|
|
Floof.SessionManager.push(:a, 3)
|
|
|
|
|
|
|
|
assert Floof.SessionManager.pop(:a) == {:value, 0}
|
|
|
|
assert Floof.SessionManager.pop(:a) == {:value, 2}
|
|
|
|
assert Floof.SessionManager.pop(:a) == {:value, 3}
|
|
|
|
assert Floof.SessionManager.pop(:a) == :empty
|
|
|
|
send cur, :done
|
|
|
|
end)
|
|
|
|
|
|
|
|
spawn_link(fn ->
|
|
|
|
Floof.SessionManager.push(:b, 50)
|
|
|
|
Floof.SessionManager.push(:b, 12)
|
|
|
|
Floof.SessionManager.push(:b, 1)
|
|
|
|
|
|
|
|
assert Floof.SessionManager.pop(:b) == {:value, 50}
|
|
|
|
assert Floof.SessionManager.pop(:b) == {:value, 12}
|
|
|
|
assert Floof.SessionManager.pop(:b) == {:value, 1}
|
|
|
|
assert Floof.SessionManager.pop(:b) == :empty
|
|
|
|
send cur, :done
|
|
|
|
end)
|
|
|
|
|
|
|
|
for _ <- [1,2] do
|
|
|
|
receive do
|
|
|
|
:done -> nil
|
|
|
|
end
|
|
|
|
end
|
2022-11-22 15:41:59 +00:00
|
|
|
end
|
|
|
|
end
|