active-fedora 9.12.0 → 9.13.0

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 (79) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -1
  3. data/active-fedora.gemspec +1 -0
  4. data/lib/active_fedora.rb +1 -0
  5. data/lib/active_fedora/associations.rb +38 -3
  6. data/lib/active_fedora/associations/basic_contains_association.rb +12 -51
  7. data/lib/active_fedora/associations/builder/aggregation.rb +1 -1
  8. data/lib/active_fedora/associations/builder/basic_contains.rb +7 -0
  9. data/lib/active_fedora/associations/builder/{contains.rb → has_subresource.rb} +2 -2
  10. data/lib/active_fedora/associations/contains_association.rb +19 -1
  11. data/lib/active_fedora/associations/directly_contains_association.rb +1 -15
  12. data/lib/active_fedora/associations/has_subresource_association.rb +61 -0
  13. data/lib/active_fedora/attached_files.rb +6 -9
  14. data/lib/active_fedora/autosave_association.rb +1 -1
  15. data/lib/active_fedora/base.rb +0 -1
  16. data/lib/active_fedora/common.rb +1 -0
  17. data/lib/active_fedora/fedora.rb +14 -19
  18. data/lib/active_fedora/file.rb +1 -1
  19. data/lib/active_fedora/file/attributes.rb +4 -0
  20. data/lib/active_fedora/file_persistence.rb +9 -1
  21. data/lib/active_fedora/initializing_connection.rb +64 -0
  22. data/lib/active_fedora/ldp_cache.rb +1 -2
  23. data/lib/active_fedora/ldp_resource_service.rb +7 -1
  24. data/lib/active_fedora/persistence.rb +12 -1
  25. data/lib/active_fedora/reflection.rb +22 -6
  26. data/lib/active_fedora/simple_datastream.rb +2 -0
  27. data/lib/active_fedora/version.rb +1 -1
  28. data/lib/generators/active_fedora/config/fedora/fedora_generator.rb +1 -0
  29. data/lib/generators/active_fedora/config/fedora/templates/.fcrepo_wrapper +1 -0
  30. data/lib/generators/active_fedora/config/fedora/templates/fcrepo_wrapper_test.yml +4 -0
  31. data/lib/generators/active_fedora/config/solr/solr_generator.rb +1 -0
  32. data/lib/generators/active_fedora/config/solr/templates/.solr_wrapper +3 -0
  33. data/lib/generators/active_fedora/config/solr/templates/solr_wrapper_test.yml +8 -0
  34. data/spec/integration/attached_files_spec.rb +77 -18
  35. data/spec/integration/attributes_spec.rb +3 -4
  36. data/spec/integration/autosave_association_spec.rb +0 -1
  37. data/spec/integration/base_spec.rb +19 -66
  38. data/spec/integration/basic_contains_association_spec.rb +108 -0
  39. data/spec/integration/complex_rdf_datastream_spec.rb +1 -1
  40. data/spec/integration/field_to_solr_name_spec.rb +12 -11
  41. data/spec/integration/file_fixity_spec.rb +1 -1
  42. data/spec/integration/file_spec.rb +4 -1
  43. data/spec/integration/generators/fedora_generator_spec.rb +26 -0
  44. data/spec/integration/generators/solr_generator_spec.rb +26 -0
  45. data/spec/integration/has_and_belongs_to_many_associations_spec.rb +6 -16
  46. data/spec/integration/has_many_associations_spec.rb +6 -16
  47. data/spec/integration/{contains_association_spec.rb → has_subresource_spec.rb} +1 -1
  48. data/spec/integration/json_serialization_spec.rb +11 -5
  49. data/spec/integration/model_spec.rb +7 -13
  50. data/spec/integration/ntriples_datastream_spec.rb +2 -2
  51. data/spec/integration/om_datastream_spec.rb +1 -1
  52. data/spec/integration/persistence_spec.rb +0 -3
  53. data/spec/integration/query_result_builder_spec.rb +1 -1
  54. data/spec/integration/relation_delegation_spec.rb +3 -8
  55. data/spec/integration/scoped_query_spec.rb +5 -7
  56. data/spec/integration/solr_hit_spec.rb +10 -4
  57. data/spec/integration/solr_instance_loader_spec.rb +11 -4
  58. data/spec/integration/versionable_spec.rb +3 -3
  59. data/spec/spec_helper.rb +5 -1
  60. data/spec/unit/active_fedora_spec.rb +1 -1
  61. data/spec/unit/attached_files_spec.rb +32 -21
  62. data/spec/unit/attributes_spec.rb +21 -23
  63. data/spec/unit/base_active_model_spec.rb +13 -10
  64. data/spec/unit/base_spec.rb +2 -24
  65. data/spec/unit/callback_spec.rb +0 -8
  66. data/spec/unit/core_spec.rb +3 -5
  67. data/spec/unit/inheritance_spec.rb +15 -9
  68. data/spec/unit/ntriples_datastream_spec.rb +1 -1
  69. data/spec/unit/om_datastream_spec.rb +1 -1
  70. data/spec/unit/persistence_spec.rb +21 -0
  71. data/spec/unit/query_spec.rb +8 -0
  72. data/spec/unit/rdf_datastream_spec.rb +1 -1
  73. data/spec/unit/rdf_resource_datastream_spec.rb +1 -1
  74. data/spec/unit/simple_datastream_spec.rb +8 -2
  75. data/spec/unit/solr_config_options_spec.rb +1 -1
  76. data/spec/unit/validations_spec.rb +2 -8
  77. metadata +27 -6
  78. data/spec/integration/bug_spec.rb +0 -40
  79. data/spec/integration/full_featured_model_spec.rb +0 -160
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  RSpec.describe ActiveFedora::Base do
4
4
  before do
