active-fedora 11.0.0.rc1 → 11.0.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -18,9 +18,9 @@ describe "fedora_solr_sync_issues" do
18
18
  end
19
19
 
20
20
  let(:parent) { ParentThing.create }
21
- subject { ChildThing.create parent: parent }
21
+ subject(:child) { ChildThing.create parent: parent }
22
22
 
23
- before { Ldp::Resource::RdfSource.new(ActiveFedora.fedora.connection, subject.uri).delete }
23
+ before { Ldp::Resource::RdfSource.new(ActiveFedora.fedora.connection, child.uri).delete }
24
24
 
25
25
  it "does not go into an infinite loop" do
26
26
  parent.reload
@@ -15,24 +15,22 @@ describe "Checking fixity" do
15
15
  obj = MockAFBase.create
16
16
  obj.data.content = "some content"
17
17
  obj.save
18
- obj.data
18
+ obj.data.check_fixity
19
19
  end
20
20
 
21
21
  context "with a valid resource" do
22
- it "returns true for a successful fixity check" do
23
- expect(subject.check_fixity).to be true
24
- end
22
+ it { is_expected.to be true }
25
23
  end
26
24
  context "when no uri has been set" do
27
- subject { ActiveFedora::File.new }
25
+ subject(:file) { ActiveFedora::File.new }
28
26
  it "raises an error" do
29
- expect { subject.check_fixity }.to raise_error(ArgumentError, "You must provide a uri")
27
+ expect { file.check_fixity }.to raise_error(ArgumentError, "You must provide a uri")
30
28
  end
31
29
  end
32
30
  context "with missing resource" do
33
- subject { ActiveFedora::File.new(ActiveFedora::Base.id_to_uri('123')) }
31
+ subject(:file) { ActiveFedora::File.new(ActiveFedora::Base.id_to_uri('123')) }
34
32
  it "raises an error" do
35
- expect { subject.check_fixity }.to raise_error(Ldp::NotFound)
33
+ expect { file.check_fixity }.to raise_error(Ldp::NotFound)
36
34
  end
37
35
  end
38
36
  end
@@ -4,19 +4,20 @@ require 'active_fedora'
4
4
  require "rexml/document"
5
5
 
6
6
  describe ActiveFedora::File do
7
+ let(:file) { described_class.new }
7
8
  describe "#save" do
8
9
  context "with new files" do
9
10
  context "with a string" do
10
- before { subject.content = "hello" }
11
+ before { file.content = "hello" }
11
12
  it "saves" do
12
- expect(subject.save).to be true
13
+ expect(file.save).to be true
13
14
  end
14
15
  end
15
16
 
16
17
  context "with no content" do
17
- before { subject.content = nil }
18
+ before { file.content = nil }
18
19
  it "does not save" do
19
- expect(subject.save).to be false
20
+ expect(file.save).to be false
20
21
  end
21
22
  end
22
23
  end
@@ -43,9 +44,9 @@ describe ActiveFedora::File do
43
44
  end
44
45
 
45
46
  it "saves" do
46
- subject.content = ActionDispatch::Http::UploadedFile.new
47
- subject.save
48
- expect(subject).not_to be_new_record
47
+ file.content = ActionDispatch::Http::UploadedFile.new
48
+ file.save
49
+ expect(file).not_to be_new_record
49
50
  end
50
51
  end
51
52
  end
@@ -149,9 +150,7 @@ describe ActiveFedora::File do
149
150
  end
150
151
  context "open ended" do
151
152
  let(:range) { 'bytes=0-' }
152
- it "gets a response" do
153
- expect(subject).to eq 'one1two2threfour'
154
- end
153
+ it { should eq 'one1two2threfour' }
155
154
  end
156
155
  context "not starting at the beginning" do
157
156
  let(:range) { 'bytes=3-15' }
@@ -31,18 +31,16 @@ describe ActiveFedora::Associations::HasManyAssociation do
31
31
  let!(:book) { Book.create }
32
32
  let(:library) { Library.new }
33
33
  subject { library.books.count }
34
- it "it excludes the books that aren't associated" do
35
- expect(subject).to eq 0
36
- end
34
+ # it excludes the books that aren't associated
35
+ it { is_expected.to eq 0 }
37
36
  end
38
37
 
39
38
  context "when the owner is saved with associations" do
40
39
  let(:book) { Book.create }
41
40
  let!(:library) { Library.create(books: [book]) }
42
41
  subject { library.reload; library.books.count }
43
- it "it excludes the books that are associated" do
44
- expect(subject).to eq 1
45
- end
42
+ # it excludes the books that are associated
43
+ it { is_expected.to eq 1 }
46
44
  end
47
45
 
48
46
  context "when the owner is not saved after checking the count" do
@@ -406,10 +404,10 @@ describe ActiveFedora::Associations::HasManyAssociation do
406
404
  library.save
407
405
  end
408
406
 
409
- subject { library.books(true) }
407
+ subject(:books) { library.books(true) }
410
408
 
411
409
  it "saves the new title" do
412
- expect(subject.first.title).to eq ["Better book"]
410
+ expect(books.first.title).to eq ["Better book"]
413
411
  end
414
412
  end
415
413
  end
@@ -130,18 +130,17 @@ describe "Indirect containers" do
130
130
  end
131
131
 
132
132
  describe "#first" do
133
- subject { reloaded.related_objects.first }
133
+ subject(:first) { reloaded.related_objects.first }
134
134
  it "has the content" do
135
- expect(subject.title).to eq 'HMMM'
135
+ expect(first.title).to eq 'HMMM'
136
136
  end
137
137
  end
138
138
 
139
139
  describe "#==" do
140
140
  subject { reloaded.related_objects }
141
141
 
142
- it "delegates to to_a" do
143
- expect(subject).to eq [file]
144
- end
142
+ # it delegates to to_a
143
+ it { is_expected.to eq [file] }
145
144
  end
146
145
 
147
146
  describe "#concat" do
@@ -242,9 +241,9 @@ describe "Indirect containers" do
242
241
  end
243
242
 
244
243
  describe "#first" do
245
- subject { reloaded.related_objects.first }
244
+ subject(:first) { reloaded.related_objects.first }
246
245
  it "has the content" do
247
- expect(subject.title).to eq 'HMMM'
246
+ expect(first.title).to eq 'HMMM'
248
247
  end
249
248
  end
250
249
  end
@@ -280,9 +279,9 @@ describe "Indirect containers" do
280
279
  end
281
280
 
282
281
  describe "#first" do
283
- subject { reloaded.related_objects.first }
282
+ subject(:first) { reloaded.related_objects.first }
284
283
  it "has the content" do
285
- expect(subject.title).to eq 'HMMM'
284
+ expect(first.title).to eq 'HMMM'
286
285
  end
287
286
  end
288
287
  end
@@ -21,12 +21,12 @@ describe "Objects should be serialized to JSON" do
21
21
 
22
22
  before { allow(obj).to receive(:id).and_return('test-123') }
23
23
 
24
- subject { JSON.parse(obj.to_json) }
24
+ let(:json) { JSON.parse(obj.to_json) }
25
25
 
26
26
  it "has to_json" do
27
- expect(subject['id']).to eq "test-123"
28
- expect(subject['title']).to eq ["My Title"]
29
- expect(subject['description']).to eq "Wonderful stuff"
27
+ expect(json['id']).to eq "test-123"
28
+ expect(json['title']).to eq ["My Title"]
29
+ expect(json['description']).to eq "Wonderful stuff"
30
30
  end
31
31
  end
32
32
  end
@@ -30,7 +30,7 @@ describe ActiveFedora::NtriplesRDFDatastream do
30
30
  end
31
31
  end
32
32
 
33
- subject { MyDatastream.new(described_class.id_to_uri('test:1')) }
33
+ subject(:my_datastream) { MyDatastream.new(described_class.id_to_uri('test:1')) }
34
34
 
35
35
  after do
36
36
  Object.send(:remove_const, :RdfTest)
@@ -50,44 +50,44 @@ EOF
50
50
  end
51
51
 
52
52
  it "delegates as_json to the fields" do
53
- subject.title = "Title of work"
54
- expect(subject.title.as_json).to eq ["Title of work"]
55
- expect(subject.title.to_json).to eq "\[\"Title of work\"\]"
53
+ my_datastream.title = "Title of work"
54
+ expect(my_datastream.title.as_json).to eq ["Title of work"]
55
+ expect(my_datastream.title.to_json).to eq "\[\"Title of work\"\]"
56
56
  end
57
57
 
58
58
  describe "serializing" do
59
59
  it "handles dates" do
60
- subject.date_uploaded = [Date.parse('2012-11-02')]
61
- expect(subject.date_uploaded.first).to be_kind_of Date
60
+ my_datastream.date_uploaded = [Date.parse('2012-11-02')]
61
+ expect(my_datastream.date_uploaded.first).to be_kind_of Date
62
62
  end
63
63
  it "handles integers" do
64
- subject.filesize = 12_345
65
- expect(subject.filesize).to eq [12_345]
66
- expect(subject.filesize.first).to be_kind_of Fixnum
64
+ my_datastream.filesize = 12_345
65
+ expect(my_datastream.filesize).to eq [12_345]
66
+ expect(my_datastream.filesize.first).to be_kind_of Fixnum
67
67
  end
68
68
  end
69
69
 
70
70
  it "sets and recall values" do
71
- subject.title = 'War and Peace'
72
- expect(subject).to be_changed
73
- subject.based_near = ["Moscow, Russia"]
74
- subject.related_url = ["http://en.wikipedia.org/wiki/War_and_Peace"]
75
- subject.part = ["this is a part"]
76
- subject.save
77
- expect(subject.title).to eq ['War and Peace']
78
- expect(subject.based_near).to eq ["Moscow, Russia"]
79
- expect(subject.related_url).to eq ["http://en.wikipedia.org/wiki/War_and_Peace"]
80
- expect(subject.part).to eq ["this is a part"]
71
+ my_datastream.title = 'War and Peace'
72
+ expect(my_datastream).to be_changed
73
+ my_datastream.based_near = ["Moscow, Russia"]
74
+ my_datastream.related_url = ["http://en.wikipedia.org/wiki/War_and_Peace"]
75
+ my_datastream.part = ["this is a part"]
76
+ my_datastream.save
77
+ expect(my_datastream.title).to eq ['War and Peace']
78
+ expect(my_datastream.based_near).to eq ["Moscow, Russia"]
79
+ expect(my_datastream.related_url).to eq ["http://en.wikipedia.org/wiki/War_and_Peace"]
80
+ expect(my_datastream.part).to eq ["this is a part"]
81
81
  end
82
82
 
83
83
  it "set, persist, and recall values" do
84
- subject.title = 'War and Peace'
85
- subject.based_near = ["Moscow, Russia"]
86
- subject.related_url = ["http://en.wikipedia.org/wiki/War_and_Peace"]
87
- subject.part = ["this is a part"]
88
- subject.save
84
+ my_datastream.title = 'War and Peace'
85
+ my_datastream.based_near = ["Moscow, Russia"]
86
+ my_datastream.related_url = ["http://en.wikipedia.org/wiki/War_and_Peace"]
87
+ my_datastream.part = ["this is a part"]
88
+ my_datastream.save
89
89
 
90
- loaded = MyDatastream.new(subject.uri)
90
+ loaded = MyDatastream.new(my_datastream.uri)
91
91
  expect(loaded.title).to eq ['War and Peace']
92
92
  expect(loaded.based_near).to eq ['Moscow, Russia']
93
93
  expect(loaded.related_url).to eq ['http://en.wikipedia.org/wiki/War_and_Peace']
@@ -95,32 +95,32 @@ EOF
95
95
  end
96
96
 
97
97
  it "sets multiple values" do
98
- subject.part = ["part 1", "part 2"]
99
- subject.save
98
+ my_datastream.part = ["part 1", "part 2"]
99
+ my_datastream.save
100
100
 
101
- loaded = MyDatastream.new(subject.uri)
101
+ loaded = MyDatastream.new(my_datastream.uri)
102
102
  expect(loaded.part).to contain_exactly 'part 1', 'part 2'
103
103
  end
104
104
 
105
105
  it "appends values" do
106
- subject.part = ["thing 1"]
107
- subject.save
106
+ my_datastream.part = ["thing 1"]
107
+ my_datastream.save
108
108
 
109
- subject.part << "thing 2"
110
- expect(subject.part).to contain_exactly "thing 1", "thing 2"
109
+ my_datastream.part << "thing 2"
110
+ expect(my_datastream.part).to contain_exactly "thing 1", "thing 2"
111
111
  end
112
112
 
113
113
  it "is able to save a blank document" do
114
- subject.title = ""
115
- subject.save
114
+ my_datastream.title = ""
115
+ my_datastream.save
116
116
  end
117
117
 
118
118
  it "loads n-triples into the graph" do
119
119
  ntrip = '<http://oregondigital.org/ns/62> <http://purl.org/dc/terms/type> "Image" .
120
120
  <http://oregondigital.org/ns/62> <http://purl.org/dc/terms/spatial> "Benton County (Ore.)" .
121
121
  '
122
- subject.content = ntrip
123
- expect(subject.graph.statements.to_a).to contain_exactly(*RDF::NTriples::Reader.new(ntrip).statements.to_a)
122
+ my_datastream.content = ntrip
123
+ expect(my_datastream.graph.statements.to_a).to contain_exactly(*RDF::NTriples::Reader.new(ntrip).statements.to_a)
124
124
  end
