active-fedora 9.13.0 → 10.0.0.beta1

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 (73) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +0 -19
  3. data/lib/active_fedora.rb +0 -17
  4. data/lib/active_fedora/associations.rb +0 -16
  5. data/lib/active_fedora/associations/builder/association.rb +3 -19
  6. data/lib/active_fedora/associations/builder/has_and_belongs_to_many.rb +1 -3
  7. data/lib/active_fedora/attached_files.rb +2 -108
  8. data/lib/active_fedora/attributes.rb +4 -100
  9. data/lib/active_fedora/core.rb +0 -6
  10. data/lib/active_fedora/datastreams.rb +0 -2
  11. data/lib/active_fedora/errors.rb +0 -9
  12. data/lib/active_fedora/file.rb +9 -22
  13. data/lib/active_fedora/file_configurator.rb +1 -32
  14. data/lib/active_fedora/identifiable.rb +0 -6
  15. data/lib/active_fedora/ldp_resource.rb +0 -12
  16. data/lib/active_fedora/qualified_dublin_core_datastream.rb +1 -1
  17. data/lib/active_fedora/query_result_builder.rb +0 -17
  18. data/lib/active_fedora/rdf/datastream_indexing.rb +0 -11
  19. data/lib/active_fedora/rdf/indexing_service.rb +1 -1
  20. data/lib/active_fedora/rdf/rdf_datastream.rb +0 -10
  21. data/lib/active_fedora/relation/finder_methods.rb +2 -21
  22. data/lib/active_fedora/solr_query_builder.rb +0 -16
  23. data/lib/active_fedora/solr_service.rb +2 -89
  24. data/lib/active_fedora/version.rb +1 -1
  25. data/lib/active_fedora/versionable.rb +0 -8
  26. data/spec/config_helper.rb +0 -4
  27. data/spec/integration/attached_files_spec.rb +1 -108
  28. data/spec/integration/attributes_spec.rb +14 -94
  29. data/spec/integration/direct_container_spec.rb +2 -2
  30. data/spec/integration/file_spec.rb +23 -13
  31. data/spec/integration/indexing_spec.rb +4 -4
  32. data/spec/integration/json_serialization_spec.rb +4 -57
  33. data/spec/integration/ntriples_datastream_spec.rb +77 -139
  34. data/spec/integration/relation_delegation_spec.rb +16 -18
  35. data/spec/integration/{model_spec.rb → scoping_spec.rb} +10 -14
  36. data/spec/integration/solr_hit_spec.rb +4 -20
  37. data/spec/integration/solr_instance_loader_spec.rb +1 -13
  38. data/spec/integration/versionable_spec.rb +0 -9
  39. data/spec/samples/models/mods_article.rb +1 -6
  40. data/spec/spec_helper.rb +0 -3
  41. data/spec/unit/attached_files_spec.rb +29 -127
  42. data/spec/unit/attributes_spec.rb +51 -475
  43. data/spec/unit/base_active_model_spec.rb +12 -47
  44. data/spec/unit/base_extra_spec.rb +1 -1
  45. data/spec/unit/code_configurator_spec.rb +2 -10
  46. data/spec/unit/core_spec.rb +3 -18
  47. data/spec/unit/file_configurator_spec.rb +0 -80
  48. data/spec/unit/file_spec.rb +0 -6
  49. data/spec/unit/has_and_belongs_to_many_association_spec.rb +0 -7
  50. data/spec/unit/inheritance_spec.rb +0 -12
  51. data/spec/unit/ntriples_datastream_spec.rb +2 -74
  52. data/spec/unit/property_spec.rb +0 -3
  53. data/spec/unit/query_spec.rb +0 -7
  54. data/spec/unit/querying_spec.rb +24 -0
  55. data/spec/unit/rdf/indexing_service_spec.rb +32 -20
  56. data/spec/unit/rdf_resource_datastream_spec.rb +37 -97
  57. data/spec/unit/solr_query_builder_spec.rb +0 -8
  58. data/spec/unit/solr_service_spec.rb +0 -13
  59. metadata +6 -19
  60. data/config/predicate_mappings.yml +0 -51
  61. data/lib/active_fedora/attributes/om_attribute.rb +0 -26
  62. data/lib/active_fedora/attributes/rdf_datastream_attribute.rb +0 -44
  63. data/lib/active_fedora/attributes/stream_attribute.rb +0 -43
  64. data/lib/active_fedora/datastream.rb +0 -9
  65. data/lib/active_fedora/model.rb +0 -31
  66. data/lib/active_fedora/predicates.rb +0 -122
  67. data/lib/active_fedora/simple_datastream.rb +0 -92
  68. data/spec/fixtures/rails_root/config/predicate_mappings.yml +0 -31
  69. data/spec/integration/field_to_solr_name_spec.rb +0 -36
  70. data/spec/unit/base_datastream_management_spec.rb +0 -19
  71. data/spec/unit/model_spec.rb +0 -30
  72. data/spec/unit/predicates_spec.rb +0 -126
  73. data/spec/unit/simple_datastream_spec.rb +0 -101
