active-fedora 6.7.8 → 6.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +1 -0
  3. data/.rubocop.yml +1 -0
  4. data/.rubocop_todo.yml +938 -0
  5. data/.travis.yml +5 -6
  6. data/Gemfile +3 -1
  7. data/Rakefile +7 -5
  8. data/active-fedora.gemspec +7 -8
  9. data/lib/active_fedora/om_datastream.rb +1 -0
  10. data/lib/active_fedora/rdf_xml_writer.rb +31 -62
  11. data/lib/active_fedora/version.rb +1 -1
  12. data/spec/config_helper.rb +14 -14
  13. data/spec/integration/associations_spec.rb +232 -232
  14. data/spec/integration/attributes_spec.rb +11 -12
  15. data/spec/integration/auditable_spec.rb +10 -10
  16. data/spec/integration/base_spec.rb +163 -163
  17. data/spec/integration/bug_spec.rb +7 -7
  18. data/spec/integration/complex_rdf_datastream_spec.rb +88 -88
  19. data/spec/integration/datastream_collections_spec.rb +69 -69
  20. data/spec/integration/datastream_spec.rb +43 -43
  21. data/spec/integration/datastreams_spec.rb +63 -63
  22. data/spec/integration/delegating_spec.rb +14 -14
  23. data/spec/integration/delete_all_spec.rb +38 -42
  24. data/spec/integration/fedora_solr_sync_spec.rb +5 -5
  25. data/spec/integration/full_featured_model_spec.rb +101 -101
  26. data/spec/integration/has_many_associations_spec.rb +24 -24
  27. data/spec/integration/model_spec.rb +30 -30
  28. data/spec/integration/nested_attribute_spec.rb +41 -41
  29. data/spec/integration/ntriples_datastream_spec.rb +107 -107
  30. data/spec/integration/om_datastream_spec.rb +67 -67
  31. data/spec/integration/persistence_spec.rb +6 -6
  32. data/spec/integration/rdf_nested_attributes_spec.rb +56 -56
  33. data/spec/integration/relation_delegation_spec.rb +24 -26
  34. data/spec/integration/rels_ext_datastream_spec.rb +20 -20
  35. data/spec/integration/scoped_query_spec.rb +40 -41
  36. data/spec/integration/solr_instance_loader_spec.rb +4 -4
  37. data/spec/integration/solr_service_spec.rb +46 -46
  38. data/spec/rails3_test_app/config/application.rb +1 -1
  39. data/spec/rails3_test_app/config/environments/development.rb +0 -1
  40. data/spec/rails3_test_app/config/environments/production.rb +1 -1
  41. data/spec/rails3_test_app/spec/spec_helper.rb +3 -3
  42. data/spec/rails3_test_app/spec/unit/rails_3_init.rb +4 -4
  43. data/spec/samples/hydra-mods_article_datastream.rb +334 -334
  44. data/spec/samples/hydra-rights_metadata_datastream.rb +57 -57
  45. data/spec/samples/marpa-dc_datastream.rb +17 -17
  46. data/spec/samples/models/audio_record.rb +16 -16
  47. data/spec/samples/models/image.rb +2 -2
  48. data/spec/samples/models/mods_article.rb +5 -5
  49. data/spec/samples/models/oral_history.rb +18 -18
  50. data/spec/samples/models/seminar.rb +24 -24
  51. data/spec/samples/models/seminar_audio_file.rb +17 -17
  52. data/spec/samples/oral_history_sample_model.rb +21 -21
  53. data/spec/samples/special_thing.rb +14 -14
  54. data/spec/spec_helper.rb +7 -11
  55. data/spec/support/an_active_model.rb +2 -2
  56. data/spec/support/mock_fedora.rb +16 -17
  57. data/spec/unit/active_fedora_spec.rb +58 -58
  58. data/spec/unit/association_proxy_spec.rb +5 -7
  59. data/spec/unit/base_active_model_spec.rb +25 -26
  60. data/spec/unit/base_cma_spec.rb +5 -5
  61. data/spec/unit/base_datastream_management_spec.rb +27 -27
  62. data/spec/unit/base_delegate_spec.rb +80 -82
  63. data/spec/unit/base_delegate_to_spec.rb +37 -39
  64. data/spec/unit/base_extra_spec.rb +48 -48
  65. data/spec/unit/base_spec.rb +300 -300
  66. data/spec/unit/callback_spec.rb +19 -19
  67. data/spec/unit/code_configurator_spec.rb +17 -17
  68. data/spec/unit/config_spec.rb +16 -8
  69. data/spec/unit/content_model_spec.rb +60 -60
  70. data/spec/unit/datastream_collections_spec.rb +229 -229
  71. data/spec/unit/datastream_spec.rb +57 -54
  72. data/spec/unit/datastreams_spec.rb +77 -77
  73. data/spec/unit/file_configurator_spec.rb +217 -217
  74. data/spec/unit/has_and_belongs_to_many_collection_spec.rb +26 -26
  75. data/spec/unit/has_many_collection_spec.rb +9 -9
  76. data/spec/unit/inheritance_spec.rb +12 -13
  77. data/spec/unit/model_spec.rb +41 -51
  78. data/spec/unit/nom_datastream_spec.rb +15 -15
  79. data/spec/unit/ntriples_datastream_spec.rb +112 -112
  80. data/spec/unit/om_datastream_spec.rb +233 -227
  81. data/spec/unit/persistence_spec.rb +6 -6
  82. data/spec/unit/predicates_spec.rb +73 -73
  83. data/spec/unit/property_spec.rb +9 -17
  84. data/spec/unit/qualified_dublin_core_datastream_spec.rb +33 -33
  85. data/spec/unit/query_spec.rb +188 -217
  86. data/spec/unit/rdf_datastream_spec.rb +28 -21
  87. data/spec/unit/rdf_list_nested_attributes_spec.rb +34 -34
  88. data/spec/unit/rdf_list_spec.rb +80 -104
  89. data/spec/unit/rdf_node_spec.rb +7 -7
  90. data/spec/unit/rdf_xml_writer_spec.rb +10 -10
  91. data/spec/unit/rdfxml_rdf_datastream_spec.rb +27 -27
  92. data/spec/unit/relationship_graph_spec.rb +51 -51
  93. data/spec/unit/rels_ext_datastream_spec.rb +75 -69
  94. data/spec/unit/rspec_matchers/belong_to_associated_active_fedora_object_matcher_spec.rb +15 -15
  95. data/spec/unit/rspec_matchers/have_many_associated_active_fedora_objects_matcher_spec.rb +15 -15
  96. data/spec/unit/rspec_matchers/have_predicate_matcher_spec.rb +15 -15
  97. data/spec/unit/rspec_matchers/match_fedora_datastream_matcher_spec.rb +12 -12
  98. data/spec/unit/rubydora_connection_spec.rb +5 -5
  99. data/spec/unit/semantic_node_spec.rb +59 -59
  100. data/spec/unit/serializers_spec.rb +4 -4
  101. data/spec/unit/service_definitions_spec.rb +26 -26
  102. data/spec/unit/simple_datastream_spec.rb +17 -17
  103. data/spec/unit/solr_config_options_spec.rb +27 -28
  104. data/spec/unit/solr_digital_object_spec.rb +21 -21
  105. data/spec/unit/solr_service_spec.rb +81 -81
  106. data/spec/unit/unsaved_digital_object_spec.rb +20 -20
  107. data/spec/unit/validations_spec.rb +21 -21
  108. metadata +70 -58
  109. data/gemfiles/gemfile.rails3 +0 -11
  110. data/gemfiles/gemfile.rails4 +0 -10
