active-fedora 5.1.0 → 5.2.0

Sign up to get free protection for your applications and to get access to all the features.
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