rdf-spec 1.1.13 → 1.99.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,114 +2,148 @@ require 'rdf/spec'
2
2
 
3
3
  RSpec.shared_examples 'an RDF::Writable' do
4
4
  include RDF::Spec::Matchers
5
+ let(:filename) {RDF::Spec::TRIPLES_FILE}
6
+ let(:statements) {RDF::NTriples::Reader.new(File.open(filename)).to_a}
7
+ let(:supports_graph_name) {writable.respond_to?(:supports?) && writable.supports?(:graph_name)}
5
8
 
6
9
  before :each do
7
10
  raise 'writable must be defined in with let(:readable)' unless
8
11
  defined? writable
9
-
10
- @filename = RDF::Spec::TRIPLES_FILE
11
- @statements = RDF::NTriples::Reader.new(File.open(@filename)).to_a
12
-
13
- @supports_context = writable.respond_to?(:supports?) && writable.supports?(:context)
14
12
  end
15
13
 
16
14
  subject { writable }
17
- let(:statement) {@statements.detect {|s| s.to_a.all? {|r| r.uri?}}}
18
- let(:count) {@statements.size}
15
+ let(:statement) {statements.detect {|s| s.to_a.all? {|r| r.uri?}}}
16
+ let(:count) {statements.size}
19
17
 
20
- it {should respond_to(:writable?)}
21
- its(:writable?) {should == !!subject.writable?}
18
+ it {is_expected.to respond_to(:writable?)}
19
+ its(:writable?) {is_expected.to eq !!subject.writable?}
22
20
 
23
21
  describe "#<<" do
24
22
  it "inserts a reader" do
25
- skip("writability") unless subject.writable?
26
- reader = RDF::NTriples::Reader.new(File.open(@filename)).to_a
27
- subject << reader
28
- expect(subject).to have_statement(statement)
29
- expect(subject.count).to eq count
23
+ if subject.writable?
24
+ reader = RDF::NTriples::Reader.new(File.open(filename)).to_a
25
+ subject << reader
26
+ is_expected.to have_statement(statement)
27
+ expect(subject.count).to eq count
28
+ end
30
29
  end
31
30
 
32
31
  it "inserts a graph" do
33
- skip("writability") unless subject.writable?
34
- graph = RDF::Graph.new << @statements
35
- subject << graph
36
- expect(subject).to have_statement(statement)
37
- expect(subject.count).to eq count
32
+ if subject.writable?
33
+ graph = RDF::Graph.new << statements
34
+ subject << graph
35
+ is_expected.to have_statement(statement)
36
+ expect(subject.count).to eq count
37
+ end
38
38
  end
39
39
 
40
40
  it "inserts an enumerable" do
41
- skip("writability") unless subject.writable?
42
- enumerable = @statements.dup.extend(RDF::Enumerable)
43
- subject << enumerable
44
- expect(subject).to have_statement(statement)
45
- expect(subject.count).to eq count
41
+ if subject.writable?
42
+ enumerable = statements.dup.extend(RDF::Enumerable)
43
+ subject << enumerable
44
+ is_expected.to have_statement(statement)
45
+ expect(subject.count).to eq count
46
+ end
46
47
  end
47
48
 
48
49
  it "inserts data responding to #to_rdf" do
49
- skip("writability") unless subject.writable?
50
- mock = double('mock')
51
- allow(mock).to receive(:to_rdf).and_return(@statements)
52
- subject << mock
53
- expect(subject).to have_statement(statement)
54
- expect(subject.count).to eq count
50
+ if subject.writable?
51
+ mock = double('mock')
52
+ allow(mock).to receive(:to_rdf).and_return(statements)
53
+ subject << mock
54
+ is_expected.to have_statement(statement)
55
+ expect(subject.count).to eq count
56
+ end
55
57
  end
56
58
 
57
59
  it "inserts a statement" do
58
- skip("writability") unless subject.writable?
59
- subject << statement
60
- expect(subject).to have_statement(statement)
61
- expect(subject.count).to eq 1
60
+ if subject.writable?
61
+ subject << statement
62
+ is_expected.to have_statement(statement)
63
+ expect(subject.count).to eq 1
64
+ end
62
65
  end
63
66
  end
64
67
 
65
68
  context "when inserting statements" do
66
69
  it "should support #insert" do