@@ -1,10 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe "delegating attributes" do
3
+ describe 'delegating attributes' do
4
4
  before :all do
5
5
  class TitledObject < ActiveFedora::Base
6
6
  has_metadata 'foo', type: ActiveFedora::SimpleDatastream do |m|
7
- m.field "title", :string
7
+ m.field 'title', :string
8
8
  end
9
9
  has_attributes :title, datastream: 'foo', multiple: false
10
10
  end
@@ -13,21 +13,20 @@ describe "delegating attributes" do
13
13
  Object.send(:remove_const, :TitledObject)
14
14
  end
15
15
 
16
- describe "save" do
16
+ describe 'save' do
17
17
  subject do
18
- obj = TitledObject.create
19
- obj.title = "Hydra for Dummies"
18
+ obj = TitledObject.create
19
+ obj.title = 'Hydra for Dummies'
20
20
  obj.save
21
21
  obj
22
22
  end
23
- it "should keep a list of changes after a successful save" do
24
- subject.previous_changes.should_not be_empty
25
- subject.previous_changes.keys.should include("title")
23
+ it 'should keep a list of changes after a successful save' do
24
+ expect(subject.previous_changes).not_to be_empty
25
+ expect(subject.previous_changes.keys).to include('title')
26
26
  end
27
- it "should clean out changes" do
28
- subject.title_changed?.should be_false
29
- subject.changes.should be_empty
27
+ it 'should clean out changes' do
28
+ expect(subject.title_changed?).to be_falsey
29
+ expect(subject.changes).to be_empty
30
30
  end
31
31
  end
32
32
  end
33
-
@@ -12,18 +12,18 @@ describe ActiveFedora::Auditable do
12
12
  after(:all) do
13
13
  @test_object.delete
14
14
  end
15
- it "should have the correct number of audit records" do
16
- @test_object.audit_trail.records.length.should == 1
15
+ it 'should have the correct number of audit records' do
16
+ expect(@test_object.audit_trail.records.length).to eq(1)
17
17
  end
18
- it "should return all the data from each audit record" do
18
+ it 'should return all the data from each audit record' do
19
19
  record = @test_object.audit_trail.records.last
20
- record.id.should == "AUDREC1"
21
- record.process_type.should == "Fedora API-M"
22
- record.action.should == "addDatastream"
23
- record.component_id.should == "RELS-EXT"
24
- record.responsibility.should == "fedoraAdmin"
20
+ expect(record.id).to eq('AUDREC1')
21
+ expect(record.process_type).to eq('Fedora API-M')
22
+ expect(record.action).to eq('addDatastream')
23
+ expect(record.component_id).to eq('RELS-EXT')
24
+ expect(record.responsibility).to eq('fedoraAdmin')
25
25
  expect(DateTime.parse(record.date)).to eq DateTime.parse(@test_object.modified_date)