@@ -6,38 +6,21 @@ describe ActiveFedora::NtriplesRDFDatastream do
6
6
  property :size
7
7
  end
8
8
 
9
- Deprecation.silence(ActiveFedora::RDFDatastream) do
10
- class MyDatastream < ActiveFedora::NtriplesRDFDatastream
11
- property :title, predicate: ::RDF::Vocab::DC.title do |index|
12
- index.as :stored_searchable, :facetable
13
- end
14
- property :date_uploaded, predicate: ::RDF::Vocab::DC.dateSubmitted do |index|
15
- index.type :date
16
- index.as :stored_searchable, :sortable
17
- end
18
- property :filesize, predicate: FileVocabulary.size do |index|
19
- index.type :integer
20
- index.as :stored_sortable
21
- end
22
- property :part, predicate: ::RDF::Vocab::DC.hasPart
23
- property :based_near, predicate: ::RDF::FOAF.based_near
24
- property :related_url, predicate: ::RDF::RDFS.seeAlso
25
- end
9
+ class MyDatastream < ActiveFedora::NtriplesRDFDatastream
10
+ property :title, predicate: ::RDF::Vocab::DC.title
11
+ property :date_uploaded, predicate: ::RDF::Vocab::DC.dateSubmitted
12
+ property :filesize, predicate: FileVocabulary.size
13
+ property :part, predicate: ::RDF::Vocab::DC.hasPart
14
+ property :based_near, predicate: ::RDF::FOAF.based_near
15
+ property :related_url, predicate: ::RDF::RDFS.seeAlso
26
16
  end
27
17
 
28
18
  class RdfTest < ActiveFedora::Base
29
19
  has_subresource 'rdf', class_name: 'MyDatastream'
30
- Deprecation.silence(ActiveFedora::Attributes) do
31
- has_attributes :based_near, :related_url, :part, :date_uploaded, datastream: 'rdf', multiple: true
32
- has_attributes :title, :filesize, datastream: 'rdf', multiple: false
33
- end
34
20
  end
35
- @subject = RdfTest.new
36
21
  end
37
22
 
38
- subject {
39
- @subject
40
- }
23
+ subject { MyDatastream.new(described_class.id_to_uri('test:1')) }
41
24
 
42
25
  after do
43
26
  Object.send(:remove_const, :RdfTest)
@@ -45,10 +28,6 @@ describe ActiveFedora::NtriplesRDFDatastream do
45
28
  Object.send(:remove_const, :FileVocabulary)
46
29
  end
47
30
 
48
- it "does not try to send an empty datastream" do
49
- @subject.save
50
- end
51
-
52
31
  let(:remote_content) do
53
32
  <<EOF
54
33
  <#{ActiveFedora.fedora.host}/test/test:1> <http://purl.org/dc/terms/created> "2010-12-31"^^<http://www.w3.org/2001/XMLSchema#date> .
@@ -60,109 +39,73 @@ describe ActiveFedora::NtriplesRDFDatastream do
60
39
  EOF
61
40
  end
62
41
 
63
- it "saves content properly upon save" do
64
- foo = RdfTest.new('test:1') # ID needs to match the subject in the loaded file
65
- foo.title = 'Hamlet'
66
- foo.save
67
- expect(foo.title).to eq 'Hamlet'
68
- foo.rdf.content = remote_content
69
- foo.save
70
- expect(foo.title).to eq 'Title of work'
71
- end
72
-
73
42
  it "delegates as_json to the fields" do
