56 lines
1.8 KiB
Elixir
56 lines
1.8 KiB
Elixir
defmodule RDF.ResourceId.GeneratorTest do
|
|
use RDF.Test.Case
|
|
|
|
doctest RDF.Resource.Generator
|
|
|
|
alias RDF.Resource.Generator
|
|
|
|
describe "RDF.BlankNode as a generator" do
|
|
test "generate/0" do
|
|
assert %BlankNode{} = bnode1 = Generator.generate(generator: BlankNode)
|
|
assert %BlankNode{} = bnode2 = Generator.generate(generator: BlankNode)
|
|
assert bnode1 != bnode2
|
|
end
|
|
|
|
test "generate/1" do
|
|
assert_raise Generator.ConfigError, fn ->
|
|
Generator.generate([generator: BlankNode], "test1")
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "RDF.BlankNode.Generator as a generator" do
|
|
test "generate/0" do
|
|
{:ok, generator} = start_supervised({RDF.BlankNode.Generator, RDF.BlankNode.Increment})
|
|
|
|
config = [generator: BlankNode.Generator, pid: generator]
|
|
|
|
assert Generator.generate(config) == RDF.bnode(0)
|
|
assert Generator.generate(config) == RDF.bnode(1)
|
|
end
|
|
|
|
test "generate/1" do
|
|
{:ok, generator} = start_supervised({RDF.BlankNode.Generator, RDF.BlankNode.Increment})
|
|
|
|
config = [generator: BlankNode.Generator, pid: generator]
|
|
|
|
assert Generator.generate(config, "test1") == RDF.bnode(0)
|
|
assert Generator.generate(config, "test2") == RDF.bnode(1)
|
|
assert Generator.generate(config, "test1") == RDF.bnode(0)
|
|
end
|
|
|
|
test "via Registry" do
|
|
{:ok, _} = start_supervised({Registry, [keys: :unique, name: Registry.ViaTest]})
|
|
|
|
name = {:via, Registry, {Registry.ViaTest, "bnode-generator-via-test"}}
|
|
|
|
{:ok, _} =
|
|
start_supervised({RDF.BlankNode.Generator, {RDF.BlankNode.Increment, [name: name]}})
|
|
|
|
config = [generator: BlankNode.Generator, pid: name]
|
|
|
|
assert Generator.generate(config) == RDF.bnode(0)
|
|
assert Generator.generate(config) == RDF.bnode(1)
|
|
end
|
|
end
|
|
end
|