active-fedora 11.0.0.rc1 → 11.0.0.rc2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/lib/active_fedora/railtie.rb +2 -2
  3. data/lib/active_fedora/version.rb +1 -1
  4. data/spec/integration/associations_spec.rb +17 -18
  5. data/spec/integration/attached_files_spec.rb +4 -4
  6. data/spec/integration/attributes_spec.rb +12 -16
  7. data/spec/integration/autosave_association_spec.rb +5 -5
  8. data/spec/integration/base_spec.rb +2 -2
  9. data/spec/integration/collection_association_spec.rb +2 -5
  10. data/spec/integration/datastream_rdf_nested_attributes_spec.rb +23 -23
  11. data/spec/integration/date_time_properties_spec.rb +1 -2
  12. data/spec/integration/direct_container_spec.rb +8 -8
  13. data/spec/integration/directly_contains_one_association_spec.rb +11 -13
  14. data/spec/integration/fedora_solr_sync_spec.rb +2 -2
  15. data/spec/integration/file_fixity_spec.rb +6 -8
  16. data/spec/integration/file_spec.rb +9 -10
  17. data/spec/integration/has_many_associations_spec.rb +6 -8
  18. data/spec/integration/indirect_container_spec.rb +8 -9
  19. data/spec/integration/json_serialization_spec.rb +4 -4
  20. data/spec/integration/ntriples_datastream_spec.rb +74 -74
  21. data/spec/integration/om_datastream_spec.rb +13 -13
  22. data/spec/integration/rdf_nested_attributes_spec.rb +6 -6
  23. data/spec/integration/relation_delegation_spec.rb +8 -8
  24. data/spec/integration/relation_spec.rb +13 -16
  25. data/spec/integration/solr_hit_spec.rb +4 -4
  26. data/spec/integration/versionable_spec.rb +132 -132
  27. data/spec/unit/aggregation/list_source_spec.rb +37 -37
  28. data/spec/unit/aggregation/ordered_reader_spec.rb +4 -4
  29. data/spec/unit/association_hash_spec.rb +15 -15
  30. data/spec/unit/attached_files_spec.rb +19 -19
  31. data/spec/unit/attributes_spec.rb +25 -25
  32. data/spec/unit/base_active_model_spec.rb +8 -8
  33. data/spec/unit/base_extra_spec.rb +5 -4
  34. data/spec/unit/base_spec.rb +9 -9
  35. data/spec/unit/change_set_spec.rb +5 -5
  36. data/spec/unit/core_spec.rb +26 -26
  37. data/spec/unit/default_model_mapper_spec.rb +3 -3
  38. data/spec/unit/fedora_spec.rb +2 -2
  39. data/spec/unit/file_configurator_spec.rb +92 -92
  40. data/spec/unit/file_spec.rb +60 -60
  41. data/spec/unit/files_hash_spec.rb +7 -7
  42. data/spec/unit/has_and_belongs_to_many_association_spec.rb +12 -12
  43. data/spec/unit/has_many_association_spec.rb +2 -2
  44. data/spec/unit/indexers/global_indexer_spec.rb +6 -6
  45. data/spec/unit/indexing_service_spec.rb +5 -5
  46. data/spec/unit/indexing_spec.rb +4 -4
  47. data/spec/unit/loadable_from_json_spec.rb +4 -4
  48. data/spec/unit/model_classifier_spec.rb +4 -4
  49. data/spec/unit/nom_datastream_spec.rb +8 -8
  50. data/spec/unit/om_datastream_spec.rb +43 -43
  51. data/spec/unit/ordered_spec.rb +142 -142
  52. data/spec/unit/orders/list_node_spec.rb +20 -20
  53. data/spec/unit/orders/ordered_list_spec.rb +96 -96
  54. data/spec/unit/orders/reflection_spec.rb +3 -3
  55. data/spec/unit/pathing_spec.rb +4 -4
  56. data/spec/unit/persistence_spec.rb +28 -28
  57. data/spec/unit/qualified_dublin_core_datastream_spec.rb +8 -8
  58. data/spec/unit/query_spec.rb +5 -5
  59. data/spec/unit/rdf/indexing_service_spec.rb +17 -17
  60. data/spec/unit/rdf_datastream_spec.rb +10 -10
  61. data/spec/unit/rdf_resource_datastream_spec.rb +37 -37
  62. data/spec/unit/rdfxml_datastream_spec.rb +14 -14
  63. data/spec/unit/readonly_spec.rb +5 -4
  64. data/spec/unit/rspec_matchers/belong_to_associated_active_fedora_object_matcher_spec.rb +9 -9
  65. data/spec/unit/rspec_matchers/have_many_associated_active_fedora_objects_matcher_spec.rb +9 -9
  66. data/spec/unit/rspec_matchers/have_predicate_matcher_spec.rb +9 -9
  67. data/spec/unit/schema_indexing_strategy_spec.rb +5 -5
  68. data/spec/unit/serializers_spec.rb +3 -4
  69. data/spec/unit/solr_hit_spec.rb +9 -9
  70. data/spec/unit/sparql_insert_spec.rb +2 -2
  71. data/spec/unit/validations_spec.rb +9 -9
  72. data/spec/unit/with_metadata/default_metadata_class_factory_spec.rb +2 -1
  73. data/spec/unit/with_metadata/metadata_node_spec.rb +3 -2
  74. metadata +2 -2
