active-fedora 5.1.0 → 5.2.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 (49) hide show
  1. data/active-fedora.gemspec +1 -2
  2. data/lib/active_fedora/datastreams.rb +14 -14
  3. data/lib/active_fedora/file_management.rb +5 -3
  4. data/lib/active_fedora/metadata_datastream_helper.rb +5 -1
  5. data/lib/active_fedora/nokogiri_datastream.rb +17 -4
  6. data/lib/active_fedora/rdf_datastream.rb +59 -36
  7. data/lib/active_fedora/relationships.rb +28 -11
  8. data/lib/active_fedora/version.rb +1 -1
  9. data/spec/config_helper.rb +3 -3
  10. data/spec/integration/base_spec.rb +15 -3
  11. data/spec/integration/bug_spec.rb +0 -3
  12. data/spec/integration/datastream_collections_spec.rb +9 -9
  13. data/spec/integration/datastream_spec.rb +1 -1
  14. data/spec/integration/full_featured_model_spec.rb +3 -4
  15. data/spec/integration/ntriples_datastream_spec.rb +0 -1
  16. data/spec/integration/rels_ext_datastream_spec.rb +12 -1
  17. data/spec/integration/semantic_node_spec.rb +10 -0
  18. data/spec/integration/solr_service_spec.rb +2 -2
  19. data/spec/spec_helper.rb +4 -7
  20. data/spec/support/mock_fedora.rb +10 -10
  21. data/spec/unit/active_fedora_spec.rb +8 -8
  22. data/spec/unit/association_proxy_spec.rb +2 -1
  23. data/spec/unit/base_cma_spec.rb +2 -2
  24. data/spec/unit/base_datastream_management_spec.rb +9 -9
  25. data/spec/unit/base_extra_spec.rb +25 -25
  26. data/spec/unit/base_file_management_spec.rb +32 -23
  27. data/spec/unit/base_spec.rb +94 -151
  28. data/spec/unit/callback_spec.rb +16 -11
  29. data/spec/unit/code_configurator_spec.rb +4 -4
  30. data/spec/unit/content_model_spec.rb +8 -8
  31. data/spec/unit/datastream_collections_spec.rb +23 -23
  32. data/spec/unit/datastream_spec.rb +7 -7
  33. data/spec/unit/datastreams_spec.rb +189 -304
  34. data/spec/unit/file_configurator_spec.rb +56 -56
  35. data/spec/unit/has_many_collection_spec.rb +1 -1
  36. data/spec/unit/model_spec.rb +51 -56
  37. data/spec/unit/nokogiri_datastream_spec.rb +24 -25
  38. data/spec/unit/ntriples_datastream_spec.rb +18 -27
  39. data/spec/unit/property_spec.rb +0 -2
  40. data/spec/unit/qualified_dublin_core_datastream_spec.rb +1 -2
  41. data/spec/unit/rdfxml_rdf_datastream_spec.rb +1 -1
  42. data/spec/unit/relationship_graph_spec.rb +1 -1
  43. data/spec/unit/relationships_spec.rb +64 -52
  44. data/spec/unit/rels_ext_datastream_spec.rb +7 -7
  45. data/spec/unit/semantic_node_spec.rb +5 -5
  46. data/spec/unit/service_definitions_spec.rb +18 -16
  47. data/spec/unit/solr_config_options_spec.rb +6 -6
  48. data/spec/unit/solr_service_spec.rb +16 -16
  49. metadata +5 -21
@@ -1,20 +1,31 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe ActiveFedora::Base do
4
+ before(:all) do
5
+ @behavior = ActiveFedora::FileManagement.deprecation_behavior
6
+ ActiveFedora::FileManagement.deprecation_behavior = :silence
7
+ end
4
8
 
9
+ after :all do
10
+ ActiveFedora::FileManagement.deprecation_behavior = @behavior
11
+ end
12
+
5
13
  before(:all) do
6
14
  class FileMgmt < ActiveFedora::Base
7
15
  include ActiveFedora::FileManagement
8
16
  end
9
17
  @base = FileMgmt.new
10
- @base.stubs(:create_date).returns("2008-07-02T05:09:42.015Z")
11
- @base.stubs(:modified_date).returns("2008-09-29T21:21:52.892Z")
18
+ end
19
+
20
+ before(:each) do
21
+ @base.stub(:create_date).and_return("2008-07-02T05:09:42.015Z")
22
+ @base.stub(:modified_date).and_return("2008-09-29T21:21:52.892Z")
12
23
  end