26
- record.justification.should == ""
26
+ expect(record.justification).to eq('')
27
27
  end
28
-
28
+
29
29
  end
@@ -1,73 +1,73 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe "A base object with metadata" do
3
+ describe 'A base object with metadata' do
4
4
  before :all do
5
5
  class MockAFBaseRelationship < ActiveFedora::Base
6
- has_metadata :name=>'foo', :type=>Hydra::ModsArticleDatastream
6
+ has_metadata :name => 'foo', :type => Hydra::ModsArticleDatastream
7
7
  end
8
8
  end
9
9
  after :all do
10
10
  Object.send(:remove_const, :MockAFBaseRelationship)
11
11
  end
12
- describe "a new document" do
12
+ describe 'a new document' do
13
13
  before do
14
14
  @obj = MockAFBaseRelationship.new
15
15
 
16
- @obj.foo.person = "bob"
16
+ @obj.foo.person = 'bob'
17
17
  @obj.save
18
18
  end
19
- it "should save the datastream." do
20
- obj = ActiveFedora::Base.find(@obj.pid, :cast=>true)
21
- obj.foo.should_not be_new
22
- obj.foo.person.should == ['bob']
19
+ it 'should save the datastream.' do
20
+ obj = ActiveFedora::Base.find(@obj.pid, :cast => true)
21
+ expect(obj.foo).not_to be_new
22
+ expect(obj.foo.person).to eq(['bob'])
23
23
  person_field = ActiveFedora::SolrService.solr_name('person', type: :string)
24
- ActiveFedora::SolrService.query("{!raw f=id}#{@obj.pid}", :fl=>"id #{person_field}").first.should == {"id"=>@obj.pid, person_field =>['bob']}
24
+ expect(ActiveFedora::SolrService.query("{!raw f=id}#{@obj.pid}", :fl => "id #{person_field}").first).to eq({'id' => @obj.pid, person_field => ['bob']})
25
25
  end
26
26
  end
27
27
 
28
- describe "setting object state" do
29
- it "should store it" do
28
+ describe 'setting object state' do
29
+ it 'should store it' do
30
30
  obj = MockAFBaseRelationship.create
31
- obj.state='D'
31
+ obj.state = 'D'
32
32
  obj.save!
33
33
  obj.reload
34
- obj.state.should == 'D'
34
+ expect(obj.state).to eq('D')
35
35
  end
36
36
  end
37
37
 
38
- describe "that already exists in the repo" do
38
+ describe 'that already exists in the repo' do
39
39
  before do
40
40
  @release = MockAFBaseRelationship.create()
41
41
  @release.add_relationship(:is_governed_by, 'info:fedora/test:catalog-fixture')
42
42
  @release.add_relationship(:is_part_of, 'info:fedora/test:777')
43
- @release.foo.person = "test foo content"
43
+ @release.foo.person = 'test foo content'
44
44
  @release.save
45
45
  end
46
- describe "and has been changed" do
46
+ describe 'and has been changed' do
47
47
  before do
48
48
  @release.foo.person = 'frank'
49
49
  @release.save!
50
50
  end
51
- it "should save the datastream." do
52
- MockAFBaseRelationship.find(@release.pid).foo.person.should == ['frank']
51
+ it 'should save the datastream.' do
52
+ expect(MockAFBaseRelationship.find(@release.pid).foo.person).to eq(['frank'])
53
53
  person_field = ActiveFedora::SolrService.solr_name('person', type: :string)
54
- ActiveFedora::SolrService.query("id:#{@release.pid.gsub(":", "\\:")}", :fl=>"id #{person_field}").first.should == {"id"=>@release.pid, person_field =>['frank']}
54
+ expect(ActiveFedora::SolrService.query("id:#{@release.pid.gsub(":", "\\:")}", :fl => "id #{person_field}").first).to eq({'id' => @release.pid, person_field => ['frank']})
55
55
  end
56
56
  end
57
- describe "clone_into a new object" do
57
+ describe 'clone_into a new object' do
58
58
  before do
59
59
  begin
60
60
  new_object = MockAFBaseRelationship.find('test:999')
61
61
  new_object.delete
62
62
  rescue ActiveFedora::ObjectNotFoundError
63
63
  end
64
-
64
+
65
65
  new_object = MockAFBaseRelationship.create(:pid => 'test:999')
66
66
  @release.clone_into(new_object)
67
67
  @new_object = MockAFBaseRelationship.find('test:999')
68
68
  end
69
- it "should have all the assertions" do
70
- @new_object.rels_ext.content.should be_equivalent_to '<rdf:RDF xmlns:ns1="info:fedora/fedora-system:def/model#" xmlns:ns2="info:fedora/fedora-system:def/relations-external#" xmlns:ns0="http://projecthydra.org/ns/relations#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
69
+ it 'should have all the assertions' do
70
+ expect(@new_object.rels_ext.content).to be_equivalent_to '<rdf:RDF xmlns:ns1="info:fedora/fedora-system:def/model#" xmlns:ns2="info:fedora/fedora-system:def/relations-external#" xmlns:ns0="http://projecthydra.org/ns/relations#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
71
71
  <rdf:Description rdf:about="info:fedora/test:999">
