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
@@ -1,67 +1,67 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  RSpec.describe ActiveFedora::Aggregation::ListSource do
4
- subject { described_class.new }
4
+ subject(:list_source) { described_class.new }
5
5
 
6
6
  describe "#head" do
7
7
  it "is nil by default" do
8
- expect(subject.head).to eq nil
8
+ expect(list_source.head).to eq nil
9
9
  end
10
10
 
11
11
  it "is settable" do
12
- subject.head = RDF::URI("test.org")
12
+ list_source.head = RDF::URI("test.org")
13
13
 
14
- expect(subject.head_id.first).to eq RDF::URI("test.org")
14
+ expect(list_source.head_id.first).to eq RDF::URI("test.org")
15
15
  end
16
16
 
17
17
  it "maps to IANA.first" do
18
- expect(subject.class.properties["head"].predicate).to eq ::RDF::Vocab::IANA["first"]
18
+ expect(list_source.class.properties["head"].predicate).to eq ::RDF::Vocab::IANA["first"]
19
19
  end
20
20
  end
21
21
 
22
22
  describe "#order_will_change!" do
23
23
  it "marks it as changed" do
24
- expect(subject).not_to be_changed
25
- subject.order_will_change!
26
- expect(subject).to be_changed
27
- expect(subject.ordered_self).to be_changed
24
+ expect(list_source).not_to be_changed
25
+ list_source.order_will_change!
26
+ expect(list_source).to be_changed
27
+ expect(list_source.ordered_self).to be_changed
28
28
  end
29
29
  end
30
30
 
31
31
  describe "#tail" do
32
32
  it "is nil by default" do
33
- expect(subject.tail).to eq nil
33
+ expect(list_source.tail).to eq nil
34
34
  end
35
35
 
36
36
  it "is settable" do
37
- subject.tail = RDF::URI("test.org")
37
+ list_source.tail = RDF::URI("test.org")
38
38
 
39
- expect(subject.tail_id.first).to eq RDF::URI("test.org")
39
+ expect(list_source.tail_id.first).to eq RDF::URI("test.org")
40
40
  end
41
41
 
42
42
  it "maps to IANA.last" do
43
- expect(subject.class.properties["tail"].predicate).to eq ::RDF::Vocab::IANA["last"]
43
+ expect(list_source.class.properties["tail"].predicate).to eq ::RDF::Vocab::IANA["last"]
44
44
  end
45
45
  end
46
46
 
47
47
  describe "#changed?" do
48
48
  context "when nothing has changed" do
49
49
  it "is false" do
50
- expect(subject).not_to be_changed
50
+ expect(list_source).not_to be_changed
51
51
  end
52
52
  end
53
53
  context "when the ordered list is changed" do
54
54
  it "is true" do
55
- allow(subject.ordered_self).to receive(:changed?).and_return(true)
55
+ allow(list_source.ordered_self).to receive(:changed?).and_return(true)
56
56
 
57
- expect(subject).to be_changed
57
+ expect(list_source).to be_changed
58
58
  end
59
59
  end
60
60
  context "when the ordered list is not changed" do
61
61
  it "is false" do
62
- allow(subject.ordered_self).to receive(:changed?).and_return(false)
62
+ allow(list_source.ordered_self).to receive(:changed?).and_return(false)
63
63
 
64
- expect(subject).not_to be_changed
64
+ expect(list_source).not_to be_changed
65
65
  end
66
66
  end
67
67
  end
@@ -69,50 +69,50 @@ RSpec.describe ActiveFedora::Aggregation::ListSource do
69
69
  describe "#save" do
70
70
  context "when nothing has changed" do
71
71
  it "does not persist ordered_self" do
72
- allow(subject.ordered_self).to receive(:to_graph)
72
+ allow(list_source.ordered_self).to receive(:to_graph)
73
73
 
74
- subject.save
74
+ list_source.save
75
75
 
76
- expect(subject.ordered_self).not_to have_received(:to_graph)
76
+ expect(list_source.ordered_self).not_to have_received(:to_graph)
77
77
  end
78
78
  end
79
79
  context "when attributes have changed, but not ordered list" do
80
80
  it "does not persist ordered self" do
81
- allow(subject.ordered_self).to receive(:to_graph)
82
- subject.nodes += [RDF::URI("http://test.org")]
81
+ allow(list_source.ordered_self).to receive(:to_graph)
82
+ list_source.nodes += [RDF::URI("http://test.org")]
83
83
 
84
- subject.save
84
+ list_source.save
85
85
 
86
- expect(subject.ordered_self).not_to have_received(:to_graph)
86
+ expect(list_source.ordered_self).not_to have_received(:to_graph)
87
87
  end
88
88
  end
89
89
  context "when ordered list has changed" do
90
90
  it "persists it" do
91
- allow(subject.ordered_self).to receive(:to_graph).and_call_original
92
- allow(subject.ordered_self).to receive(:changed?).and_return(true)
91
+ allow(list_source.ordered_self).to receive(:to_graph).and_call_original
92
+ allow(list_source.ordered_self).to receive(:changed?).and_return(true)
93
93
 
94
- subject.save
94
+ list_source.save
95
95
 
96
- expect(subject.ordered_self).to have_received(:to_graph)
96
+ expect(list_source.ordered_self).to have_received(:to_graph)
97
97
  end
98
98
  end
99
99
  end
100
100
 
101
101
  describe "#serializable_hash" do
102
102
  it "does not serialize nodes" do
103
- subject.nodes += [RDF::URI("http://test.org")]
103
+ list_source.nodes += [RDF::URI("http://test.org")]
104
104
 
105
- expect(subject.serializable_hash).not_to have_key "nodes"
105
+ expect(list_source.serializable_hash).not_to have_key "nodes"
106
106
  end
107
107
  it "does not serialize head" do
108
- subject.head = RDF::URI("http://test.org")
108
+ list_source.head = RDF::URI("http://test.org")
109
109
 
110
- expect(subject.serializable_hash).not_to have_key "head"
110
+ expect(list_source.serializable_hash).not_to have_key "head"
111
111
  end
112
112
  it "does not serialize tail" do
113
- subject.tail = RDF::URI("http://test.org")
113
+ list_source.tail = RDF::URI("http://test.org")
114
114
 
115
- expect(subject.serializable_hash).not_to have_key "tail"
115
+ expect(list_source.serializable_hash).not_to have_key "tail"
116
116
  end
117
117
  end
118
118
 
@@ -127,8 +127,8 @@ RSpec.describe ActiveFedora::Aggregation::ListSource do
127
127
  it "can index" do
128
128
  m = Member.create
129
129
  proxy_in = RDF::URI(ActiveFedora::Base.translate_id_to_uri.call("banana"))
130
- subject.ordered_self.append_target m, proxy_in: proxy_in
131
- expect(subject.to_solr).to include ordered_targets_ssim: [m.id], proxy_in_ssi: "banana"
130
+ list_source.ordered_self.append_target m, proxy_in: proxy_in
131
+ expect(list_source.to_solr).to include ordered_targets_ssim: [m.id], proxy_in_ssi: "banana"
132
132
  end
133
133
  end
134
134
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  RSpec.describe ActiveFedora::Aggregation::OrderedReader do
4
- subject { described_class.new(root) }
4
+ subject(:ordered_reader) { described_class.new(root) }
5
5
  let(:root) { instance_double(ActiveFedora::Aggregation::ListSource) }
6
6
 
7
7
  describe "#each" do
@@ -10,14 +10,14 @@ RSpec.describe ActiveFedora::Aggregation::OrderedReader do
10
10
  tail = build_node(prev_node: head)
11
11
  allow(head).to receive(:next).and_return(tail)
12
12
  allow(root).to receive(:head).and_return(head)
13
- expect(subject.to_a).to eq [head, tail]
13
+ expect(ordered_reader.to_a).to eq [head, tail]
14
14
  end
15
15
  it "only goes as deep as necessary" do
16
16
  head = build_node
