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

+ 38 - 0
test/sc_test.exs

@@ -0,0 +1,38 @@
+ExUnit.start()
+
+defmodule Sc.Test do
+    use ExUnit.Case, async: true
+    require KVS
+    import Record
+    @moduledoc """
+        refined old scenarios
+    """
+
+    defrecord(:msg, id: [], body: [])
+
+    setup do: (on_exit(fn -> :ok = :kvs.leave();:ok = :kvs.destroy() end);:kvs.join())
+    setup kvs, do: [
+        id0: :lists.map(fn _ -> :kvs.append(msg(id: :kvs.seq([],[])), "/crm/duck") end, :lists.seq(1,10)),
+        id1: :lists.map(fn _ -> :kvs.append(msg(id: :kvs.seq([],[])), "/crm/luck") end, :lists.seq(1,10)),
+        id2: :lists.map(fn _ -> :kvs.append(msg(id: :kvs.seq([],[])), "/crm/truck") 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))
+        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)
+        assert 10 == length(b)
+        assert :kvs.all("/crm/truck") == KVS.reader(x2, :args)
+        assert KVS.reader(x1, :args) == b
+        assert length(KVS.reader(x1, :args)) == length(KVS.reader(x2, :args))
+    end
+
+    defp log(x), do: IO.puts '#{inspect(x)}'
+    defp log(m, x), do: IO.puts '#{m} #{inspect(x)}'
+end