@@ -38,25 +38,25 @@ describe "Nesting attribute behavior of RDF resources" do
38
38
  end
39
39
 
40
40
  context "with an AT resource as a property" do
41
- subject { ComplexResource.new }
41
+ subject(:complex_resource) { ComplexResource.new }
42
42
 
43
43
  let(:params) { [{ subject: 'Foo' }, { subject: 'Bar' }] }
44
44
 
45
45
  before do
46
46
  ComplexResource.accepts_nested_attributes_for(*args)
47
- subject.topic_attributes = params
47
+ complex_resource.topic_attributes = params
48
48
  end
49
49
 
50
50
  context "when no options are set" do
51
51
  let(:args) { [:topic] }
52
52
 
53
53
  it "sets the attributes" do
54
- expect(subject.topic.size).to eq 2
55
- expect(subject.topic.map(&:subject)).to contain_exactly ['Foo'], ['Bar']
54
+ expect(complex_resource.topic.size).to eq 2
55
+ expect(complex_resource.topic.map(&:subject)).to contain_exactly ['Foo'], ['Bar']
56
56
  end
57
57
 
58
58
  it "marks the attributes as changed" do
59
- expect(subject.changed_attributes.keys).to eq ["topic"]
59
+ expect(complex_resource.changed_attributes.keys).to eq ["topic"]
60
60
  end
61
61
  end
62
62
 
@@ -66,7 +66,7 @@ describe "Nesting attribute behavior of RDF resources" do
66
66
  let(:params) { [{ subject: 'Foo' }, { subject: 'Bar' }] }
67
67
 
68
68
  it "does not add terms for which the proc is true" do
69
- expect(subject.topic.map(&:subject)).to eq [['Foo']]
69
+ expect(complex_resource.topic.map(&:subject)).to eq [['Foo']]
70
70
  end
71
71
  end
72
72
  end
@@ -25,30 +25,30 @@ describe ActiveFedora::Base do
25
25
  let!(:instance2) { TestClass.create!(foo: ['Alpha'], bar: ['Peanuts']) }
26
26
  let!(:instance3) { TestClass.create!(foo: ['Sigma'], bar: ['Peanuts']) }
27
27
 
28
- subject { TestClass.where(bar: 'Peanuts') }
28
+ subject(:peanuts) { TestClass.where(bar: 'Peanuts') }
29
29
 
30
30
  it "maps" do
31
- expect(subject.map(&:id)).to contain_exactly instance2.id, instance3.id
31
+ expect(peanuts.map(&:id)).to contain_exactly instance2.id, instance3.id
32
32
  end
33
33
 
34
34
  it "collects" do
35
- expect(subject.collect(&:id)).to contain_exactly instance2.id, instance3.id
35
+ expect(peanuts.collect(&:id)).to contain_exactly instance2.id, instance3.id
36
36
  end
37
37
 
38
38
  it "has each" do
39
39
  t = double
40
40
  expect(t).to receive(:foo).twice
41
- subject.each { t.foo }
41
+ peanuts.each { t.foo }
42
42
  end
43
43
 
44
44
  it "has all?" do
45
- expect(subject.all? { |t| t.foo == ['Alpha'] }).to be false
46
- expect(subject.all? { |t| t.bar == ['Peanuts'] }).to be true
45
+ expect(peanuts.all? { |t| t.foo == ['Alpha'] }).to be false
46
+ expect(peanuts.all? { |t| t.bar == ['Peanuts'] }).to be true
47
47
  end
48
48
 
49
49
  it "has include?" do
50
- expect(subject.include?(instance1)).to be false
51
- expect(subject.include?(instance2)).to be true
50
+ expect(peanuts.include?(instance1)).to be false
51
+ expect(peanuts.include?(instance2)).to be true
52
52
  end
53
53
  end
54
54
  end
