|
@@ -41,26 +41,48 @@ defmodule Fd.Test do
|
|
end
|
|
end
|
|
|
|
|
|
test "next", kvs do
|
|
test "next", kvs do
|
|
- log :kvs.all("/crm/luck")
|
|
|
|
last = msg(id: Enum.at(kvs[:id1],9))
|
|
last = msg(id: Enum.at(kvs[:id1],9))
|
|
KVS.reader(id: rid) = :kvs.save(:kvs.top(:kvs.reader("/crm/luck")))
|
|
KVS.reader(id: rid) = :kvs.save(:kvs.top(:kvs.reader("/crm/luck")))
|
|
kvs[:id1] |> Enum.with_index
|
|
kvs[:id1] |> Enum.with_index
|
|
|> Enum.each(fn {id,9} ->
|
|
|> 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)
|
|
|
|
|
|
+ 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)
|
|
end)
|
|
r = :kvs.load_reader(rid)
|
|
r = :kvs.load_reader(rid)
|
|
assert r == :kvs.next(r)
|
|
assert r == :kvs.next(r)
|
|
assert r == KVS.reader(:kvs.next(:kvs.bot(r)), args: [])
|
|
assert r == KVS.reader(:kvs.next(:kvs.bot(r)), args: [])
|
|
end
|
|
end
|
|
|
|
|
|
|
|
+ test "prev", kvs do
|
|
|
|
+ out = Enum.at(kvs[:id0],9)
|
|
|
|
+ KVS.reader(id: rid) = :kvs.save(:kvs.bot(:kvs.reader("/crm/luck")))
|
|
|
|
+ ids = kvs[:id1] |> Enum.reverse
|
|
|
|
+ ids |> Enum.with_index
|
|
|
|
+ |> Enum.each(fn {id,9} ->
|
|
|
|
+ r = :kvs.load_reader(rid)
|
|
|
|
+ v = msg(id: Enum.at(ids, 9))
|
|
|
|
+ assert r1 = KVS.reader(feed: "/crm/luck", cache: {:msg, ^out, "/crm/duck"}, count: 10, args: [^v]) = :kvs.prev(r)
|
|
|
|
+ assert KVS.reader(args: [], feed: "/crm/luck", cache: c1) = :kvs.save(r1)
|
|
|
|
+ {id,i} ->
|
|
|
|
+ r = :kvs.load_reader(rid)
|
|
|
|
+ v = msg(id: Enum.at(ids, i))
|
|
|
|
+ c = Enum.at(ids, i+1)
|
|
|
|
+ assert r1 = KVS.reader(feed: "/crm/luck", cache: {:msg, ^c, "/crm/luck"}, count: 10, args: [^v]) = :kvs.prev(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.prev(r)
|
|
|
|
+ assert r = KVS.reader(:kvs.prev(:kvs.top(r)), args: [])
|
|
|
|
+ end
|
|
|
|
+
|
|
|
|
+
|
|
defp log(x), do: IO.puts '#{inspect(x)}'
|
|
defp log(x), do: IO.puts '#{inspect(x)}'
|
|
defp log(m, x), do: IO.puts '#{m} #{inspect(x)}'
|
|
defp log(m, x), do: IO.puts '#{m} #{inspect(x)}'
|
|
end
|
|
end
|