68 lines
2.5 KiB
Elixir
68 lines
2.5 KiB
Elixir
defmodule RDF.BlankNode.IncrementTest do
|
|
use RDF.Test.Case
|
|
|
|
import RDF, only: [bnode: 1]
|
|
|
|
alias RDF.BlankNode.Generator
|
|
alias RDF.BlankNode.Increment
|
|
|
|
|
|
describe "generate/1" do
|
|
test "without prefix" do
|
|
assert Increment.generate(%{counter: 0, map: %{}}) ==
|
|
{bnode(0), (%{counter: 1, map: %{}})}
|
|
end
|
|
|
|
test "with prefix" do
|
|
assert Increment.generate(%{counter: 0, map: %{}, prefix: "b"}) ==
|
|
{bnode("b0"), (%{counter: 1, map: %{}, prefix: "b"})}
|
|
end
|
|
end
|
|
|
|
|
|
describe "generate_for/2" do
|
|
test "when the given string not exists in the map" do
|
|
assert Increment.generate_for("bar", %{counter: 1, map: %{"foo" => 0}}) ==
|
|
{bnode(1), (%{counter: 2, map: %{"foo" => 0, "bar" => 1}})}
|
|
end
|
|
|
|
test "when the given string exists in the map" do
|
|
assert Increment.generate_for("foo", %{counter: 1, map: %{"foo" => 0}}) ==
|
|
{bnode(0), (%{counter: 1, map: %{"foo" => 0}})}
|
|
end
|
|
|
|
test "with prefix" do
|
|
assert Increment.generate_for("bar", %{counter: 1, map: %{"foo" => 0}, prefix: "b"}) ==
|
|
{bnode("b1"), (%{counter: 2, map: %{"foo" => 0, "bar" => 1}, prefix: "b"})}
|
|
assert Increment.generate_for("foo", %{counter: 1, map: %{"foo" => 0}, prefix: "b"}) ==
|
|
{bnode("b0"), (%{counter: 1, map: %{"foo" => 0}, prefix: "b"})}
|
|
end
|
|
end
|
|
|
|
|
|
test "generator without prefix" do
|
|
{:ok, generator} = Generator.start_link(Increment)
|
|
|
|
assert Generator.generate(generator) == bnode(0)
|
|
assert Generator.generate(generator) == bnode(1)
|
|
assert Generator.generate_for(generator, "foo") == bnode(2)
|
|
assert Generator.generate(generator) == bnode(3)
|
|
assert Generator.generate_for(generator, "bar") == bnode(4)
|
|
assert Generator.generate(generator) == bnode(5)
|
|
assert Generator.generate_for(generator, "foo") == bnode(2)
|
|
assert Generator.generate(generator) == bnode(6)
|
|
end
|
|
|
|
test "generator with prefix" do
|
|
{:ok, generator} = Generator.start_link(Increment, prefix: "b")
|
|
|
|
assert Generator.generate(generator) == bnode("b0")
|
|
assert Generator.generate(generator) == bnode("b1")
|
|
assert Generator.generate_for(generator, "foo") == bnode("b2")
|
|
assert Generator.generate(generator) == bnode("b3")
|
|
assert Generator.generate_for(generator, "bar") == bnode("b4")
|
|
assert Generator.generate(generator) == bnode("b5")
|
|
assert Generator.generate_for(generator, "foo") == bnode("b2")
|
|
assert Generator.generate(generator) == bnode("b6")
|
|
end
|
|
end
|