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
@@ -16,11 +16,11 @@ describe ActiveFedora::RelsExtDatastream do
16
16
  before(:each) do
17
17
  mock_inner = mock('inner object')
18
18
  @mock_repo = mock('repository')
19
- @mock_repo.stubs(:datastream_dissemination=>'My Content', :config=>{})
20
- mock_inner.stubs(:repository).returns(@mock_repo)
21
- mock_inner.stubs(:pid).returns(@pid)
19
+ @mock_repo.stub(:datastream_dissemination=>'My Content', :config=>{})
20
+ mock_inner.stub(:repository).and_return(@mock_repo)
21
+ mock_inner.stub(:pid).and_return(@pid)
22
22
  @test_ds = ActiveFedora::RelsExtDatastream.new(mock_inner, "RELS-EXT")
23
- @test_ds.stubs(:profile).returns({})
23
+ @test_ds.stub(:profile).and_return({})
24
24
  end
25
25
 
26
26
  its(:metadata?) { should be_true}
@@ -49,7 +49,7 @@ describe ActiveFedora::RelsExtDatastream do
49
49
  subject = RDF::URI.new "info:fedora/test:sample_pid"
50
50
  graph.insert RDF::Statement.new(subject, ActiveFedora::Predicates.find_graph_predicate(:is_member_of), RDF::URI.new('demo:10'))
51
51
 
52
- @test_ds.stubs(:new? => true, :relationships_are_dirty? =>true, :relationships => graph, :model => mock(:relationships_are_dirty= => true))
52
+ @test_ds.stub(:new? => true, :relationships_are_dirty? =>true, :relationships => graph, :model => mock(:relationships_are_dirty= => true))
53
53
  @test_ds.serialize!
54
54
  EquivalentXml.equivalent?(@test_ds.content, "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>\n <rdf:Description rdf:about='info:fedora/test:sample_pid'>\n <isMemberOf rdf:resource='demo:10' xmlns='info:fedora/fedora-system:def/relations-external#'/></rdf:Description>\n </rdf:RDF>").should be_true
55
55
  end
@@ -82,7 +82,7 @@ describe ActiveFedora::RelsExtDatastream do
82
82
  graph.insert RDF::Statement.new(subject, ActiveFedora::Predicates.find_graph_predicate(:has_model), RDF::URI.new("info:fedora/afmodel:OtherModel"))
83
83
  graph.insert RDF::Statement.new(subject, ActiveFedora::Predicates.find_graph_predicate(:has_model), RDF::URI.new("info:fedora/afmodel:SampleModel"))
84
84
 
85
- @test_ds.expects(:model).returns(stub("model", :relationships=>graph, :relationships_are_dirty= => true))
85
+ @test_ds.should_receive(:model).and_return(stub("model", :relationships=>graph, :relationships_are_dirty= => true))
86
86
  EquivalentXml.equivalent?(@test_ds.to_rels_ext(), @sample_rels_ext_xml).should be_true
87
87
  end
88
88
 
@@ -95,7 +95,7 @@ describe ActiveFedora::RelsExtDatastream do
95
95
  graph.insert RDF::Statement.new(subject, ActiveFedora::Predicates.find_graph_predicate(:has_model), RDF::URI.new("info:fedora/afmodel:OtherModel"))
96
96
  graph.insert RDF::Statement.new(subject, ActiveFedora::Predicates.find_graph_predicate(:has_model), RDF::URI.new("info:fedora/afmodel:SampleModel"))
97
97
 
98
- @test_ds.expects(:model).times(2).returns(stub("model", :relationships=>graph, :relationships_are_dirty= => true))
98
+ @test_ds.stub(:model).and_return(stub("model", :relationships=>graph, :relationships_are_dirty= => true))
99
99
  rels = @test_ds.to_rels_ext()
100
100
  EquivalentXml.equivalent?(rels, @sample_rels_ext_xml).should be_true
101
101
  rels.should_not =~ /fedora:isMemberOf/
@@ -47,11 +47,11 @@ describe ActiveFedora::SemanticNode do
47
47
  end
48
48
 
49
49
  @node = SpecNode.new