@@ -15,15 +15,13 @@ describe ActiveFedora::Base do
15
15
  Object.send(:remove_const, :Book)
16
16
  end
17
17
 
18
- subject { Library.all }
18
+ subject(:libraries) { Library.all }
19
19
 
20
20
  it "is a relation" do
21
- expect(subject.class).to be ActiveFedora::Relation
21
+ expect(libraries.class).to be ActiveFedora::Relation
22
22
  end
23
23
 
24
- it "is enumerable" do
25
- expect(subject).to respond_to(:each_with_index)
26
- end
24
+ it { is_expected.to respond_to(:each_with_index) }
27
25
 
28
26
  context "when some records exist" do
29
27
  before do
@@ -34,43 +32,42 @@ describe ActiveFedora::Base do
34
32
 
35
33
  describe "is cached" do
36
34
  before do
37
- subject.to_a # trigger initial load
35
+ libraries.to_a # trigger initial load
38
36
  end
39
37
 
40
- it "is loaded" do
41
- expect(subject).to be_loaded
42
- end
38
+ it { is_expected.to be_loaded }
39
+
43
40
  it "does not reload" do
44
41
  expect_any_instance_of(ActiveFedora::Relation).to_not receive :find_each
45
- subject[0]
42
+ libraries[0]
46
43
  end
47
44
  end
48
45
 
49
46
  describe "#find" do
50
47
  it "finds one of them" do
51
- expect(subject.find(library1.id)).to eq library1
48
+ expect(libraries.find(library1.id)).to eq library1
52
49
  end
53
50
  it "finds with a block" do
54
- expect(subject.find { |l| l.id == library1.id }).to eq library1
51
+ expect(libraries.find { |l| l.id == library1.id }).to eq library1
55
52
  end
56
53
  end
57
54
 
58
55
  describe "#select" do
59
56
  it "finds with a block" do
60
- expect(subject.select { |l| l.id == library1.id }).to eq [library1]
57
+ expect(libraries.select { |l| l.id == library1.id }).to eq [library1]
61
58
  end
62
59
  end
63
60
 
64
61
  context "unpermitted methods" do
65
62
  it "excludes them" do
66
- expect { subject.sort! }.to raise_error NoMethodError
63
+ expect { libraries.sort! }.to raise_error NoMethodError
67
64
  end
68
65
  end
69
66
 
70
67
  context "when limit is applied" do
71
- subject { Library.create books: [Book.create, Book.create] }
68
+ subject(:libraries) { Library.create books: [Book.create, Book.create] }
72
69
  it "limits the number of books" do
73
- expect(subject.books.limit(1).size).to eq 1
70
+ expect(libraries.books.limit(1).size).to eq 1
74
71
  end
75
72
  end
76
73
  end
@@ -19,14 +19,14 @@ describe ActiveFedora::SolrHit do
19
19
  ) }
20
20
 
21
21
  let(:doc) { obj.to_solr }
22
- let(:solr_hit) { described_class.new(doc) }
22
+ subject(:solr_hit) { described_class.new(doc) }
23
23
 
24
24
  describe "#reify" do
25
- subject { solr_hit.reify }
25
+ let(:solr_reified) { solr_hit.reify }
26
26
 
27
27
  it "finds the document in solr" do
28
- expect(subject).to be_instance_of Foo
29
- expect(subject.title).to eq 'My Title'
28
+ expect(solr_reified).to be_instance_of Foo
29
+ expect(solr_reified.title).to eq 'My Title'
30
30
  end
31
31
  end
32
32
  end
@@ -12,45 +12,45 @@ describe ActiveFedora::Versionable do
12
12
  Object.send(:remove_const, :WithVersions)
13
13
  end
14
14
 
15
- subject { WithVersions.new }
15
+ subject(:object) { WithVersions.new }
16
16
 
17
17
  let(:current_year) { DateTime.now.year.to_s }
18
18
 
19
19
  context "saved with no versions" do
20
20
  it "does not have versions" do
21
- subject.update(title: ["Greetings Earthlings"])
22
- expect(subject).not_to have_versions
21
+ object.update(title: ["Greetings Earthlings"])
22
+ expect(object).not_to have_versions
23
23
  end
24
24
  end
25
25
 
26
26
  context "saved with versions" do
27
27
  it "has versions" do
28
- subject.update(title: ["Greetings Earthlings"])
29
- subject.create_version
30
- expect(subject).to have_versions
28
+ object.update(title: ["Greetings Earthlings"])
29
+ object.create_version
30
+ expect(object).to have_versions
31
31
  end
32
32
  end
33
33
 
34
34
  describe 'sorting versions' do
35
35
  before do