74
- @subject = RdfTest.new(title: "Title of work")
75
- expect(@subject.rdf.title.as_json).to eq ["Title of work"]
76
- expect(@subject.rdf.title.to_json).to eq "\[\"Title of work\"\]"
77
- end
78
-
79
- it "solrizes even when the object is not new" do
80
- foo = RdfTest.new
81
- expect(foo).to receive(:update_index).once
82
- foo.title = "title1"
83
- foo.save
84
- foo = RdfTest.find(foo.id)
85
- expect(foo).to receive(:update_index).once
86
- foo.title = "The Work2"
87
- foo.save
43
+ subject.title = "Title of work"
44
+ expect(subject.title.as_json).to eq ["Title of work"]
45
+ expect(subject.title.to_json).to eq "\[\"Title of work\"\]"
88
46
  end
89
47
 
90
48
  describe "serializing" do
91
49
  it "handles dates" do
92
50
  subject.date_uploaded = [Date.parse('2012-11-02')]
93
51
  expect(subject.date_uploaded.first).to be_kind_of Date
94
- solr_document = subject.to_solr
95
- expect(solr_document[ActiveFedora.index_field_mapper.solr_name('rdf__date_uploaded', type: :date)]).to eq ['2012-11-02T00:00:00Z']
96
52
  end
97
53
  it "handles integers" do
98
54
  subject.filesize = 12_345
99
- expect(subject.filesize).to be_kind_of Fixnum
100
- solr_document = subject.to_solr
101
- expect(solr_document[ActiveFedora.index_field_mapper.solr_name('rdf__filesize', :stored_sortable, type: :integer)]).to eq '12345'
55
+ expect(subject.filesize).to be_kind_of Array
56
+ expect(subject.filesize.first).to be_kind_of Fixnum
102
57
  end
103
58
  end
104
59
 
105
- it "produces a solr document" do
106
- @subject = RdfTest.new(title: "War and Peace")
107
- solr_document = @subject.to_solr
108
- expect(solr_document[ActiveFedora.index_field_mapper.solr_name('rdf__title', :facetable)]).to eq ["War and Peace"]
109
- expect(solr_document[ActiveFedora.index_field_mapper.solr_name('rdf__title', type: :string)]).to eq ["War and Peace"]
110
- end
111
-
112
60
  it "sets and recall values" do
113
- @subject.title = 'War and Peace'
114
- expect(@subject.rdf).to be_changed
115
- @subject.based_near = ["Moscow, Russia"]
116
- @subject.related_url = ["http://en.wikipedia.org/wiki/War_and_Peace"]
117
- @subject.part = ["this is a part"]
118
- @subject.save
119
- expect(@subject.title).to eq 'War and Peace'
120
- expect(@subject.based_near).to eq ["Moscow, Russia"]
121
- expect(@subject.related_url).to eq ["http://en.wikipedia.org/wiki/War_and_Peace"]
122
- expect(@subject.part).to eq ["this is a part"]
123
- end
124
-
125
- it "set,s persist, and recall values" do
126
- @subject.title = 'War and Peace'
127
- @subject.based_near = ["Moscow, Russia"]
128
- @subject.related_url = ["http://en.wikipedia.org/wiki/War_and_Peace"]
129
- @subject.part = ["this is a part"]
130
- @subject.save
131
-
132
- loaded = RdfTest.find(@subject.id)
133
- expect(loaded.title).to eq 'War and Peace'
61
+ subject.title = 'War and Peace'
62
+ expect(subject).to be_changed
63
+ subject.based_near = ["Moscow, Russia"]
64
+ subject.related_url = ["http://en.wikipedia.org/wiki/War_and_Peace"]
65
+ subject.part = ["this is a part"]
66
+ subject.save
67
+ expect(subject.title).to eq ['War and Peace']
68
+ expect(subject.based_near).to eq ["Moscow, Russia"]
69
+ expect(subject.related_url).to eq ["http://en.wikipedia.org/wiki/War_and_Peace"]
70
+ expect(subject.part).to eq ["this is a part"]
71
+ end
72
+
73
+ it "set, persist, and recall values" do
74
+ subject.title = 'War and Peace'
75
+ subject.based_near = ["Moscow, Russia"]
76
+ subject.related_url = ["http://en.wikipedia.org/wiki/War_and_Peace"]
77
+ subject.part = ["this is a part"]
78
+ subject.save
79
+
80
+ loaded = MyDatastream.new(subject.uri)
81
+ expect(loaded.title).to eq ['War and Peace']
134
82
  expect(loaded.based_near).to eq ['Moscow, Russia']
135
83
  expect(loaded.related_url).to eq ['http://en.wikipedia.org/wiki/War_and_Peace']
136
84
  expect(loaded.part).to eq ['this is a part']
137
85
  end
138
86
 
139
87
  it "sets multiple values" do