13
24
 
14
25
  describe ".file_objects" do
15
26
  it "should wrap .collection_members and .parts" do
16
- @base.expects(:collection_members).returns([])
17
- @base.expects(:parts).returns(["Foo"])
27
+ @base.should_receive(:collection_members).and_return([])
28
+ @base.should_receive(:parts).and_return(["Foo"])
18
29
  @base.file_objects
19
30
  end
20
31
  end
@@ -22,23 +33,23 @@ describe ActiveFedora::Base do
22
33
  describe ".file_objects_append" do
23
34
  it "should make the file object being appended assert isPartOf pointing back at the current object and save the child" do
24
35
  mock_child = ActiveFedora::Base.new
25
- mock_child.expects(:add_relationship).with(:is_part_of, @base)
26
- mock_child.expects(:save)
36
+ mock_child.should_receive(:add_relationship).with(:is_part_of, @base)
37
+ mock_child.should_receive(:save)
27
38
  @base.file_objects_append(mock_child)
28
39
  end
29
40
  it "should load the file object being appended if only a pid is provided and save the child" do
30
41
  mock_child = mock("object")
31
- mock_child.expects(:add_relationship).with(:is_part_of, @base)
32
- mock_child.expects(:save)
33
- ActiveFedora::Base.expects(:find).with("_PID_").returns(mock_child)
42
+ mock_child.should_receive(:add_relationship).with(:is_part_of, @base)
43
+ mock_child.should_receive(:save)
44
+ ActiveFedora::Base.should_receive(:find).with("_PID_").and_return(mock_child)
34
45
  @base.file_objects_append("_PID_")
35
46
  end
36
47
  end
37
48
 
38
49
  describe ".parts" do
39
50
  it "should search for both (outbound) has_part and (inbound) is_part_of relationships, removing duplicates" do
40
- @base.expects(:parts_outbound).returns(["A", "B"])
41
- @base.expects(:parts_inbound).returns(["B", "C"])
51
+ @base.should_receive(:parts_outbound).and_return(["A", "B"])
52
+ @base.should_receive(:parts_inbound).and_return(["B", "C"])
42
53
  @base.parts.should == ["B", "C", "A"]
43
54
  end
44
55
  end
@@ -53,7 +64,7 @@ describe ActiveFedora::Base do
53
64
  end
54
65
  it "should assert hasCollectionMember for the given object/pid" do
55
66
  mocko = mock("object")
56
- @base.expects(:add_relationship).with(:has_collection_member, mocko)
67
+ @base.should_receive(:add_relationship).with(:has_collection_member, mocko)
57
68
  @base.collection_members_append(mocko)
58
69
  end
59
70
  end
@@ -66,20 +77,18 @@ describe ActiveFedora::Base do
66
77
 
67
78
  describe ".add_file_datastream" do
68
79
  it "should create a new datastream with the file as its content" do
69
- mock_file = mock("File", :path=>'foo')
70
- mock_ds = stub_everything("Datastream")
71
- ActiveFedora::Datastream.expects(:new).with(@base.inner_object, 'DS1').returns(mock_ds)
72
- @base.expects(:add_datastream).with(mock_ds)
80
+ mock_file = mock()
81
+ ds = mock()
82
+ @base.should_receive(:create_datastream).with(ActiveFedora::Datastream, nil, hash_including(:blob => mock_file)).and_return(ds)
83
+ @base.should_receive(:add_datastream).with(ds)
73
84
  @base.add_file_datastream(mock_file)
74
85
  end
75
86
  it "should set :dsid and :label when supplied" do
76
- mock_file = stub("File", :path=>'foo')
77
- mock_ds = stub_everything("Datastream")
78
- mock_ds.expects(:dsLabel=).with('My Label')
79
- mock_ds.expects(:versionable=).with(false)
80
- ActiveFedora::Datastream.expects(:new).with(@base.inner_object, '__DSID__').returns(mock_ds)
81
- @base.expects(:add_datastream).with(mock_ds)
82
- @base.add_file_datastream(mock_file, :label => "My Label", :dsid => "__DSID__", :versionable => false)
87
+ mock_file = mock()
88
+ ds = mock()
89
+ @base.should_receive(:create_datastream).with(ActiveFedora::Datastream, 'Foo', hash_including(:dsLabel => 'My Label', :blob => mock_file)).and_return(ds)
90
+ @base.should_receive(:add_datastream).with(ds)
91
+ @base.add_file_datastream(mock_file, :label => 'My Label', :dsid => 'Foo')
83
92
  end