36
- allow(subject).to receive(:fedora_versions) { versions }
36
+ allow(graph).to receive(:fedora_versions) { versions }
37
37
  end
38
38
 
39
39
  let(:version1) { double('version1', uri: 'http://localhost:8983/fedora/rest/test/84/61/63/98/84616398-f63a-4572-ba01-0689339e4fcb/fcr:versions/87a0a8c317f1e711aa993d-e1d2-4a65-93ee-3a12fc9541ab', label: 'version1', created: '2015-04-02T19:54:45.962Z') }
40
40
  let(:version2) { double('version2', uri: 'http://localhost:8983/fedora/rest/test/84/61/63/98/84616398-f63a-4572-ba01-0689339e4fcb/fcr:versions/87a0a8c317f1e790373a67-c9ee-447d-b740-4faa882b1a1f', label: 'version2', created: '2015-04-02T19:54:45.96Z') }
41
41
  let(:versions) { [version1, version2] }
42
42
 
43
- subject { ActiveFedora::VersionsGraph.new }
43
+ subject(:graph) { ActiveFedora::VersionsGraph.new }
44
44
 
45
45
  it 'sorts by DateTime' do
46
- expect(subject.first).to eq version2
46
+ expect(graph.first).to eq version2
47
47
  end
48
48
 
49
49
  context 'with an unparseable created date' do
50
50
  let(:version2) { double('version2', uri: 'http://localhost:8983/fedora/rest/test/84/61/63/98/84616398-f63a-4572-ba01-0689339e4fcb/fcr:versions/87a0a8c317f1e790373a67-c9ee-447d-b740-4faa882b1a1f', label: 'version2', created: '') }
51
51
 
52
52
  it 'raises an exception' do
53
- expect { subject.first }.to raise_error(ActiveFedora::VersionLacksCreateDate)
53
+ expect { graph.first }.to raise_error(ActiveFedora::VersionLacksCreateDate)
54
54
  end
55
55
  end
56
56
 
@@ -63,62 +63,62 @@ describe ActiveFedora::Versionable do
63
63
  let(:version2) { double('version2', uri: 'http://localhost:8983/fedora/rest/test/84/61/63/98/84616398-f63a-4572-ba01-0689339e4fcb/fcr:versions/87a0a8c317f1e790373a67-c9ee-447d-b740-4faa882b1a1f', label: 'version2') }
64
64
 
65
65
  it 'raises an exception' do
66
- expect { subject.first }.to raise_error(ActiveFedora::VersionLacksCreateDate)
66
+ expect { graph.first }.to raise_error(ActiveFedora::VersionLacksCreateDate)
67
67
  end
68
68
  end
69
69
  end
70
70
 
71
71
  context "after saving" do
72
72
  before do
73
- subject.title = ["Greetings Earthlings"]
74
- subject.save
75
- subject.create_version
73
+ object.title = ["Greetings Earthlings"]
74
+ object.save
75
+ object.create_version
76
76
  end
77
77
 
78
78
  it { is_expected.to have_versions }
79
79
 
80
80
  it "has one version" do
81
- expect(subject.versions).to be_kind_of ActiveFedora::VersionsGraph
82
- expect(subject.versions.all.first).to be_kind_of ActiveFedora::VersionsGraph::ResourceVersion
83
- expect(subject.versions.all.first.label).to eql "version1"
84
- expect(subject.versions.all.first.created).to start_with current_year
81
+ expect(object.versions).to be_kind_of ActiveFedora::VersionsGraph
82
+ expect(object.versions.all.first).to be_kind_of ActiveFedora::VersionsGraph::ResourceVersion
83
+ expect(object.versions.all.first.label).to eql "version1"
84
+ expect(object.versions.all.first.created).to start_with current_year
85
85
  end
86
86
 
87
87
  context "two times" do
88
88
  before do
89
- subject.title = ["Surrender and prepare to be boarded"]
90
- subject.save
91
- subject.create_version
89
+ object.title = ["Surrender and prepare to be boarded"]
90
+ object.save
91
+ object.create_version
92
92
  end
93
93
 
94
94
  it "has two versions" do
95
- expect(subject.versions.all.size).to eq 2
96
- subject.versions.all.each_index do |index|
97
- expect(subject.versions.all[index].label).to end_with "version" + (index + 1).to_s
98
- expect(subject.versions.all[index].created).to start_with current_year
95
+ expect(object.versions.all.size).to eq 2
96
+ object.versions.all.each_index do |index|
97
+ expect(object.versions.all[index].label).to end_with "version" + (index + 1).to_s
98
+ expect(object.versions.all[index].created).to start_with current_year
99
99
  end