5
5
  class Source < ActiveFedora::Base
6
- contains :sub_resource, class_name: "Source"
6
+ has_subresource :sub_resource, class_name: "Source"
7
7
  property :title, predicate: ::RDF::Vocab::DC.title, multiple: false
8
8
  end
9
9
  end
@@ -7,11 +7,16 @@ describe "Objects should be serialized to JSON" do
7
7
 
8
8
  context "with properties and datastream attributes" do
9
9
  before do
10
- class Foo < ActiveFedora::Base
11
- has_metadata 'descMetadata', type: ActiveFedora::SimpleDatastream do |m|
12
- m.field "foo", :text
13
- m.field "bar", :text
10
+ class MyDS < ActiveFedora::OmDatastream
11
+ set_terminology do |t|
12
+ t.root(path: "durh")
13
+ t.foo
14
+ t.bar
14
15
  end
16
+ end
17
+
18
+ class Foo < ActiveFedora::Base
19
+ has_subresource 'descMetadata', class_name: 'MyDS'
15
20
  Deprecation.silence(ActiveFedora::Attributes) do
16
21
  has_attributes :foo, datastream: 'descMetadata', multiple: true
17
22
  has_attributes :bar, datastream: 'descMetadata', multiple: false
@@ -22,6 +27,7 @@ describe "Objects should be serialized to JSON" do
22
27
 
23
28
  after do
24
29
  Object.send(:remove_const, :Foo)
30
+ Object.send(:remove_const, :MyDS)
25
31
  end
26
32
 
27
33
  let(:obj) { Foo.new(foo: ["baz"], bar: 'quix', title: ['My Title']) }
@@ -56,7 +62,7 @@ describe "Objects should be serialized to JSON" do
56
62
  end
57
63
 
58
64
  class DummyAsset < ActiveFedora::Base
59
- has_metadata 'descMetadata', type: DummyResource
65
+ has_subresource 'descMetadata', class_name: 'DummyResource'
60
66
  Deprecation.silence(ActiveFedora::Attributes) do
61
67
  has_attributes :relation, datastream: 'descMetadata', at: [:license, :relation], multiple: false
62
68
  end
@@ -1,25 +1,19 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe ActiveFedora::Model do
4
- before(:each) do
4
+ before do
5
5
  module ModelIntegrationSpec
6
6
  class Base < ActiveFedora::Base
7
7
  include ActiveFedora::Model
8
- def self.id_namespace
9
- "foo"
10
- end
11
- has_metadata name: "properties", type: ActiveFedora::SimpleDatastream, autocreate: true
12
8
  end
13
9
  class Basic < Base
14
10
  end
15
11
  end
16
-
17
- @test_instance = ModelIntegrationSpec::Basic.new
18
- @test_instance.save
19
12
  end
13
+ let!(:test_instance) { ModelIntegrationSpec::Basic.create! }
20
14
 
21
- after(:each) do
22
- @test_instance.delete
15
+ after do
16
+ test_instance.delete
23
17
  Object.send(:remove_const, :ModelIntegrationSpec)
24
18
  end
25
19
 
@@ -37,15 +31,15 @@ describe ActiveFedora::Model do
37
31
 
38
32
  describe '#find' do
39
33
  describe "#find with a valid id without cast" do
40
- subject { ActiveFedora::Base.find(@test_instance.id) }
34
+ subject { ActiveFedora::Base.find(test_instance.id) }
41
35
  it { should be_instance_of ModelIntegrationSpec::Basic }
42
36
  end
43
37
  describe "#find with a valid id with cast of false" do
44
- subject { ActiveFedora::Base.find(@test_instance.id, cast: false) }
38
+ subject { ActiveFedora::Base.find(test_instance.id, cast: false) }
45
39
  it { should be_instance_of ActiveFedora::Base }
46
40
  end
47
41
  describe "#find with a valid id without cast on a model extending Base" do
48
- subject { ModelIntegrationSpec::Basic.find(@test_instance.id) }
42
+ subject { ModelIntegrationSpec::Basic.find(test_instance.id) }
49
43
  it { should be_instance_of ModelIntegrationSpec::Basic }
50
44
  end
51
45
  end
@@ -26,7 +26,7 @@ describe ActiveFedora::NtriplesRDFDatastream do
26
26
  end
27
27
 
28
28
  class RdfTest < ActiveFedora::Base
29
- has_metadata 'rdf', type: MyDatastream
29
+ has_subresource 'rdf', class_name: 'MyDatastream'
30
30
  Deprecation.silence(ActiveFedora::Attributes) do
31
31
  has_attributes :based_near, :related_url, :part, :date_uploaded, datastream: 'rdf', multiple: true
32
32
  has_attributes :title, :filesize, datastream: 'rdf', multiple: false
@@ -227,7 +227,7 @@ EOF
227
227
  property :title, predicate: ::RDF::Vocab::DC.title
228
228
  end
229
229
  class Foobar < ActiveFedora::Base
230
- has_metadata 'rdf', type: TitleDatastream
230
+ has_subresource 'rdf', class_name: 'TitleDatastream'
231
231
  Deprecation.silence(ActiveFedora::Attributes) do
232
232
  has_attributes :title, datastream: 'rdf', multiple: true
233
233
  end
@@ -4,7 +4,7 @@ describe ActiveFedora::OmDatastream do
4
4
  before(:all) do
5
5
  class ModsArticle2 < ActiveFedora::Base
6
6
  # Uses the Hydra MODS Article profile for tracking most of the descriptive metadata
7
- has_metadata "descMetadata", type: Hydra::ModsArticleDatastream, autocreate: true
7
+ has_subresource "descMetadata", class_name: 'Hydra::ModsArticleDatastream'
8
8
  end
9
9
  end
10
10
 
@@ -4,9 +4,6 @@ describe "persisting objects" do
4
4
  describe "#create!" do
5
5
  before do
6
6
  class MockAFBaseRelationship < ActiveFedora::Base
7
- has_metadata type: ActiveFedora::SimpleDatastream, name: "foo" do |m|
8
- m.field "name", :string
9
- end
10
7
  property :name, predicate: ::RDF::Vocab::DC.title, multiple: false
11
8
  validates :name, presence: true
12
9
  end
@@ -8,7 +8,7 @@ describe ActiveFedora::QueryResultBuilder do
8
8
  "foo"
9
9
  end
10
10
 
11
- has_metadata name: "descMetadata", type: ActiveFedora::QualifiedDublinCoreDatastream
11
+ has_subresource :descMetadata, class_name: 'ActiveFedora::QualifiedDublinCoreDatastream'
12
12
  end
13
13
  @test_object = ActiveFedora::Base.new
14
14
  @foo_object = FooObject.new
@@ -4,14 +4,9 @@ describe ActiveFedora::Model do
4
4
  before(:all) do
5
5
  module ModelIntegrationSpec
6
6
  class Basic < ActiveFedora::Base
7
- has_metadata name: "properties", type: ActiveFedora::SimpleDatastream do |m|
8
- m.field "foo", :string
9
- m.field "bar", :string
10
- m.field "baz", :string
11
- end
12
-
13
- Deprecation.silence(ActiveFedora::Attributes) do
14
- has_attributes :foo, :bar, :baz, datastream: 'properties', multiple: true
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
15
10
  end
