Skip to content
Snippets Groups Projects
Commit a00b15e6 authored by Julien29121998's avatar Julien29121998
Browse files

implements Brg40-41-43 and tests

parent 50771698
No related branches found
No related tags found
No related merge requests found
Pipeline #1344 failed
......@@ -404,8 +404,8 @@ defmodule Index.Augmentation do
def fromMember(local_cindex,global_iindex, key) do
# Get the entry waiting to be verified
[{key, entry}] = :ets.lookup(local_cindex, key)
fromMember_data = :ets.match(global_iindex, {:"$1", %{pub: entry.issuer}})
|>Enum.map(&:ets.lookup(global_iindex,&1))
fromMember_data = :dets.match(global_iindex, {:"$1", %{pub: entry.issuer}})
|>Enum.map(fn [u] -> [{_k,a}]= :dets.lookup(global_iindex,u); a end)
|>IndexUtility.duniter_reduce()
|>Map.get(:member)
:ets.insert(local_cindex, {key, Map.merge(entry, %{fromMember: fromMember_data})})
......@@ -414,8 +414,8 @@ defmodule Index.Augmentation do
def toMember(local_cindex,global_iindex, key) do
# Get the entry waiting to be verified
[{key, entry}] = :ets.lookup(local_cindex, key)
toMember_data = :ets.match(global_iindex, {:"$1", %{pub: entry.issuer}})
|>Enum.map(&:ets.lookup(global_iindex,&1))
toMember_data = :dets.match(global_iindex, {:"$1", %{pub: entry.issuer}})
|>Enum.map(fn [u] -> [{_k,a}] = :dets.lookup(global_iindex,u);a end)
|>IndexUtility.duniter_reduce()
|>Map.get(:member)
:ets.insert(local_cindex, {key, Map.merge(entry, %{toMember: toMember_data})})
......@@ -425,7 +425,7 @@ defmodule Index.Augmentation do
# Get the entry waiting to be verified
[{key, entry}] = :ets.lookup(local_cindex, key)
toLeaver_data = :ets.match(local_mindex, {:"$1", %{pub: entry.receiver}})
|>Enum.map(&:ets.lookup(local_mindex,&1))
|>Enum.map(fn [u] -> [{_k,a}] = :ets.lookup(local_mindex,u);a end)
|>IndexUtility.duniter_reduce()
|>Map.get(:leaving)
:ets.insert(local_cindex, {key, Map.merge(entry, %{toLeaver: toLeaver_data})})
......
defmodule FromMemberTest do
use ExUnit.Case
doctest Index.Augmentation.CIndex
setup_all do
:file.delete("test/global_iindex")
local_cindex = :ets.new(:"test/local_cindex", [:set, :protected])
{:ok, global_iindex} = :dets.open_file(:"test/global_iindex", type: :set)
:ets.insert(local_cindex, {0, %{issuer: "XYZ_pkey"}})
:dets.insert(global_iindex, {0, %{member: nil, pub: "XYZ_pkey"}})
:dets.insert(global_iindex, {1, %{member: true, pub: "XYZ_pkey"}})
:dets.insert(global_iindex, {2, %{member: false, pub: "XYA_pkey"}})
:dets.insert(global_iindex, {3, %{member: nil, pub: "XYZ_pkey"}})
Index.Augmentation.CIndex.fromMember(local_cindex, global_iindex,0)
[{0, entry}] = :ets.lookup(local_cindex, 0)
fromMemberTrue = entry.fromMember
:dets.close(global_iindex)
:file.delete("test/local_cindex")
:file.delete("test/global_iindex")
local_cindex = :ets.new(:"test/local_cindex", [:set, :protected])
{:ok, global_iindex} = :dets.open_file(:"test/global_iindex", type: :set)
:ets.insert(local_cindex, {0, %{issuer: "XYZ_pkey"}})
:dets.insert(global_iindex, {0, %{member: nil, pub: "XYZ_pkey"}})
:dets.insert(global_iindex, {1, %{member: false, pub: "XYZ_pkey"}})
Index.Augmentation.CIndex.fromMember(local_cindex, global_iindex,0)
[{0, entry}] = :ets.lookup(local_cindex, 0)
fromMemberFalse = entry.fromMember
:dets.close(global_iindex)
:file.delete("test/local_cindex")
:file.delete("test/global_iindex")
{:ok, fromMemberTrue: fromMemberTrue, fromMemberFalse: fromMemberFalse}
end
test "check fromMember", state do
assert state.fromMemberTrue == true
assert state.fromMemberFalse == false
end
end
defmodule ToLeaverTest do
use ExUnit.Case
doctest Index.Augmentation.CIndex
setup_all do
local_cindex = :ets.new(:"test/local_cindex", [:set, :protected])
local_mindex = :ets.new(:"test/local_mindex", [:set, :protected])
:ets.insert(local_cindex, {0, %{receiver: "XYZ_pkey"}})
:ets.insert(local_mindex, {0, %{leaving: nil, pub: "XYZ_pkey"}})
:ets.insert(local_mindex, {1, %{leaving: true, pub: "XYZ_pkey"}})
:ets.insert(local_mindex, {2, %{leaving: false, pub: "XYA_pkey"}})
:ets.insert(local_mindex, {3, %{leaving: nil, pub: "XYZ_pkey"}})
Index.Augmentation.CIndex.toLeaver(local_cindex, local_mindex,0)
[{0, entry}] = :ets.lookup(local_cindex, 0)
toLeaverTrue = entry.toLeaver
:file.delete("test/local_cindex")
:file.delete("test/local_mindex")
local_cindex = :ets.new(:"test/local_cindex", [:set, :protected])
local_mindex = :ets.new(:"test/local_mindex", [:set, :protected])
:ets.insert(local_cindex, {0, %{receiver: "XYZ_pkey"}})
:ets.insert(local_mindex, {0, %{leaving: nil, pub: "XYZ_pkey"}})
:ets.insert(local_mindex, {1, %{leaving: false, pub: "XYZ_pkey"}})
Index.Augmentation.CIndex.toLeaver(local_cindex, local_mindex,0)
[{0, entry}] = :ets.lookup(local_cindex, 0)
toLeaverFalse = entry.toLeaver
:file.delete("test/local_cindex")
:file.delete("test/local_mindex")
{:ok, toLeaverTrue: toLeaverTrue, toLeaverFalse: toLeaverFalse}
end
test "check toLeaver", state do
assert state.toLeaverTrue == true
assert state.toLeaverFalse == false
end
end
defmodule ToMemberTest do
use ExUnit.Case
doctest Index.Augmentation.CIndex
setup_all do
:file.delete("test/global_iindex")
local_cindex = :ets.new(:"test/local_cindex", [:set, :protected])
{:ok, global_iindex} = :dets.open_file(:"test/global_iindex", type: :set)
:ets.insert(local_cindex, {0, %{issuer: "XYZ_pkey"}})
:dets.insert(global_iindex, {0, %{member: nil, pub: "XYZ_pkey"}})
:dets.insert(global_iindex, {1, %{member: true, pub: "XYZ_pkey"}})
:dets.insert(global_iindex, {2, %{member: false, pub: "XYA_pkey"}})
:dets.insert(global_iindex, {3, %{member: nil, pub: "XYZ_pkey"}})
Index.Augmentation.CIndex.toMember(local_cindex, global_iindex,0)
[{0, entry}] = :ets.lookup(local_cindex, 0)
toMemberTrue = entry.toMember
:dets.close(global_iindex)
:file.delete("test/local_cindex")
:file.delete("test/global_iindex")
local_cindex = :ets.new(:"test/local_cindex", [:set, :protected])
{:ok, global_iindex} = :dets.open_file(:"test/global_iindex", type: :set)
:ets.insert(local_cindex, {0, %{issuer: "XYZ_pkey"}})
:dets.insert(global_iindex, {0, %{member: nil, pub: "XYZ_pkey"}})
:dets.insert(global_iindex, {1, %{member: false, pub: "XYZ_pkey"}})
Index.Augmentation.CIndex.toMember(local_cindex, global_iindex,0)
[{0, entry}] = :ets.lookup(local_cindex, 0)
toMemberFalse = entry.toMember
:dets.close(global_iindex)
:file.delete("test/local_cindex")
:file.delete("test/global_iindex")
{:ok, toMemberTrue: toMemberTrue, toMemberFalse: toMemberFalse}
end
test "check toMember", state do
assert state.toMemberTrue == true
assert state.toMemberFalse == false
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment