active-fedora 9.4.3 → 9.5.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.
@@ -0,0 +1,50 @@
1
+ require 'spec_helper'
2
+
3
+ describe ActiveFedora::FinderMethods do
4
+ let(:object_class) do
5
+ Class.new do
6
+ def self.delegated_attributes
7
+ {}
8
+ end
9
+ end
10
+ end
11
+
12
+ let(:finder_class) do
13
+ this = self
14
+ Class.new do
15
+ include ActiveFedora::FinderMethods
16
+ @@klass = this.object_class
17
+ def initialize
18
+ @klass = @@klass
19
+ end
20
+ end
21
+ end
22
+
23
+ let(:finder) { finder_class.new }
24
+
25
+ describe "#condition_to_clauses" do
26
+ subject { finder.send(:condition_to_clauses, key, value) }
27
+ let(:key) { 'library_id' }
28
+
29
+ context "when value is nil" do
30
+ let(:value) { nil }
31
+ it { is_expected.to eq "-library_id:[* TO *]" }
32
+ end
33
+
34
+ context "when value is empty string" do
35
+ let(:value) { '' }
36
+ it { is_expected.to eq "-library_id:[* TO *]" }
37
+ end
38
+
39
+ context "when value is an id" do
40
+ let(:value) { 'one/two/three' }
41
+ it { is_expected.to eq "_query_:\"{!raw f=library_id}one/two/three\"" }
42
+ end
43
+
44
+ context "when value is an array" do
45
+ let(:value) { ['one', 'four'] }
46
+ it { is_expected.to eq "_query_:\"{!raw f=library_id}one\" AND " \
47
+ "_query_:\"{!raw f=library_id}four\"" }
48
+ end
49
+ end
50
+ end
@@ -24,20 +24,44 @@ describe ActiveFedora::FixityService do
24
24
  end
25
25
 
26
26
  describe "#check" do
27
- before do
28
- allow(service).to receive(:get_fixity_response_from_fedora).and_return(response)
29
- end
27
+ before { allow(service).to receive(:get_fixity_response_from_fedora).and_return(response) }
30
28
  subject { service.check }
31
- context "with a passing result" do
32
- let(:response) do
33
- instance_double("Response", body: '<subject> <http://fedora.info/definitions/v4/repository#status> "SUCCESS"^^<http://www.w3.org/2001/XMLSchema#string> .')
29
+
30
+ context "with Fedora version >= 4.4.0" do
31
+ context "with a passing result" do
32
+ let(:response) do
33
+ instance_double("Response", body: '<subject> <http://www.loc.gov/premis/rdf/v1#hasEventOutcome> "SUCCESS"^^<http://www.w3.org/2001/XMLSchema#string> .')
34
+ end
35
+ it { is_expected.to be true }
36
+ end
37
+
38
+ context "with a failing result" do
39
+ let(:response) do
40
+ instance_double("Response", body: '<subject> <http://www.loc.gov/premis/rdf/v1#hasEventOutcome> "BAD_CHECKSUM"^^<http://www.w3.org/2001/XMLSchema#string> .')
41
+ end
42
+ it { is_expected.to be false }
43
+ end
44
+ end
45
+
46
+ context "with Fedora version < 4.4.0" do
47
+ context "with a passing result" do
48
+ let(:response) do
49
+ instance_double("Response", body: '<subject> <http://fedora.info/definitions/v4/repository#status> "SUCCESS"^^<http://www.w3.org/2001/XMLSchema#string> .')
50
+ end
51
+ it { is_expected.to be true }
52
+ end
53
+
54
+ context "with a failing result" do
55
+ let(:response) do
56
+ instance_double("Response", body: '<subject> <http://fedora.info/definitions/v4/repository#status> "BAD_CHECKSUM"^^<http://www.w3.org/2001/XMLSchema#string> .')
57
+ end
58
+ it { is_expected.to be false }
34
59
  end
35
- it { is_expected.to be true }
36
60
  end
37
61
 
38
- context "with a failing result" do
62
+ context "with a non-existent predicate" do
39
63
  let(:response) do
40
- instance_double("Response", body: '<subject> <http://fedora.info/definitions/v4/repository#status> "BAD_CHECKSUM"^^<http://www.w3.org/2001/XMLSchema#string> .')
64
+ instance_double("Response", body: '<subject> <http://bogus.com/definitions/v1/bogusTerm#foo> "SUCCESS"^^<http://www.w3.org/2001/XMLSchema#string> .')
41
65
  end
42
66
  it { is_expected.to be false }
43
67
  end
@@ -7,9 +7,9 @@ describe ActiveFedora::Base do
7
7
  class Basic < ActiveFedora::Base
8
8
  end
9
9
  end
10
- @model_query = "_query_:\"{!raw f=" + ActiveFedora::SolrQueryBuilder.solr_name("has_model", :symbol) + "}SpecModel::Basic" + "\""
11
- @sort_query = ActiveFedora::SolrQueryBuilder.solr_name("system_create", :stored_sortable, type: :date) + ' asc'
12
10
  end
11
+ let(:sort_query) { ActiveFedora::SolrQueryBuilder.solr_name("system_create", :stored_sortable, type: :date) + ' asc' }
12
+ let(:model_query) { "_query_:\"{!raw f=has_model_ssim}SpecModel::Basic\"" }
13
13
 
14
14
  after(:all) do
15
15
  Object.send(:remove_const, :SpecModel)
@@ -19,28 +19,40 @@ describe ActiveFedora::Base do
19
19
  before { allow(ActiveFedora::Base).to receive(:relation).and_return(relation) }
20
20
  describe "called on a concrete class" do
21
21
  let(:relation) { ActiveFedora::Relation.new(SpecModel::Basic) }
22
- it "should query solr for all objects with :has_model_s of self.class" do
23
- expect(relation).to receive(:load_from_fedora).with("changeme:30", nil).and_return("Fake Object1")
24
- expect(relation).to receive(:load_from_fedora).with("changeme:22", nil).and_return("Fake Object2")
25
- mock_docs = [{"id" => "changeme:30"}, {"id" => "changeme:22"}]
22
+
23
+ it "queries solr for all objects with has_model_ssim of self.class" do
24
+ expect(relation).to receive(:load_from_fedora).with("changeme:30", nil)
25
+ .and_return("Fake Object1")
26
+ expect(relation).to receive(:load_from_fedora).with("changeme:22", nil)
27
+ .and_return("Fake Object2")
28
+ mock_docs = [{ "id" => "changeme:30" }, { "id" => "changeme:22" }]
26
29
  expect(mock_docs).to receive(:has_next?).and_return(false)
27
- expect(ActiveFedora::SolrService.instance.conn).to receive(:paginate).with(1, 1000, 'select', :params=>{:q=>@model_query, :qt => 'standard', :sort => [@sort_query], :fl=> 'id', }).and_return('response'=>{'docs'=>mock_docs})
30
+ expect(ActiveFedora::SolrService.instance.conn).to receive(:paginate)
31
+ .with(1, 1000, 'select',
32
+ params: { q: model_query, qt: 'standard', sort: [sort_query], fl: 'id' })
33
+ .and_return('response' => { 'docs' => mock_docs })
28
34
  expect(SpecModel::Basic.all).to eq ["Fake Object1", "Fake Object2"]
29
35
  end
30
36
  end
37
+
31
38
  describe "called without a specific class" do
32
39
  let(:relation) { ActiveFedora::Relation.new(ActiveFedora::Base) }
33
- it "should specify a q parameter" do
34
- expect(relation).to receive(:load_from_fedora).with("changeme:30", true).and_return("Fake Object1")
35
- expect(relation).to receive(:load_from_fedora).with("changeme:22", true).and_return("Fake Object2")
40
+ it "specifies a q parameter" do
41
+ expect(relation).to receive(:load_from_fedora).with("changeme:30", true)
42
+ .and_return("Fake Object1")
43
+ expect(relation).to receive(:load_from_fedora).with("changeme:22", true)
44
+ .and_return("Fake Object2")
36
45
  mock_docs = [{"id" => "changeme:30"},{"id" => "changeme:22"}]
37
46
  expect(mock_docs).to receive(:has_next?).and_return(false)