84
93
 
85
94
  end
@@ -10,25 +10,22 @@ describe ActiveFedora::Base do
10
10
  context "When the repository is NOT sharded" do
11
11
  subject {ActiveFedora::Base.connection_for_pid('foo:bar')}
12
12
  before(:each) do
13
- ActiveFedora.config.stubs(:sharded?).returns(false)
13
+ ActiveFedora.config.stub(:sharded?).and_return(false)
14
14
  ActiveFedora::Base.fedora_connection = {}
15
- ActiveFedora.config.stubs(:credentials).returns(:url=>'myfedora')
15
+ ActiveFedora.config.stub(:credentials).and_return(:url=>'myfedora')
16
16
  end
17
17
  it { should be_kind_of Rubydora::Repository}
18
18
  it "should be the standard connection" do
19
19
  subject.client.url.should == 'myfedora'
20
20
  end
21
21
  describe "assign_pid" do
22
- after do
23
- ActiveFedora::RubydoraConnection.unstub(:new)
24
- end
25
22
  it "should use fedora to generate pids" do
26
23
  # TODO: This juggling of Fedora credentials & establishing connections should be handled by an establish_fedora_connection method,
27
24
  # possibly wrap it all into a fedora_connection method - MZ 06-05-2012
28
25
  stubfedora = mock("Fedora")
29
- stubfedora.expects(:connection).returns(mock("Connection", :next_pid =>"<pid>sample:newpid</pid>"))
26
+ stubfedora.should_receive(:connection).and_return(mock("Connection", :next_pid =>"<pid>sample:newpid</pid>"))
30
27
  # Should use ActiveFedora.config.credentials as a single hash rather than an array of shards
31
- ActiveFedora::RubydoraConnection.expects(:new).with(ActiveFedora.config.credentials).returns(stubfedora)
28
+ ActiveFedora::RubydoraConnection.should_receive(:new).with(ActiveFedora.config.credentials).and_return(stubfedora)
32
29
  ActiveFedora::Base.assign_pid(ActiveFedora::Base.new.inner_object)
33
30
  end
34
31
  end
@@ -40,17 +37,17 @@ describe ActiveFedora::Base do
40
37
  end
41
38
  context "When the repository is sharded" do
42
39
  before :each do
43
- ActiveFedora.config.stubs(:sharded?).returns(true)
40
+ ActiveFedora.config.stub(:sharded?).and_return(true)
44
41
  ActiveFedora::Base.fedora_connection = {}
45
- ActiveFedora.config.stubs(:credentials).returns([{:url=>'shard1'}, {:url=>'shard2'} ])
42
+ ActiveFedora.config.stub(:credentials).and_return([{:url=>'shard1'}, {:url=>'shard2'} ])
46
43
  end
47
44
  describe "assign_pid" do
48
45
  it "should always use the first shard to generate pids" do
49
- stubshard1 = mock("Shard")
50
- stubshard2 = mock("Shard")
51
- stubshard1.expects(:connection).returns(mock("Connection", :next_pid =>"<pid>sample:newpid</pid>"))
52
- stubshard2.expects(:connection).never
53
- ActiveFedora::Base.fedora_connection = {0 => stubshard1, 1 => stubshard2}
46
+ stubhard1 = mock("Shard")
47
+ stubhard2 = mock("Shard")
48
+ stubhard1.should_receive(:connection).and_return(mock("Connection", :next_pid =>"<pid>sample:newpid</pid>"))
49
+ stubhard2.should_receive(:connection).never
50
+ ActiveFedora::Base.fedora_connection = {0 => stubhard1, 1 => stubhard2}
54
51
  ActiveFedora::Base.assign_pid(ActiveFedora::Base.new.inner_object)
55
52
  end
56
53
  end
@@ -111,15 +108,15 @@ describe ActiveFedora::Base do
111
108
  before(:each) do
112
109
  @this_pid = increment_pid.to_s
113
110
  stub_get(@this_pid)
114
- Rubydora::Repository.any_instance.stubs(:client).returns(@mock_client)
115
- ActiveFedora::Base.stubs(:assign_pid).returns(@this_pid)
111
+ Rubydora::Repository.any_instance.stub(:client).and_return(@mock_client)
112
+ ActiveFedora::Base.stub(:assign_pid).and_return(@this_pid)
116
113
 
117
114
  @test_object = ActiveFedora::Base.new