140
- @subject.part = ["part 1", "part 2"]
141
- @subject.save
88
+ subject.part = ["part 1", "part 2"]
89
+ subject.save
142
90
 
143
- loaded = RdfTest.find(@subject.id)
91
+ loaded = MyDatastream.new(subject.uri)
144
92
  expect(loaded.part).to eq ['part 1', 'part 2']
145
93
  end
146
94
 
147
95
  it "appends values" do
148
- @subject.part = ["thing 1"]
149
- @subject.save
96
+ subject.part = ["thing 1"]
97
+ subject.save
150
98
 
151
- @subject.part << "thing 2"
152
- expect(@subject.part).to eq ["thing 1", "thing 2"]
153
- end
154
-
155
- it "is able to save a blank document" do
156
- @subject.title = ""
157
- @subject.save
99
+ subject.part << "thing 2"
100
+ expect(subject.part).to eq ["thing 1", "thing 2"]
158
101
  end
159
102
 
160
103
  it "loads n-triples into the graph" do
161
104
  ntrip = '<http://oregondigital.org/ns/62> <http://purl.org/dc/terms/type> "Image" .
162
105
  <http://oregondigital.org/ns/62> <http://purl.org/dc/terms/spatial> "Benton County (Ore.)" .
163
106
  '
164
- @subject.rdf.content = ntrip
165
- expect(@subject.rdf.graph.dump(:ntriples)).to eq ntrip
107
+ subject.content = ntrip
108
+ expect(subject.graph.dump(:ntriples)).to eq ntrip
166
109
  end
167
110
 
168
111
  describe "using rdf_subject" do
@@ -190,76 +133,71 @@ EOF
190
133
  end
191
134
 
192
135
  it "deletes values" do
193
- @subject.title = "Hamlet"
194
- @subject.related_url = ["http://psu.edu/"]
195
- @subject.related_url << "http://projecthydra.org/"
136
+ subject.title = "Hamlet"
137
+ subject.related_url = ["http://psu.edu/"]
138
+ subject.related_url << "http://projecthydra.org/"
196
139
 
197
- expect(@subject.title).to eq "Hamlet"
198
- expect(@subject.related_url).to include("http://psu.edu/")
199
- expect(@subject.related_url).to include("http://projecthydra.org/")
140
+ expect(subject.title).to eq ["Hamlet"]
141
+ expect(subject.related_url).to include("http://psu.edu/")
142
+ expect(subject.related_url).to include("http://projecthydra.org/")
200
143
 
201
- @subject.title = "" # empty string can be meaningful, don't assume delete.
202
- expect(@subject.title).to eq ''
144
+ subject.title = "" # empty string can be meaningful, don't assume delete.
145
+ expect(subject.title).to eq ['']
203
146
 
204
- @subject.title = nil
205
- @subject.related_url.delete("http://projecthydra.org/")
147
+ subject.title = nil
148
+ subject.related_url.delete("http://projecthydra.org/")
206
149
 
207
- expect(@subject.title).to be_nil
208
- expect(@subject.related_url).to eq ["http://psu.edu/"]
150
+ expect(subject.title).to eq []
151
+ expect(subject.related_url).to eq ["http://psu.edu/"]
209
152
  end
153
+
210
154
  it "deletes multiple values at once" do
211
- @subject.part = ["MacBeth"]
212
- @subject.part << "Hamlet"
213
- @subject.part << "Romeo & Juliet"
214
- expect(@subject.part.first).to eq "MacBeth"
215
- @subject.part.delete("MacBeth", "Romeo & Juliet")
216
- expect(@subject.part).to eq ["Hamlet"]
217
- expect(@subject.part.first).to eq "Hamlet"
155
+ subject.part = ["MacBeth"]
156
+ subject.part << "Hamlet"
157
+ subject.part << "Romeo & Juliet"
158
+ expect(subject.part.first).to eq "MacBeth"
159
+ subject.part.delete("MacBeth", "Romeo & Juliet")
160
+ expect(subject.part).to eq ["Hamlet"]
161
+ expect(subject.part.first).to eq "Hamlet"
218
162
  end
219
163
  it "ignores values to be deleted that do not exist" do
220
- @subject.part = ["title1", "title2", "title3"]
221
- @subject.part.delete("title2", "title4", "title6")
222
- expect(@subject.part).to eq ["title1", "title3"]
164
+ subject.part = ["title1", "title2", "title3"]
165
+ subject.part.delete("title2", "title4", "title6")
166
+ expect(subject.part).to eq ["title1", "title3"]
223
167
  end