125
125
 
126
126
  describe "using rdf_subject" do
@@ -130,55 +130,55 @@ EOF
130
130
  rdf_subject { |ds| RDF::URI.new("http://oregondigital.org/ns/#{parent_uri(ds).split('/')[-1].split(':')[1]}") }
131
131
  property :dctype, predicate: ::RDF::Vocab::DC.type
132
132
  end
133
- subject.rdf.dctype = "Frog"
134
- subject.save!
133
+ rdf_test.rdf.dctype = "Frog"
134
+ rdf_test.save!
135
135
  end
136
136
 
137
137
  after do
138
- subject.destroy
138
+ rdf_test.destroy
139
139
  end
140
140
 
141
- subject { RdfTest.new('/test:99') }
141
+ subject(:rdf_test) { RdfTest.new('/test:99') }
142
142
 
143
143
  it "writes rdf with proper subjects" do
144
- subject.reload
145
- expect(subject.rdf.graph.dump(:ntriples)).to eq "<http://oregondigital.org/ns/99> <http://purl.org/dc/terms/type> \"Frog\" .\n"
146
- subject.rdf.dctype == ['Frog']
144
+ rdf_test.reload
145
+ expect(rdf_test.rdf.graph.dump(:ntriples)).to eq "<http://oregondigital.org/ns/99> <http://purl.org/dc/terms/type> \"Frog\" .\n"
146
+ rdf_test.rdf.dctype == ['Frog']
147
147
  end
148
148
  end
149
149
 
150
150
  it "deletes values" do
151
- subject.title = "Hamlet"
152
- subject.related_url = ["http://psu.edu/"]
153
- subject.related_url << "http://projecthydra.org/"
151
+ my_datastream.title = "Hamlet"
152
+ my_datastream.related_url = ["http://psu.edu/"]
153
+ my_datastream.related_url << "http://projecthydra.org/"
154
154
 
155
- expect(subject.title).to eq ["Hamlet"]
156
- expect(subject.related_url).to include("http://psu.edu/")
157
- expect(subject.related_url).to include("http://projecthydra.org/")
155
+ expect(my_datastream.title).to eq ["Hamlet"]
156
+ expect(my_datastream.related_url).to include("http://psu.edu/")
157
+ expect(my_datastream.related_url).to include("http://projecthydra.org/")
158
158
 
159
- subject.title = "" # empty string can be meaningful, don't assume delete.
160
- expect(subject.title).to eq ['']
159
+ my_datastream.title = "" # empty string can be meaningful, don't assume delete.
160
+ expect(my_datastream.title).to eq ['']
161
161
 
162
- subject.title = nil
163
- subject.related_url.delete("http://projecthydra.org/")
162
+ my_datastream.title = nil
163
+ my_datastream.related_url.delete("http://projecthydra.org/")
164
164
 
165
- expect(subject.title).to eq []
166
- expect(subject.related_url).to eq ["http://psu.edu/"]
165
+ expect(my_datastream.title).to eq []
166
+ expect(my_datastream.related_url).to eq ["http://psu.edu/"]
167
167
  end
168
168
 
169
169
  it "deletes multiple values at once" do
170
- subject.part = ["MacBeth"]
171
- subject.part << "Hamlet"
172
- subject.part << "Romeo & Juliet"
173
- expect(subject.part).to include "MacBeth"
174
- subject.part.subtract(["MacBeth", "Romeo & Juliet"])
175
- expect(subject.part).to eq ["Hamlet"]
176
- expect(subject.part.first).to eq "Hamlet"
170
+ my_datastream.part = ["MacBeth"]
171
+ my_datastream.part << "Hamlet"
172
+ my_datastream.part << "Romeo & Juliet"
173
+ expect(my_datastream.part).to include "MacBeth"
174
+ my_datastream.part.subtract(["MacBeth", "Romeo & Juliet"])
175
+ expect(my_datastream.part).to eq ["Hamlet"]
176
+ expect(my_datastream.part.first).to eq "Hamlet"
177
177
  end
178
178
  it "ignores values to be deleted that do not exist" do
179
- subject.part = ["title1", "title2", "title3"]
180
- subject.part.subtract(["title2", "title4", "title6"])
181
- expect(subject.part).to contain_exactly "title1", "title3"
179
+ my_datastream.part = ["title1", "title2", "title3"]
180
+ my_datastream.part.subtract(["title2", "title4", "title6"])
181
+ expect(my_datastream.part).to contain_exactly "title1", "title3"
182
182
  end