100
100
  end
101
101
 
102
102
  context "then restoring" do
103
103
  let(:first_version) { "version1" }
104
104
  before do
105
- subject.restore_version(first_version)
105
+ object.restore_version(first_version)
106
106
  end
107
107
 
108
108
  it "will return to the first version's values" do
109
- expect(subject.title).to eq(["Greetings Earthlings"])
109
+ expect(object.title).to eq(["Greetings Earthlings"])
110
110
  end
111
111
 
112
112
  context "and creating additional versions" do
113
113
  before do
114
- subject.title = ["Now, surrender and prepare to be boarded"]
115
- subject.save!
116
- subject.create_version
114
+ object.title = ["Now, surrender and prepare to be boarded"]
115
+ object.save!
116
+ object.create_version
117
117
  end
118
118
 
119
119
  it "has three versions" do
120
- expect(subject.versions.all.size).to eq 3
121
- expect(subject.title).to eq(["Now, surrender and prepare to be boarded"])
120
+ expect(object.versions.all.size).to eq 3
121
+ expect(object.title).to eq(["Now, surrender and prepare to be boarded"])
122
122
  end
123
123
  end
124
124
  end
@@ -146,7 +146,7 @@ describe ActiveFedora::Versionable do
146
146
  MockAFBase.create
147
147
  end
148
148
 
149
- subject { test_object.descMetadata }
149
+ subject(:desc_metadata) { test_object.descMetadata }
150
150
 
151
151
  let(:current_year) { DateTime.now.year.to_s }
152
152
 
@@ -155,96 +155,96 @@ describe ActiveFedora::Versionable do
155
155
 
156
156
  context "before creating the file" do
157
157
  it "does not have versions" do
158
- expect(subject.versions).to be_empty
158
+ expect(desc_metadata.versions).to be_empty
159
159
  end
160
160
  it "does not have a title" do
161
- expect(subject.title).to be_empty
161
+ expect(desc_metadata.title).to be_empty
162
162
  end
163
163
  end
164
164
 
165
165
  context "after creating the file" do
166
166
  before do
167
- subject.title = "Greetings Earthlings"
168
- subject.save
169
- subject.create_version
170
- @original_size = subject.size
167
+ desc_metadata.title = "Greetings Earthlings"
168
+ desc_metadata.save
169
+ desc_metadata.create_version
170
+ @original_size = desc_metadata.size
171
171
  end
172
172
 
173
173
  it "links to versions endpoint" do
174
- expect(subject.metadata.ldp_source.graph.query(predicate: ::RDF::Vocab::Fcrepo4.hasVersions).objects).to_not be_empty
174
+ expect(desc_metadata.metadata.ldp_source.graph.query(predicate: ::RDF::Vocab::Fcrepo4.hasVersions).objects).to_not be_empty
175
175
  end
176
176
 
177
177
  it "has one version" do
178
- expect(subject.versions.first.label).to eql "version1"
178
+ expect(desc_metadata.versions.first.label).to eql "version1"
179
179
  end
180
180
 
181
181
  it "has a title" do
182
- expect(subject.title).to eq(["Greetings Earthlings"])
182
+ expect(desc_metadata.title).to eq(["Greetings Earthlings"])
183
183
  end
184
184
 
185
185
  it "has a size" do
186
- expect(subject.size).to_not be_nil
186
+ expect(desc_metadata.size).to_not be_nil
187
187
  end
188
188
 
189
189
  context "two times" do
190
190
  before do
191
- subject.title = "Surrender and prepare to be boarded"
192
- subject.save
193
- subject.create_version
191
+ desc_metadata.title = "Surrender and prepare to be boarded"
192
+ desc_metadata.save
193
+ desc_metadata.create_version
194
194
  end
195
195
 
196
196
  it "has two versions" do
197
- expect(subject.versions.all.size).to eq 2
198
- subject.versions.all.each_index do |index|
199
- expect(subject.versions.all[index].label).to end_with "version" + (index + 1).to_s
200
- expect(subject.versions.all[index].created).to start_with current_year
197
+ expect(desc_metadata.versions.all.size).to eq 2
198
+ desc_metadata.versions.all.each_index do |index|
199
+ expect(desc_metadata.versions.all[index].label).to end_with "version" + (index + 1).to_s
200
+ expect(desc_metadata.versions.all[index].created).to start_with current_year
201
201
  end
202
202
  end
203
203
 
204
204
  it "has the new title" do
205
- expect(subject.title).to eq(["Surrender and prepare to be boarded"])
205
+ expect(desc_metadata.title).to eq(["Surrender and prepare to be boarded"])
206
206
  end