17
17
  tail = build_node(prev_node: head)
18
18
  allow(head).to receive(:next).and_return(tail)
19
19
  allow(root).to receive(:head).and_return(head)
20
- expect(subject.first).to eq head
20
+ expect(ordered_reader.first).to eq head
21
21
  expect(head).not_to have_received(:next)
22
22
  end
23
23
  context "when the prev is wrong" do
@@ -28,7 +28,7 @@ RSpec.describe ActiveFedora::Aggregation::OrderedReader do
28
28
  allow(head).to receive(:next).and_return(tail)
29
29
  allow(root).to receive(:head).and_return(head)
30
30
  allow(tail).to receive(:prev=)
31
- expect(subject.to_a).to eq [head, tail]
31
+ expect(ordered_reader.to_a).to eq [head, tail]
32
32
  expect(tail).to have_received(:prev=).with(head)
33
33
  end
34
34
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe ActiveFedora::AssociationHash do
4
- subject { described_class.new(model, reflections) }
4
+ subject(:association_hash) { described_class.new(model, reflections) }
5
5
 
6
6
  let(:model) { double(association: nil) }
7
7
  let(:reflections) { double(keys: [:foo]) }
@@ -12,18 +12,18 @@ describe ActiveFedora::AssociationHash do
12
12
  describe "key reader" do
13
13
  describe "when the association exists" do
14
14
  before do
15
- allow(subject).to receive(:association).with("foo") { association }
15
+ allow(association_hash).to receive(:association).with("foo") { association }
16
16
  end
17
17
  it "calls the association reader" do
18
- expect(subject["foo"]).to eq(reader)
18
+ expect(association_hash["foo"]).to eq(reader)
19
19
  end
20
20
  end
21
21
  describe "when the association does not exist" do
22
22
  before do
23
- allow(subject).to receive(:association).with("foo") { nil }
23
+ allow(association_hash).to receive(:association).with("foo") { nil }
24
24
  end
25
25
  it "returns nil" do
26
- expect(subject["foo"]).to be_nil
26
+ expect(association_hash["foo"]).to be_nil
27
27
  end
28
28
  end
29
29
  end
@@ -35,20 +35,20 @@ describe ActiveFedora::AssociationHash do
35
35
  end
36
36
  describe "when the association exists" do
37
37
  before do
38
- allow(subject).to receive(:association).with("foo") { association }
38
+ allow(association_hash).to receive(:association).with("foo") { association }
39
39
  end
40
40
  it "calls the association writer" do
41
41
  expect(association).to receive(:writer).with(obj)
42
- subject["foo"] = obj
42
+ association_hash["foo"] = obj
43
43
  end
44
44
  end
45
45
  describe "when the association does not exist" do
46
46
  before do
47
- allow(subject).to receive(:association).with("foo") { nil }
47
+ allow(association_hash).to receive(:association).with("foo") { nil }
48
48
  end
49
49
  it "doesn't call the association writer" do
50
50
  expect(association).not_to receive(:writer).with(obj)
51
- subject["foo"] = obj
51
+ association_hash["foo"] = obj
52
52
  end
53
53
  end
54
54
  end
@@ -58,21 +58,21 @@ describe ActiveFedora::AssociationHash do
58
58
  allow(model).to receive(:association).with(:foo) { association }
59
59
  end
60
60
  it "works with a string key" do
61
- expect(subject.association("foo")).to eq(association)
61
+ expect(association_hash.association("foo")).to eq(association)
62
62
  end
63
63
  it "works with a symbol key" do
64
- expect(subject.association(:foo)).to eq(association)
64
+ expect(association_hash.association(:foo)).to eq(association)
65
65
  end
66
66
  end
67
67
 
68
68
  describe "#key?" do
69
69
  it "works with a string" do
70
- expect(subject.key?("foo")).to be true
71
- expect(subject.key?("bar")).to be false
70
+ expect(association_hash.key?("foo")).to be true
71
+ expect(association_hash.key?("bar")).to be false
72
72
  end