118
115
  end
119
116
 
120
117
  after(:each) do
121
118
  begin
122
- ActiveFedora::SolrService.stubs(:instance)
119
+ ActiveFedora::SolrService.stub(:instance)
123
120
  #@test_object.delete
124
121
  rescue
125
122
  end
@@ -129,14 +126,14 @@ describe ActiveFedora::Base do
129
126
  describe '#new' do
130
127
  it "should create an inner object" do
131
128
  # for doing AFObject.new(params[:foo]) when nothing is in params[:foo]
132
- Rubydora::DigitalObject.any_instance.expects(:save).never
129
+ Rubydora::DigitalObject.any_instance.should_receive(:save).never
133
130
  result = ActiveFedora::Base.new(nil)
134
131
  result.inner_object.should be_kind_of(ActiveFedora::UnsavedDigitalObject)
135
132
  end
136
133
 
137
134
  it "should not save or get an pid on init" do
138
- Rubydora::DigitalObject.any_instance.expects(:save).never
139
- ActiveFedora::Base.expects(:assign_pid).never
135
+ Rubydora::DigitalObject.any_instance.should_receive(:save).never
136
+ ActiveFedora::Base.should_receive(:assign_pid).never
140
137
  f = FooHistory.new
141
138
  end
142
139
 
@@ -165,13 +162,13 @@ describe ActiveFedora::Base do
165
162
  it "should have to_param once it's saved" do
166
163
 
167
164
  @test_object.to_param.should be_nil
168
- @test_object.inner_object.expects(:new?).returns(false).at_least_once
165
+ @test_object.inner_object.stub(:new? => false)
169
166
  @test_object.to_param.should == @test_object.pid
170
167
  end
171
168
 
172
169
  it "should have to_key once it's saved" do
173
170
  @test_object.to_key.should be_nil
174
- @test_object.inner_object.expects(:new?).returns(false).at_least_once
171
+ @test_object.inner_object.stub(:new? => false)
175
172
  @test_object.to_key.should == [@test_object.pid]
176
173
  end
177
174
 
@@ -226,7 +223,7 @@ describe ActiveFedora::Base do
226
223
  describe '.rels_ext' do
227
224
 
228
225
  it 'should return the RelsExtDatastream object from the datastreams array' do
229
- @test_object.expects(:datastreams).returns({"RELS-EXT" => "foo"}).at_least_once
226
+ @test_object.stub(:datastreams => {"RELS-EXT" => "foo"})
230
227
  @test_object.rels_ext.should == "foo"
231
228
  end
232
229
  end
@@ -244,7 +241,7 @@ describe ActiveFedora::Base do
244
241
 
245
242
  it "should update the RELS-EXT datastream and set the datastream as dirty when relationships are added" do
246
243
  mock_ds = mock("Rels-Ext")
247
- mock_ds.stubs(:content_will_change!)
244
+ mock_ds.stub(:content_will_change!)
248
245
  @test_object.datastreams["RELS-EXT"] = mock_ds
249
246
  @test_object.add_relationship(:is_member_of, "info:fedora/demo:5")
250
247
  @test_object.add_relationship(:is_member_of, "info:fedora/demo:10")
@@ -252,7 +249,7 @@ describe ActiveFedora::Base do
252
249
 
253
250
  it 'should add a relationship to an object only if it does not exist already' do
254
251
  next_pid = increment_pid.to_s
255
- ActiveFedora::Base.stubs(:assign_pid).returns(next_pid)
252
+ ActiveFedora::Base.stub(:assign_pid).and_return(next_pid)
256
253
  stub_get(next_pid)
257
254
 
258
255
  @test_object3 = ActiveFedora::Base.new
@@ -276,9 +273,9 @@ describe ActiveFedora::Base do
276
273
  describe '#remove_relationship' do
277
274
  it 'should remove a relationship from the relationships hash' do
278
275
  @test_object3 = ActiveFedora::Base.new()
279
- @test_object3.stubs(:pid=>'7')
276
+ @test_object3.stub(:pid=>'7')
280
277
  @test_object4 = ActiveFedora::Base.new()
281
- @test_object4.stubs(:pid=>'8')
278
+ @test_object4.stub(:pid=>'8')
282
279
  @test_object.add_relationship(:has_part,@test_object3)
283
280
  @test_object.add_relationship(:has_part,@test_object4)
284
281
  #check both are there
@@ -314,104 +311,27 @@ describe ActiveFedora::Base do
314
311
  end