168
+
224
169
  describe "term proxy methods" do
225
170
  before(:each) do
226
171
  class TitleDatastream < ActiveFedora::NtriplesRDFDatastream
227
172
  property :title, predicate: ::RDF::Vocab::DC.title
228
173
  end
229
- class Foobar < ActiveFedora::Base
230
- has_subresource 'rdf', class_name: 'TitleDatastream'
231
- Deprecation.silence(ActiveFedora::Attributes) do
232
- has_attributes :title, datastream: 'rdf', multiple: true
233
- end
234
- end
235
- @subject = Foobar.new
236
- @subject.title = ["title1", "title2", "title3"]
237
174
  end
175
+ subject { TitleDatastream.new }
176
+ before { subject.title = ["title1", "title2", "title3"] }
238
177
 
239
178
  after(:each) do
240
- Object.send(:remove_const, :Foobar)
241
179
  Object.send(:remove_const, :TitleDatastream)
242
180
  end
243
181
 
244
182
  it "supports the count method to determine # of values" do
245
- expect(@subject.title.count).to eq 3
183
+ expect(subject.title.count).to eq 3
246
184
  end
247
185
  it "iterates over multiple values" do
248
- expect(@subject.title).to respond_to(:each)
186
+ expect(subject.title).to respond_to(:each)
249
187
  end
250
188
  it "gets the first value" do
251
- expect(@subject.title.first).to eq "title1"
189
+ expect(subject.title.first).to eq "title1"
252
190
  end
253
191
  it "evaluates equality predictably" do
254
- expect(@subject.title).to eq ["title1", "title2", "title3"]
192
+ expect(subject.title).to eq ["title1", "title2", "title3"]
255
193
  end
256
194
  it "supports the empty? method" do
257
- expect(@subject.title).to_not be_empty
258
- @subject.title.delete("title1", "title2", "title3")
259
- expect(@subject.title).to be_empty
195
+ expect(subject.title).to_not be_empty
196
+ subject.title.delete("title1", "title2", "title3")
197
+ expect(subject.title).to be_empty
260
198
  end
261
199
  it "supports the is_a? method" do
262
- expect(@subject.title.is_a?(Array)).to eq true
200
+ expect(subject.title.is_a?(Array)).to eq true
263
201
  end
264
202
  end
265
203
  end
@@ -1,33 +1,31 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe ActiveFedora::Model do
3
+ describe ActiveFedora::Base do
4
4
  before(:all) do
5
- module ModelIntegrationSpec
6
- class Basic < ActiveFedora::Base
7
- property :foo, predicate: ::RDF::URI('http://example.com/foo')
8
- property :bar, predicate: ::RDF::URI('http://example.com/bar') do |index|
9
- index.as :stored_searchable
10
- end
11
-
12
- def to_solr(doc = {})
13
- doc = super
14
- doc[ActiveFedora.index_field_mapper.solr_name('foo', :sortable)] = doc[ActiveFedora.index_field_mapper.solr_name('foo', type: :string)]
15
- doc
16
- end
5
+ class TestClass < ActiveFedora::Base
6
+ property :foo, predicate: ::RDF::URI('http://example.com/foo')
7
+ property :bar, predicate: ::RDF::URI('http://example.com/bar') do |index|
8
+ index.as :stored_searchable
9
+ end
10
+
11
+ def to_solr(doc = {})
12
+ doc = super
13
+ doc[ActiveFedora.index_field_mapper.solr_name('foo', :sortable)] = doc[ActiveFedora.index_field_mapper.solr_name('foo', type: :string)]
14
+ doc
17
15
  end
18
16
  end
19
17
  end
20
18
 
21
19
  after(:all) do
22
- Object.send(:remove_const, :ModelIntegrationSpec)
20
+ Object.send(:remove_const, :TestClass)
23
21
  end
24
22
 
25
23
  describe "with multiple objects" do
26
- let!(:instance1) { ModelIntegrationSpec::Basic.create!(foo: ['Beta'], bar: ['Chips']) }
27
- let!(:instance2) { ModelIntegrationSpec::Basic.create!(foo: ['Alpha'], bar: ['Peanuts']) }
28
- let!(:instance3) { ModelIntegrationSpec::Basic.create!(foo: ['Sigma'], bar: ['Peanuts']) }
24
+ let!(:instance1) { TestClass.create!(foo: ['Beta'], bar: ['Chips']) }
25
+ let!(:instance2) { TestClass.create!(foo: ['Alpha'], bar: ['Peanuts']) }
26
+ let!(:instance3) { TestClass.create!(foo: ['Sigma'], bar: ['Peanuts']) }
29
27
 
