st_test.exs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. ExUnit.start()
  2. defmodule St.Test do
  3. use ExUnit.Case, async: false
  4. import Record
  5. require KVS
  6. defrecord(:msg, id: [], body: [])
  7. setup do: (on_exit(fn -> :ok = :kvs.leave();:ok = :kvs_rocks.destroy() end);:kvs.join())
  8. setup kvs, do: [
  9. ids: :lists.map(fn _ -> :kvs.append(msg(id: :kvs.seq([],[])), :feed) end, :lists.seq(1,10)),
  10. id0: :lists.map(fn _ -> :kvs.append(msg(id: :kvs.seq([],[])), "/crm/personal/Реєстратор А1/in/directory/duck") end, :lists.seq(1,10)),
  11. id1: :lists.map(fn _ -> :kvs.append(msg(id: :kvs.seq([],[])), "/crm/personal/Реєстратор А1/in/mail") end, :lists.seq(1,10)),
  12. id2: :lists.map(fn _ -> :kvs.append(msg(id: :kvs.seq([],[])), "/crm/personal/Реєстратор А1/in/doc") end, :lists.seq(1,10))]
  13. test "take-ø", kvs do
  14. r = KVS.reader() = :kvs.reader("/empty-feed")
  15. assert r1 = KVS.reader(feed: "/empty-feed", args: []) = :kvs.take(KVS.reader(r, args: 1))
  16. assert r1 = KVS.reader(feed: "/empty-feed", args: []) = :kvs.take(KVS.reader(r, args: 1, dir: 1))
  17. assert r2 = KVS.reader(feed: "/empty-feed", args: []) = :kvs.next(r)
  18. assert r3 = KVS.reader(feed: "/empty-feed", args: []) = :kvs.prev(r)
  19. assert r1 = KVS.reader(feed: "/empty-feed", args: []) = :kvs.take(KVS.reader(r, args: 100))
  20. assert r1 = KVS.reader(feed: "/empty-feed", args: []) = :kvs.take(KVS.reader(r, args: 100, dir: 1))
  21. KVS.reader(id: rid) = :kvs.save(r1)
  22. assert rs1 = KVS.reader(id: rid) = :kvs.load_reader(rid)
  23. assert KVS.reader(feed: "/empty-feed", args: []) = :kvs.take(KVS.reader(rs1, args: 5))
  24. assert KVS.reader(feed: "/empty-feed", args: []) = :kvs.take(KVS.reader(rs1, args: 5, dir: 1))
  25. assert KVS.reader(feed: "/empty-feed", args: []) = :kvs.next(rs1)
  26. assert KVS.reader(feed: "/empty-feed", args: []) = :kvs.prev(rs1)
  27. assert KVS.reader(feed: "/empty-feed", args: []) = :kvs.take(KVS.reader(rs1, args: 0))
  28. assert KVS.reader(feed: "/empty-feed", args: []) = :kvs.take(KVS.reader(rs1, args: 0, dir: 1))
  29. end
  30. defp log(x), do: IO.puts '#{inspect(x)}'
  31. defp log(m, x), do: IO.puts '#{m} #{inspect(x)}'
  32. end