67
- skip("writability") unless subject.writable?
68
- expect(subject).to respond_to(:insert)
70
+ is_expected.to respond_to(:insert) if subject.writable?
69
71
  end
70
72
 
71
73
  it "should not raise errors" do
72
- skip("writability") unless subject.writable?
73
- expect { subject.insert(statement) }.not_to raise_error
74
+ expect { subject.insert(statement) }.not_to raise_error if subject.writable?
74
75
  end
75
76
 
76
77
  it "should support inserting one statement at a time" do
77
- skip("writability") unless subject.writable?
78
- subject.insert(statement)
79
- expect(subject).to have_statement(statement)
78
+ if subject.writable?
79
+ subject.insert(statement)
80
+ is_expected.to have_statement(statement)
81
+ end
80
82
  end
81
83
 
82
84
  it "should support inserting multiple statements at a time" do
83
- skip("writability") unless subject.writable?
84
- subject.insert(*@statements)
85
+ if subject.writable?
86
+ subject.insert(*statements)
87
+ statements.each do |statement|
88
+ is_expected.to have_statement(statement) unless statement.to_a.any?(&:node?)
89
+ end
90
+ end
85
91
  end
86
92
 
87
93
  it "should insert statements successfully" do
88
- skip("writability") unless subject.writable?
89
- subject.insert(*@statements)
90
- expect(subject.count).to eq count
94
+ if subject.writable?
95
+ subject.insert(*statements)
96
+ expect(subject.count).to eq count
97
+ end
91
98
  end
92
99
 
93
100
  it "should not insert a statement twice" do
94
- skip("writability") unless subject.writable?
95
- subject.insert(statement)
96
- subject.insert(statement)
97
- expect(subject.count).to eq 1
101
+ if subject.writable?
102
+ subject.insert(statement)
103
+ subject.insert(statement)
104
+ expect(subject.count).to eq 1
105
+ end
106
+ end
107
+
108
+ it "should not insert an incomplete statement" do
109
+ if subject.writable?
110
+ expect {subject.insert(RDF::Statement.from(statement.to_hash.merge(subject: nil)))}.to raise_error(ArgumentError)
111
+ expect {subject.insert(RDF::Statement.from(statement.to_hash.merge(predicate: nil)))}.to raise_error(ArgumentError)
112
+ expect {subject.insert(RDF::Statement.from(statement.to_hash.merge(object: nil)))}.to raise_error(ArgumentError)
113
+ expect(subject.count).to eql 0
114
+ end
98
115
  end
99
116
 
100
- it "should treat statements with a different context as distinct" do
101
- skip("writability") unless subject.writable?
102
- s1 = statement.dup
103
- s1.context = nil
104
- s2 = statement.dup
105
- s2.context = RDF::URI.new("urn:context:1")
106
- s3 = statement.dup
107
- s3.context = RDF::URI.new("urn:context:2")
108
- subject.insert(s1)
109
- subject.insert(s2)
110
- subject.insert(s3)
111
- # If contexts are not suported, all three are redundant
112
- expect(subject.count).to eq (@supports_context ? 3 : 1)
117
+ it "should treat statements with a different context as distinct", unless: RDF::VERSION.to_s >= "1.99" do
118
+ if subject.writable?
119
+ s1 = statement.dup
120
+ s1.context = nil
121
+ s2 = statement.dup
122
+ s2.context = RDF::URI.new("urn:context:1")
123
+ s3 = statement.dup
124
+ s3.context = RDF::URI.new("urn:context:2")
125
+ subject.insert(s1)
126
+ subject.insert(s2)
127
+ subject.insert(s3)
128
+ # If contexts are not suported, all three are redundant
129
+ expect(subject.count).to eq (supports_graph_name ? 3 : 1)
130
+ end
131
+ end
132
+
133
+ it "should treat statements with a different graph_name as distinct", if: RDF::VERSION.to_s >= "1.99" do
134
+ if subject.writable?
135
+ s1 = statement.dup
136
+ s1.graph_name = nil
137
+ s2 = statement.dup
138
+ s2.graph_name = RDF::URI.new("urn:context:1")
139
+ s3 = statement.dup
140
+ s3.graph_name = RDF::URI.new("urn:context:2")
141
+ subject.insert(s1)
142
+ subject.insert(s2)
143
+ subject.insert(s3)
144
+ # If graph_names are not suported, all three are redundant
145
+ expect(subject.count).to eq (supports_graph_name ? 3 : 1)
146
+ end
113
147
  end