183
183
 
184
184
  describe "term proxy methods" do
@@ -187,29 +187,29 @@ EOF
187
187
  property :title, predicate: ::RDF::Vocab::DC.title
188
188
  end
189
189
  end
190
- subject { TitleDatastream.new }
191
- before { subject.title = ["title1", "title2", "title3"] }
190
+ subject(:title_datastream) { TitleDatastream.new }
191
+ before { title_datastream.title = ["title1", "title2", "title3"] }
192
192
 
193
193
  after(:each) do
194
194
  Object.send(:remove_const, :TitleDatastream)
195
195
  end
196
196
 
197
197
  it "supports the count method to determine # of values" do
198
- expect(subject.title.count).to eq 3
198
+ expect(title_datastream.title.count).to eq 3
199
199
  end
200
200
  it "iterates over multiple values" do
201
- expect(subject.title).to respond_to(:each)
201
+ expect(title_datastream.title).to respond_to(:each)
202
202
  end
203
203
  it "evaluates equality predictably" do
204
- expect(subject.title).to contain_exactly "title1", "title2", "title3"
204
+ expect(title_datastream.title).to contain_exactly "title1", "title2", "title3"
205
205
  end
206
206
  it "supports the empty? method" do
207
- expect(subject.title).to_not be_empty
208
- subject.title.subtract(["title1", "title2", "title3"])
209
- expect(subject.title).to be_empty
207
+ expect(title_datastream.title).to_not be_empty
208
+ title_datastream.title.subtract(["title1", "title2", "title3"])
209
+ expect(title_datastream.title).to be_empty
210
210
  end
211
211
  it "supports the each method" do
212
- expect(subject.title.respond_to?(:each)).to eq true
212
+ expect(title_datastream.title.respond_to?(:each)).to eq true
213
213
  end
214
214
  end
215
215
  end
@@ -18,40 +18,40 @@ describe ActiveFedora::OmDatastream do
18
18
  obj.destroy
19
19
  end
20
20
 
21
- subject { obj.descMetadata }
21
+ subject(:desc_metadata) { obj.descMetadata }
22
22
 
23
23
  describe "#changed?" do
24
24
  it "is not changed when no fields have been set" do
25
- expect(subject).to_not be_content_changed
25
+ expect(desc_metadata).to_not be_content_changed
26
26
  end
27
27
  it "is changed when a field has been set" do
28
- subject.title = 'Foobar'
29
- expect(subject).to be_content_changed
28
+ desc_metadata.title = 'Foobar'
29
+ expect(desc_metadata).to be_content_changed
30
30
  end
31
31
  it "is not changed if the new xml matches the old xml" do
32
- subject.content = subject.content
33
- expect(subject).to_not be_content_changed
32
+ desc_metadata.content = desc_metadata.content
33
+ expect(desc_metadata).to_not be_content_changed
34
34
  end
35
35
 
36
36
  it "is changed if there are minor differences in whitespace" do
37
- subject.content = "<a><b>1</b></a>"
37
+ desc_metadata.content = "<a><b>1</b></a>"
38
38
  obj.save
39
- expect(subject).to_not be_content_changed
40
- subject.content = "<a>\n<b>1</b>\n</a>"
41
- expect(subject).to be_content_changed
39
+ expect(desc_metadata).to_not be_content_changed
40
+ desc_metadata.content = "<a>\n<b>1</b>\n</a>"
41
+ expect(desc_metadata).to be_content_changed
42
42
  end
43
43
  end
44
44
 
45
45
  describe "empty datastream content" do
46
46
  it "does not break when there is empty datastream content" do
47
- subject.content = ""
47
+ desc_metadata.content = ""
48
48
  obj.save
49
49
  end
50
50
  end
51
51
 
52
52
  describe '.update_values' do
53
53
  before do
54
- subject.content = File.read(fixture('mods_articles/mods_article1.xml'))
54
+ desc_metadata.content = File.read(fixture('mods_articles/mods_article1.xml'))
55
55
  obj.save
56
56
  obj.reload
57
57
  end
@@ -67,7 +67,7 @@ describe ActiveFedora::OmDatastream do
67
67
 
68
68
  describe ".to_solr" do
69
69
  before do
70
- subject.journal.issue.publication_date = Date.parse('2012-11-02')
70
+ desc_metadata.journal.issue.publication_date = Date.parse('2012-11-02')
71
71
  obj.save!
72
72
  obj.reload
73
73
  end