defmodule FloofTest do use ExUnit.Case doctest Floof 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 end end