73
73
  it "works with a symbol" do
74
- expect(subject.key?(:foo)).to be true
75
- expect(subject.key?(:bar)).to be false
74
+ expect(association_hash.key?(:foo)).to be true
75
+ expect(association_hash.key?(:bar)).to be false
76
76
  end
77
77
  end
78
78
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe ActiveFedora::AttachedFiles do
4
- subject { ActiveFedora::Base.new }
4
+ subject(:af_base) { ActiveFedora::Base.new }
5
5
  describe "has_subresource" do
6
6
  before do
7
7
  class Z < ActiveFedora::File
@@ -101,33 +101,33 @@ describe ActiveFedora::AttachedFiles do
101
101
 
102
102
  expect(m1).to receive(:serialize!)
103
103
  expect(m2).to receive(:serialize!)
104
- allow(subject).to receive(:declared_attached_files).and_return(m1: m1, m2: m2)
105
- subject.serialize_attached_files
104
+ allow(af_base).to receive(:declared_attached_files).and_return(m1: m1, m2: m2)
105
+ af_base.serialize_attached_files
106
106
  end
107
107
  end
108
108
 
109
109
  describe "#accessor_name" do
110
110
  it "uses the name" do
111
- expect(subject.send(:accessor_name, 'abc')).to eq 'abc'
111
+ expect(af_base.send(:accessor_name, 'abc')).to eq 'abc'
112
112
  end
113
113
 
114
114
  it "uses the name" do
115
- expect(subject.send(:accessor_name, 'ARCHIVAL_XML')).to eq 'ARCHIVAL_XML'
115
+ expect(af_base.send(:accessor_name, 'ARCHIVAL_XML')).to eq 'ARCHIVAL_XML'
116
116
  end
117
117
 
118
118
  it "uses the name" do
119
- expect(subject.send(:accessor_name, 'descMetadata')).to eq 'descMetadata'
119
+ expect(af_base.send(:accessor_name, 'descMetadata')).to eq 'descMetadata'
120
120
  end
121
121
 
122
122
  it "hash-erizes underscores" do
123
- expect(subject.send(:accessor_name, 'a-b')).to eq 'a_b'
123
+ expect(af_base.send(:accessor_name, 'a-b')).to eq 'a_b'
124
124
  end
125
125
  end
126
126
 
127
127
  describe "#attached_files" do
128
128
  it "returns the datastream hash proxy" do
129
- allow(subject).to receive(:load_datastreams)
130
- expect(subject.attached_files).to be_a_kind_of(ActiveFedora::FilesHash)
129
+ allow(af_base).to receive(:load_datastreams)
130
+ expect(af_base.attached_files).to be_a_kind_of(ActiveFedora::FilesHash)
131
131
  end
132
132
  end
133
133
 
@@ -136,37 +136,37 @@ describe ActiveFedora::AttachedFiles do
136
136
 
137
137
  it "does not call save on the file" do
138
138
  expect(file).to receive(:save).never
139
- subject.attach_file(file, 'part1')
139
+ af_base.attach_file(file, 'part1')
140
140
  end
141
141
 
142
142
  it "adds the file to the attached_files hash" do
143
143
  expect {
144
- subject.attach_file(file, 'part1')
145
- }.to change { subject.attached_files.key?(:part1) }.from(false).to(true)
144
+ af_base.attach_file(file, 'part1')
145
+ }.to change { af_base.attached_files.key?(:part1) }.from(false).to(true)
146
146
  end
147
147
 
148
148
  context "after attaching the file" do
149
149
  let(:dsid) { 'Abc' }
150
150
  before do
151
- subject.attach_file(file, dsid)
151
+ af_base.attach_file(file, dsid)
152
152
  end
153
153
 
154
154
  it "adds the datastream to the object" do
155
- expect(subject.attached_files['Abc']).to eq file
155
+ expect(af_base.attached_files['Abc']).to eq file
156
156
  end
157
157
 
158
158
  describe "dynamic accessors" do
159
159
  context "when the file is named with dash" do