16
11
 
17
12
  def to_solr(doc = {})
@@ -4,15 +4,13 @@ describe ActiveFedora::Querying do
4
4
  before do
5
5
  module ModelIntegrationSpec
6
6
  class Basic < ActiveFedora::Base
7
- has_metadata "properties", type: ActiveFedora::SimpleDatastream do |m|
8
- m.field "foo", :string
9
- m.field "bar", :string
10
- m.field "baz", :string
7
+ property :foo, predicate: ::RDF::URI('http://example.com/foo') do |index|
8
+ index.as :stored_searchable
11
9
  end
12
-
13
- Deprecation.silence(ActiveFedora::Attributes) do
14
- has_attributes :foo, :bar, :baz, datastream: 'properties', multiple: true
10
+ property :bar, predicate: ::RDF::URI('http://example.com/bar') do |index|
11
+ index.as :stored_searchable
15
12
  end
13
+ property :baz, predicate: ::RDF::URI('http://example.com/baz')
16
14
 
17
15
  def to_solr(doc = {})
18
16
  doc = super
@@ -2,11 +2,16 @@ require 'spec_helper'
2
2
 
3
3
  describe ActiveFedora::SolrHit do
4
4
  before do
5
- class Foo < ActiveFedora::Base
6
- has_metadata 'descMetadata', type: ActiveFedora::SimpleDatastream do |m|
7
- m.field "foo", :text
8
- m.field "bar", :text
5
+ class MyDS < ActiveFedora::OmDatastream
6
+ set_terminology do |t|
7
+ t.root(path: "durh")
8
+ t.foo
9
+ t.bar
9
10
  end
11
+ end
12
+
13
+ class Foo < ActiveFedora::Base
14
+ has_subresource 'descMetadata', class_name: 'MyDS'
10
15
  Deprecation.silence(ActiveFedora::Attributes) do
11
16
  has_attributes :foo, datastream: 'descMetadata', multiple: true
12
17
  has_attributes :bar, datastream: 'descMetadata', multiple: false
@@ -29,6 +34,7 @@ describe ActiveFedora::SolrHit do
29
34
 
30
35
  after do
31
36
  Object.send(:remove_const, :Foo)
37
+ Object.send(:remove_const, :MyDS)
32
38
  end
33
39
 
34
40
  describe "#reify" do
@@ -2,11 +2,17 @@ require 'spec_helper'
2
2
 
3
3
  describe ActiveFedora::SolrInstanceLoader do
4
4
  before do
5
- class Foo < ActiveFedora::Base
6
- has_metadata 'descMetadata', type: ActiveFedora::SimpleDatastream do |m|
7
- m.field "foo", :text
8
- m.field "bar", :text
5
+ class MyDS < ActiveFedora::OmDatastream
6
+ set_terminology do |t|
7
+ t.root(path: "durh")
8
+ t.foo
9
+ t.bar
9
10
  end
11
+ end
12
+
13
+ class Foo < ActiveFedora::Base
14
+ extend Deprecation
15
+ has_subresource 'descMetadata', class_name: 'MyDS'
10
16
  Deprecation.silence(ActiveFedora::Attributes) do
11
17
  has_attributes :foo, datastream: 'descMetadata', multiple: true
12
18
  has_attributes :bar, datastream: 'descMetadata', multiple: false
@@ -38,6 +44,7 @@ describe ActiveFedora::SolrInstanceLoader do
38
44
  after do
39
45
  Object.send(:remove_const, :Foo)
40
46
  Object.send(:remove_const, :Bar)
47
+ Object.send(:remove_const, :MyDS)
41
48
  end
42
49
 
43
50
  context "without a solr doc" do
@@ -142,7 +142,7 @@ describe ActiveFedora::Versionable do
142
142
  end
143
143
 
144
144
  class MockAFBase < ActiveFedora::Base
145
- contains "descMetadata", class_name: 'VersionableDatastream', autocreate: true
145
+ has_subresource "descMetadata", class_name: 'VersionableDatastream', autocreate: true
146
146
  end
147
147
  end
148
148
 
@@ -272,7 +272,7 @@ describe ActiveFedora::Versionable do
272
272
  end
273
273
 
274
274
  class MockAFBase < ActiveFedora::Base
