core: initializing a new Dataset with a Graph

This commit is contained in:
Marcel Otto 2017-04-01 01:55:35 +02:00
parent 186756bf81
commit 87ba61eeb2
2 changed files with 41 additions and 2 deletions

View file

@ -37,6 +37,13 @@ defmodule RDF.Dataset do
def new(%RDF.Description{} = description),
do: new() |> add(description)
@doc """
Creates an unnamed `RDF.Dataset` with a `RDF.Graph`.
"""
def new(%RDF.Graph{} = graph),
do: new() |> add(graph, graph.name)
@doc """
Creates an empty named `RDF.Dataset`.
"""
@ -61,6 +68,12 @@ defmodule RDF.Dataset do
def new(name, %RDF.Description{} = description),
do: new(name) |> add(description)
@doc """
Creates a named `RDF.Dataset` with a `RDF.Graph`.
"""
def new(name, %RDF.Graph{} = graph),
do: new(name) |> add(graph, graph.name)
@doc """

View file

@ -70,8 +70,8 @@ defmodule RDF.DatasetTest do
end
test "creating a named dataset with an initial description" do
ds = Dataset.new(EX.GraphName, Description.new({EX.Subject, EX.predicate, EX.Object}))
assert named_dataset?(ds, uri(EX.GraphName))
ds = Dataset.new(EX.DatasetName, Description.new({EX.Subject, EX.predicate, EX.Object}))
assert named_dataset?(ds, uri(EX.DatasetName))
assert dataset_includes_statement?(ds, {EX.Subject, EX.predicate, EX.Object})
end
@ -80,6 +80,32 @@ defmodule RDF.DatasetTest do
assert unnamed_dataset?(ds)
assert dataset_includes_statement?(ds, {EX.Subject, EX.predicate, EX.Object})
end
test "creating a named dataset with an inital graph" do
ds = Dataset.new(EX.DatasetName, Graph.new({EX.Subject, EX.predicate, EX.Object}))
assert named_dataset?(ds, uri(EX.DatasetName))
assert unnamed_graph?(Dataset.default_graph(ds))
assert dataset_includes_statement?(ds, {EX.Subject, EX.predicate, EX.Object})
ds = Dataset.new(EX.DatasetName, Graph.new(EX.GraphName, {EX.Subject, EX.predicate, EX.Object}))
assert named_dataset?(ds, uri(EX.DatasetName))
assert unnamed_graph?(Dataset.default_graph(ds))
assert named_graph?(Dataset.graph(ds, EX.GraphName), uri(EX.GraphName))
assert dataset_includes_statement?(ds, {EX.Subject, EX.predicate, EX.Object, EX.GraphName})
end
test "creating an unnamed dataset with an inital graph" do
ds = Dataset.new(Graph.new({EX.Subject, EX.predicate, EX.Object}))
assert unnamed_dataset?(ds)
assert unnamed_graph?(Dataset.default_graph(ds))
assert dataset_includes_statement?(ds, {EX.Subject, EX.predicate, EX.Object})
ds = Dataset.new(Graph.new(EX.GraphName, {EX.Subject, EX.predicate, EX.Object}))
assert unnamed_dataset?(ds)
assert unnamed_graph?(Dataset.default_graph(ds))
assert named_graph?(Dataset.graph(ds, EX.GraphName), uri(EX.GraphName))
assert dataset_includes_statement?(ds, {EX.Subject, EX.predicate, EX.Object, EX.GraphName})
end
end
describe "add" do