72
72
  <ns0:isGovernedBy rdf:resource="info:fedora/test:catalog-fixture"/>
73
73
  <ns1:hasModel rdf:resource="info:fedora/afmodel:MockAFBaseRelationship"/>
@@ -76,18 +76,18 @@ describe "A base object with metadata" do
76
76
  </rdf:Description>
77
77
  </rdf:RDF>'
78
78
  end
79
- it "should have the other datastreams too" do
80
- @new_object.datastreams.keys.should include "foo"
81
- @new_object.foo.content.should be_equivalent_to @release.foo.content
79
+ it 'should have the other datastreams too' do
80
+ expect(@new_object.datastreams.keys).to include 'foo'
81
+ expect(@new_object.foo.content).to be_equivalent_to @release.foo.content
82
82
  end
83
83
  end
84
- describe "clone" do
84
+ describe 'clone' do
85
85
  before do
86
86
  @new_object = @release.clone
87
87
  end
88
- it "should have all the assertions" do
89
- @new_object.rels_ext.content.should be_equivalent_to '<rdf:RDF xmlns:ns1="info:fedora/fedora-system:def/model#" xmlns:ns2="info:fedora/fedora-system:def/relations-external#" xmlns:ns0="http://projecthydra.org/ns/relations#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
90
- <rdf:Description rdf:about="info:fedora/'+ @new_object.pid+'">
88
+ it 'should have all the assertions' do
89
+ expect(@new_object.rels_ext.content).to be_equivalent_to '<rdf:RDF xmlns:ns1="info:fedora/fedora-system:def/model#" xmlns:ns2="info:fedora/fedora-system:def/relations-external#" xmlns:ns0="http://projecthydra.org/ns/relations#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
90
+ <rdf:Description rdf:about="info:fedora/' + @new_object.pid + '">
91
91
  <ns0:isGovernedBy rdf:resource="info:fedora/test:catalog-fixture"/>
92
92
  <ns1:hasModel rdf:resource="info:fedora/afmodel:MockAFBaseRelationship"/>
93
93
  <ns2:isPartOf rdf:resource="info:fedora/test:777"/>
@@ -95,9 +95,9 @@ describe "A base object with metadata" do
95
95
  </rdf:Description>
96
96
  </rdf:RDF>'
97
97
  end
98
- it "should have the other datastreams too" do
99
- @new_object.datastreams.keys.should include "foo"
100
- @new_object.foo.content.should be_equivalent_to @release.foo.content
98
+ it 'should have the other datastreams too' do
99
+ expect(@new_object.datastreams.keys).to include 'foo'
100
+ expect(@new_object.foo.content).to be_equivalent_to @release.foo.content
101
101
  end
102
102
  end
103
103
  end
@@ -115,12 +115,12 @@ describe "A base object with metadata" do
115
115
  end
116
116
  it 'should requery Fedora' do
117
117
  @object.reload
118
- @object.foo.person.should == ['dave']
118
+ expect(@object.foo.person).to eq(['dave'])
119
119
  end
120
120
  it 'should raise an error if not persisted' do
121
121
  @object = MockAFBaseRelationship.new
122
122
  # You will want this stub or else it will be really chatty in your STDERR
123
- @object.inner_object.logger.stub(:error)
123
+ allow(@object.inner_object.logger).to receive(:error)
124
124
  expect {
125
125
  @object.reload
126
126
  }.to raise_error(ActiveFedora::ObjectNotFoundError)
@@ -128,26 +128,26 @@ describe "A base object with metadata" do
128
128
  end
129
129
  end
130
130
 
131
- describe "Datastreams synched together" do
131
+ describe 'Datastreams synched together' do
132
132
  before do
133
133
  class DSTest < ActiveFedora::Base
134
134
  def load_datastreams
135
135
  super
136
136
  unless self.datastreams.keys.include? 'test_ds'
137
- add_file_datastream("XXX",:dsid=>'test_ds', :mimeType=>'text/html')
137
+ add_file_datastream('XXX', :dsid => 'test_ds', :mimeType => 'text/html')
138
138
  end
139
139
  end
140
140
  end
141
141
  end
142
- it "Should update datastream" do
142
+ it 'Should update datastream' do
143
143
  @nc = DSTest.new
144
144
  @nc.save
145
- @nc.test_ds.content.should == 'XXX'
145
+ expect(@nc.test_ds.content).to eq('XXX')
146
146
  ds = @nc.datastreams['test_ds']
147
- ds.content = "Foobar"
147
+ ds.content = 'Foobar'
148
148
  @nc.save
149
- DSTest.find(@nc.pid).datastreams['test_ds'].content.should == 'Foobar'
150
- DSTest.find(@nc.pid).test_ds.content.should == 'Foobar'
149
+ expect(DSTest.find(@nc.pid).datastreams['test_ds'].content).to eq('Foobar')
150
+ expect(DSTest.find(@nc.pid).test_ds.content).to eq('Foobar')
151
151
  end
152
152
 
