dxt 4 лет назад
Родитель
Сommit
38d3513335
1 измененных файлов с 13 добавлено и 11 удалено
  1. 13 11
      test/sc_test.exs

+ 13 - 11
test/sc_test.exs

@@ -18,16 +18,11 @@ defmodule Sc.Test do
         id3: :lists.map(fn _ -> :kvs.save(:kvs.add(KVS.writer(:kvs.writer(:sym),
                                         args: msg(id: :kvs.seq([],[]))))) end, :lists.seq(1,10))]
     test "basic", kvs do
-        id1 = "/crm/luck"
-        id2 = "/crm/truck"
-        :kvs.save(:kvs.writer(id1))
-        :kvs.save(:kvs.writer(id2))
-
-        KVS.reader(id: rid1) = :kvs.save(:kvs.reader(id1))
-        KVS.reader(id: rid2) = :kvs.save(:kvs.reader(id2))
+        KVS.reader(id: rid1) = :kvs.save(:kvs.reader("/crm/luck"))
+        KVS.reader(id: rid2) = :kvs.save(:kvs.reader("/crm/truck"))
         x1 = :kvs.take(KVS.reader(:kvs.load_reader(rid1), args: 20))
         x2 = :kvs.take(KVS.reader(:kvs.load_reader(rid2), args: 20))
-        b = :kvs.feed(id1)
+        b = :kvs.feed("/crm/luck")
         assert 10 == length(b)
         assert :kvs.all("/crm/truck") == KVS.reader(x2, :args)
         assert KVS.reader(x1, :args) == b
@@ -35,21 +30,28 @@ defmodule Sc.Test do
     end
 
     test "sym",kvs do
-        :kvs.save(:kvs.writer(:sym))
         KVS.writer(args: last) = Enum.at(kvs[:id3],-1)
         {:ok, KVS.writer(id: :sym, count: 10, cache: last)} = :kvs.get(:writer, :sym)
     end
 
     test "take back full" do
         feed = "/crm/duck"
-        :kvs.save(:kvs.writer(feed))
         KVS.reader(id: rid) = :kvs.save(:kvs.reader(feed))
         t = KVS.reader(args: a1) = :kvs.take(KVS.reader(:kvs.load_reader(rid), args: 10))
         assert a1 == :kvs.feed(feed)
         :kvs.save(KVS.reader(t, dir: 1))
         KVS.reader(args: a2) = :kvs.take(KVS.reader(:kvs.load_reader(rid), args: 10))
         assert :lists.reverse(a2) == :kvs.feed(feed)
-  end
+    end
+
+    test "partial take back" do
+        log "all",:kvs.all("/crm/luck")
+        KVS.reader(id: rid) = :kvs.save(:kvs.reader("/crm/luck"))
+        r = KVS.reader(args: t) = :kvs.take(KVS.reader(:kvs.load_reader(rid), args: 2))
+        :kvs.save(KVS.reader(r, dir: 1))
+        KVS.reader(args: n) = :kvs.take(KVS.reader(:kvs.load_reader(rid), args: 3))
+        assert :lists.reverse(t) == tl(n)
+    end
 
     defp log(x), do: IO.puts '#{inspect(x)}'
     defp log(m, x), do: IO.puts '#{m} #{inspect(x)}'