207
207
 
208
208
  it "has a new size" do
209
- expect(subject.size).to_not be_nil
210
- expect(subject.size).to_not eq(@original_size)
209
+ expect(desc_metadata.size).to_not be_nil
210
+ expect(desc_metadata.size).to_not eq(@original_size)
211
211
  end
212
212
 
213
213
  context "then restoring" do
214
214
  let(:first_version) { "version1" }
215
215
  before do
216
- subject.restore_version(first_version)
216
+ desc_metadata.restore_version(first_version)
217
217
  end
218
218
 
219
219
  it "has two unique versions" do
220
- expect(subject.versions.all.size).to eq 2
220
+ expect(desc_metadata.versions.all.size).to eq 2
221
221
  end
222
222
 
223
223
  it "loads the restored file's content" do
224
- expect(subject.title).to eq(["Greetings Earthlings"])
224
+ expect(desc_metadata.title).to eq(["Greetings Earthlings"])
225
225
  end
226
226
 
227
227
  it "is the same size as the original file" do
228
- expect(subject.size).to eq @original_size
228
+ expect(desc_metadata.size).to eq @original_size
229
229
  end
230
230
 
231
231
  context "and creating additional versions" do
232
232
  before do
233
- subject.title = "Now, surrender and prepare to be boarded"
234
- subject.save
235
- subject.create_version
233
+ desc_metadata.title = "Now, surrender and prepare to be boarded"
234
+ desc_metadata.save
235
+ desc_metadata.create_version
236
236
  end
237
237
 
238
238
  it "has three unique versions" do
239
- expect(subject.versions.all.size).to eq 3
239
+ expect(desc_metadata.versions.all.size).to eq 3
240
240
  end
241
241
 
242
242
  it "has a new title" do
243
- expect(subject.title).to eq(["Now, surrender and prepare to be boarded"])
243
+ expect(desc_metadata.title).to eq(["Now, surrender and prepare to be boarded"])
244
244
  end
245
245
 
246
246
  it "has a new size" do
247
- expect(subject.size).to_not eq @original_size
247
+ expect(desc_metadata.size).to_not eq @original_size
248
248
  end
249
249
  end
250
250
  end
@@ -272,7 +272,7 @@ describe ActiveFedora::Versionable do
272
272
  Object.send(:remove_const, :VersionableDatastream)
273
273
  end
274
274
 
275
- subject { test_object.descMetadata }
275
+ subject(:desc_metadata) { test_object.descMetadata }
276
276
 
277
277
  let(:current_year) { DateTime.now.year.to_s }
278
278
 
@@ -281,97 +281,97 @@ describe ActiveFedora::Versionable do
281
281
 
282
282
  context "before creating the file" do
283
283
  it "does not have versions" do
284
- expect(subject.versions).to be_empty
284
+ expect(desc_metadata.versions).to be_empty
285
285
  end
286
286
  it "does not have a title" do
287
- expect(subject.title).to be_empty
287
+ expect(desc_metadata.title).to be_empty
288
288
  end
289
289
  end
290
290
 
291
291
  context "after creating the file" do
292
292
  before do
293
- subject.title = "Greetings Earthlings"
294
- subject.save
295
- subject.create_version
296
- @original_size = subject.size
293
+ desc_metadata.title = "Greetings Earthlings"
294
+ desc_metadata.save
295
+ desc_metadata.create_version
296
+ @original_size = desc_metadata.size
297
297
  end
298
298
 
299
299
  it "links to versions endpoint" do
300
- expect(subject.metadata.ldp_source.graph.query(predicate: ::RDF::Vocab::Fcrepo4.hasVersions).objects).to_not be_empty
300
+ expect(desc_metadata.metadata.ldp_source.graph.query(predicate: ::RDF::Vocab::Fcrepo4.hasVersions).objects).to_not be_empty
301
301
  end
302
302
 
303
303
  it "has one version" do
304
- expect(subject.versions.first.label).to eql "version1"
305
- expect(subject.versions.first.created).to start_with current_year
304
+ expect(desc_metadata.versions.first.label).to eql "version1"
305
+ expect(desc_metadata.versions.first.created).to start_with current_year
306
306
  end
307
307
 
308
308
  it "has a title" do
309
- expect(subject.title).to eql(["Greetings Earthlings"])
309
+ expect(desc_metadata.title).to eql(["Greetings Earthlings"])
310
310
  end
311
311
 
312
312
  it "has a size" do
313
- expect(subject.size).to_not be_nil
313
+ expect(desc_metadata.size).to_not be_nil
314
314
  end
315
315
 
316
316
  context "two times" do