275
- contains "descMetadata", class_name: 'VersionableDatastream', autocreate: true
275
+ has_subresource "descMetadata", class_name: 'VersionableDatastream', autocreate: true
276
276
  end
277
277
  end
278
278
 
@@ -395,7 +395,7 @@ describe ActiveFedora::Versionable do
395
395
  end
396
396
 
397
397
  class MockAFBase < ActiveFedora::Base
398
- contains "content", class_name: 'BinaryDatastream', autocreate: true
398
+ has_subresource "content", class_name: 'BinaryDatastream', autocreate: true
399
399
  end
400
400
  end
401
401
 
@@ -42,7 +42,11 @@ require 'active_fedora/cleaner'
42
42
  RSpec.configure do |config|
43
43
  # Stub out test stuff.
44
44
  config.before(:each) do
45
- ActiveFedora::Cleaner.clean!
45
+ begin
46
+ ActiveFedora::Cleaner.clean!
47
+ rescue Faraday::ConnectionFailed, RSolr::Error::ConnectionRefused => e
48
+ $stderr.puts e.message
49
+ end
46
50
  end
47
51
  config.after(:each) do
48
52
  # cleanout_fedora
@@ -28,7 +28,7 @@ describe ActiveFedora do
28
28
  it "does not connect and warn" do
29
29
  expect(ActiveFedora::Base.logger).to receive(:warn)
30
30
  expect {
31
- ActiveFedora::Fedora.new(url: bad_url, base_path: '/test', user: user, password: password).connection
31
+ ActiveFedora::Fedora.new(url: bad_url, base_path: '/test', user: user, password: password).connection.head
32
32
  }.to raise_error Ldp::HttpError
33
33
  end
34
34
  end
@@ -2,15 +2,15 @@ require 'spec_helper'
2
2
 
3
3
  describe ActiveFedora::AttachedFiles do
4
4
  subject { ActiveFedora::Base.new }
5
- describe "contains" do
5
+ describe "has_subresource" do
6
6
  before do
7
7
  class Z < ActiveFedora::File
8
8
  end
9
9
  class FooHistory < ActiveFedora::Base
10
- contains 'dsid', class_name: 'ActiveFedora::SimpleDatastream'
11
- contains 'complex_ds', autocreate: true, class_name: 'Z'
12
- contains 'thumbnail'
13
- contains 'child_resource', class_name: 'ActiveFedora::Base'
10
+ has_subresource 'dsid', class_name: 'ActiveFedora::QualifiedDublinCoreDatastream'
11
+ has_subresource 'complex_ds', autocreate: true, class_name: 'Z'
12
+ has_subresource 'thumbnail'
13
+ has_subresource 'child_resource', class_name: 'ActiveFedora::Base'
14
14
  end
15
15
  end
16
16
  after do
@@ -30,24 +30,24 @@ describe ActiveFedora::AttachedFiles do
30
30
  end
31
31
 
32
32
  it "raises an error if you don't give a dsid" do
33
- expect { FooHistory.contains nil, type: ActiveFedora::SimpleDatastream }.to raise_error ArgumentError,
34
- "You must provide a name (dsid) for the datastream"
33
+ expect { FooHistory.has_subresource nil, type: ActiveFedora::QualifiedDublinCoreDatastream }.to raise_error ArgumentError,
34
+ "You must provide a path name (f.k.a. dsid) for the resource"
35
35
  end
36
36
  end
37
37
 
38
38
  describe '.has_metadata' do
39
39
  before do
40
- @original_behavior = Deprecation.default_deprecation_behavior
41
- Deprecation.default_deprecation_behavior = :silence
42
40
  class Z < ActiveFedora::File
43
41
  end
44
42
  class FooHistory < ActiveFedora::Base
45
- has_metadata name: 'dsid', type: ActiveFedora::SimpleDatastream
46
- has_metadata 'complex_ds', autocreate: true, type: 'Z'
43
+ extend Deprecation
44
+ Deprecation.silence(FooHistory) do
45
+ has_metadata name: 'dsid', type: ActiveFedora::QualifiedDublinCoreDatastream
46
+ has_metadata 'complex_ds', autocreate: true, type: 'Z'
47
+ end
47
48
  end
48
49
  end
49
50
  after do
50
- Deprecation.default_deprecation_behavior = @original_behavior
51
51
  Object.send(:remove_const, :FooHistory)
52
52
  Object.send(:remove_const, :Z)
