hydra-pcdm 0.0.1 → 0.1.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.
- checksums.yaml +4 -4
- data/.travis.yml +4 -0
- data/Gemfile +0 -4
- data/README.md +2 -2
- data/hydra-pcdm.gemspec +2 -1
- data/lib/hydra/pcdm.rb +21 -30
- data/lib/hydra/pcdm/ancestor_checker.rb +18 -0
- data/lib/hydra/pcdm/collection_indexer.rb +2 -2
- data/lib/hydra/pcdm/deep_member_iterator.rb +31 -0
- data/lib/hydra/pcdm/models/concerns/collection_behavior.rb +20 -57
- data/lib/hydra/pcdm/models/concerns/object_behavior.rb +12 -37
- data/lib/hydra/pcdm/models/concerns/pcdm_behavior.rb +34 -0
- data/lib/hydra/pcdm/object_indexer.rb +1 -1
- data/lib/hydra/pcdm/services/file/get_mime_type.rb +1 -1
- data/lib/hydra/pcdm/validators.rb +8 -0
- data/lib/hydra/pcdm/validators/ancestor_validator.rb +26 -0
- data/lib/hydra/pcdm/validators/composite_validator.rb +17 -0
- data/lib/hydra/pcdm/validators/pcdm_object_validator.rb +9 -0
- data/lib/hydra/pcdm/validators/pcdm_validator.rb +9 -0
- data/lib/hydra/pcdm/version.rb +1 -1
- data/lib/hydra/pcdm/vocab/pcdm_terms.rb +1 -1
- data/spec/hydra/pcdm/ancestor_checker_spec.rb +29 -0
- data/spec/hydra/pcdm/collection_indexer_spec.rb +11 -11
- data/spec/hydra/pcdm/deep_member_iterator_spec.rb +52 -0
- data/spec/hydra/pcdm/models/collection_spec.rb +691 -17
- data/spec/hydra/pcdm/models/file_spec.rb +16 -0
- data/spec/hydra/pcdm/models/object_spec.rb +576 -27
- data/spec/hydra/pcdm/object_indexer_spec.rb +6 -6
- data/spec/spec_helper.rb +8 -1
- metadata +31 -52
- data/lib/hydra/pcdm/services/collection/add_collection.rb +0 -20
- data/lib/hydra/pcdm/services/collection/add_object.rb +0 -19
- data/lib/hydra/pcdm/services/collection/add_related_object.rb +0 -21
- data/lib/hydra/pcdm/services/collection/get_collections.rb +0 -18
- data/lib/hydra/pcdm/services/collection/get_objects.rb +0 -18
- data/lib/hydra/pcdm/services/collection/get_related_objects.rb +0 -17
- data/lib/hydra/pcdm/services/collection/remove_collection.rb +0 -36
- data/lib/hydra/pcdm/services/collection/remove_object.rb +0 -43
- data/lib/hydra/pcdm/services/collection/remove_related_object.rb +0 -36
- data/lib/hydra/pcdm/services/object/add_object.rb +0 -20
- data/lib/hydra/pcdm/services/object/add_related_object.rb +0 -21
- data/lib/hydra/pcdm/services/object/get_objects.rb +0 -18
- data/lib/hydra/pcdm/services/object/get_related_objects.rb +0 -17
- data/lib/hydra/pcdm/services/object/remove_object.rb +0 -43
- data/lib/hydra/pcdm/services/object/remove_related_object.rb +0 -36
- data/spec/hydra/pcdm/services/collection/add_collection_spec.rb +0 -197
- data/spec/hydra/pcdm/services/collection/add_object_spec.rb +0 -132
- data/spec/hydra/pcdm/services/collection/add_related_object_spec.rb +0 -94
- data/spec/hydra/pcdm/services/collection/get_collections_spec.rb +0 -40
- data/spec/hydra/pcdm/services/collection/get_objects_spec.rb +0 -40
- data/spec/hydra/pcdm/services/collection/get_related_objects_spec.rb +0 -37
- data/spec/hydra/pcdm/services/collection/remove_collection_spec.rb +0 -143
- data/spec/hydra/pcdm/services/collection/remove_object_spec.rb +0 -180
- data/spec/hydra/pcdm/services/collection/remove_related_object_spec.rb +0 -146
- data/spec/hydra/pcdm/services/file/add_type_spec.rb +0 -19
- data/spec/hydra/pcdm/services/object/add_object_spec.rb +0 -186
- data/spec/hydra/pcdm/services/object/add_related_object_spec.rb +0 -94
- data/spec/hydra/pcdm/services/object/get_objects_spec.rb +0 -33
- data/spec/hydra/pcdm/services/object/get_related_objects_spec.rb +0 -39
- data/spec/hydra/pcdm/services/object/remove_object_spec.rb +0 -158
- data/spec/hydra/pcdm/services/object/remove_related_object_spec.rb +0 -126
@@ -1,33 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Hydra::PCDM::GetObjectsFromObject do
|
4
|
-
|
5
|
-
subject { Hydra::PCDM::Object.create }
|
6
|
-
|
7
|
-
let(:object1) { Hydra::PCDM::Object.create }
|
8
|
-
let(:object2) { Hydra::PCDM::Object.create }
|
9
|
-
|
10
|
-
describe '#call' do
|
11
|
-
it 'should return empty array when no members' do
|
12
|
-
subject.save
|
13
|
-
expect(Hydra::PCDM::GetObjectsFromObject.call( subject )).to eq []
|
14
|
-
end
|
15
|
-
|
16
|
-
context 'with files and objects' do
|
17
|
-
let(:file1) { subject.files.build }
|
18
|
-
let(:file2) { subject.files.build }
|
19
|
-
|
20
|
-
before do
|
21
|
-
file1.content = "I'm a file"
|
22
|
-
file2.content = "I am too"
|
23
|
-
Hydra::PCDM::AddObjectToObject.call( subject, object1 )
|
24
|
-
Hydra::PCDM::AddObjectToObject.call( subject, object2 )
|
25
|
-
subject.save!
|
26
|
-
end
|
27
|
-
|
28
|
-
it 'should only return objects' do
|
29
|
-
expect(Hydra::PCDM::GetObjectsFromObject.call( subject )).to eq [object1,object2]
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Hydra::PCDM::GetRelatedObjectsFromObject do
|
4
|
-
|
5
|
-
subject { Hydra::PCDM::Object.create }
|
6
|
-
|
7
|
-
let(:object1) { Hydra::PCDM::Object.create }
|
8
|
-
let(:object2) { Hydra::PCDM::Object.create }
|
9
|
-
|
10
|
-
describe '#call' do
|
11
|
-
it 'should return empty array when no related object' do
|
12
|
-
subject.save
|
13
|
-
expect(Hydra::PCDM::GetRelatedObjectsFromObject.call( subject )).to eq []
|
14
|
-
end
|
15
|
-
|
16
|
-
|
17
|
-
context 'with files and objects' do
|
18
|
-
let(:file1) { subject.files.build }
|
19
|
-
let(:file2) { subject.files.build }
|
20
|
-
|
21
|
-
before do
|
22
|
-
file1.content = "I'm a file"
|
23
|
-
file2.content = "I am too"
|
24
|
-
Hydra::PCDM::AddObjectToObject.call( subject, object1 )
|
25
|
-
Hydra::PCDM::AddObjectToObject.call( subject, object2 )
|
26
|
-
subject.save!
|
27
|
-
end
|
28
|
-
|
29
|
-
it 'should return empty array when only files and object are aggregated' do
|
30
|
-
expect(Hydra::PCDM::GetRelatedObjectsFromObject.call( subject )).to eq []
|
31
|
-
end
|
32
|
-
|
33
|
-
it 'should only return related objects' do
|
34
|
-
Hydra::PCDM::AddRelatedObjectToObject.call( subject, object2 )
|
35
|
-
expect(Hydra::PCDM::GetRelatedObjectsFromObject.call( subject )).to eq [object2]
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
@@ -1,158 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Hydra::PCDM::RemoveObjectFromObject do
|
4
|
-
|
5
|
-
subject { Hydra::PCDM::Object.create }
|
6
|
-
|
7
|
-
let(:object1) { Hydra::PCDM::Object.create }
|
8
|
-
let(:object2) { Hydra::PCDM::Object.create }
|
9
|
-
let(:object3) { Hydra::PCDM::Object.create }
|
10
|
-
let(:object4) { Hydra::PCDM::Object.create }
|
11
|
-
let(:object5) { Hydra::PCDM::Object.create }
|
12
|
-
|
13
|
-
describe '#call' do
|
14
|
-
context 'when it is the only object' do
|
15
|
-
before do
|
16
|
-
Hydra::PCDM::AddObjectToObject.call( subject, object1 )
|
17
|
-
subject.save
|
18
|
-
expect( Hydra::PCDM::GetObjectsFromObject.call( subject.reload )).to eq [object1]
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'should remove object' do
|
22
|
-
expect( Hydra::PCDM::RemoveObjectFromObject.call( subject, object1 ) ).to eq object1
|
23
|
-
expect( Hydra::PCDM::GetObjectsFromObject.call( subject.reload )).to eq []
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
context 'when multiple objects' do
|
28
|
-
before do
|
29
|
-
Hydra::PCDM::AddObjectToObject.call( subject, object1 )
|
30
|
-
Hydra::PCDM::AddObjectToObject.call( subject, object2 )
|
31
|
-
Hydra::PCDM::AddObjectToObject.call( subject, object3 )
|
32
|
-
Hydra::PCDM::AddObjectToObject.call( subject, object4 )
|
33
|
-
Hydra::PCDM::AddObjectToObject.call( subject, object5 )
|
34
|
-
subject.save
|
35
|
-
expect( Hydra::PCDM::GetObjectsFromObject.call( subject.reload )).to eq [object1,object2,object3,object4,object5]
|
36
|
-
end
|
37
|
-
|
38
|
-
it 'should remove first object' do
|
39
|
-
expect( Hydra::PCDM::RemoveObjectFromObject.call( subject, object1 ) ).to eq object1
|
40
|
-
expect( Hydra::PCDM::GetObjectsFromObject.call( subject.reload )).to eq [object2,object3,object4,object5]
|
41
|
-
end
|
42
|
-
|
43
|
-
it 'should remove last object' do
|
44
|
-
expect( Hydra::PCDM::RemoveObjectFromObject.call( subject, object5 ) ).to eq object5
|
45
|
-
expect( Hydra::PCDM::GetObjectsFromObject.call( subject.reload )).to eq [object1,object2,object3,object4]
|
46
|
-
end
|
47
|
-
|
48
|
-
it 'should remove middle object' do
|
49
|
-
expect( Hydra::PCDM::RemoveObjectFromObject.call( subject, object3 ) ).to eq object3
|
50
|
-
expect( Hydra::PCDM::GetObjectsFromObject.call( subject.reload )).to eq [object1,object2,object4,object5]
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
context 'when object repeats' do
|
55
|
-
before do
|
56
|
-
Hydra::PCDM::AddObjectToObject.call( subject, object1 )
|
57
|
-
Hydra::PCDM::AddObjectToObject.call( subject, object2 )
|
58
|
-
Hydra::PCDM::AddObjectToObject.call( subject, object3 )
|
59
|
-
Hydra::PCDM::AddObjectToObject.call( subject, object2 )
|
60
|
-
Hydra::PCDM::AddObjectToObject.call( subject, object4 )
|
61
|
-
Hydra::PCDM::AddObjectToObject.call( subject, object2 )
|
62
|
-
Hydra::PCDM::AddObjectToObject.call( subject, object5 )
|
63
|
-
subject.save
|
64
|
-
expect(Hydra::PCDM::GetObjectsFromObject.call( subject )).to eq [object1,object2,object3,object2,object4,object2,object5]
|
65
|
-
end
|
66
|
-
|
67
|
-
it 'should remove first occurrence' do
|
68
|
-
skip 'skipping this test because issue #102 needs to be addressed' do
|
69
|
-
expect( Hydra::PCDM::RemoveObjectFromObject.call( subject, object2 ) ).to eq object2
|
70
|
-
expect( Hydra::PCDM::GetObjectsFromObject.call( subject.reload )).to eq [object1,object3,object2,object4,object2,object5]
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
it 'should remove last occurrence' do
|
75
|
-
skip 'skipping this test because issue #102 needs to be addressed' do
|
76
|
-
expect( Hydra::PCDM::RemoveObjectFromObject.call( subject, object2, -1 ) ).to eq object2
|
77
|
-
expect( Hydra::PCDM::GetObjectsFromObject.call( subject.reload )).to eq [object1,object2,object3,object2,object4,object5]
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
it 'should remove nth occurrence' do
|
82
|
-
skip 'skipping this test because issue #102 needs to be addressed' do
|
83
|
-
expect( Hydra::PCDM::RemoveObjectFromObject.call( subject, object2, 2 ) ).to eq object2
|
84
|
-
expect( Hydra::PCDM::GetObjectsFromObject.call( subject.reload )).to eq [object1,object2,object3,object4,object2,object5]
|
85
|
-
end
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
context 'when object is missing' do
|
90
|
-
it 'should return nil' do
|
91
|
-
subject.save
|
92
|
-
expect( Hydra::PCDM::RemoveObjectFromObject.call( subject.reload, object1 )).to be nil
|
93
|
-
end
|
94
|
-
|
95
|
-
it 'should return nil' do
|
96
|
-
Hydra::PCDM::AddObjectToObject.call( subject, object1 )
|
97
|
-
Hydra::PCDM::AddObjectToObject.call( subject, object2 )
|
98
|
-
Hydra::PCDM::AddObjectToObject.call( subject, object4 )
|
99
|
-
Hydra::PCDM::AddObjectToObject.call( subject, object5 )
|
100
|
-
subject.save
|
101
|
-
expect( Hydra::PCDM::RemoveObjectFromObject.call( subject.reload, object3 )).to be nil
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
106
|
-
context 'with unacceptable objects' do
|
107
|
-
let(:collection1) { Hydra::PCDM::Collection.create }
|
108
|
-
let(:file1) { Hydra::PCDM::File.new }
|
109
|
-
let(:non_PCDM_object) { "I'm not a PCDM object" }
|
110
|
-
let(:af_base_object) { ActiveFedora::Base.create }
|
111
|
-
|
112
|
-
let(:error_type) { ArgumentError }
|
113
|
-
let(:error_message) { 'child_object must be a pcdm object' }
|
114
|
-
|
115
|
-
it 'should NOT remove Hydra::PCDM::Collections from objects aggregation' do
|
116
|
-
expect{ Hydra::PCDM::RemoveObjectFromObject.call( subject, collection1 ) }.to raise_error(error_type,error_message)
|
117
|
-
end
|
118
|
-
|
119
|
-
it 'should NOT remove Hydra::PCDM::Files from objects aggregation' do
|
120
|
-
expect{ Hydra::PCDM::RemoveObjectFromObject.call( subject, file1 ) }.to raise_error(error_type,error_message)
|
121
|
-
end
|
122
|
-
|
123
|
-
it 'should NOT remove non-PCDM objects from objects aggregation' do
|
124
|
-
expect{ Hydra::PCDM::RemoveObjectFromObject.call( subject, non_PCDM_object ) }.to raise_error(error_type,error_message)
|
125
|
-
end
|
126
|
-
|
127
|
-
it 'should NOT remove AF::Base objects from objects aggregation' do
|
128
|
-
expect{ Hydra::PCDM::RemoveObjectFromObject.call( subject, af_base_object ) }.to raise_error(error_type,error_message)
|
129
|
-
end
|
130
|
-
end
|
131
|
-
|
132
|
-
context 'with unacceptable parent object' do
|
133
|
-
let(:object2) { Hydra::PCDM::Object.create }
|
134
|
-
let(:collection1) { Hydra::PCDM::Collection.create }
|
135
|
-
let(:file1) { Hydra::PCDM::File.new }
|
136
|
-
let(:non_PCDM_object) { "I'm not a PCDM object" }
|
137
|
-
let(:af_base_object) { ActiveFedora::Base.create }
|
138
|
-
|
139
|
-
let(:error_type) { ArgumentError }
|
140
|
-
let(:error_message) { 'parent_object must be a pcdm object' }
|
141
|
-
|
142
|
-
it 'should NOT accept Hydra::PCDM::Collections as parent object' do
|
143
|
-
expect{ Hydra::PCDM::RemoveObjectFromObject.call( collection1, object2 ) }.to raise_error(error_type,error_message)
|
144
|
-
end
|
145
|
-
|
146
|
-
it 'should NOT accept Hydra::PCDM::Files as parent object' do
|
147
|
-
expect{ Hydra::PCDM::RemoveObjectFromObject.call( file1, object2 ) }.to raise_error(error_type,error_message)
|
148
|
-
end
|
149
|
-
|
150
|
-
it 'should NOT accept non-PCDM objects as parent object' do
|
151
|
-
expect{ Hydra::PCDM::RemoveObjectFromObject.call( non_PCDM_object, object2 ) }.to raise_error(error_type,error_message)
|
152
|
-
end
|
153
|
-
|
154
|
-
it 'should NOT accept AF::Base objects as parent object' do
|
155
|
-
expect{ Hydra::PCDM::RemoveObjectFromObject.call( af_base_object, object2 ) }.to raise_error(error_type,error_message)
|
156
|
-
end
|
157
|
-
end
|
158
|
-
end
|
@@ -1,126 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Hydra::PCDM::RemoveRelatedObjectFromObject do
|
4
|
-
|
5
|
-
subject { Hydra::PCDM::Object.create }
|
6
|
-
|
7
|
-
let(:object1) { Hydra::PCDM::Object.create }
|
8
|
-
let(:object2) { Hydra::PCDM::Object.create }
|
9
|
-
let(:object3) { Hydra::PCDM::Object.create }
|
10
|
-
let(:object4) { Hydra::PCDM::Object.create }
|
11
|
-
let(:object5) { Hydra::PCDM::Object.create }
|
12
|
-
|
13
|
-
let(:file1) { Hydra::PCDM::File.new }
|
14
|
-
let(:file2) { Hydra::PCDM::File.new }
|
15
|
-
|
16
|
-
describe '#call' do
|
17
|
-
context 'when it is the only related object' do
|
18
|
-
before do
|
19
|
-
Hydra::PCDM::AddRelatedObjectToObject.call( subject, object1 )
|
20
|
-
subject.save
|
21
|
-
expect( Hydra::PCDM::GetRelatedObjectsFromObject.call( subject.reload )).to eq [object1]
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'should remove related object' do
|
25
|
-
expect( Hydra::PCDM::RemoveRelatedObjectFromObject.call( subject, object1 ) ).to eq object1
|
26
|
-
expect( Hydra::PCDM::GetRelatedObjectsFromObject.call( subject.reload )).to eq []
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
context 'when multiple related objects' do
|
31
|
-
before do
|
32
|
-
Hydra::PCDM::AddRelatedObjectToObject.call( subject, object1 )
|
33
|
-
Hydra::PCDM::AddRelatedObjectToObject.call( subject, object2 )
|
34
|
-
Hydra::PCDM::AddRelatedObjectToObject.call( subject, object3 )
|
35
|
-
Hydra::PCDM::AddRelatedObjectToObject.call( subject, object4 )
|
36
|
-
Hydra::PCDM::AddRelatedObjectToObject.call( subject, object5 )
|
37
|
-
subject.save
|
38
|
-
expect( Hydra::PCDM::GetRelatedObjectsFromObject.call( subject.reload )).to eq [object1,object2,object3,object4,object5]
|
39
|
-
end
|
40
|
-
|
41
|
-
it 'should remove first related object' do
|
42
|
-
expect( Hydra::PCDM::RemoveRelatedObjectFromObject.call( subject, object1 ) ).to eq object1
|
43
|
-
expect( Hydra::PCDM::GetRelatedObjectsFromObject.call( subject.reload )).to eq [object2,object3,object4,object5]
|
44
|
-
end
|
45
|
-
|
46
|
-
it 'should remove last related object' do
|
47
|
-
expect( Hydra::PCDM::RemoveRelatedObjectFromObject.call( subject, object5 ) ).to eq object5
|
48
|
-
expect( Hydra::PCDM::GetRelatedObjectsFromObject.call( subject.reload )).to eq [object1,object2,object3,object4]
|
49
|
-
end
|
50
|
-
|
51
|
-
it 'should remove middle related object' do
|
52
|
-
expect( Hydra::PCDM::RemoveRelatedObjectFromObject.call( subject, object3 ) ).to eq object3
|
53
|
-
expect( Hydra::PCDM::GetRelatedObjectsFromObject.call( subject.reload )).to eq [object1,object2,object4,object5]
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
context 'when related object is missing' do
|
58
|
-
it 'should return nil when 0 related objects and 0 objects' do
|
59
|
-
subject.save
|
60
|
-
expect( Hydra::PCDM::RemoveRelatedObjectFromObject.call( subject.reload, object1 )).to be nil
|
61
|
-
end
|
62
|
-
|
63
|
-
it 'should return nil when other related objects' do
|
64
|
-
Hydra::PCDM::AddRelatedObjectToObject.call( subject, object1 )
|
65
|
-
Hydra::PCDM::AddRelatedObjectToObject.call( subject, object2 )
|
66
|
-
Hydra::PCDM::AddRelatedObjectToObject.call( subject, object4 )
|
67
|
-
Hydra::PCDM::AddRelatedObjectToObject.call( subject, object5 )
|
68
|
-
subject.save
|
69
|
-
expect( Hydra::PCDM::RemoveRelatedObjectFromObject.call( subject.reload, object3 )).to be nil
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
context 'with unacceptable related objects' do
|
75
|
-
let(:collection1) { Hydra::PCDM::Collection.create }
|
76
|
-
let(:file1) { Hydra::PCDM::File.new }
|
77
|
-
let(:non_PCDM_object) { "I'm not a PCDM object" }
|
78
|
-
let(:af_base_object) { ActiveFedora::Base.create }
|
79
|
-
|
80
|
-
let(:error_type) { ArgumentError }
|
81
|
-
let(:error_message) { 'child_related_object must be a pcdm object' }
|
82
|
-
|
83
|
-
it 'should NOT remove Hydra::PCDM::Collections from related_objects aggregation' do
|
84
|
-
expect{ Hydra::PCDM::RemoveRelatedObjectFromObject.call( subject, collection1 ) }.to raise_error(error_type,error_message)
|
85
|
-
end
|
86
|
-
|
87
|
-
it 'should NOT remove Hydra::PCDM::Files from related_objects aggregation' do
|
88
|
-
expect{ Hydra::PCDM::RemoveRelatedObjectFromObject.call( subject, file1 ) }.to raise_error(error_type,error_message)
|
89
|
-
end
|
90
|
-
|
91
|
-
it 'should NOT remove non-PCDM objects from related_objects aggregation' do
|
92
|
-
expect{ Hydra::PCDM::RemoveRelatedObjectFromObject.call( subject, non_PCDM_object ) }.to raise_error(error_type,error_message)
|
93
|
-
end
|
94
|
-
|
95
|
-
it 'should NOT remove AF::Base objects from related_objects aggregation' do
|
96
|
-
expect{ Hydra::PCDM::RemoveRelatedObjectFromObject.call( subject, af_base_object ) }.to raise_error(error_type,error_message)
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
context 'with unacceptable parent object' do
|
101
|
-
let(:object2) { Hydra::PCDM::Object.create }
|
102
|
-
let(:collection1) { Hydra::PCDM::Collection.create }
|
103
|
-
let(:file1) { Hydra::PCDM::File.new }
|
104
|
-
let(:non_PCDM_object) { "I'm not a PCDM object" }
|
105
|
-
let(:af_base_object) { ActiveFedora::Base.create }
|
106
|
-
|
107
|
-
let(:error_type) { ArgumentError }
|
108
|
-
let(:error_message) { 'parent_object must be a pcdm object' }
|
109
|
-
|
110
|
-
it 'should NOT accept Hydra::PCDM::Objects as parent object' do
|
111
|
-
expect{ Hydra::PCDM::RemoveRelatedObjectFromObject.call( collection1, object2 ) }.to raise_error(error_type,error_message)
|
112
|
-
end
|
113
|
-
|
114
|
-
it 'should NOT accept Hydra::PCDM::Files as parent object' do
|
115
|
-
expect{ Hydra::PCDM::RemoveRelatedObjectFromObject.call( file1, object2 ) }.to raise_error(error_type,error_message)
|
116
|
-
end
|
117
|
-
|
118
|
-
it 'should NOT accept non-PCDM objects as parent object' do
|
119
|
-
expect{ Hydra::PCDM::RemoveRelatedObjectFromObject.call( non_PCDM_object, object2 ) }.to raise_error(error_type,error_message)
|
120
|
-
end
|
121
|
-
|
122
|
-
it 'should NOT accept AF::Base objects as parent object' do
|
123
|
-
expect{ Hydra::PCDM::RemoveRelatedObjectFromObject.call( af_base_object, object2 ) }.to raise_error(error_type,error_message)
|
124
|
-
end
|
125
|
-
end
|
126
|
-
end
|