114
148
  end
115
149
  end
@@ -3,7 +3,7 @@ require 'fileutils'
3
3
  require 'tmpdir'
4
4
 
5
5
  RSpec.shared_examples 'an RDF::Writer' do
6
- extend RSpec::SharedContext
6
+ include RDF::Spec::Matchers
7
7
 
8
8
  before(:each) do
9
9
  raise 'writer must be defined with let(:writer)' unless
@@ -44,7 +44,7 @@ RSpec.shared_examples 'an RDF::Writer' do
44
44
  f.file_extensions.each_pair do |sym, content_type|
45
45
  writer_mock = double("writer")
46
46
  expect(writer_mock).to receive(:got_here)
47
- expect(writer_class).to receive(:for).with(:file_name => "#{@basename}.#{sym}").and_return(writer_class)
47
+ expect(writer_class).to receive(:for).with(file_name: "#{@basename}.#{sym}").and_return(writer_class)
48
48
  writer_class.open("#{@basename}.#{sym}") do |r|
49
49
  expect(r).to be_a(RDF::Writer)
50
50
  writer_mock.got_here
@@ -59,20 +59,20 @@ RSpec.shared_examples 'an RDF::Writer' do
59
59
  writer_mock = double("writer")
60
60
  expect(writer_mock).to receive(:got_here)
61
61
  expect(writer_class).to receive(:for).with(sym).and_return(writer_class)
62
- writer_class.open("#{@basename}.#{sym}", :format => sym) do |r|
62
+ writer_class.open("#{@basename}.#{sym}", format: sym) do |r|
63
63
  expect(r).to be_a(RDF::Writer)
64
64
  writer_mock.got_here
65
65
  end
66
66
  end
67
67
  end
68
68
 
69
- it "yields writer given {:file_name => file_name}" do
69
+ it "yields writer given {file_name: file_name}" do
70
70
  writer_class.format.each do |f|
71
71
  f.file_extensions.each_pair do |sym, content_type|
72
72
  writer_mock = double("writer")
73
73
  expect(writer_mock).to receive(:got_here)
74
- expect(writer_class).to receive(:for).with(:file_name => "#{@basename}.#{sym}").and_return(writer_class)
75
- writer_class.open("#{@basename}.#{sym}", :file_name => "#{@basename}.#{sym}") do |r|
74
+ expect(writer_class).to receive(:for).with(file_name: "#{@basename}.#{sym}").and_return(writer_class)
75
+ writer_class.open("#{@basename}.#{sym}", file_name: "#{@basename}.#{sym}") do |r|
76
76
  expect(r).to be_a(RDF::Writer)
77
77
  writer_mock.got_here
78
78
  end
@@ -80,13 +80,13 @@ RSpec.shared_examples 'an RDF::Writer' do
80
80
  end
81
81
  end
82
82
 
83
- it "yields writer given {:content_type => 'a/b'}" do
83
+ it "yields writer given {content_type: 'a/b'}" do
84
84
  writer_class.format.each do |f|
85
85
  f.content_types.each_pair do |content_type, formats|
86
86
  writer_mock = double("writer")
87
87
  expect(writer_mock).to receive(:got_here)
88
- expect(writer_class).to receive(:for).with(:content_type => content_type, :file_name => @basename).and_return(writer_class)
89
- writer_class.open(@basename, :content_type => content_type) do |r|
88
+ expect(writer_class).to receive(:for).with(content_type: content_type, file_name: @basename).and_return(writer_class)
89
+ writer_class.open(@basename, content_type: content_type) do |r|
90
90
  expect(r).to be_a(RDF::Writer)
91
91
  writer_mock.got_here
92
92
  end
@@ -125,19 +125,19 @@ RSpec.shared_examples 'an RDF::Writer' do
125
125
  end
126
126
  end
127
127
 
128
- it "sets prefixes given :prefixes => {}" do
128
+ it "sets prefixes given prefixes: {}" do
129
129
  writer_mock = double("writer")
130
130
  expect(writer_mock).to receive(:got_here)