38
- expect(ActiveFedora::SolrService.instance.conn).to receive(:paginate).with(1, 1000, 'select', :params=>{:q=>'*:*', :qt => 'standard', :sort => [@sort_query], :fl=> 'id', }).and_return('response'=>{'docs'=>mock_docs})
47
+ expect(ActiveFedora::SolrService.instance.conn).to receive(:paginate)
48
+ .with(1, 1000, 'select',
49
+ params: { q: '*:*', qt: 'standard', sort: [sort_query], fl: 'id' })
50
+ .and_return('response' => { 'docs' => mock_docs })
39
51
  expect(ActiveFedora::Base.all).to eq ["Fake Object1", "Fake Object2"]
40
52
  end
41
53
  end
42
54
  end
43
-
55
+
44
56
  describe '#find' do
45
57
  describe "with :cast false" do
46
58
  describe "and an id is specified" do
@@ -66,12 +78,15 @@ describe ActiveFedora::Base do
66
78
  end
67
79
  let(:relation) { ActiveFedora::Relation.new(SpecModel::Basic) }
68
80
  let(:solr) { ActiveFedora::SolrService.instance.conn }
69
- let(:expected_query) { "#{@model_query} AND foo:bar AND baz:quix AND baz:quack" }
70
- let(:expected_params) { { params: { sort: [@sort_query], fl: 'id', q: expected_query, qt: 'standard' } } }
81
+ let(:expected_query) { "#{model_query} AND " \
82
+ "_query_:\"{!raw f=foo}bar\" AND " \
83
+ "_query_:\"{!raw f=baz}quix\" AND " \
84
+ "_query_:\"{!raw f=baz}quack\"" }
85
+ let(:expected_params) { { params: { sort: [sort_query], fl: 'id', q: expected_query, qt: 'standard' } } }
71
86
  let(:expected_sort_params) { { params: { sort: ["title_t desc"], fl: 'id', q: expected_query, qt: 'standard' } } }
72
87
  let(:mock_docs) { [{"id" => "changeme:30"},{"id" => "changeme:22"}] }
73
88
 
74
- it "should filter by the provided fields" do
89
+ it "filters by the provided fields" do
75
90
  expect(relation).to receive(:load_from_fedora).with("changeme:30", nil).and_return("Fake Object1")
76
91
  expect(relation).to receive(:load_from_fedora).with("changeme:22", nil).and_return("Fake Object2")
77
92
 
@@ -80,42 +95,53 @@ describe ActiveFedora::Base do
80
95
  expect(SpecModel::Basic.where({:foo=>'bar', :baz=>['quix','quack']})).to eq ["Fake Object1", "Fake Object2"]
81
96
  end
82
97
 
83
- it "should correctly query for empty strings" do
84
- expect(SpecModel::Basic.where( :active_fedora_model_ssi => '').count).to eq 0
98
+ it "queries for empty strings" do
99
+ expect(SpecModel::Basic.where(active_fedora_model_ssi: '').count).to eq 0
85
100
  end
86
101
 
87
- it 'should correctly query for empty arrays' do
88
- expect(SpecModel::Basic.where( :active_fedora_model_ssi => []).count).to eq 0
102
+ it 'queries for empty arrays' do
103
+ expect(SpecModel::Basic.where(active_fedora_model_ssi: []).count).to eq 0
89
104
  end
90
105
 
91
- it "should add options" do
92
- expect(relation).to receive(:load_from_fedora).with("changeme:30", nil).and_return("Fake Object1")
93
- expect(relation).to receive(:load_from_fedora).with("changeme:22", nil).and_return("Fake Object2")
106
+ it "adds options" do
107
+ expect(relation).to receive(:load_from_fedora).with("changeme:30", nil)
108
+ .and_return("Fake Object1")
109
+ expect(relation).to receive(:load_from_fedora).with("changeme:22", nil)
110
+ .and_return("Fake Object2")
94
111
 
95
112
  expect(mock_docs).to receive(:has_next?).and_return(false)
96
- expect(solr).to receive(:paginate).with(1, 1000, 'select', expected_sort_params).and_return('response'=>{'docs'=>mock_docs})
97
- expect(SpecModel::Basic.where(:foo=>'bar', :baz=>['quix','quack']).order('title_t desc')).to eq ["Fake Object1", "Fake Object2"]
113
+ expect(solr).to receive(:paginate).with(1, 1000, 'select', expected_sort_params)
114
+ .and_return('response' => { 'docs' => mock_docs })
115
+ expect(SpecModel::Basic.where(foo: 'bar', baz: ['quix','quack'])
116
+ .order('title_t desc')).to eq ["Fake Object1", "Fake Object2"]
98
117
  end