315
312
 
316
313
  describe '.save' do
317
- it "should return true and set persisted if object and datastreams all save successfully" do
318
- stub_get(@this_pid)
319
- stub_add_ds(@this_pid, ['RELS-EXT'])
320
- @test_object.persisted?.should be false
321
- @test_object.expects(:update_index)
322
- stub_get(@this_pid, nil, true)
323
- @test_object.save.should == true
324
- @test_object.persisted?.should be true
314
+ it "should create a new record" do
315
+ @test_object.stub(:new_record? => true)
316
+ @test_object.should_receive(:create)
317
+ @test_object.should_receive(:update_index)
318
+ @test_object.save
325
319
  end
326
320
 
327
- it "should call assert_content_model" do
328
- stub_ingest(@this_pid)
329
- stub_add_ds(@this_pid, ['RELS-EXT'])
330
- @test_object.expects(:assert_content_model)
331
- @test_object.save.should == true
332
-
333
-
334
- end
335
-
336
- it "should call .save on any datastreams that are dirty" do
337
- stub_ingest(@this_pid)
338
- stub_add_ds(@this_pid, ['withText2', 'withText', 'RELS-EXT'])
339
- to = FooHistory.new
340
- to.expects(:update_index)
341
-
342
- to.datastreams["someData"].stubs(:changed?).returns(true)
343
- to.datastreams["someData"].stubs(:new_object?).returns(true)
344
- to.datastreams["someData"].expects(:save)
345
- to.expects(:refresh)
346
- FooHistory.expects(:assign_pid).with(to.inner_object).returns(@this_pid)
347
- to.save
348
- end
349
- it "should call .save on any datastreams that are new" do
350
- stub_ingest(@this_pid)
351
- stub_add_ds(@this_pid, ['RELS-EXT'])
352
- ds = ActiveFedora::Datastream.new(@test_object.inner_object, 'ds_to_add')
353
- ds.content = "DS CONTENT"
354
- @test_object.add_datastream(ds)
355
- ds.expects(:save)
356
- @test_object.instance_variable_set(:@new_object, false)
357
- @test_object.expects(:refresh)
358
- @test_object.expects(:update_index)
359
- @test_object.save
360
- end
361
- it "should not call .save on any datastreams that are not dirty" do
362
- stub_ingest(@this_pid)
363
- @test_object = FooHistory.new
364
- @test_object.expects(:update_index)
365
- @test_object.expects(:refresh)
366
-
367
- @test_object.datastreams["someData"].should_not be_nil
368
- @test_object.datastreams['someData'].stubs(:changed?).returns(false)
369
- @test_object.datastreams['someData'].stubs(:new?).returns(false)
370
- @test_object.datastreams['someData'].expects(:save).never
371
- @test_object.datastreams['withText2'].expects(:save)
372
- @test_object.datastreams['withText'].expects(:save)
373
- @test_object.datastreams['RELS-EXT'].expects(:save)
374
- FooHistory.expects(:assign_pid).with(@test_object.inner_object).returns(@this_pid)
375
- @test_object.save
376
- end
377
- it "should update solr index with all metadata if any SimpleDatastreams have changed" do
378
- stub_ingest(@this_pid)
379
- stub_add_ds(@this_pid, ['ds1', 'RELS-EXT'])
380
-
381
- dirty_ds = ActiveFedora::SimpleDatastream.new(@test_object.inner_object, 'ds1')
382
- rels_ds = ActiveFedora::RelsExtDatastream.new(@test_object.inner_object, 'RELS-EXT')
383
- rels_ds.model = @test_object
384
- @test_object.add_datastream(rels_ds)
385
- @test_object.add_datastream(dirty_ds)
386
- @test_object.expects(:update_index)
387
-
388
- @test_object.save
389
- end
390
- it "should update solr index with all metadata if any RDFDatastreams have changed" do
391
- stub_ingest(@this_pid)
392
- stub_add_ds(@this_pid, ['ds1', 'RELS-EXT'])
393
-
394
- dirty_ds = ActiveFedora::NtriplesRDFDatastream.new(@test_object.inner_object, 'ds1')
395
- rels_ds = ActiveFedora::RelsExtDatastream.new(@test_object.inner_object, 'RELS-EXT')
396
- rels_ds.model = @test_object
397
- @test_object.add_datastream(rels_ds)
398
- @test_object.add_datastream(dirty_ds)
399
- @test_object.expects(:update_index)
400
-
401
- @test_object.save
321
+ it "should update an existing record" do
322
+ @test_object.stub(:new_record? => false)
323
+ @test_object.should_receive(:update)
324
+ @test_object.should_receive(:update_index)
325
+ @test_object.save
402
326
  end