153
153
  end
@@ -161,21 +161,21 @@ describe ActiveFedora::Base do
161
161
  end
162
162
 
163
163
  class MockAFBaseFromSolr < ActiveFedora::Base
164
- has_metadata :name => "properties", :type => ActiveFedora::SimpleDatastream do |m|
165
- m.field "holding_id", :string
164
+ has_metadata :name => 'properties', :type => ActiveFedora::SimpleDatastream do |m|
165
+ m.field 'holding_id', :string
166
166
  end
167
-
168
- has_metadata :name => "descMetadata", :type => ActiveFedora::QualifiedDublinCoreDatastream do |m|
169
- m.field "created", :date, :xml_node => "created"
170
- m.field "language", :string, :xml_node => "language"
171
- m.field "creator", :string, :xml_node => "creator"
167
+
168
+ has_metadata :name => 'descMetadata', :type => ActiveFedora::QualifiedDublinCoreDatastream do |m|
169
+ m.field 'created', :date, :xml_node => 'created'
170
+ m.field 'language', :string, :xml_node => 'language'
171
+ m.field 'creator', :string, :xml_node => 'creator'
172
172
  # Created remaining fields
173
- m.field "geography", :string, :xml_node => "geography"
174
- m.field "title", :string, :xml_node => "title"
173
+ m.field 'geography', :string, :xml_node => 'geography'
174
+ m.field 'title', :string, :xml_node => 'title'
175
175
  end
176
176
  end
177
177
  end
178
-
178
+
179
179
  before(:all) do
180
180
  ActiveFedora::SolrService.register(ActiveFedora.solr_config[:url])
181
181
  end
@@ -183,12 +183,12 @@ describe ActiveFedora::Base do
183
183
  after :all do
184
184
  Object.send(:remove_const, :MockAFBaseRelationship)
185
185
  end
186
-
186
+
187
187
  before(:each) do
188
188
  @test_object = ActiveFedora::Base.new
189
189
  @test_object.save
190
190
  end
191
-
191
+
192
192
  after(:each) do
193
193
  begin
194
194
  @test_object.delete
@@ -211,15 +211,15 @@ describe ActiveFedora::Base do
211
211
  rescue
212
212
  end
213
213
  end
214
-
215
- describe ".initialize" do
216
- it "calling constructor should create a new Fedora Object" do
217
- @test_object.should have(0).errors
218
- @test_object.pid.should_not be_nil
214
+
215
+ describe '.initialize' do
216
+ it 'calling constructor should create a new Fedora Object' do
217
+ expect(@test_object.errors.size).to eq(0)
218
+ expect(@test_object.pid).not_to be_nil
219
219
  end
220
220
  end
221
-
222
- describe "#save" do
221
+
222
+ describe '#save' do
223
223
  before(:each) do
224
224
  @test_object2 = ActiveFedora::Base.new
225
225
  end
@@ -227,167 +227,167 @@ describe ActiveFedora::Base do
227
227
  after(:each) do
228
228
  @test_object2.delete
229
229
  end
230
-
231
- it "passing namespace to constructor with no pid should generate a pid with the supplied namespace" do
232
- @test_object2 = ActiveFedora::Base.new({:namespace=>"randomNamespace"})
230
+
231
+ it 'passing namespace to constructor with no pid should generate a pid with the supplied namespace' do
232
+ @test_object2 = ActiveFedora::Base.new({:namespace => 'randomNamespace'})
233
233
  # will be nil if match failed, otherwise will equal pid
234
234
  @test_object2.save
235
- @test_object2.pid.match('randomNamespace:\d+').to_a.first.should == @test_object2.pid
235
+ expect(@test_object2.pid.match('randomNamespace:\d+').to_a.first).to eq(@test_object2.pid)
236
236
  end
237
237
 
238
- it "should set the CMA hasModel relationship in the Rels-EXT" do
238
+ it 'should set the CMA hasModel relationship in the Rels-EXT' do
239
239
  @test_object2.save
240
- rexml = REXML::Document.new(@test_object2.datastreams["RELS-EXT"].content)
240
+ rexml = REXML::Document.new(@test_object2.datastreams['RELS-EXT'].content)
241
241
  # Purpose: confirm that the isMemberOf entries exist and have real RDF in them
242
- rexml.root.elements["rdf:Description/ns0:hasModel"].attributes["rdf:resource"].should == 'info:fedora/afmodel:ActiveFedora_Base'
242
+ expect(rexml.root.elements['rdf:Description/ns0:hasModel'].attributes['rdf:resource']).to eq('info:fedora/afmodel:ActiveFedora_Base')
243
243
  end
244
- it "should merge attributes from fedora into attributes hash" do
244
+ it 'should merge attributes from fedora into attributes hash' do
245
245
  @test_object2.save
246
246
  inner_object = @test_object2.inner_object
247
- inner_object.pid.should == @test_object2.pid
248
- inner_object.should respond_to(:lastModifiedDate)
247
+ expect(inner_object.pid).to eq(@test_object2.pid)
248
+ expect(inner_object).to respond_to(:lastModifiedDate)
249
249
  end
250
250
  end