99
118
  end
100
119
 
101
-
102
120
  describe '#find_each' do
103
121
  before { allow(ActiveFedora::Base).to receive(:relation).and_return(relation) }
104
122
  let(:relation) { ActiveFedora::Relation.new(SpecModel::Basic) }
105
123
  it "should query solr for all objects with :active_fedora_model_s of self.class" do
106
124
  mock_docs = [{"id" => "changeme-30"},{"id" => "changeme-22"}]
107
125
  expect(mock_docs).to receive(:has_next?).and_return(false)
108
- expect(ActiveFedora::SolrService.instance.conn).to receive(:paginate).with(1, 1000, 'select', :params=>{:q=>@model_query, :qt => 'standard', :sort => [@sort_query], :fl=> 'id', }).and_return('response'=>{'docs'=>mock_docs})
109
-
110
- allow(relation).to receive(:load_from_fedora).with("changeme-30", nil).and_return(SpecModel::Basic.new('changeme-30'))
111
- allow(relation).to receive(:load_from_fedora).with("changeme-22", nil).and_return(SpecModel::Basic.new('changeme-22'))
126
+ expect(ActiveFedora::SolrService.instance.conn).to receive(:paginate)
127
+ .with(1, 1000, 'select',
128
+ params: { q: model_query, qt: 'standard', sort: [sort_query], fl: 'id' })
129
+ .and_return('response' => { 'docs' => mock_docs })
130
+
131
+ allow(relation).to receive(:load_from_fedora).with("changeme-30", nil)
132
+ .and_return(SpecModel::Basic.new('changeme-30'))
133
+ allow(relation).to receive(:load_from_fedora).with("changeme-22", nil)
134
+ .and_return(SpecModel::Basic.new('changeme-22'))
112
135
  SpecModel::Basic.find_each(){ |obj| obj.class == SpecModel::Basic }
113
136
  end
114
137
 
115
138
  describe "with conditions" do
116
139
  let(:solr) { ActiveFedora::SolrService.instance.conn }
117
- let(:expected_query) { "#{@model_query} AND foo:bar AND baz:quix AND baz:quack" }
118
- let(:expected_params) { { params: { sort: [@sort_query], fl: 'id', q: expected_query, qt: 'standard' } } }
140
+ let(:expected_query) { "#{model_query} AND " \
141
+ "_query_:\"{!raw f=foo}bar\" AND " \
142
+ "_query_:\"{!raw f=baz}quix\" AND " \
143
+ "_query_:\"{!raw f=baz}quack\"" }
144
+ let(:expected_params) { { params: { sort: [sort_query], fl: 'id', q: expected_query, qt: 'standard' } } }
119
145
  let(:mock_docs) { [{"id" => "changeme-30"}, {"id" => "changeme-22"}] }
120
146
 
121
147
  it "should filter by the provided fields" do
@@ -132,8 +158,11 @@ describe ActiveFedora::Base do
132
158
  describe '#find_in_batches' do
133
159
  describe "with conditions hash" do
134
160
  let(:solr) { ActiveFedora::SolrService.instance.conn }
135
- let(:expected_query) { "#{@model_query} AND foo:bar AND baz:quix AND baz:quack" }
136
- let(:expected_params) { { params: { sort: [@sort_query], fl: 'id', q: expected_query, qt: 'standard' } } }
161
+ let(:expected_query) { "#{model_query} AND " \
162
+ "_query_:\"{!raw f=foo}bar\" AND " \
163
+ "_query_:\"{!raw f=baz}quix\" AND " \
164
+ "_query_:\"{!raw f=baz}quack\"" }
165
+ let(:expected_params) { { params: { sort: [sort_query], fl: 'id', q: expected_query, qt: 'standard' } } }
137
166
  let(:mock_docs) { double('docs') }
138
167
 
139
168
  it "should filter by the provided fields" do
@@ -147,22 +176,27 @@ describe ActiveFedora::Base do
147
176
  end
148
177
 
149
178
  describe '#count' do