160
160
  let(:dsid) { 'eac-cpf' }
161
161
  it "converts dashes to underscores" do
162
- expect(subject.eac_cpf).to eq file
162
+ expect(af_base.eac_cpf).to eq file
163
163
  end
164
164
  end
165
165
 
166
166
  context "when the file is named with underscore" do
167
167
  let(:dsid) { 'foo_bar' }
168
168
  it "preserves the underscore" do
169
- expect(subject.foo_bar).to eq file
169
+ expect(af_base.foo_bar).to eq file
170
170
  end
171
171
  end
172
172
  end
@@ -179,9 +179,9 @@ describe ActiveFedora::AttachedFiles do
179
179
  ds2 = double(metadata?: true)
180
180
  ds3 = double(metadata?: true)
181
181
  file_ds = double(metadata?: false)
182
- allow(subject).to receive(:attached_files).and_return(a: ds1, b: ds2, c: ds3, e: file_ds)
183
- expect(subject.metadata_streams).to include(ds1, ds2, ds3)
184
- expect(subject.metadata_streams).to_not include(file_ds)
182
+ allow(af_base).to receive(:attached_files).and_return(a: ds1, b: ds2, c: ds3, e: file_ds)
183
+ expect(af_base.metadata_streams).to include(ds1, ds2, ds3)
184
+ expect(af_base.metadata_streams).to_not include(file_ds)
185
185
  end
186
186
  end
187
187
  end
@@ -16,12 +16,12 @@ describe ActiveFedora::Base do
16
16
  end
17
17
 
18
18
  let(:obj) { BarHistory4.new(title: ['test1']) }
19
- subject { obj }
19
+ subject(:history) { obj }
20
20
 
21
21
  describe "#attribute_names" do
22
22
  context "on an instance" do
23
23
  it "lists the attributes" do
24
- expect(subject.attribute_names).to eq ["title", "abstract"]
24
+ expect(history.attribute_names).to eq ["title", "abstract"]
25
25
  end
26
26
  end
27
27
 
@@ -34,21 +34,21 @@ describe ActiveFedora::Base do
34
34
 
35
35
  describe "#inspect" do
36
36
  it "shows the attributes" do
37
- expect(subject.inspect).to eq "#<BarHistory4 id: nil, title: [\"test1\"], abstract: nil>"
37
+ expect(history.inspect).to eq "#<BarHistory4 id: nil, title: [\"test1\"], abstract: nil>"
38
38
  end
39
39
 
40
40
  describe "with a id" do
41
- before { allow(subject).to receive(:id).and_return('test:123') }
41
+ before { allow(history).to receive(:id).and_return('test:123') }
42
42
 
43
43
  it "shows a id" do
44
- expect(subject.inspect).to eq "#<BarHistory4 id: \"test:123\", title: [\"test1\"], abstract: nil>"
44
+ expect(history.inspect).to eq "#<BarHistory4 id: \"test:123\", title: [\"test1\"], abstract: nil>"
45
45
  end
46
46
  end
47
47
 
48
48
  describe "with no attributes" do
49
- subject { described_class.new }
49
+ subject(:object) { described_class.new }
50
50
  it "shows a id" do
51
- expect(subject.inspect).to eq "#<ActiveFedora::Base id: nil>"
51
+ expect(object.inspect).to eq "#<ActiveFedora::Base id: nil>"
52
52
  end
53
53
  end
54
54
 
@@ -57,18 +57,18 @@ describe ActiveFedora::Base do
57
57
  class BarHistory2 < BarHistory4
58
58
  belongs_to :library, predicate: ActiveFedora::RDF::Fcrepo::RelsExt.hasConstituent, class_name: 'BarHistory4'
59
59
  end
60
- subject.library = library
60
+ history.library = library
61
61
  end
62
62
 
63
63
  let(:library) { BarHistory4.create }
64
- subject { BarHistory2.new }
64
+ subject(:history) { BarHistory2.new }
65
65
 
66
66
  after do
67
67
  Object.send(:remove_const, :BarHistory2)