403
327
  end
404
328
 
405
329
  describe "#create" do
406
- before do
407
- stub_ingest(@this_pid)
408
- stub_add_ds(@this_pid, ['someData', 'withText', 'withText2', 'RELS-EXT'])
409
- end
410
330
  it "should build a new record and save it" do
411
- FooHistory.expects(:assign_pid).returns(@this_pid)
331
+ obj = mock()
332
+ obj.should_receive(:save)
333
+ FooHistory.should_receive(:new).and_return(obj)
412
334
  @hist = FooHistory.create(:fubar=>'ta', :swank=>'da')
413
- @hist.fubar.should == ['ta']
414
- @hist.swank.should == ['da']
415
335
  end
416
336
 
417
337
  end
@@ -454,11 +374,11 @@ describe ActiveFedora::Base do
454
374
  describe ".adapt_to_cmodel" do
455
375
  subject { FooHistory.new }
456
376
  it "should cast when a cmodel is found" do
457
- ActiveFedora::ContentModel.expects(:known_models_for).with( subject).returns([FooAdaptation])
377
+ ActiveFedora::ContentModel.should_receive(:known_models_for).with( subject).and_return([FooAdaptation])
458
378
  subject.adapt_to_cmodel.should be_kind_of FooAdaptation
459
379
  end
460
380
  it "should not cast when a cmodel is same as the class" do
461
- ActiveFedora::ContentModel.expects(:known_models_for).with( subject).returns([FooHistory])
381
+ ActiveFedora::ContentModel.should_receive(:known_models_for).with( subject).and_return([FooHistory])
462
382
  subject.adapt_to_cmodel.should === subject
463
383
  end
464
384
  end
@@ -474,8 +394,8 @@ describe ActiveFedora::Base do
474
394
  end
475
395
 
476
396
  it "should add pid, system_create_date and system_modified_date from object attributes" do
477
- @test_object.expects(:create_date).returns("2012-03-04T03:12:02Z")
478
- @test_object.expects(:modified_date).returns("2012-03-07T03:12:02Z")
397
+ @test_object.should_receive(:create_date).and_return("2012-03-04T03:12:02Z")
398
+ @test_object.should_receive(:modified_date).and_return("2012-03-07T03:12:02Z")
479
399
  solr_doc = @test_object.to_solr
480
400
  solr_doc["system_create_dt"].should eql("2012-03-04T03:12:02Z")
481
401
  solr_doc["system_modified_dt"].should eql("2012-03-07T03:12:02Z")
@@ -502,8 +422,8 @@ describe ActiveFedora::Base do
502
422
  it "should use mappings.yml to decide names of solr fields" do
503
423
  cdate = "2008-07-02T05:09:42Z"
504
424
  mdate = "2009-07-07T23:37:18Z"
505
- @test_object.stubs(:create_date).returns(cdate)
506
- @test_object.stubs(:modified_date).returns(mdate)
425
+ @test_object.stub(:create_date).and_return(cdate)
426
+ @test_object.stub(:modified_date).and_return(mdate)
507
427
  solr_doc = @test_object.to_solr
508
428
  solr_doc["system_create_dt"].should eql(cdate)
509
429
  solr_doc["system_modified_dt"].should eql(mdate)
@@ -522,23 +442,23 @@ describe ActiveFedora::Base do
522
442
  end
523
443
 
524
444
  it "should call .to_solr on all SimpleDatastreams and NokogiriDatastreams, passing the resulting document to solr" do
525
- mock1 = mock("ds1", :to_solr)
526
- mock2 = mock("ds2", :to_solr)
527
- ngds = mock("ngds", :to_solr)
528
- ngds.expects(:solrize_profile)
529
- mock1.expects(:solrize_profile)
530
- mock2.expects(:solrize_profile)
445
+ mock1 = mock("ds1", :to_solr => {})
446
+ mock2 = mock("ds2", :to_solr => {})
447
+ ngds = mock("ngds", :to_solr => {})
448
+ ngds.should_receive(:solrize_profile)
449
+ mock1.should_receive(:solrize_profile)
450
+ mock2.should_receive(:solrize_profile)
531
451
 