50
- @node.stubs(:rels_ext).returns(stub("rels_ext", :content_will_change! => true, :content=>''))
50
+ @node.stub(:rels_ext).and_return(stub("rels_ext", :content_will_change! => true, :content=>''))
51
51
  @node.pid = increment_pid
52
52
  @test_object = SpecNode2.new
53
53
  @test_object.pid = increment_pid
54
- @test_object.stubs(:rels_ext).returns(stub("rels_ext", :content_will_change! => true, :content=>''))
54
+ @test_object.stub(:rels_ext).and_return(stub("rels_ext", :content_will_change! => true, :content=>''))
55
55
  end
56
56
 
57
57
  after(:each) do
@@ -105,9 +105,9 @@ describe ActiveFedora::SemanticNode do
105
105
  it "adding relationship to an instance should not affect class-level relationships hash" do
106
106
  local_test_node1 = SpecNode.new
107
107
  local_test_node2 = SpecNode.new
108
- local_test_node1.expects(:rels_ext).returns(stub("rels_ext", :content_will_change! => true, :content=>'')).at_least_once
108
+ local_test_node1.stub(:rels_ext).and_return(stub("rels_ext", :content_will_change! => true, :content=>''))
109
109
  local_test_node1.add_relationship(:is_member_of, 'demo:10')
110
- local_test_node2.expects(:rels_ext).returns(stub('rels-ext', :content=>''))
110
+ local_test_node2.stub(:rels_ext).and_return(stub('rels-ext', :content=>''))
111
111
 
112
112
  local_test_node1.relationships(:is_member_of).should == ["demo:10"]
113
113
  local_test_node2.relationships(:is_member_of).should == []
@@ -137,7 +137,7 @@ describe ActiveFedora::SemanticNode do
137
137
 
138
138
  describe '#remove_relationship' do
139
139
  it 'should remove a relationship from the relationships hash' do
140
- @test_object.expects(:rels_ext).returns(stub("rels_ext", :content_will_change! => true, :content=>'')).times(4)
140
+ @test_object.stub(:rels_ext).and_return(stub("rels_ext", :content_will_change! => true, :content=>''))
141
141
  @test_object.add_relationship(:has_part, "info:fedora/3")
142
142
  @test_object.add_relationship(:has_part, "info:fedora/4")
143
143
  #check both are there
@@ -13,11 +13,16 @@ describe ActiveFedora::ServiceDefinitions do
13
13
  <fmm:Method operationName="getDocumentStyle2"/>
14
14
  </fmm:MethodMap>
15
15
  MMAP
16
- stub_get("monkey:99")
17
- Rubydora::Repository.any_instance.stubs(:client).returns @mock_client
18
- Rubydora::Repository.any_instance.stubs(:datastream_dissemination).with({:pid=>'test:12',:dsid=>'METHODMAP'}).returns mmap
16
+ @repository = ActiveFedora::Base.connection_for_pid(0)
17
+ @repository.stub(:datastream_dissemination).with({:pid=>'test:12',:dsid=>'METHODMAP'}).and_return mmap
19
18
  Test.has_service_definition "test:12"
20
19
  end
20
+
21
+ subject {
22
+ obj = Test.new()
23
+ obj.stub(:pid).and_return('monkey:99')
24
+ obj
25
+ }
21
26
  describe "method lookup" do
22
27
  it "should find method keys in the YAML config" do
23
28
  ActiveFedora::ServiceDefinitions.lookup_method("fedora-system:3", "viewObjectProfile").should == :object_profile
@@ -25,32 +30,29 @@ describe ActiveFedora::ServiceDefinitions do
25
30
  end
26
31
  describe "method creation" do
27
32
  it "should create the system sdef methods" do
28
- obj = Test.new()
29
- (obj.respond_to? :object_profile).should == true
33
+ subject.should respond_to(:object_profile)
30
34
  end
31
35
  it "should create the declared sdef methods" do
32
- obj = Test.new()
33
- (obj.respond_to? :document_style_1).should == true
36
+ subject.should respond_to(:document_style_1)
34
37
  end
35
38
  end
36
39
  describe "generated method" do
37
40
  it "should call the appropriate rubydora rest api method" do