251
-
252
- describe ".datastreams" do
253
- it "should return a Hash of datastreams from fedora" do
251
+
252
+ describe '.datastreams' do
253
+ it 'should return a Hash of datastreams from fedora' do
254
254
  datastreams = @test_object.datastreams
255
- datastreams.should be_a_kind_of(ActiveFedora::DatastreamHash)
256
- datastreams.each_value do |ds|
257
- ds.should be_a_kind_of(ActiveFedora::Datastream)
255
+ expect(datastreams).to be_a_kind_of(ActiveFedora::DatastreamHash)
256
+ datastreams.each_value do |ds|
257
+ expect(ds).to be_a_kind_of(ActiveFedora::Datastream)
258
258
  end
259
- @test_object.datastreams["DC"].should be_an_instance_of(ActiveFedora::Datastream)
260
- datastreams["DC"].should_not be_nil
261
- datastreams["DC"].should be_an_instance_of(ActiveFedora::Datastream)
259
+ expect(@test_object.datastreams['DC']).to be_an_instance_of(ActiveFedora::Datastream)
260
+ expect(datastreams['DC']).not_to be_nil
261
+ expect(datastreams['DC']).to be_an_instance_of(ActiveFedora::Datastream)
262
262
  end
263
- it "should initialize the datastream pointers with @new_object=false" do
263
+ it 'should initialize the datastream pointers with @new_object=false' do
264
264
  datastreams = @test_object.datastreams
265
- datastreams.each_value do |ds|
266
- ds.should_not be_new
265
+ datastreams.each_value do |ds|
266
+ expect(ds).not_to be_new
267
267
  end
268
268
  end
269
269
  end
270
-
271
- describe ".metadata_streams" do
272
- it "should return all of the datastreams from the object that are kinds of OmDatastream " do
273
- mds1 = ActiveFedora::SimpleDatastream.new(@test_object.inner_object, "md1")
274
- mds2 = ActiveFedora::QualifiedDublinCoreDatastream.new(@test_object.inner_object, "qdc")
275
- fds = ActiveFedora::Datastream.new(@test_object.inner_object, "fds")
270
+
271
+ describe '.metadata_streams' do
272
+ it 'should return all of the datastreams from the object that are kinds of OmDatastream ' do
273
+ mds1 = ActiveFedora::SimpleDatastream.new(@test_object.inner_object, 'md1')
274
+ mds2 = ActiveFedora::QualifiedDublinCoreDatastream.new(@test_object.inner_object, 'qdc')
275
+ fds = ActiveFedora::Datastream.new(@test_object.inner_object, 'fds')
276
276
  @test_object.add_datastream(mds1)
277
277
  @test_object.add_datastream(mds2)
278
- @test_object.add_datastream(fds)
279
-
278
+ @test_object.add_datastream(fds)
279
+
280
280
  result = @test_object.metadata_streams
281
- result.length.should == 2
282
- result.should include(mds1)
283
- result.should include(mds2)
281
+ expect(result.length).to eq(2)
282
+ expect(result).to include(mds1)
283
+ expect(result).to include(mds2)
284
284
  end
285
285
  end
286
-
286
+
287
287
  describe '.rels_ext' do
288
- it "should retrieve RelsExtDatastream object via rels_ext method" do
289
- @test_object.rels_ext.should be_instance_of(ActiveFedora::RelsExtDatastream)
288
+ it 'should retrieve RelsExtDatastream object via rels_ext method' do
289
+ expect(@test_object.rels_ext).to be_instance_of(ActiveFedora::RelsExtDatastream)
290
290
  end
291
-
291
+
292
292
  it 'should create the RELS-EXT datastream if it doesnt exist' do
293
293
  test_object = ActiveFedora::Base.new
294
- #test_object.datastreams["RELS-EXT"].should == nil
294
+ # test_object.datastreams["RELS-EXT"].should == nil
295
295
  test_object.rels_ext
296
- test_object.datastreams["RELS-EXT"].should_not == nil
297
- test_object.datastreams["RELS-EXT"].class.should == ActiveFedora::RelsExtDatastream
296
+ expect(test_object.datastreams['RELS-EXT']).not_to be_nil
297
+ expect(test_object.datastreams['RELS-EXT'].class).to eq(ActiveFedora::RelsExtDatastream)
298
298
  end
299
299
  end
300
300
 
301
301
  describe '.add_relationship' do
302
- it "should update the RELS-EXT datastream and relationships should end up in Fedora when the object is saved" do
303
- @test_object.add_relationship(:is_member_of, "info:fedora/demo:5")
304
- @test_object.add_relationship(:is_member_of, "info:fedora/demo:10")
305
- @test_object.add_relationship(:conforms_to, "info:fedora/afmodel:OralHistory")
302
+ it 'should update the RELS-EXT datastream and relationships should end up in Fedora when the object is saved' do
303
+ @test_object.add_relationship(:is_member_of, 'info:fedora/demo:5')
304
+ @test_object.add_relationship(:is_member_of, 'info:fedora/demo:10')
305
+ @test_object.add_relationship(:conforms_to, 'info:fedora/afmodel:OralHistory')
306
306
  @test_object.save
