From 89947590cb6735e7c1f88fbcdfbc8d51ec09374e Mon Sep 17 00:00:00 2001 From: Marcel Otto Date: Tue, 9 Nov 2021 00:59:45 +0100 Subject: [PATCH] Add some test for RDF-star datasets --- test/support/rdf_case.ex | 3 +++ test/unit/star/dataset_test.exs | 43 +++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 test/unit/star/dataset_test.exs diff --git a/test/support/rdf_case.ex b/test/support/rdf_case.ex index 31e6d24..d540c2a 100644 --- a/test/support/rdf_case.ex +++ b/test/support/rdf_case.ex @@ -227,4 +227,7 @@ defmodule RDF.Test.Case do @graph_with_annotations Graph.new(init: [@annotation, @object_annotation]) def graph_with_annotations(), do: @graph_with_annotations + + @dataset_with_annotation Dataset.new(init: @annotation) + def dataset_with_annotation(), do: @dataset_with_annotation end diff --git a/test/unit/star/dataset_test.exs b/test/unit/star/dataset_test.exs new file mode 100644 index 0000000..402c2e1 --- /dev/null +++ b/test/unit/star/dataset_test.exs @@ -0,0 +1,43 @@ +defmodule RDF.Star.Dataset.Test do + use RDF.Test.Case + + test "add/3" do + dataset = + dataset() + |> Dataset.add({statement(), EX.ap1(), EX.AO1}) + |> Dataset.add({statement(), EX.ap2(), "foo", EX.Graph}) + |> Dataset.add({statement(), EX.ap3(), statement(), EX.Graph}) + + assert dataset_includes_statement?(dataset, {statement(), EX.ap1(), RDF.iri(EX.AO1)}) + + assert dataset_includes_statement?( + dataset, + {statement(), EX.ap2(), ~L"foo", RDF.iri(EX.Graph)} + ) + + assert dataset_includes_statement?( + dataset, + {statement(), EX.ap3(), statement(), RDF.iri(EX.Graph)} + ) + end + + test "put/3" do + dataset = + dataset() + |> Dataset.put({statement(), EX.ap1(), EX.AO1}) + |> Dataset.put({statement(), EX.ap2(), "foo", EX.Graph}) + |> Dataset.put({statement(), EX.ap3(), EX.AO3}) + + refute dataset_includes_statement?(dataset, {statement(), EX.ap1(), RDF.iri(EX.AO1)}) + assert dataset_includes_statement?(dataset, {statement(), EX.ap3(), RDF.iri(EX.AO3)}) + + assert dataset_includes_statement?( + dataset, + {statement(), EX.ap2(), ~L"foo", RDF.iri(EX.Graph)} + ) + end + + test "delete/3" do + assert Dataset.delete(dataset_with_annotation(), annotation()) == dataset() + end +end