|
@@ -40,6 +40,27 @@ defmodule Fd.Test do
|
|
|
assert KVS.reader(feed: "/", count: 0, dir: 0, args: [], cache: []) = :kvs.bot(:kvs.reader("/"))
|
|
|
end
|
|
|
|
|
|
+ test "next", kvs do
|
|
|
+ log :kvs.all("/crm/luck")
|
|
|
+ last = msg(id: Enum.at(kvs[:id1],9))
|
|
|
+ KVS.reader(id: rid) = :kvs.save(:kvs.top(:kvs.reader("/crm/luck")))
|
|
|
+ kvs[:id1] |> Enum.with_index
|
|
|
+ |> Enum.each(fn {id,9} ->
|
|
|
+ r = :kvs.load_reader(rid)
|
|
|
+ assert r1 = KVS.reader(feed: "/crm/luck", cache: c1, count: 10, dir: 0, args: [^last]) = :kvs.next(r)
|
|
|
+ assert KVS.reader(args: [], feed: "/crm/luck", cache: c1) = :kvs.save(r1)
|
|
|
+ {id,i} ->
|
|
|
+ v = msg(id: Enum.at(kvs[:id1],i))
|
|
|
+ c = Enum.at(kvs[:id1],i+1)
|
|
|
+ r = :kvs.load_reader(rid)
|
|
|
+ assert r1 = KVS.reader(feed: "/crm/luck", cache: {:msg,^c,"/crm/luck"}, count: 10, dir: 0, args: [^v]) = :kvs.next(r)
|
|
|
+ assert KVS.reader(args: [], feed: "/crm/luck", cache: {:msg,^c,"/crm/luck"}) = :kvs.save(r1)
|
|
|
+ end)
|
|
|
+ r = :kvs.load_reader(rid)
|
|
|
+ assert r == :kvs.next(r)
|
|
|
+ assert r == KVS.reader(:kvs.next(:kvs.bot(r)), args: [])
|
|
|
+ end
|
|
|
+
|
|
|
defp log(x), do: IO.puts '#{inspect(x)}'
|
|
|
defp log(m, x), do: IO.puts '#{m} #{inspect(x)}'
|
|
|
end
|