38
- Rubydora::Repository.any_instance.expects(:dissemination).with({:pid=>'monkey:99',:sdef=>'test:12', :method=>'getDocumentStyle1'})
39
- #@mock_client.stubs(:[]).with('objects/monkey%3A99/methods/test%3A12/getDocumentStyle1')
40
- obj = Test.new()
41
- obj.stubs(:pid).returns('monkey:99')
42
- obj.document_style_1
41
+ @repository.should_receive(:dissemination).with({:pid=>'monkey:99',:sdef=>'test:12', :method=>'getDocumentStyle1'})
42
+ #@mock_client.stub(:[]).with('objects/monkey%3A99/methods/test%3A12/getDocumentStyle1')
43
+
44
+ subject.document_style_1
43
45
  end
44
46
  it "should call the appropriate rubydora rest api method with parameters" do
45
- Rubydora::Repository.any_instance.expects(:dissemination).with({:pid=>'monkey:99',:sdef=>'test:12', :method=>'getDocumentStyle1', :format=>'xml'})
47
+ @repository.should_receive(:dissemination).with({:pid=>'monkey:99',:sdef=>'test:12', :method=>'getDocumentStyle1', :format=>'xml'})
46
48
  obj = Test.new()
47
- obj.stubs(:pid).returns('monkey:99')
49
+ obj.stub(:pid).and_return('monkey:99')
48
50
  obj.document_style_1({:format=>'xml'})
49
51
  end
50
52
  it "should call the appropriate rubydora rest api method with a block" do
51
- Rubydora::Repository.any_instance.stubs(:dissemination).with({:pid=>'monkey:99',:sdef=>'test:12', :method=>'getDocumentStyle1'}).yields "ping!","pang!"
53
+ @repository.stub(:dissemination).with({:pid=>'monkey:99',:sdef=>'test:12', :method=>'getDocumentStyle1'}).and_yield "ping!","pang!"
52
54
  obj = Test.new()
53
- obj.stubs(:pid).returns('monkey:99')
55
+ obj.stub(:pid).and_return('monkey:99')
54
56
  block_response = ""