150
-
151
- it "should return a count" do
152
- mock_result = {'response'=>{'numFound'=>7}}
153
- expect(ActiveFedora::SolrService).to receive(:query).with(@model_query, :rows=>0, :raw=>true).and_return(mock_result)
179
+ let(:mock_result) { { 'response' => { 'numFound' => 7 } } }
180
+
181
+ it "returns a count" do
182
+ expect(ActiveFedora::SolrService).to receive(:query)
183
+ .with(model_query, rows: 0, raw: true)
184
+ .and_return(mock_result)
154
185
  expect(SpecModel::Basic.count).to eq 7
155
186
  end
156
- it "should allow conditions" do
157
- mock_result = {'response'=>{'numFound'=>7}}
158
- expect(ActiveFedora::SolrService).to receive(:query).with("#{@model_query} AND (foo:bar)", :rows=>0, :raw=>true).and_return(mock_result)
159
- expect(SpecModel::Basic.count(:conditions=>'foo:bar')).to eq 7
187
+
188
+ it "allows conditions" do
189
+ expect(ActiveFedora::SolrService).to receive(:query)
190
+ .with("#{model_query} AND (foo:bar)", rows: 0, raw: true)
191
+ .and_return(mock_result)
192
+ expect(SpecModel::Basic.count(conditions: 'foo:bar')).to eq 7
160
193
  end
161
194
 
162
- it "should count without a class specified" do
163
- mock_result = {'response'=>{'numFound'=>7}}
164
- expect(ActiveFedora::SolrService).to receive(:query).with("(foo:bar)", :rows=>0, :raw=>true).and_return(mock_result)
165
- expect(ActiveFedora::Base.count(:conditions=>'foo:bar')).to eq 7
195
+ it "counts without a class specified" do
196
+ expect(ActiveFedora::SolrService).to receive(:query)
197
+ .with("(foo:bar)", rows: 0, raw: true)
198
+ .and_return(mock_result)
199
+ expect(ActiveFedora::Base.count(conditions: 'foo:bar')).to eq 7
166
200
  end
167
201
  end
168
202
 
@@ -200,37 +234,44 @@ describe ActiveFedora::Base do
200
234
  SpecModel::Basic.first != @c
201
235
  end
202
236
  end
203
- describe 'with one object' do
204
- it 'should equal the first object when there is only one' do
237
+ describe 'with one object' do
238
+ it 'equals the first object when there is only one' do
205
239
  a = SpecModel::Basic.create!
206
240
  SpecModel::Basic.first == SpecModel::Basic.last
207
241
  end
208
242
  end
209
243
  end
210
-
244
+
211
245
  describe '#find_with_conditions' do
212
246
  let(:mock_result) { double('Result') }
213
247
  let(:klass) { SpecModel::Basic }
214
248
  subject { klass.find_with_conditions(conditions) }
215
249
 
216
250
  before do
217
- expect(ActiveFedora::SolrService).to receive(:query).with(expected_query, sort: [@sort_query]).and_return(mock_result)
251
+ expect(ActiveFedora::SolrService).to receive(:query)
252
+ .with(expected_query, sort: [sort_query]).and_return(mock_result)
218
253
  end
219
254
 
220
255
  context "with a hash of conditions" do
221
- let(:expected_query) { "#{@model_query} AND foo:bar AND baz:quix AND baz:quack" }
256
+ let(:expected_query) { "#{model_query} AND " \
257
+ "_query_:\"{!raw f=foo}bar\" AND " \
258
+ "_query_:\"{!raw f=baz}quix\" AND " \
259
+ "_query_:\"{!raw f=baz}quack\"" }
222
260
  let(:conditions) { { foo: 'bar', baz: ['quix', 'quack'] } }
223
261
 
224
- it "should make a query to solr and return the results" do
262
+ it "makes a query to solr and returns the results" do
225
263
  expect(subject).to eq mock_result
226
264
  end
227
265
  end
228
266
 
229
267
  context "with quotes in the params" do
230
- let(:expected_query) { "#{@model_query} AND foo:9\\\"\\ Nails AND baz:7\\\"\\ version AND baz:quack" }
268
+ let(:expected_query) { "#{model_query} AND " \
269
+ "_query_:\"{!raw f=foo}9\\\" Nails\" AND " \
270
+ "_query_:\"{!raw f=baz}7\\\" version\" AND " \
271
+ "_query_:\"{!raw f=baz}quack\"" }
231
272
  let(:conditions) { { foo: '9" Nails', baz: ['7" version', 'quack']} }
232
273
 