68
68
  end
69
69
 
70
70
  it "shows the library_id" do
71
- expect(subject.inspect).to eq "#<BarHistory2 id: nil, title: [], abstract: nil, library_id: \"#{library.id}\">"
71
+ expect(history.inspect).to eq "#<BarHistory2 id: nil, title: [], abstract: nil, library_id: \"#{library.id}\">"
72
72
  end
73
73
  end
74
74
  end
@@ -83,36 +83,36 @@ describe ActiveFedora::Base do
83
83
  describe "accessing attributes" do
84
84
  context "using generated methods" do
85
85
  it "returns values" do
86
- expect(subject.title).to eq ['test1']
86
+ expect(history.title).to eq ['test1']
87
87
  end
88
88
  end
89
89
 
90
90
  context "using hash accessors" do
91
91
  context "on single value fields" do
92
92
  it "has a default value" do
93
- expect(subject[:abstract]).to be_nil
93
+ expect(history[:abstract]).to be_nil
94
94
  end
95
95
 
96
96
  context "when there are two assertions for the predicate" do
97
97
  before do
98
- subject.resource[:abstract] = ['foo', 'bar']
98
+ history.resource[:abstract] = ['foo', 'bar']
99
99
  end
100
100
  it "raises an error if just returning the first value would cause data loss" do
101
- expect { subject[:abstract] }.to raise_error ActiveFedora::ConstraintError, "Expected \"abstract\" to have 0-1 statements, but there are 2"
101
+ expect { history[:abstract] }.to raise_error ActiveFedora::ConstraintError, "Expected \"abstract\" to have 0-1 statements, but there are 2"
102
102
  end
103
103
  end
104
104
  end
105
105
 
106
106
  context "multiple values" do
107
107
  it "returns values" do
108
- expect(subject[:title]).to eq ['test1']
108
+ expect(history[:title]).to eq ['test1']
109
109
  end
110
110
  end
111
111
 
112
112
  context "on Fedora attributes" do
113
113
  it "return values" do
114
- expect(subject[:type]).to be_empty
115
- expect(subject[:rdf_label]).to contain_exactly("test1")
114
+ expect(history[:type]).to be_empty
115
+ expect(history[:rdf_label]).to contain_exactly("test1")
116
116
  end
117
117
  end
118
118
  end
@@ -121,8 +121,8 @@ describe ActiveFedora::Base do
121
121
  describe 'change tracking' do
122
122
  it "is able to track change status" do
123
123
  expect {
124
- subject.abstract = "Moo"
125
- }.to change { subject.abstract_changed? }.from(false).to(true)
124
+ history.abstract = "Moo"
125
+ }.to change { history.abstract_changed? }.from(false).to(true)
126
126
  end
127
127
  end
128
128
 
@@ -136,16 +136,16 @@ describe ActiveFedora::Base do
136
136
 
137
137
  describe "when an object of the wrong cardinality is set" do
138
138
  it "does not allow passing a string to a multiple property writer" do
139
- expect { subject.title = "Quack" }.to raise_error ArgumentError
140
- expect { subject.title = ["Quack"] }.not_to raise_error
141
- expect { subject.title = nil }.not_to raise_error
139
+ expect { history.title = "Quack" }.to raise_error ArgumentError
140
+ expect { history.title = ["Quack"] }.not_to raise_error
141
+ expect { history.title = nil }.not_to raise_error
142
142
  end
143
143
 
144
144
  it "does not allow an enumerable to a unique attribute writer" do
145
- expect { subject.abstract = "Low" }.not_to raise_error
146
- expect { subject.abstract = ["Low"]
145
+ expect { history.abstract = "Low" }.not_to raise_error
146
+ expect { history.abstract = ["Low"]
147
147
  }.to raise_error ArgumentError, "You attempted to set the property `abstract' to an enumerable value. However, this property is declared as singular."
148
- expect { subject.abstract = nil }.not_to raise_error
148
+ expect { history.abstract = nil }.not_to raise_error
149
149
  end
150
150
  end
151
151
  end