55
57
  obj.document_style_1 {|res,req|
56
58
  block_response += 'pong!' if res == "ping!" and req == "pang!"
@@ -51,7 +51,7 @@ describe ActiveFedora do
51
51
 
52
52
  it "should be used by ActiveFedora::Base#find_with_conditions" do
53
53
  mock_response = mock("SolrResponse")
54
- ActiveFedora::SolrService.expects(:query).with("has_model_s:info\\:fedora\\/afmodel\\:SolrSpecModel_Basic AND " + SOLR_DOCUMENT_ID + ':"changeme\\:30"', {:sort => ['system_create_dt asc']}).returns(mock_response)
54
+ ActiveFedora::SolrService.should_receive(:query).with("has_model_s:info\\:fedora\\/afmodel\\:SolrSpecModel_Basic AND " + SOLR_DOCUMENT_ID + ':"changeme\\:30"', {:sort => ['system_create_dt asc']}).and_return(mock_response)
55
55
 
56
56
  SolrSpecModel::Basic.find_with_conditions(:id=>"changeme:30").should equal(mock_response)
57
57
  end
@@ -69,14 +69,14 @@ describe ActiveFedora do
69
69
  it "should prevent Base.save from calling update_index if false" do
70
70
  dirty_ds = ActiveFedora::SimpleDatastream.new(@test_object.inner_object, 'ds1')
71
71
  @test_object.datastreams['ds1'] = dirty_ds
72
- @test_object.stubs(:datastreams).returns({:ds1 => dirty_ds})
73
- @test_object.expects(:update_index).never
74
- @test_object.expects(:refresh)
72
+ @test_object.stub(:datastreams).and_return({:ds1 => dirty_ds})
73
+ @test_object.should_receive(:update_index).never
74
+ @test_object.should_receive(:refresh)
75
75
  @test_object.save
76
76
  end
77
77
  it "should prevent Base.delete from deleting the corresponding Solr document if false" do
78
- ActiveFedora::SolrService.instance.conn.expects(:delete).with(@test_object.pid).never
79
- @test_object.inner_object.expects(:delete)
78
+ ActiveFedora::SolrService.instance.conn.should_receive(:delete).with(@test_object.pid).never
79
+ @test_object.inner_object.should_receive(:delete)
80
80
  @test_object.delete
81
81
  end
82
82
  end
@@ -10,27 +10,27 @@ describe ActiveFedora::SolrService do
10
10
  end
11
11
 
12
12
  it "should take a narg constructor and configure for localhost" do
13
- RSolr.expects(:connect).with(:read_timeout => 120, :open_timeout => 120, :url => 'http://localhost:8080/solr')
13
+ RSolr.should_receive(:connect).with(:read_timeout => 120, :open_timeout => 120, :url => 'http://localhost:8080/solr')
14
14
  ActiveFedora::SolrService.register
15
15
  end
16
16
  it "should accept host arg into constructor" do
17
- RSolr.expects(:connect).with(:read_timeout => 120, :open_timeout => 120, :url => 'http://fubar')
17
+ RSolr.should_receive(:connect).with(:read_timeout => 120, :open_timeout => 120, :url => 'http://fubar')
18
18
  ActiveFedora::SolrService.register('http://fubar')
19
19
  end
20
20
  it "should clobber options" do
21
- RSolr.expects(:connect).with(:read_timeout => 120, :open_timeout => 120, :url => 'http://localhost:8080/solr', :autocommit=>:off, :foo=>:bar)
21
+ RSolr.should_receive(:connect).with(:read_timeout => 120, :open_timeout => 120, :url => 'http://localhost:8080/solr', :autocommit=>:off, :foo=>:bar)
22
22
  ActiveFedora::SolrService.register(nil, {:autocommit=>:off, :foo=>:bar})
23
23
  end
24
24
 
25
25
  it "should set the threadlocal solr service" do
26
- RSolr.expects(:connect).with(:read_timeout => 120, :open_timeout => 120, :url => 'http://localhost:8080/solr', :autocommit=>:off, :foo=>:bar)
26
+ RSolr.should_receive(:connect).with(:read_timeout => 120, :open_timeout => 120, :url => 'http://localhost:8080/solr', :autocommit=>:off, :foo=>:bar)
27
27
  ss = ActiveFedora::SolrService.register(nil, {:autocommit=>:off, :foo=>:bar})
28
28
  Thread.current[:solr_service].should == ss
29
29
  ActiveFedora::SolrService.instance.should == ss
30
30
  end
31
31
  it "should try to initialize if the service not initialized, and fail if it does not succeed" do
32
32
  Thread.current[:solr_service].should be_nil
33
- ActiveFedora::SolrService.expects(:register)
33
+ ActiveFedora::SolrService.should_receive(:register)
34
34
  proc{ActiveFedora::SolrService.instance}.should raise_error(ActiveFedora::SolrNotInitialized)
35
35
  end
36
36
 
@@ -50,9 +50,9 @@ describe ActiveFedora::SolrService do
50
50
  {"id"=>"my:_PID3_", "has_model_s"=>["info:fedora/afmodel:AudioRecord"]}]
51
51
  end
52
52
  it "should use Repository.find to instantiate objects" do
53
- AudioRecord.expects(:find).with("my:_PID1_")
54
- AudioRecord.expects(:find).with("my:_PID2_")
55
- AudioRecord.expects(:find).with("my:_PID3_")
53
+ AudioRecord.should_receive(:find).with("my:_PID1_")
54
+ AudioRecord.should_receive(:find).with("my:_PID2_")
55
+ AudioRecord.should_receive(:find).with("my:_PID3_")
56
56
  ActiveFedora::SolrService.reify_solr_results(@sample_solr_hits)
57
57
  end
58
58
  end
@@ -77,8 +77,8 @@ describe ActiveFedora::SolrService do
77
77
  it "should call solr" do
78
78
  mock_conn = mock("Connection")
79
79
  stub_result = stub("Result")
80
- mock_conn.expects(:get).with('select', :params=>{:q=>'querytext', :qt=>'standard'}).returns(stub_result)
81
- ActiveFedora::SolrService.stubs(:instance =>stub("instance", :conn=>mock_conn))
80
+ mock_conn.should_receive(:get).with('select', :params=>{:q=>'querytext', :qt=>'standard'}).and_return(stub_result)
81
+ ActiveFedora::SolrService.stub(:instance =>stub("instance", :conn=>mock_conn))
82
82
  ActiveFedora::SolrService.query('querytext', :raw=>true).should == stub_result