532
- @test_object.expects(:datastreams).twice.returns({:ds1 => mock1, :ds2 => mock2, :ngds => ngds})
533
- @test_object.expects(:solrize_relationships)
452
+ @test_object.should_receive(:datastreams).twice.and_return({:ds1 => mock1, :ds2 => mock2, :ngds => ngds})
453
+ @test_object.should_receive(:solrize_relationships)
534
454
  @test_object.to_solr
535
455
  end
536
456
  it "should call .to_solr on all RDFDatastreams, passing the resulting document to solr" do
537
- mock = mock("ds1", :to_solr)
538
- mock.expects(:solrize_profile)
457
+ mock = mock("ds1", :to_solr => {})
458
+ mock.should_receive(:solrize_profile)
539
459
 
540
- @test_object.expects(:datastreams).twice.returns({:ds1 => mock})
541
- @test_object.expects(:solrize_relationships)
460
+ @test_object.should_receive(:datastreams).twice.and_return({:ds1 => mock})
461
+ @test_object.should_receive(:solrize_relationships)
542
462
  @test_object.to_solr
543
463
  end
544
464
 
@@ -546,7 +466,7 @@ describe ActiveFedora::Base do
546
466
  @test_object.add_relationship(:has_collection_member, "info:fedora/foo:member")
547
467
  rels_ext = @test_object.rels_ext
548
468
  rels_ext.should be_changed
549
- @test_object.expects(:solrize_relationships)
469
+ @test_object.should_receive(:solrize_relationships)
550
470
  @test_object.to_solr
551
471
  end
552
472
 
@@ -554,7 +474,7 @@ describe ActiveFedora::Base do
554
474
 
555
475
  describe ".label" do
556
476
  it "should return the label of the inner object" do
557
- @test_object.inner_object.expects(:label).returns("foo label")
477
+ @test_object.inner_object.should_receive(:label).and_return("foo label")
558
478
  @test_object.label.should == "foo label"
559
479
  end
560
480
  end
@@ -571,7 +491,7 @@ describe ActiveFedora::Base do
571
491
  describe "get_values_from_datastream" do
572
492
  it "should look up the named datastream and call get_values with the given pointer/field_name" do
573
493
  mock_ds = mock("Datastream", :get_values=>["value1", "value2"])
574
- @test_object.stubs(:datastreams).returns({"ds1"=>mock_ds})
494
+ @test_object.stub(:datastreams).and_return({"ds1"=>mock_ds})
575
495
  @test_object.get_values_from_datastream("ds1", "--my xpath--").should == ["value1", "value2"]
576
496
  end
577
497
  end
@@ -587,9 +507,9 @@ describe ActiveFedora::Base do
587
507
  "properties"=>{ "notes"=>"foo" }
588
508
  }
589
509
  m = FooHistory.new
590
- m.stubs(:datastreams).returns(mock_ds_hash)
591
- mock_desc_metadata.expects(:update_indexed_attributes).with( ds_values_hash['descMetadata'] )
592
- mock_properties.expects(:update_indexed_attributes).with( ds_values_hash['properties'] )
510
+ m.stub(:datastreams).and_return(mock_ds_hash)
511
+ mock_desc_metadata.should_receive(:update_indexed_attributes).with( ds_values_hash['descMetadata'] )
512
+ mock_properties.should_receive(:update_indexed_attributes).with( ds_values_hash['properties'] )
593
513
  m.update_datastream_attributes( ds_values_hash )
594
514
  end
595
515
  it "should not do anything and should return an empty hash if the specified datastream does not exist" do
@@ -610,9 +530,9 @@ pending "This is broken, and deprecated. I don't want to fix it - jcoyne"
610
530
  m = FooHistory.new
611
531
  att= {"fubar"=> '1234', "baz" =>'stuff'}
612
532
 
613
- m.expects(:fubar=).with('1234')
614
- m.expects(:baz=).with('stuff')
615
- m.expects(:save)
533
+ m.should_receive(:fubar=).with('1234')
534
+ m.should_receive(:baz=).with('stuff')
535
+ m.should_receive(:save)
616
536
  m.update_attributes(att)
617
537
  end
618
538
  end
@@ -622,9 +542,9 @@ pending "This is broken, and deprecated. I don't want to fix it - jcoyne"
622
542
  m = FooHistory.new
623
543
  att= {"fubar"=>{"-1"=>"mork", "0"=>"york", "1"=>"mangle"}}
624
544
 