131
- writer_class.new(StringIO.new, :prefixes => {:a => "b"}) do |r|
131
+ writer_class.new(StringIO.new, prefixes: {a: "b"}) do |r|
132
132
  writer_mock.got_here
133
- expect(r.prefixes).to eq({:a => "b"})
133
+ expect(r.prefixes).to eq({a: "b"})
134
134
  end
135
135
  end
136
136
 
137
137
  #it "calls #write_prologue" do
138
138
  # writer_mock = double("writer")
139
- # writer_mock.should_receive(:got_here)
140
- # writer_class.any_instance.should_receive(:write_prologue)
139
+ # writer_mock.is_expected.to_receive(:got_here)
140
+ # writer_class.any_instance.is_expected.to_receive(:write_prologue)
141
141
  # writer_class.new(StringIO.new) do |r|
142
142
  # writer_mock.got_here
143
143
  # end
@@ -145,8 +145,8 @@ RSpec.shared_examples 'an RDF::Writer' do
145
145
  #
146
146
  #it "calls #write_epilogue" do
147
147
  # writer_mock = double("writer")
148
- # writer_mock.should_receive(:got_here)
149
- # writer_class.any_instance.should_receive(:write_epilogue)
148
+ # writer_mock.is_expected.to_receive(:got_here)
149
+ # writer_class.any_instance.is_expected.to_receive(:write_epilogue)
150
150
  # writer_class.new(StringIO.new) do |r|
151
151
  # writer_mock.got_here
152
152
  # end
@@ -155,8 +155,8 @@ RSpec.shared_examples 'an RDF::Writer' do
155
155
 
156
156
  describe "#prefixes=" do
157
157
  it "sets prefixes from hash" do
158
- writer.prefixes = {:a => "b"}
159
- expect(writer.prefixes).to eq({:a => "b"})
158
+ writer.prefixes = {a: "b"}
159
+ expect(writer.prefixes).to eq({a: "b"})
160
160
  end
161
161
  end
162
162
 
data/spec/spec_helper.rb CHANGED
@@ -5,9 +5,9 @@ require 'rdf/spec/matchers'
5
5
 
6
6
  RSpec.configure do |config|
7
7
  config.include(RDF::Spec::Matchers)
8
- config.filter_run :focus => true
8
+ config.filter_run focus: true
9
9
  config.run_all_when_everything_filtered = true
10
- config.exclusion_filter = {:ruby => lambda { |version|
10
+ config.exclusion_filter = {ruby: lambda { |version|
11
11
  RUBY_VERSION.to_s !~ /^#{version}/
12
12
  }}
13
13
  end
data/spec/version_spec.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require File.join(File.dirname(__FILE__), 'spec_helper')
2
2
 
3
3
  describe 'RDF::Spec::VERSION' do
4
- it "should match the VERSION file" do
4
+ it "is_expected.to match the VERSION file" do
5
5
  expect(RDF::Spec::VERSION.to_s).to eq File.read(File.join(File.dirname(__FILE__), '..', 'VERSION')).chomp
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdf-spec
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.13
4
+ version: 1.99.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arto Bendiken
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-05-12 00:00:00.000000000 Z
13
+ date: 2015-10-30 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rdf
@@ -18,14 +18,14 @@ dependencies:
18
18
  requirements:
19
19
  - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: '1.1'
21
+ version: '1.99'
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - "~>"
27
27
  - !ruby/object:Gem::Version
28
- version: '1.1'
28
+ version: '1.99'
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: rspec
31
31
  requirement: !ruby/object:Gem::Requirement
@@ -109,6 +109,7 @@ files:
109
109
  - lib/rdf/spec/http_adapter.rb
110
110
  - lib/rdf/spec/indexable.rb
111
111
  - lib/rdf/spec/inferable.rb
112
+ - lib/rdf/spec/inspects.rb
112
113
  - lib/rdf/spec/literal.rb
113
114
  - lib/rdf/spec/matchers.rb
114
115
  - lib/rdf/spec/mutable.rb
@@ -142,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
142
143
  version: '0'
143
144
  requirements: []
144
145
  rubyforge_project: rdf
145
- rubygems_version: 2.4.3
146
+ rubygems_version: 2.4.5.1
146
147
  signing_key:
147
148
  specification_version: 4
148
149
  summary: RSpec extensions for RDF.rb.