307
- rexml = REXML::Document.new(@test_object.datastreams["RELS-EXT"].content)
307
+ rexml = REXML::Document.new(@test_object.datastreams['RELS-EXT'].content)
308
308
  # Purpose: confirm that the isMemberOf entries exist and have real RDF in them
309
- rexml.root.attributes["xmlns:ns1"].should == 'info:fedora/fedora-system:def/relations-external#'
310
- rexml.root.elements["rdf:Description/ns1:isMemberOf[@rdf:resource='info:fedora/demo:5']"].should_not be_nil
311
- rexml.root.elements["rdf:Description/ns1:isMemberOf[@rdf:resource='info:fedora/demo:10']"].should_not be_nil
309
+ expect(rexml.root.attributes['xmlns:ns1']).to eq('info:fedora/fedora-system:def/relations-external#')
310
+ expect(rexml.root.elements["rdf:Description/ns1:isMemberOf[@rdf:resource='info:fedora/demo:5']"]).not_to be_nil
311
+ expect(rexml.root.elements["rdf:Description/ns1:isMemberOf[@rdf:resource='info:fedora/demo:10']"]).not_to be_nil
312
312
  end
313
313
  end
314
314
 
315
315
  describe '.add_file_datastream' do
316
316
 
317
- it "should set the correct mimeType if :mime_type, :mimeType, or :content_type passed in and path does not contain correct extension" do
318
- f = File.new(File.join( File.dirname(__FILE__), "../fixtures/dino_jpg_no_file_ext" ))
317
+ it 'should set the correct mimeType if :mime_type, :mimeType, or :content_type passed in and path does not contain correct extension' do
318
+ f = File.new(File.join( File.dirname(__FILE__), '../fixtures/dino_jpg_no_file_ext' ))
319
319
  @test_object.add_file_datastream(f)
320
320
  @test_object.save
321
321
  test_obj = ActiveFedora::Base.find(@test_object.pid)
322
322
  #check case where nothing passed in does not have correct mime type
323
- test_obj.datastreams["DS1"].mimeType.should == "application/octet-stream"
323
+ expect(test_obj.datastreams['DS1'].mimeType).to eq('application/octet-stream')
324
324
  @test_object2 = ActiveFedora::Base.new
325
- f = File.new(File.join( File.dirname(__FILE__), "../fixtures/dino_jpg_no_file_ext" ))
326
- @test_object2.add_file_datastream(f,{:mimeType=>"image/jpeg"})
325
+ f = File.new(File.join( File.dirname(__FILE__), '../fixtures/dino_jpg_no_file_ext' ))
326
+ @test_object2.add_file_datastream(f, {:mimeType => 'image/jpeg'})
327
327
  @test_object2.save
328
328
  test_obj = ActiveFedora::Base.find(@test_object2.pid)
329
- test_obj.datastreams["DS1"].mimeType.should == "image/jpeg"
329
+ expect(test_obj.datastreams['DS1'].mimeType).to eq('image/jpeg')
330
330
  @test_object3 = ActiveFedora::Base.new
331
- f = File.new(File.join( File.dirname(__FILE__), "../fixtures/dino_jpg_no_file_ext" ))
332
- @test_object3.add_file_datastream(f,{:mime_type=>"image/jpeg"})
331
+ f = File.new(File.join( File.dirname(__FILE__), '../fixtures/dino_jpg_no_file_ext' ))
332
+ @test_object3.add_file_datastream(f, {:mime_type => 'image/jpeg'})
333
333
  @test_object3.save
334
334
  test_obj = ActiveFedora::Base.find(@test_object3.pid)
335
- test_obj.datastreams["DS1"].mimeType.should == "image/jpeg"
335
+ expect(test_obj.datastreams['DS1'].mimeType).to eq('image/jpeg')
336
336
  @test_object4 = ActiveFedora::Base.new
337
- f = File.new(File.join( File.dirname(__FILE__), "../fixtures/dino_jpg_no_file_ext" ))
338
- @test_object4.add_file_datastream(f,{:content_type=>"image/jpeg"})
337
+ f = File.new(File.join( File.dirname(__FILE__), '../fixtures/dino_jpg_no_file_ext' ))
338
+ @test_object4.add_file_datastream(f, {:content_type => 'image/jpeg'})
339
339
  @test_object4.save
340
340
  test_obj = ActiveFedora::Base.find(@test_object4.pid)
341
- test_obj.datastreams["DS1"].mimeType.should == "image/jpeg"
341
+ expect(test_obj.datastreams['DS1'].mimeType).to eq('image/jpeg')
342
342
  end
343
343
  end
344
-
344
+
345
345
  describe '.add_datastream' do
346
-
347
- it "should be able to add datastreams" do
346
+
347
+ it 'should be able to add datastreams' do
348
348
  ds = ActiveFedora::Datastream.new(@test_object.inner_object, 'DS1')
349
- @test_object.add_datastream(ds).should be_true
349
+ expect(@test_object.add_datastream(ds)).to be_truthy
350
350
  end
351
-
352
- it "adding and saving should add the datastream to the datastreams array" do
353
- ds = ActiveFedora::Datastream.new(@test_object.inner_object, 'DS1')
351
+
352
+ it 'adding and saving should add the datastream to the datastreams array' do
353
+ ds = ActiveFedora::Datastream.new(@test_object.inner_object, 'DS1')
354
354
  ds.content = fixture('dino.jpg').read