625
- m.datastreams['someData'].expects(:update_indexed_attributes)
626
- m.datastreams["withText"].expects(:update_indexed_attributes)
627
- m.datastreams['withText2'].expects(:update_indexed_attributes)
545
+ m.datastreams['someData'].should_receive(:update_indexed_attributes)
546
+ m.datastreams["withText"].should_receive(:update_indexed_attributes)
547
+ m.datastreams['withText2'].should_receive(:update_indexed_attributes)
628
548
  m.update_indexed_attributes(att)
629
549
  end
630
550
  it "should take a :datastreams argument" do
@@ -647,7 +567,18 @@ pending "This is broken, and deprecated. I don't want to fix it - jcoyne"
647
567
  end
648
568
 
649
569
  describe '#relationships_by_name' do
650
-
570
+ before(:all) do
571
+ @behavior = ActiveFedora::Relationships.deprecation_behavior
572
+ @c_behavior = ActiveFedora::Relationships::ClassMethods.deprecation_behavior
573
+ ActiveFedora::Relationships.deprecation_behavior = :silence
574
+ ActiveFedora::Relationships::ClassMethods.deprecation_behavior = :silence
575
+ end
576
+
577
+ after :all do
578
+ ActiveFedora::Relationships.deprecation_behavior = @behavior
579
+ ActiveFedora::Relationships::ClassMethods.deprecation_behavior = @c_behavior
580
+ end
581
+
651
582
  before do
652
583
  class MockNamedRelationships < ActiveFedora::Base
653
584
  include ActiveFedora::FileManagement
@@ -659,7 +590,7 @@ pending "This is broken, and deprecated. I don't want to fix it - jcoyne"
659
590
 
660
591
  it 'should return current relationships by name' do
661
592
  next_pid = increment_pid.to_s
662
- ActiveFedora::Base.stubs(:assign_pid).returns(next_pid)
593
+ ActiveFedora::Base.stub(:assign_pid).and_return(next_pid)
663
594
  stub_get(next_pid)
664
595
  @test_object2 = MockNamedRelationships.new
665
596
  @test_object2.add_relationship(:has_model, MockNamedRelationships.to_class_uri)
@@ -680,6 +611,18 @@ pending "This is broken, and deprecated. I don't want to fix it - jcoyne"
680
611
 
681
612
 
682
613
  describe '#create_relationship_name_methods' do
614
+ before(:all) do
615
+ @behavior = ActiveFedora::Relationships.deprecation_behavior
616
+ @c_behavior = ActiveFedora::Relationships::ClassMethods.deprecation_behavior
617
+ ActiveFedora::Relationships.deprecation_behavior = :silence
618
+ ActiveFedora::Relationships::ClassMethods.deprecation_behavior = :silence
619
+ end
620
+
621
+ after :all do
622
+ ActiveFedora::Relationships.deprecation_behavior = @behavior
623
+ ActiveFedora::Relationships::ClassMethods.deprecation_behavior = @c_behavior
624
+ end
625
+
683
626
  before do
684
627
  class MockCreateNamedRelationshipMethodsBase < ActiveFedora::Base
685
628
  include ActiveFedora::Relationships
@@ -690,7 +633,7 @@ pending "This is broken, and deprecated. I don't want to fix it - jcoyne"
690
633
 
691
634
  it 'should append and remove using helper methods for each outbound relationship' do
692
635
  next_pid = increment_pid.to_s
693
- ActiveFedora::Base.stubs(:assign_pid).returns(next_pid)
636
+ ActiveFedora::Base.stub(:assign_pid).and_return(next_pid)
694
637
  stub_get(next_pid)
695
638
  @test_object2 = MockCreateNamedRelationshipMethodsBase.new
696
639
  @test_object2.should respond_to(:testing_append)
@@ -716,7 +659,7 @@ pending "This is broken, and deprecated. I don't want to fix it - jcoyne"
716
659
  graph.insert RDF::Statement.new(subject, ActiveFedora::Predicates.find_graph_predicate(:has_part), RDF::URI.new('info:fedora/demo:12'))
717
660
  graph.insert RDF::Statement.new(subject, ActiveFedora::Predicates.find_graph_predicate(:conforms_to), "AnInterface")
718
661
 
719
- @test_object.expects(:relationships).returns(graph)
662
+ @test_object.should_receive(:relationships).and_return(graph)
720
663
  solr_doc = @test_object.solrize_relationships
721
664
  solr_doc["is_member_of_s"].should == ["info:fedora/demo:10"]
722
665
  solr_doc["is_part_of_s"].should == ["info:fedora/demo:11"]