53
53
  end
@@ -57,7 +57,7 @@ describe ActiveFedora::AttachedFiles do
57
57
  end
58
58
 
59
59
  it "has reasonable defaults" do
60
- expect(FooHistory.child_resource_reflections[:dsid].options).to include(class_name: 'ActiveFedora::SimpleDatastream')
60
+ expect(FooHistory.child_resource_reflections[:dsid].options).to include(class_name: 'ActiveFedora::QualifiedDublinCoreDatastream')
61
61
  end
62
62
 
63
63
  it "lets you override defaults" do
@@ -66,13 +66,21 @@ describe ActiveFedora::AttachedFiles do
66
66
  end
67
67
 
68
68
  it "raises an error if you don't give a type" do
69
- expect { FooHistory.has_metadata "bob" }.to raise_error ArgumentError,
70
- "You must provide a :type property for the datastream 'bob'"
69
+ expect {
70
+ Deprecation.silence(FooHistory) do
71
+ FooHistory.has_metadata "bob"
72
+ end
73
+ }.to raise_error ArgumentError,
74
+ "You must provide a :type property for the datastream 'bob'"
71
75
  end
72
76
 
73
77
  it "raises an error if you don't give a dsid" do
74
- expect { FooHistory.has_metadata type: ActiveFedora::SimpleDatastream }.to raise_error ArgumentError,
75
- "You must provide a name (dsid) for the datastream"
78
+ expect {
79
+ Deprecation.silence(FooHistory) do
80
+ FooHistory.has_metadata type: ActiveFedora::QualifiedDublinCoreDatastream
81
+ end
82
+ }.to raise_error ArgumentError,
83
+ "You must provide a path name (f.k.a. dsid) for the resource"
76
84
  end
77
85
 
78
86
  describe "creates accessors" do
@@ -86,8 +94,11 @@ describe ActiveFedora::AttachedFiles do
86
94
  describe '.has_file_datastream' do
87
95
  before do
88
96
  class FooHistory < ActiveFedora::Base
89
- has_file_datastream name: 'dsid'
90
- has_file_datastream 'another'
97
+ extend Deprecation
98
+ Deprecation.silence(FooHistory) do
99
+ has_file_datastream name: 'dsid'
100
+ has_file_datastream 'another'
101
+ end
91
102
  end
92
103
  end
93
104
  after do
@@ -105,7 +116,7 @@ describe ActiveFedora::AttachedFiles do
105
116
  class Bar < ActiveFedora::File; end
106
117
 
107
118
  class FooHistory < ActiveFedora::Base
108
- contains :content, class_name: 'Bar'
119
+ has_subresource :content, class_name: 'Bar'
109
120
  end
110
121
  end
111
122
 
@@ -183,7 +194,7 @@ describe ActiveFedora::AttachedFiles do
183
194
  context "when there are declared attached files" do
184
195
  before do
185
196
  class FooHistory < ActiveFedora::Base
186
- contains 'thumbnail'
197
+ has_subresource 'thumbnail'
187
198
  end
188
199
  end
189
200
 
@@ -37,7 +37,7 @@ describe ActiveFedora::Base do
37
37
  context "with an xml property (default cardinality)" do
38
38
  before do
39
39
  class BarHistory4 < ActiveFedora::Base
40
- has_metadata type: BarStream2, name: "xmlish"
40
+ has_subresource 'xmlish', class_name: 'BarStream2'
41
41
  Deprecation.silence(ActiveFedora::Attributes) do
42
42
  property :cow, delegate_to: 'xmlish'
43
43
  end
@@ -64,7 +64,7 @@ describe ActiveFedora::Base do
64
64
  context "with multiple set to false" do
65
65
  before do
66
66
  class BarHistory4 < ActiveFedora::Base
67
- has_metadata type: BarStream2, name: "xmlish"
67
+ has_subresource 'xmlish', class_name: 'BarStream2'
68
68
  Deprecation.silence(ActiveFedora::Attributes) do
69
69
  property :cow, delegate_to: 'xmlish', multiple: false
70
70
  end
@@ -86,7 +86,7 @@ describe ActiveFedora::Base do
86
86
  context "when updating and saving a property" do
87
87
  before do
88
88
  class BarHistory4 < ActiveFedora::Base
