Skip to content

Commit ba9bdc2

Browse files
committed
Use different kind of invalid statement for testing enumerable. Add test to verify that Writable will not add an incomplete statement. (depends on ruby-rdf/rdf/issues#226).
1 parent db1a1f7 commit ba9bdc2

2 files changed

Lines changed: 18 additions & 9 deletions

File tree

lib/rdf/spec/enumerable.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040

4141
it "returns false if any statement is invalid" do
4242
if subject.respond_to?(:<<) && (subject.writable? rescue true)
43-
s = RDF::Statement.from([nil, nil, nil])
43+
s = RDF::Statement(RDF::URI("http://rubygems.org/gems/rdf"), RDF::Literal("literal"), RDF::URI("http://ar.to/#self"))
4444
if subject.supports?(:validity)
4545
expect(s).not_to be_valid
4646
subject << s

lib/rdf/spec/writable.rb

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -66,22 +66,22 @@
6666
end
6767

6868
context "when inserting statements" do
69-
it "is_expected.to support #insert" do
69+
it "should support #insert" do
7070
is_expected.to respond_to(:insert) if subject.writable?
7171
end
7272

73-
it "is_expected.to not raise errors" do
73+
it "should not raise errors" do
7474
expect { subject.insert(statement) }.not_to raise_error if subject.writable?
7575
end
7676

77-
it "is_expected.to support inserting one statement at a time" do
77+
it "should support inserting one statement at a time" do
7878
if subject.writable?
7979
subject.insert(statement)
8080
is_expected.to have_statement(statement)
8181
end
8282
end
8383

84-
it "is_expected.to support inserting multiple statements at a time" do
84+
it "should support inserting multiple statements at a time" do
8585
if subject.writable?
8686
subject.insert(*statements)
8787
statements.each do |statement|
@@ -90,22 +90,31 @@
9090
end
9191
end
9292

93-
it "is_expected.to insert statements successfully" do
93+
it "should insert statements successfully" do
9494
if subject.writable?
9595
subject.insert(*statements)
9696
expect(subject.count).to eq count
9797
end
9898
end
9999

100-
it "is_expected.to not insert a statement twice" do
100+
it "should not insert a statement twice" do
101101
if subject.writable?
102102
subject.insert(statement)
103103
subject.insert(statement)
104104
expect(subject.count).to eq 1
105105
end
106106
end
107107

108-
it "is_expected.to treat statements with a different context as distinct", unless: RDF::VERSION.to_s >= "1.99" do
108+
it "should not insert an incomplete statement" do
109+
if subject.writable?
110+
subject.insert(RDF::Statement.from(statement.to_hash.merge(subject: nil)))
111+
subject.insert(RDF::Statement.from(statement.to_hash.merge(predicate: nil)))
112+
subject.insert(RDF::Statement.from(statement.to_hash.merge(object: nil)))
113+
expect(subject.count).to eql 0
114+
end
115+
end
116+
117+
it "should treat statements with a different context as distinct", unless: RDF::VERSION.to_s >= "1.99" do
109118
if subject.writable?
110119
s1 = statement.dup
111120
s1.context = nil
@@ -121,7 +130,7 @@
121130
end
122131
end
123132

124-
it "is_expected.to treat statements with a different graph_name as distinct", if: RDF::VERSION.to_s >= "1.99" do
133+
it "should treat statements with a different graph_name as distinct", if: RDF::VERSION.to_s >= "1.99" do
125134
if subject.writable?
126135
s1 = statement.dup
127136
s1.graph_name = nil

0 commit comments

Comments
 (0)