Skip to content
Snippets Groups Projects

Resolve "Rewrite tests/identity/augmentation/excludedIsMember_test.exs"

1 file
+ 44
8
Compare changes
  • Side-by-side
  • Inline
@@ -75,7 +75,7 @@ defmodule Identity.Augmentation.ExcludedIsMemberTest do
doctest Index.Augmentation.IIndex
setup_all do
# Test with 5 entries, ENTRY.member = true
# Test with 5 entries in ets, ENTRY.member = true
local_iindex_test = :ets.new(:local_iindex, [:set, :protected])
{:ok, :global_iindex_test} =
@@ -101,12 +101,11 @@ defmodule Identity.Augmentation.ExcludedIsMemberTest do
:dets.close(:global_iindex_test)
:file.delete('test/global_iindex_test')
# Test with 3 entries in dets, ENTRY.member = false
# Test with 1 entry in ets, 3 entries in dets, ENTRY.member = false
local_iindex_test = :ets.new(:local_iindex, [:set, :protected])
{:ok, :global_iindex_test} =
:dets.open_file(:global_iindex_test, [{:file, 'test/global_iindex_test'}, {:type, :set}])
:dets.open_file(:global_iindex_test, [{:file, 'test/global_iindex_test'}, {:type, :set}])
:ets.insert(local_iindex_test, {0, @iindex_member_false})
@@ -122,16 +121,53 @@ defmodule Identity.Augmentation.ExcludedIsMemberTest do
if entry.member do
entry.excludedIsMember && acc
else
[[first]|_] = :dets.match(:global_iindex_test, {:_, %{pub: entry.pub, member: :"$2"}})
acc && (first == entry.excludedIsMember)
[[first] | _] = :dets.match(:global_iindex_test, {:_, %{pub: entry.pub, member: :"$2"}})
acc && first == entry.excludedIsMember
end
end)
{:ok, test0: allExcludedIsMember0, test1: allExcludedIsMember1}
# Test with several entries in ets, several entries in dets, ENTRY.member = false
local_iindex_test = :ets.new(:local_iindex, [:set, :protected])
{:ok, :global_iindex_test} =
:dets.open_file(:global_iindex_test, [{:file, 'test/global_iindex_test'}, {:type, :set}])
:ets.insert(local_iindex_test, {0, @iindex_member_false})
:ets.insert(local_iindex_test, {1, @iindex_member_false})
:ets.insert(local_iindex_test, {2, @iindex_member_true})
:ets.insert(local_iindex_test, {3, @iindex_member_true})
:ets.insert(local_iindex_test, {4, @iindex_member_false})
:dets.insert(:global_iindex_test, {0, @iindex_member_true})
:dets.insert(:global_iindex_test, {1, @iindex_0})
:dets.insert(:global_iindex_test, {2, @iindex_1})
Index.Augmentation.IIndex.excludedIsMember(local_iindex_test, :global_iindex_test)
allExcludedIsMember2 =
:ets.match(local_iindex_test, {:_, :"$1"})
|> Enum.reduce(true, fn [entry], acc ->
if entry.member do
entry.excludedIsMember && acc
else
[[first] | _] = :dets.match(:global_iindex_test, {:_, %{pub: entry.pub, member: :"$2"}})
acc && first == entry.excludedIsMember
end
end)
{:ok, test0: allExcludedIsMember0, test1: allExcludedIsMember1, test2: allExcludedIsMember2}
end
test "Test excludedIsMember", state do
test "Test excludedIsMember : 5 entries in ets, ENTRY.member = true", state do
assert state.test0
end
test "Test excludedIsMember : 1 entry in ets, 3 entries in dets, ENTRY.member = false", state do
assert state.test1
end
test "Test excludedIsMember : several entries in ets, several entries in dets, ENTRY.member = false",
state do
assert state.test2
end
end
Loading