fd_test.exs 1.6 KB

1234567891011121314151617181920212223242526272829303132
  1. ExUnit.start()
  2. defmodule Fd.Test do
  3. use ExUnit.Case, async: true
  4. require KVS
  5. import Record
  6. defrecord(:msg, id: [], body: [])
  7. setup do: (on_exit(fn -> :ok = :kvs.leave();:ok = :kvs.destroy() end);:kvs.join())
  8. setup kvs, do: [
  9. id0: :lists.map(fn _ -> :kvs.append(msg(id: :kvs.seq([],[])), "/crm/duck") end, :lists.seq(1,10)),
  10. id1: :lists.map(fn _ -> :kvs.append(msg(id: :kvs.seq([],[])), "/crm/luck") end, :lists.seq(1,10)),
  11. id2: :lists.map(fn _ -> :kvs.append(msg(id: :kvs.seq([],[])), "/crm/truck") end, :lists.seq(1,10)),
  12. ]
  13. test "reader", kvs do
  14. ltop = Enum.at(kvs[:id1],0)
  15. dtop = Enum.at(kvs[:id0],0)
  16. ttop = Enum.at(kvs[:id2],0)
  17. assert KVS.reader(feed: "/crm/luck", count: 10, dir: 0, args: [], cache: {:msg, ^ltop, "/crm/luck"}) = :kvs.reader("/crm/luck")
  18. assert KVS.reader(feed: "/crm/duck", count: 10, dir: 0, args: [], cache: {:msg, ^dtop, "/crm/duck"}) = :kvs.reader("/crm/duck")
  19. assert KVS.reader(feed: "/crm/truck", count: 10, dir: 0, args: [], cache: {:msg, ^ttop, "/crm/truck"}) = :kvs.reader("/crm/truck")
  20. assert KVS.reader(feed: "/crm", count: 0, dir: 0, args: [], cache: {:msg, ^dtop, "/crm/duck"}) = :kvs.reader("/crm")
  21. assert KVS.reader(feed: "/noroute", count: 0, dir: 0, args: []) = :kvs.reader("/noroute")
  22. assert KVS.reader(feed: "/", count: 0, dir: 0, args: [], cache: {:msg, ^dtop, "/crm/duck"}) = :kvs.reader("/")
  23. assert KVS.reader(feed: "", count: 0, dir: 0, args: [], cache: []) = :kvs.reader([])
  24. end
  25. defp log(x), do: IO.puts '#{inspect(x)}'
  26. defp log(m, x), do: IO.puts '#{m} #{inspect(x)}'
  27. end