317
317
  before do
318
- subject.title = "Surrender and prepare to be boarded"
319
- subject.save
320
- subject.create_version
318
+ desc_metadata.title = "Surrender and prepare to be boarded"
319
+ desc_metadata.save
320
+ desc_metadata.create_version
321
321
  end
322
322
 
323
323
  it "has two unique versions" do
324
- expect(subject.versions.all.size).to eq 2
325
- subject.versions.all.each_index do |index|
326
- expect(subject.versions.all[index].label).to end_with "version" + (index + 1).to_s
327
- expect(subject.versions.all[index].created).to start_with current_year
324
+ expect(desc_metadata.versions.all.size).to eq 2
325
+ desc_metadata.versions.all.each_index do |index|
326
+ expect(desc_metadata.versions.all[index].label).to end_with "version" + (index + 1).to_s
327
+ expect(desc_metadata.versions.all[index].created).to start_with current_year
328
328
  end
329
329
  end
330
330
 
331
331
  it "has the new title" do
332
- expect(subject.title).to eql(["Surrender and prepare to be boarded"])
332
+ expect(desc_metadata.title).to eql(["Surrender and prepare to be boarded"])
333
333
  end
334
334
 
335
335
  it "has a new size" do
336
- expect(subject.size).to_not be_nil
337
- expect(subject.size).to_not eq(@original_size)
336
+ expect(desc_metadata.size).to_not be_nil
337
+ expect(desc_metadata.size).to_not eq(@original_size)
338
338
  end
339
339
 
340
340
  context "then restoring" do
341
341
  let(:first_version) { "version1" }
342
342
  before do
343
- subject.restore_version(first_version)
343
+ desc_metadata.restore_version(first_version)
344
344
  end
345
345
 
346
346
  it "stills have two unique versions" do
347
- expect(subject.versions.all.size).to eq 2
347
+ expect(desc_metadata.versions.all.size).to eq 2
348
348
  end
349
349
 
350
350
  it "loads the restored file's content" do
351
- expect(subject.title).to eql(["Greetings Earthlings"])
351
+ expect(desc_metadata.title).to eql(["Greetings Earthlings"])
352
352
  end
353
353
 
354
354
  it "is the same size as the original file" do
355
- expect(subject.size).to eq @original_size
355
+ expect(desc_metadata.size).to eq @original_size
356
356
  end
357
357
 
358
358
  context "and creating additional versions" do
359
359
  before do
360
- subject.title = "Now, surrender and prepare to be boarded"
361
- subject.save
362
- subject.create_version
360
+ desc_metadata.title = "Now, surrender and prepare to be boarded"
361
+ desc_metadata.save
362
+ desc_metadata.create_version
363
363
  end
364
364
 
365
365
  it "has three unique versions" do
366
- expect(subject.versions.all.size).to eq 3
366
+ expect(desc_metadata.versions.all.size).to eq 3
367
367
  end
368
368
 
369
369
  it "has a new title" do
370
- expect(subject.title).to eql(["Now, surrender and prepare to be boarded"])
370
+ expect(desc_metadata.title).to eql(["Now, surrender and prepare to be boarded"])
371
371
  end
372
372
 
373
373
  it "has a new size" do
374
- expect(subject.size).to_not eq @original_size
374
+ expect(desc_metadata.size).to_not eq @original_size
375
375
  end
376
376
  end
377
377
  end
@@ -395,7 +395,7 @@ describe ActiveFedora::Versionable do
395
395
  Object.send(:remove_const, :BinaryDatastream)
396
396
  end
397
397
 
398
- subject { test_object.content }
398
+ let(:content) { test_object.content }
399
399
 
400
400
  let(:current_year) { DateTime.now.year.to_s }
401
401
 
@@ -404,7 +404,7 @@ describe ActiveFedora::Versionable do
404
404
 
405
405
  context "before creating the file" do
406
406
  it "does not have versions" do
407
- expect(subject.versions).to be_empty
407
+ expect(content.versions).to be_empty
408
408
  end
409
409
  end
410
410
 
@@ -412,48 +412,48 @@ describe ActiveFedora::Versionable do
412
412
  let(:first_file) { File.new(File.join(File.dirname(__FILE__), "../fixtures/dino.jpg")) }
413
413
  let(:first_name) { "dino.jpg" }
414
414
  before do
415
- subject.content = first_file
416
- subject.original_name = first_name
417
- subject.save
418
- subject.create_version
415
+ content.content = first_file
416
+ content.original_name = first_name
417
+ content.save
418
+ content.create_version
419
419
  end
420
420
 
421
421
  it "links to versions endpoint" do