355
- @test_object.datastreams.should_not have_key("DS1")
355
+ expect(@test_object.datastreams).not_to have_key('DS1')
356
356
  @test_object.add_datastream(ds)
357
357
  ds.save
358
- @test_object.datastreams.should have_key("DS1")
358
+ expect(@test_object.datastreams).to have_key('DS1')
359
359
  end
360
-
360
+
361
361
  end
362
-
363
- it "should retrieve blobs that match the saved blobs" do
362
+
363
+ it 'should retrieve blobs that match the saved blobs' do
364
364
  ds = ActiveFedora::Datastream.new(@test_object.inner_object, 'DS1')
365
- ds.content = "foo"
365
+ ds.content = 'foo'
366
366
  new_ds = ds.save
367
367
  @test_object.add_datastream(new_ds)
368
- @test_object.class.find(@test_object.pid).datastreams["DS1"].content.should == new_ds.content
368
+ expect(@test_object.class.find(@test_object.pid).datastreams['DS1'].content).to eq(new_ds.content)
369
369
  end
370
-
371
- describe ".create_date" do
372
- it "should return W3C date" do
373
- @test_object.create_date.should_not be_nil
370
+
371
+ describe '.create_date' do
372
+ it 'should return W3C date' do
373
+ expect(@test_object.create_date).not_to be_nil
374
374
  end
375
375
  end
376
-
377
- describe ".modified_date" do
378
- it "should return nil before saving and a W3C date after saving" do
379
- @test_object.modified_date.should_not be_nil
380
- end
376
+
377
+ describe '.modified_date' do
378
+ it 'should return nil before saving and a W3C date after saving' do
379
+ expect(@test_object.modified_date).not_to be_nil
380
+ end
381
381
  end
382
-
383
- describe "delete" do
384
-
385
- it "should delete the object from Fedora and Solr" do
382
+
383
+ describe 'delete' do
384
+
385
+ it 'should delete the object from Fedora and Solr' do
386
386
  @test_object.save
387
- ActiveFedora::Base.find_with_conditions(:id=>@test_object.pid).first["id"].should == @test_object.pid
387
+ expect(ActiveFedora::Base.find_with_conditions(:id => @test_object.pid).first['id']).to eq(@test_object.pid)
388
388
  pid = @test_object.pid # store so we can access it after deletion
389
389
  @test_object.delete
390
- ActiveFedora::Base.find_with_conditions(:id=>pid).should be_empty
390
+ expect(ActiveFedora::Base.find_with_conditions(:id => pid)).to be_empty
391
391
  end
392
392
  end
393
393
 
@@ -395,7 +395,7 @@ describe ActiveFedora::Base do
395
395
  it 'should remove a relationship from an object after a save' do
396
396
  @test_object2 = ActiveFedora::Base.new
397
397
  @test_object2.save
398
- @test_object.add_relationship(:has_part,@test_object2)
398
+ @test_object.add_relationship(:has_part, @test_object2)
399
399
  @test_object.save
400
400
  @pid = @test_object.pid
401
401
  begin
@@ -404,28 +404,28 @@ describe ActiveFedora::Base do
404
404
  puts "#{e.message}\n#{e.backtrace}"
405
405
  raise e
406
406
  end
407
- @test_object.object_relations[:has_part].should include @test_object2.internal_uri
408
- @test_object.remove_relationship(:has_part,@test_object2)
407
+ expect(@test_object.object_relations[:has_part]).to include @test_object2.internal_uri
408
+ @test_object.remove_relationship(:has_part, @test_object2)
409
409
  @test_object.save
410
410
  @test_object = ActiveFedora::Base.find(@pid)
411
- @test_object.object_relations[:has_part].should be_empty
411
+ expect(@test_object.object_relations[:has_part]).to be_empty
412
412
  end
413
413
  end
414
414
 
415
-
416
- describe "#exists?" do
417
- it "should return true for objects that exist" do
415
+
416
+ describe '#exists?' do
417
+ it 'should return true for objects that exist' do
418
418
  @obj = ActiveFedora::Base.create
419
- ActiveFedora::Base.exists?(@obj.pid).should be_true
419
+ expect(ActiveFedora::Base.exists?(@obj.pid)).to be_truthy
420
420
  end
421
421
  it "should return false for objects that don't exist" do
422
- ActiveFedora::Base.exists?('test:missing_object').should be_false
422
+ expect(ActiveFedora::Base.exists?('test:missing_object')).to be_falsey
423
423
  end
424
- it "should return false for nil" do
425
- ActiveFedora::Base.exists?(nil).should be_false
424
+ it 'should return false for nil' do
425
+ expect(ActiveFedora::Base.exists?(nil)).to be_falsey
426
426
  end
427
- it "should return false for empty" do
428
- ActiveFedora::Base.exists?('').should be_false
427
+ it 'should return false for empty' do
428
+ expect(ActiveFedora::Base.exists?('')).to be_falsey
429
429
  end
430
430
  end
431
431
  end