rdf-ex/test/unit/resource_generator_test.exs

57 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