83
83
  end
84
84
  end
@@ -86,8 +86,8 @@ describe ActiveFedora::SolrService do
86
86
  it "should return a count of matching records" do
87
87
  mock_conn = mock("Connection")
88
88
  stub_result = {'response' => {'numFound'=>'7'}}
89
- mock_conn.expects(:get).with('select', :params=>{:rows=>0, :q=>'querytext', :qt=>'standard'}).returns(stub_result)
90
- ActiveFedora::SolrService.stubs(:instance =>stub("instance", :conn=>mock_conn))
89
+ mock_conn.should_receive(:get).with('select', :params=>{:rows=>0, :q=>'querytext', :qt=>'standard'}).and_return(stub_result)
90
+ ActiveFedora::SolrService.stub(:instance =>stub("instance", :conn=>mock_conn))
91
91
  ActiveFedora::SolrService.count('querytext').should == 7
92
92
  end
93
93
  end
@@ -95,8 +95,8 @@ describe ActiveFedora::SolrService do
95
95
  it "should call solr" do
96
96
  mock_conn = mock("Connection")
97
97
  doc = {'id' => '1234'}
98
- mock_conn.expects(:add).with(doc)
99
- ActiveFedora::SolrService.stubs(:instance =>stub("instance", :conn=>mock_conn))
98
+ mock_conn.should_receive(:add).with(doc)
99
+ ActiveFedora::SolrService.stub(:instance =>stub("instance", :conn=>mock_conn))
100
100
  ActiveFedora::SolrService.add(doc)
101
101
  end
102
102
  end
@@ -104,8 +104,8 @@ describe ActiveFedora::SolrService do
104
104
  it "should call solr" do
105
105
  mock_conn = mock("Connection")
106
106
  doc = {'id' => '1234'}
107
- mock_conn.expects(:commit)
108
- ActiveFedora::SolrService.stubs(:instance =>stub("instance", :conn=>mock_conn))
107
+ mock_conn.should_receive(:commit)
108
+ ActiveFedora::SolrService.stub(:instance =>stub("instance", :conn=>mock_conn))
109
109
  ActiveFedora::SolrService.commit()
110
110
  end
111
111
  end
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: 5.1.0
4
+ version: 5.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2012-12-07 00:00:00.000000000 Z
14
+ date: 2012-12-11 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rsolr
@@ -132,7 +132,7 @@ dependencies:
132
132
  requirements:
133
133
  - - ~>
134
134
  - !ruby/object:Gem::Version
135
- version: 0.8.0
135
+ version: '1.0'
136
136
  type: :runtime
137
137
  prerelease: false
138
138
  version_requirements: !ruby/object:Gem::Requirement
@@ -140,7 +140,7 @@ dependencies:
140
140
  requirements:
141
141
  - - ~>
142
142
  - !ruby/object:Gem::Version
143
- version: 0.8.0
143
+ version: '1.0'
144
144
  - !ruby/object:Gem::Dependency
145
145
  name: rdf
146
146
  requirement: !ruby/object:Gem::Requirement
@@ -285,22 +285,6 @@ dependencies:
285
285
  - - ! '>='
286
286
  - !ruby/object:Gem::Version
287
287
  version: '0'
288
- - !ruby/object:Gem::Dependency
289
- name: mocha
290
- requirement: !ruby/object:Gem::Requirement
291
- none: false
292
- requirements:
293
- - - '='
294
- - !ruby/object:Gem::Version
295
- version: 0.10.5
296
- type: :development
297
- prerelease: false
298
- version_requirements: !ruby/object:Gem::Requirement
299
- none: false
300
- requirements:
301
- - - '='
302
- - !ruby/object:Gem::Version
303
- version: 0.10.5
304
288
  description: ActiveFedora provides for creating and managing objects in the Fedora
305
289
  Repository Architecture.
306
290
  email:
@@ -560,7 +544,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
560
544
  version: '0'
561
545
  segments:
562
546
  - 0
563
- hash: -1107417416523628890
547
+ hash: 1765541384270860265
564
548
  requirements: []
565
549
  rubyforge_project: rubyfedora
566
550
  rubygems_version: 1.8.23