89
- has_metadata type: BarStream2, name: "xmlish"
89
+ has_subresource 'xmlish', class_name: 'BarStream2'
90
90
  Deprecation.silence(ActiveFedora::Attributes) do
91
91
  property :cow, delegate_to: 'xmlish', multiple: false
92
92
  end
@@ -113,22 +113,20 @@ describe ActiveFedora::Base do
113
113
  end
114
114
 
115
115
  describe "first level delegation" do
116
- before :all do
117
- class BarHistory2 < ActiveFedora::Base
118
- has_metadata type: ActiveFedora::SimpleDatastream, name: "someData" do |m|
119
- m.field "fubar", :string
120
- m.field "bandana", :string
121
- m.field "swank", :text
122
- m.field "animal_id", :string
123
- end
124
- has_metadata type: ActiveFedora::SimpleDatastream, name: "withText" do |m|
125
- m.field "fubar", :text
126
- end
127
- has_metadata type: ActiveFedora::SimpleDatastream, name: "withText2" do |m|
128
- m.field "fubar", :text
116
+ before do
117
+ class MyDS1 < ActiveFedora::NtriplesRDFDatastream
118
+ property :animal_id, predicate: ::RDF::Vocab::DC.publisher
119
+ end
120
+ class MyDS2 < ActiveFedora::OmDatastream
121
+ set_terminology do |t|
122
+ t.root(path: "durh")
123
+ t.fubar
129
124
  end
130
-
131
- has_metadata type: BarStream2, name: "xmlish"
125
+ end
126
+ class BarHistory2 < ActiveFedora::Base
127
+ has_subresource 'someData', class_name: 'MyDS1'
128
+ has_subresource "withText", class_name: 'MyDS2'
129
+ has_subresource 'xmlish', class_name: 'BarStream2'
132
130
  Deprecation.silence(ActiveFedora::Attributes) do
133
131
  has_attributes :cow, datastream: 'xmlish' # for testing the default value of multiple
134
132
  has_attributes :fubar, datastream: 'withText', multiple: true # test alternate datastream
@@ -142,7 +140,7 @@ describe ActiveFedora::Base do
142
140
  end
143
141
  end
144
142
 
145
- after :all do
143
+ after do
146
144
  Object.send(:remove_const, :BarHistory2)
147
145
  end
148
146
 
@@ -342,7 +340,7 @@ describe ActiveFedora::Base do
342
340
 
343
341
  describe ".datastream_class_for_name" do
344
342
  it "returns the specifed class" do
345
- expect(BarHistory2.send(:datastream_class_for_name, 'someData')).to eq ActiveFedora::SimpleDatastream
343
+ expect(BarHistory2.send(:datastream_class_for_name, 'someData')).to eq MyDS1
346
344
  end
347
345
  end
348
346
  end
@@ -350,7 +348,7 @@ describe ActiveFedora::Base do
350
348
  describe "with a superclass" do
351
349
  before :all do
352
350
  class BarHistory2 < ActiveFedora::Base
353
- has_metadata 'xmlish', type: BarStream2
351
+ has_subresource 'xmlish', class_name: 'BarStream2'
354
352
  Deprecation.silence(ActiveFedora::Attributes) do
355
353
  has_attributes :donkey, :cow, datastream: 'xmlish', multiple: true
356
354
  end
@@ -386,7 +384,7 @@ describe ActiveFedora::Base do
386
384
  property :description, predicate: ::RDF::Vocab::DC.description
387
385
  end
388
386
  class BarHistory4 < ActiveFedora::Base
389
- has_metadata 'rdfish', type: BarRdfDatastream
387
+ has_subresource 'rdfish', class_name: 'BarRdfDatastream'
390
388
  Deprecation.silence(ActiveFedora::Attributes) do
391
389
  has_attributes :title, datastream: 'rdfish', multiple: true
392
390
  has_attributes :description, datastream: 'rdfish', multiple: false
@@ -478,7 +476,7 @@ describe ActiveFedora::Base do
478
476
  property :description, predicate: ::RDF::Vocab::DC.description
479
477
  end
480
478
  class BarHistory4 < ActiveFedora::Base
481
- has_metadata 'rdfish', type: BarRdfDatastream
479
+ has_subresource 'rdfish', class_name: 'BarRdfDatastream'
482
480
  Deprecation.silence(ActiveFedora::Attributes) do
483
481
  has_attributes :description, datastream: :rdfish
484
482
  end