422
- expect(subject.metadata.ldp_source.graph.query(predicate: ::RDF::Vocab::Fcrepo4.hasVersions).objects).to_not be_empty
422
+ expect(content.metadata.ldp_source.graph.query(predicate: ::RDF::Vocab::Fcrepo4.hasVersions).objects).to_not be_empty
423
423
  end
424
424
 
425
425
  it "has one version" do
426
- expect(subject.versions.all.size).to eq 1
427
- expect(subject.original_name).to eql(first_name)
428
- expect(subject.content.size).to eq first_file.size
429
- expect(subject.versions.first.label).to eql "version1"
430
- expect(subject.versions.first.created).to start_with current_year
426
+ expect(content.versions.all.size).to eq 1
427
+ expect(content.original_name).to eql(first_name)
428
+ expect(content.content.size).to eq first_file.size
429
+ expect(content.versions.first.label).to eql "version1"
430
+ expect(content.versions.first.created).to start_with current_year
431
431
  end
432
432
 
433
433
  context "two times" do
434
434
  let(:second_file) { File.new(File.join(File.dirname(__FILE__), "../fixtures/minivan.jpg")) }
435
435
  let(:second_name) { "minivan.jpg" }
436
436
  before do
437
- subject.content = second_file
438
- subject.original_name = second_name
439
- subject.save
440
- subject.create_version
437
+ content.content = second_file
438
+ content.original_name = second_name
439
+ content.save
440
+ content.create_version
441
441
  end
442
442
 
443
443
  it "has two unique versions" do
444
- expect(subject.versions.all.size).to eq 2
445
- expect(subject.original_name).to eql(second_name)
446
- expect(subject.content.size).to eq second_file.size
447
- subject.versions.all.each_index do |index|
448
- expect(subject.versions.all[index].label).to end_with "version" + (index + 1).to_s
449
- expect(subject.versions.all[index].created).to start_with current_year
444
+ expect(content.versions.all.size).to eq 2
445
+ expect(content.original_name).to eql(second_name)
446
+ expect(content.content.size).to eq second_file.size
447
+ content.versions.all.each_index do |index|
448
+ expect(content.versions.all[index].label).to end_with "version" + (index + 1).to_s
449
+ expect(content.versions.all[index].created).to start_with current_year
450
450
  end
451
451
  end
452
452
 
453
453
  context "with fixity checking" do
454
454
  let(:results) do
455
455
  results = []
456
- subject.versions.all.each do |version|
456
+ content.versions.all.each do |version|
457
457
  results << ActiveFedora::FixityService.new(version.uri).check
458
458
  end
459
459
  return results
@@ -469,36 +469,36 @@ describe ActiveFedora::Versionable do
469
469
  context "then restoring" do
470
470
  let(:first_version) { "version1" }
471
471
  before do
472
- subject.restore_version(first_version)
472
+ content.restore_version(first_version)
473
473
  end
474
474
 
475
475
  it "stills have two unique versions" do
476
- expect(subject.versions.all.size).to eq 2
476
+ expect(content.versions.all.size).to eq 2
477
477
  end
478
478
 
479
479
  it "loads the restored file's content" do
480
- expect(subject.content.size).to eq first_file.size
480
+ expect(content.content.size).to eq first_file.size
481
481
  end
482
482
 
483
483
  it "loads the restored file's original name" do
484
- expect(subject.original_name).to eql(first_name)
484
+ expect(content.original_name).to eql(first_name)
485
485
  end
486
486
 
487
487
  context "and creating additional versions" do
488
488
  before do
489
- subject.content = first_file
490
- subject.original_name = first_name
491
- subject.save
492
- subject.create_version
489
+ content.content = first_file
490
+ content.original_name = first_name
491
+ content.save
492
+ content.create_version
493
493
  end
494
494
 
495
495
  it "has three unique versions" do
496
- expect(subject.versions.all.size).to eq 3
497
- expect(subject.original_name).to eql(first_name)
498
- expect(subject.content.size).to eq first_file.size
499
- subject.versions.all.each_index do |index|
500
- expect(subject.versions.all[index].label).to end_with "version" + (index + 1).to_s
501
- expect(subject.versions.all[index].created).to start_with current_year
496
+ expect(content.versions.all.size).to eq 3
497
+ expect(content.original_name).to eql(first_name)
498
+ expect(content.content.size).to eq first_file.size
499
+ content.versions.all.each_index do |index|
500
+ expect(content.versions.all[index].label).to end_with "version" + (index + 1).to_s
501
+ expect(content.versions.all[index].created).to start_with current_year
502
502
  end
503
503
  end
504
504
  end