30
- subject { ModelIntegrationSpec::Basic.where(bar: 'Peanuts') }
28
+ subject { TestClass.where(bar: 'Peanuts') }
31
29
 
32
30
  it "maps" do
33
31
  expect(subject.map(&:id)).to eq [instance2.id, instance3.id]
@@ -1,30 +1,25 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe ActiveFedora::Model do
3
+ describe ActiveFedora::Scoping::Named do
4
4
  before do
5
- module ModelIntegrationSpec
6
- class Base < ActiveFedora::Base
7
- include ActiveFedora::Model
8
- end
9
- class Basic < Base
10
- end
5
+ class TestClass < ActiveFedora::Base
11
6
  end
12
7
  end
13
- let!(:test_instance) { ModelIntegrationSpec::Basic.create! }
8
+ let!(:test_instance) { TestClass.create! }
14
9
 
15
10
  after do
16
11
  test_instance.delete
17
- Object.send(:remove_const, :ModelIntegrationSpec)
12
+ Object.send(:remove_const, :TestClass)
18
13
  end
19
14
 
20
15
  describe "#all" do
21
16
  it "returns an array of instances of the calling Class" do
22
- result = ModelIntegrationSpec::Basic.all.to_a
17
+ result = TestClass.all.to_a
23
18
  expect(result).to be_instance_of(Array)
24
19
  # this test is meaningless if the array length is zero
25
20
  expect(result).to_not be_empty
26
21
  result.each do |obj|
27
- expect(obj.class).to eq ModelIntegrationSpec::Basic
22
+ expect(obj.class).to eq TestClass
28
23
  end
29
24
  end
30
25
  end
@@ -32,15 +27,16 @@ describe ActiveFedora::Model do
32
27
  describe '#find' do
33
28
  describe "#find with a valid id without cast" do
34
29
  subject { ActiveFedora::Base.find(test_instance.id) }
35
- it { should be_instance_of ModelIntegrationSpec::Basic }
30
+ it { should be_instance_of TestClass }
36
31
  end
37
32
  describe "#find with a valid id with cast of false" do
38
33
  subject { ActiveFedora::Base.find(test_instance.id, cast: false) }
39
34
  it { should be_instance_of ActiveFedora::Base }
40
35
  end
36
+
41
37
  describe "#find with a valid id without cast on a model extending Base" do
42
- subject { ModelIntegrationSpec::Basic.find(test_instance.id) }
43
- it { should be_instance_of ModelIntegrationSpec::Basic }
38
+ subject { TestClass.find(test_instance.id) }
39
+ it { should be_instance_of TestClass }
44
40
  end
45
41
  end
46
42
  end
@@ -2,41 +2,25 @@ require 'spec_helper'
2
2
 
3
3
  describe ActiveFedora::SolrHit do
4
4
  before do
5
- class MyDS < ActiveFedora::OmDatastream
6
- set_terminology do |t|
7
- t.root(path: "durh")
8
- t.foo
9
- t.bar
10
- end
11
- end
12
-
13
5
  class Foo < ActiveFedora::Base
14
- has_subresource 'descMetadata', class_name: 'MyDS'
15
- Deprecation.silence(ActiveFedora::Attributes) do
16
- has_attributes :foo, datastream: 'descMetadata', multiple: true
17
- has_attributes :bar, datastream: 'descMetadata', multiple: false
18
- end
19
6
  property :title, predicate: ::RDF::Vocab::DC.title, multiple: false
20
7
  end
21
8
  end
22
9
 
10
+ after do
11
+ Object.send(:remove_const, :Foo)
12
+ end
13
+
23
14
  let(:another) { Foo.create }
24
15
 
25
16
  let!(:obj) { Foo.create!(
26
17
  id: 'test-123',
27
- foo: ["baz"],
28
- bar: 'quix',
29
18
  title: 'My Title'
30
19
  ) }
31
20
 
32
21
  let(:doc) { obj.to_solr }
33
22
  let(:solr_hit) { described_class.new(doc) }
34
23
 
35
- after do
36
- Object.send(:remove_const, :Foo)
37
- Object.send(:remove_const, :MyDS)
38
- end
39
-
40
24
  describe "#reify" do
41
25
  subject { solr_hit.reify }
42
26