233
- it "should escape quotes" do
274
+ it "escapes quotes" do
234
275
  expect(subject).to eq mock_result
235
276
  end
236
277
  end
@@ -240,8 +281,8 @@ describe ActiveFedora::Base do
240
281
 
241
282
  context "with a hash" do
242
283
  let(:conditions) { {:baz=>'quack'} }
243
- let(:expected_query) { 'baz:quack' }
244
- it "shouldn't use the class if it's called on AF:Base " do
284
+ let(:expected_query) { "_query_:\"{!raw f=baz}quack\"" }
285
+ it "doesn't use the class if it's called on AF:Base " do
245
286
  expect(subject).to eq mock_result
246
287
  end
247
288
  end
@@ -249,7 +290,7 @@ describe ActiveFedora::Base do
249
290
  context "called with a string" do
250
291
  let(:conditions) { 'chunky:monkey' }
251
292
  let(:expected_query) { '(chunky:monkey)' }
252
- it "should use the query string if it's provided and wrap it in parentheses" do
293
+ it "uses the query string if it's provided and wrap it in parentheses" do
253
294
  expect(subject).to eq mock_result
254
295
  end
255
296
  end
@@ -27,11 +27,15 @@ describe ActiveFedora do
27
27
  expect(@test_object.to_solr[:id]).to be_nil
28
28
  end
29
29
 
30
- it "should be used by ActiveFedora::Base#find_with_conditions" do
30
+ it "is used by ActiveFedora::Base#find_with_conditions" do
31
31
  mock_response = double("SolrResponse")
32
- expect(ActiveFedora::SolrService).to receive(:query).with("_query_:\"{!raw f=#{ActiveFedora::SolrQueryBuilder.solr_name("has_model", :symbol)}}SolrSpecModel::Basic\" AND " + SOLR_DOCUMENT_ID + ':changeme\\:30', {:sort => ["#{ActiveFedora::SolrQueryBuilder.solr_name("system_create", :stored_sortable, type: :date)} asc"]}).and_return(mock_response)
32
+ expect(ActiveFedora::SolrService).to receive(:query)
33
+ .with("_query_:\"{!raw f=has_model_ssim}SolrSpecModel::Basic\" AND " \
34
+ "_query_:\"{!raw f=MY_SAMPLE_ID}changeme:30\"",
35
+ sort: ["#{ActiveFedora::SolrQueryBuilder.solr_name("system_create", :stored_sortable, type: :date)} asc"])
36
+ .and_return(mock_response)
33
37
 
34
- expect(SolrSpecModel::Basic.find_with_conditions(:id=>"changeme:30")).to equal(mock_response)
38
+ expect(SolrSpecModel::Basic.find_with_conditions(id: "changeme:30")).to equal(mock_response)
35
39
  end
36
40
  end
37
41
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active-fedora
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.4.3
4
+ version: 9.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Zumwalt
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-09-30 00:00:00.000000000 Z
13
+ date: 2015-10-16 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rsolr
@@ -284,6 +284,7 @@ files:
284
284
  - gemfiles/rails4.2.gemfile
285
285
  - lib/active-fedora.rb
286
286
  - lib/active_fedora.rb
287
+ - lib/active_fedora/association_hash.rb
287
288
  - lib/active_fedora/association_relation.rb
288
289
  - lib/active_fedora/associations.rb
289
290
  - lib/active_fedora/associations/association.rb
@@ -480,6 +481,7 @@ files:
480
481
  - spec/integration/clean_connection_spec.rb
481
482
  - spec/integration/collection_association_spec.rb
482
483
  - spec/integration/complex_rdf_datastream_spec.rb
484
+ - spec/integration/contains_association_spec.rb
483
485
  - spec/integration/datastream_rdf_nested_attributes_spec.rb
484
486
  - spec/integration/delete_all_spec.rb
485
487
  - spec/integration/direct_container_spec.rb
@@ -542,6 +544,7 @@ files:
542
544
  - spec/unit/file_path_builder_spec.rb
543
545
  - spec/unit/file_spec.rb
544
546
  - spec/unit/files_hash_spec.rb
547
+ - spec/unit/finder_methods_spec.rb
545
548
  - spec/unit/fixity_service_spec.rb
546
549
  - spec/unit/forbidden_attributes_protection_spec.rb
547
550
  - spec/unit/has_and_belongs_to_many_association_spec.rb