active-fedora 6.7.8 → 6.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +1 -0
  3. data/.rubocop.yml +1 -0
  4. data/.rubocop_todo.yml +938 -0
  5. data/.travis.yml +5 -6
  6. data/Gemfile +3 -1
  7. data/Rakefile +7 -5
  8. data/active-fedora.gemspec +7 -8
  9. data/lib/active_fedora/om_datastream.rb +1 -0
  10. data/lib/active_fedora/rdf_xml_writer.rb +31 -62
  11. data/lib/active_fedora/version.rb +1 -1
  12. data/spec/config_helper.rb +14 -14
  13. data/spec/integration/associations_spec.rb +232 -232
  14. data/spec/integration/attributes_spec.rb +11 -12
  15. data/spec/integration/auditable_spec.rb +10 -10
  16. data/spec/integration/base_spec.rb +163 -163
  17. data/spec/integration/bug_spec.rb +7 -7
  18. data/spec/integration/complex_rdf_datastream_spec.rb +88 -88
  19. data/spec/integration/datastream_collections_spec.rb +69 -69
  20. data/spec/integration/datastream_spec.rb +43 -43
  21. data/spec/integration/datastreams_spec.rb +63 -63
  22. data/spec/integration/delegating_spec.rb +14 -14
  23. data/spec/integration/delete_all_spec.rb +38 -42
  24. data/spec/integration/fedora_solr_sync_spec.rb +5 -5
  25. data/spec/integration/full_featured_model_spec.rb +101 -101
  26. data/spec/integration/has_many_associations_spec.rb +24 -24
  27. data/spec/integration/model_spec.rb +30 -30
  28. data/spec/integration/nested_attribute_spec.rb +41 -41
  29. data/spec/integration/ntriples_datastream_spec.rb +107 -107
  30. data/spec/integration/om_datastream_spec.rb +67 -67
  31. data/spec/integration/persistence_spec.rb +6 -6
  32. data/spec/integration/rdf_nested_attributes_spec.rb +56 -56
  33. data/spec/integration/relation_delegation_spec.rb +24 -26
  34. data/spec/integration/rels_ext_datastream_spec.rb +20 -20
  35. data/spec/integration/scoped_query_spec.rb +40 -41
  36. data/spec/integration/solr_instance_loader_spec.rb +4 -4
  37. data/spec/integration/solr_service_spec.rb +46 -46
  38. data/spec/rails3_test_app/config/application.rb +1 -1
  39. data/spec/rails3_test_app/config/environments/development.rb +0 -1
  40. data/spec/rails3_test_app/config/environments/production.rb +1 -1
  41. data/spec/rails3_test_app/spec/spec_helper.rb +3 -3
  42. data/spec/rails3_test_app/spec/unit/rails_3_init.rb +4 -4
  43. data/spec/samples/hydra-mods_article_datastream.rb +334 -334
  44. data/spec/samples/hydra-rights_metadata_datastream.rb +57 -57
  45. data/spec/samples/marpa-dc_datastream.rb +17 -17
  46. data/spec/samples/models/audio_record.rb +16 -16
  47. data/spec/samples/models/image.rb +2 -2
  48. data/spec/samples/models/mods_article.rb +5 -5
  49. data/spec/samples/models/oral_history.rb +18 -18
  50. data/spec/samples/models/seminar.rb +24 -24
  51. data/spec/samples/models/seminar_audio_file.rb +17 -17
  52. data/spec/samples/oral_history_sample_model.rb +21 -21
  53. data/spec/samples/special_thing.rb +14 -14
  54. data/spec/spec_helper.rb +7 -11
  55. data/spec/support/an_active_model.rb +2 -2
  56. data/spec/support/mock_fedora.rb +16 -17
  57. data/spec/unit/active_fedora_spec.rb +58 -58
  58. data/spec/unit/association_proxy_spec.rb +5 -7
  59. data/spec/unit/base_active_model_spec.rb +25 -26
  60. data/spec/unit/base_cma_spec.rb +5 -5
  61. data/spec/unit/base_datastream_management_spec.rb +27 -27
  62. data/spec/unit/base_delegate_spec.rb +80 -82
  63. data/spec/unit/base_delegate_to_spec.rb +37 -39
  64. data/spec/unit/base_extra_spec.rb +48 -48
  65. data/spec/unit/base_spec.rb +300 -300
  66. data/spec/unit/callback_spec.rb +19 -19
  67. data/spec/unit/code_configurator_spec.rb +17 -17
  68. data/spec/unit/config_spec.rb +16 -8
  69. data/spec/unit/content_model_spec.rb +60 -60
  70. data/spec/unit/datastream_collections_spec.rb +229 -229
  71. data/spec/unit/datastream_spec.rb +57 -54
  72. data/spec/unit/datastreams_spec.rb +77 -77
  73. data/spec/unit/file_configurator_spec.rb +217 -217
  74. data/spec/unit/has_and_belongs_to_many_collection_spec.rb +26 -26
  75. data/spec/unit/has_many_collection_spec.rb +9 -9
  76. data/spec/unit/inheritance_spec.rb +12 -13
  77. data/spec/unit/model_spec.rb +41 -51
  78. data/spec/unit/nom_datastream_spec.rb +15 -15
  79. data/spec/unit/ntriples_datastream_spec.rb +112 -112
  80. data/spec/unit/om_datastream_spec.rb +233 -227
  81. data/spec/unit/persistence_spec.rb +6 -6
  82. data/spec/unit/predicates_spec.rb +73 -73
  83. data/spec/unit/property_spec.rb +9 -17
  84. data/spec/unit/qualified_dublin_core_datastream_spec.rb +33 -33
  85. data/spec/unit/query_spec.rb +188 -217
  86. data/spec/unit/rdf_datastream_spec.rb +28 -21
  87. data/spec/unit/rdf_list_nested_attributes_spec.rb +34 -34
  88. data/spec/unit/rdf_list_spec.rb +80 -104
  89. data/spec/unit/rdf_node_spec.rb +7 -7
  90. data/spec/unit/rdf_xml_writer_spec.rb +10 -10
  91. data/spec/unit/rdfxml_rdf_datastream_spec.rb +27 -27
  92. data/spec/unit/relationship_graph_spec.rb +51 -51
  93. data/spec/unit/rels_ext_datastream_spec.rb +75 -69
  94. data/spec/unit/rspec_matchers/belong_to_associated_active_fedora_object_matcher_spec.rb +15 -15
  95. data/spec/unit/rspec_matchers/have_many_associated_active_fedora_objects_matcher_spec.rb +15 -15
  96. data/spec/unit/rspec_matchers/have_predicate_matcher_spec.rb +15 -15
  97. data/spec/unit/rspec_matchers/match_fedora_datastream_matcher_spec.rb +12 -12
  98. data/spec/unit/rubydora_connection_spec.rb +5 -5
  99. data/spec/unit/semantic_node_spec.rb +59 -59
  100. data/spec/unit/serializers_spec.rb +4 -4
  101. data/spec/unit/service_definitions_spec.rb +26 -26
  102. data/spec/unit/simple_datastream_spec.rb +17 -17
  103. data/spec/unit/solr_config_options_spec.rb +27 -28
  104. data/spec/unit/solr_digital_object_spec.rb +21 -21
  105. data/spec/unit/solr_service_spec.rb +81 -81
  106. data/spec/unit/unsaved_digital_object_spec.rb +20 -20
  107. data/spec/unit/validations_spec.rb +21 -21
  108. metadata +70 -58
  109. data/gemfiles/gemfile.rails3 +0 -11
  110. data/gemfiles/gemfile.rails4 +0 -10
@@ -14,50 +14,50 @@ describe ActiveFedora::ServiceDefinitions do
14
14
  </fmm:MethodMap>
15
15
  MMAP
16
16
  @repository = ActiveFedora::Base.connection_for_pid(0)
17
- @repository.stub(:datastream_dissemination).with({:pid=>'test:12',:dsid=>'METHODMAP'}).and_return mmap
18
- Test.has_service_definition "test:12"
17
+ allow(@repository).to receive(:datastream_dissemination).with({:pid => 'test:12', :dsid => 'METHODMAP'}).and_return mmap
18
+ Test.has_service_definition 'test:12'
19
19
  end
20
20
 
21
- subject {
21
+ subject {
22
22
  obj = Test.new()
23
- obj.stub(:pid).and_return('monkey:99')
23
+ allow(obj).to receive(:pid).and_return('monkey:99')
24
24
  obj
25
25
  }
26
- describe "method lookup" do
27
- it "should find method keys in the YAML config" do
28
- ActiveFedora::ServiceDefinitions.lookup_method("fedora-system:3", "viewObjectProfile").should == :object_profile
26
+ describe 'method lookup' do
27
+ it 'should find method keys in the YAML config' do
28
+ expect(ActiveFedora::ServiceDefinitions.lookup_method('fedora-system:3', 'viewObjectProfile')).to eq(:object_profile)
29
29
  end
30
30
  end
31
- describe "method creation" do
32
- it "should create the system sdef methods" do
33
- subject.should respond_to(:object_profile)
31
+ describe 'method creation' do
32
+ it 'should create the system sdef methods' do
33
+ expect(subject).to respond_to(:object_profile)
34
34
  end
35
- it "should create the declared sdef methods" do
36
- subject.should respond_to(:document_style_1)
35
+ it 'should create the declared sdef methods' do
36
+ expect(subject).to respond_to(:document_style_1)
37
37
  end
38
38
  end
39
- describe "generated method" do
40
- it "should call the appropriate rubydora rest api method" do
41
- @repository.should_receive(:dissemination).with({:pid=>'monkey:99',:sdef=>'test:12', :method=>'getDocumentStyle1'})
39
+ describe 'generated method' do
40
+ it 'should call the appropriate rubydora rest api method' do
41
+ expect(@repository).to receive(:dissemination).with({:pid => 'monkey:99', :sdef => 'test:12', :method => 'getDocumentStyle1'})
42
42
  #@mock_client.stub(:[]).with('objects/monkey%3A99/methods/test%3A12/getDocumentStyle1')
43
43
 
44
44
  subject.document_style_1
45
45
  end
46
- it "should call the appropriate rubydora rest api method with parameters" do
47
- @repository.should_receive(:dissemination).with({:pid=>'monkey:99',:sdef=>'test:12', :method=>'getDocumentStyle1', :format=>'xml'})
46
+ it 'should call the appropriate rubydora rest api method with parameters' do
47
+ expect(@repository).to receive(:dissemination).with({:pid => 'monkey:99', :sdef => 'test:12', :method => 'getDocumentStyle1', :format => 'xml'})
48
48
  obj = Test.new()
49
- obj.stub(:pid).and_return('monkey:99')
50
- obj.document_style_1({:format=>'xml'})
49
+ allow(obj).to receive(:pid).and_return('monkey:99')
50
+ obj.document_style_1({:format => 'xml'})
51
51
  end
52
- it "should call the appropriate rubydora rest api method with a block" do
53
- @repository.stub(:dissemination).with({:pid=>'monkey:99',:sdef=>'test:12', :method=>'getDocumentStyle1'}).and_yield "ping!","pang!"
52
+ it 'should call the appropriate rubydora rest api method with a block' do
53
+ allow(@repository).to receive(:dissemination).with({:pid => 'monkey:99', :sdef => 'test:12', :method => 'getDocumentStyle1'}).and_yield 'ping!', 'pang!'
54
54
  obj = Test.new()
55
- obj.stub(:pid).and_return('monkey:99')
56
- block_response = ""
57
- obj.document_style_1 {|res,req|
58
- block_response += 'pong!' if res == "ping!" and req == "pang!"
55
+ allow(obj).to receive(:pid).and_return('monkey:99')
56
+ block_response = ''
57
+ obj.document_style_1 {|res, req|
58
+ block_response += 'pong!' if res == 'ping!' and req == 'pang!'
59
59
  }
60
- block_response.should == "pong!"
60
+ expect(block_response).to eq('pong!')
61
61
  end
62
62
  end
63
63
  end
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe ActiveFedora::SimpleDatastream do
4
4
 
5
5
  before do
6
- @sample_xml = "<fields><coverage>coverage1</coverage><coverage>coverage2</coverage><creation_date>2012-01-15</creation_date><mydate>fake-date</mydate><publisher>publisher1</publisher></fields>"
6
+ @sample_xml = '<fields><coverage>coverage1</coverage><coverage>coverage2</coverage><creation_date>2012-01-15</creation_date><mydate>fake-date</mydate><publisher>publisher1</publisher></fields>'
7
7
  @test_ds = ActiveFedora::SimpleDatastream.from_xml(@sample_xml )
8
8
  @test_ds.field :coverage
9
9
  @test_ds.field :creation_date, :date
@@ -11,36 +11,36 @@ describe ActiveFedora::SimpleDatastream do
11
11
  @test_ds.field :publisher
12
12
 
13
13
  end
14
- it "from_xml should parse everything correctly" do
15
- @test_ds.ng_xml.should be_equivalent_to @sample_xml
14
+ it 'from_xml should parse everything correctly' do
15
+ expect(@test_ds.ng_xml).to be_equivalent_to @sample_xml
16
16
  end
17
17
 
18
-
18
+
19
19
  describe '#new' do
20
- describe "model methods" do
20
+ describe 'model methods' do
21
21
 
22
22
  [:coverage, :mydate, :publisher].each do |el|
23
23
  it "should respond to getters and setters for the string typed #{el} element" do
24
24
  value = "Hey #{el}"
25
- @test_ds.send("#{el.to_s}=", value)
26
- @test_ds.send(el).first.should == value #Looking at first because creator has 2 nodes
25
+ @test_ds.send("#{el.to_s}=", value)
26
+ expect(@test_ds.send(el).first).to eq(value) #Looking at first because creator has 2 nodes
27
27
  end
28
28
  end
29
29
 
30
- it "should set date elements" do
30
+ it 'should set date elements' do
31
31
  d = Date.parse('1939-05-23')
32
32
  @test_ds.creation_date = d
33
- @test_ds.creation_date.first.should == d
33
+ expect(@test_ds.creation_date.first).to eq(d)
34
34
  end
35
35
  end
36
36
  end
37
-
37
+
38
38
  describe '.to_xml' do
39
39
  it 'should output the fields hash as Qualified Dublin Core XML' do
40
- @test_ds.publisher= "charlie"
41
- @test_ds.coverage= ["80%", "20%"]
40
+ @test_ds.publisher = 'charlie'
41
+ @test_ds.coverage = ['80%', '20%']
42
42
 
43
- @test_ds.to_xml.should be_equivalent_to('
43
+ expect(@test_ds.to_xml).to be_equivalent_to('
44
44
  <fields>
45
45
  <coverage>80%</coverage>
46
46
  <coverage>20%</coverage>
@@ -51,11 +51,11 @@ describe ActiveFedora::SimpleDatastream do
51
51
  end
52
52
  end
53
53
 
54
- describe "#to_solr" do
55
- it "should have title" do
54
+ describe '#to_solr' do
55
+ it 'should have title' do
56
56
  solr = @test_ds.to_solr
57
- solr[ActiveFedora::SolrService.solr_name('publisher', type: :string)].should == "publisher1"
58
- solr[ActiveFedora::SolrService.solr_name('creation_date', type: :date)].should == "2012-01-15"
57
+ expect(solr[ActiveFedora::SolrService.solr_name('publisher', type: :string)]).to eq('publisher1')
58
+ expect(solr[ActiveFedora::SolrService.solr_name('creation_date', type: :date)]).to eq('2012-01-15')
59
59
  end
60
60
  end
61
61
 
@@ -4,7 +4,7 @@ require 'spec_helper'
4
4
  #include ActiveFedora
5
5
 
6
6
  describe ActiveFedora do
7
-
7
+
8
8
  before(:all) do
9
9
  module SolrSpecModel
10
10
  class Basic < ActiveFedora::Base
@@ -13,56 +13,55 @@ describe ActiveFedora do
13
13
  end
14
14
  end
15
15
  end
16
-
16
+
17
17
  before(:each) do
18
18
  @test_object = ActiveFedora::Base.new
19
19
  end
20
-
21
-
22
- describe "SOLR_DOCUMENT_ID" do
20
+
21
+
22
+ describe 'SOLR_DOCUMENT_ID' do
23
23
  before(:all) do
24
- SOLR_DOCUMENT_ID = "MY_SAMPLE_ID"
24
+ SOLR_DOCUMENT_ID = 'MY_SAMPLE_ID'
25
25
  end
26
26
  after(:all) do
27
- SOLR_DOCUMENT_ID = "id"
27
+ SOLR_DOCUMENT_ID = 'id'
28
28
  end
29
- it "should be used by ActiveFedora::Base.to_solr" do
29
+ it 'should be used by ActiveFedora::Base.to_solr' do
30
30
  @test_object.stub(pid: 'changeme:123')
31
- SOLR_DOCUMENT_ID = "MY_SAMPLE_ID"
32
- @test_object.to_solr[SOLR_DOCUMENT_ID.to_sym].should == 'changeme:123'
33
- @test_object.to_solr[:id].should be_nil
31
+ SOLR_DOCUMENT_ID = 'MY_SAMPLE_ID'
32
+ expect(@test_object.to_solr[SOLR_DOCUMENT_ID.to_sym]).to eq('changeme:123')
33
+ expect(@test_object.to_solr[:id]).to be_nil
34
34
  end
35
35
 
36
- it "should be used by ActiveFedora::Base#find_with_conditions" do
37
- mock_response = double("SolrResponse")
38
- ActiveFedora::SolrService.should_receive(:query).with("_query_:\"{!raw f=#{ActiveFedora::SolrService.solr_name("has_model", :symbol)}}info:fedora/afmodel:SolrSpecModel_Basic\" AND " + SOLR_DOCUMENT_ID + ':"changeme\\:30"', {:sort => ["#{ActiveFedora::SolrService.solr_name("system_create", :stored_sortable, type: :date)} asc"]}).and_return(mock_response)
39
-
40
- SolrSpecModel::Basic.find_with_conditions(:id=>"changeme:30").should equal(mock_response)
36
+ it 'should be used by ActiveFedora::Base#find_with_conditions' do
37
+ mock_response = double('SolrResponse')
38
+ expect(ActiveFedora::SolrService).to receive(:query).with("_query_:\"{!raw f=#{ActiveFedora::SolrService.solr_name("has_model", :symbol)}}info:fedora/afmodel:SolrSpecModel_Basic\" AND " + SOLR_DOCUMENT_ID + ':"changeme\\:30"', {:sort => ["#{ActiveFedora::SolrService.solr_name("system_create", :stored_sortable, type: :date)} asc"]}).and_return(mock_response)
39
+
40
+ expect(SolrSpecModel::Basic.find_with_conditions(:id => 'changeme:30')).to equal(mock_response)
41
41
  end
42
42
  end
43
-
44
- describe "ENABLE_SOLR_UPDATES" do
45
-
43
+
44
+ describe 'ENABLE_SOLR_UPDATES' do
45
+
46
46
  before(:all) do
47
47
  ENABLE_SOLR_UPDATES = false
48
48
  end
49
49
  after(:all) do
50
50
  ENABLE_SOLR_UPDATES = true
51
51
  end
52
-
53
- it "should prevent Base.save from calling update_index if false" do
52
+
53
+ it 'should prevent Base.save from calling update_index if false' do
54
54
  dirty_ds = ActiveFedora::SimpleDatastream.new(@test_object.inner_object, 'ds1')
55
55
  @test_object.datastreams['ds1'] = dirty_ds
56
- @test_object.stub(:datastreams).and_return({:ds1 => dirty_ds})
57
- @test_object.should_receive(:update_index).never
58
- @test_object.should_receive(:refresh)
56
+ allow(@test_object).to receive(:datastreams).and_return({:ds1 => dirty_ds})
57
+ expect(@test_object).to receive(:update_index).never
58
+ expect(@test_object).to receive(:refresh)
59
59
  @test_object.save
60
60
  end
61
- it "should prevent Base.delete from deleting the corresponding Solr document if false" do
62
- ActiveFedora::SolrService.instance.conn.should_receive(:delete).with(@test_object.pid).never
63
- @test_object.inner_object.should_receive(:delete)
61
+ it 'should prevent Base.delete from deleting the corresponding Solr document if false' do
62
+ expect(ActiveFedora::SolrService.instance.conn).to receive(:delete).with(@test_object.pid).never
63
+ expect(@test_object.inner_object).to receive(:delete)
64
64
  @test_object.delete
65
65
  end
66
66
  end
67
67
  end
68
-
@@ -2,25 +2,25 @@ require 'spec_helper'
2
2
 
3
3
  describe ActiveFedora::SolrDigitalObject do
4
4
 
5
- describe "repository" do
6
- subject { ActiveFedora::SolrDigitalObject.new({},{'datastreams'=>{}}) }
7
- describe "when not finished" do
8
- it "should not respond_to? :repository" do
9
- subject.should_not respond_to :repository
5
+ describe 'repository' do
6
+ subject { ActiveFedora::SolrDigitalObject.new({}, {'datastreams' => {}}) }
7
+ describe 'when not finished' do
8
+ it 'should not respond_to? :repository' do
9
+ expect(subject).not_to respond_to :repository
10
10
  end
11
11
  end
12
- describe "when finished" do
12
+ describe 'when finished' do
13
13
  before do
14
14
  subject.freeze
15
15
  end
16
- it "should respond_to? :repository" do
17
- subject.should respond_to :repository
16
+ it 'should respond_to? :repository' do
17
+ expect(subject).to respond_to :repository
18
18
  end
19
19
  end
20
20
  end
21
21
 
22
- describe "initializing" do
23
- describe "without a datastream in the ds spec and an xml mime type in the solr doc" do
22
+ describe 'initializing' do
23
+ describe 'without a datastream in the ds spec and an xml mime type in the solr doc' do
24
24
  before do
25
25
  class WithoutMetadataDs < ActiveFedora::Base
26
26
  ## No datastreams are defined in this class
@@ -29,22 +29,22 @@ describe ActiveFedora::SolrDigitalObject do
29
29
  after do
30
30
  Object.send(:remove_const, :WithoutMetadataDs)
31
31
  end
32
- subject { ActiveFedora::SolrDigitalObject.new({}, {'datastreams'=>{'properties'=>{'dsMIME'=>'text/xml'}}},WithoutMetadataDs) }
33
- it "should create an xml datastream" do
34
- subject.datastreams['properties'].should be_kind_of ActiveFedora::OmDatastream
32
+ subject { ActiveFedora::SolrDigitalObject.new({}, {'datastreams' => {'properties' => {'dsMIME' => 'text/xml'}}}, WithoutMetadataDs) }
33
+ it 'should create an xml datastream' do
34
+ expect(subject.datastreams['properties']).to be_kind_of ActiveFedora::OmDatastream
35
35
  end
36
36
  end
37
-
37
+
38
38
  describe "with a ds spec that's not part of the solrized object" do
39
39
  before do
40
40
  class MissingMetadataDs < ActiveFedora::Base
41
- has_metadata :name => "foo", :type => ActiveFedora::OmDatastream, :label => 'Foo Data'
41
+ has_metadata :name => 'foo', :type => ActiveFedora::OmDatastream, :label => 'Foo Data'
42
42
  end
43
43
  after do
44
44
  Object.send(:remove_const, MissingMetadataDs)
45
45
  end
46
- subject { ActiveFedora::SolrDigitalObject.new({}, {'datastreams'=>{'properties'=>{'dsMIME'=>'text/xml'}}},MissingMetadataDs) }
47
- it "should have a foo datastream" do
46
+ subject { ActiveFedora::SolrDigitalObject.new({}, {'datastreams' => {'properties' => {'dsMIME' => 'text/xml'}}}, MissingMetadataDs) }
47
+ it 'should have a foo datastream' do
48
48
  subject.datastreams['foo'].label.should == 'Foo Data'
49
49
  end
50
50
  end
@@ -52,10 +52,10 @@ describe ActiveFedora::SolrDigitalObject do
52
52
  end
53
53
 
54
54
 
55
- describe "new_record?" do
56
- subject { ActiveFedora::SolrDigitalObject.new({},{'datastreams'=>{}}) }
57
- it "should respond to :new_record? and return false" do
58
- subject.new_record?.should be_false
55
+ describe 'new_record?' do
56
+ subject { ActiveFedora::SolrDigitalObject.new({}, {'datastreams' => {}}) }
57
+ it 'should respond to :new_record? and return false' do
58
+ expect(subject.new_record?).to be_falsey
59
59
  end
60
60
  end
61
61
 
@@ -2,39 +2,39 @@ require 'spec_helper'
2
2
 
3
3
  describe ActiveFedora::SolrService do
4
4
  before do
5
- Thread.current[:solr_service]=nil
5
+ Thread.current[:solr_service] = nil
6
6
  end
7
-
7
+
8
8
  after(:all) do
9
9
  ActiveFedora::SolrService.register(ActiveFedora.solr_config[:url])
10
10
  end
11
-
12
- it "should take a narg constructor and configure for localhost" do
13
- RSolr.should_receive(:connect).with(:read_timeout => 120, :open_timeout => 120, :url => 'http://localhost:8080/solr')
11
+
12
+ it 'should take a narg constructor and configure for localhost' do
13
+ expect(RSolr).to receive(:connect).with(:read_timeout => 120, :open_timeout => 120, :url => 'http://localhost:8080/solr')
14
14
  ActiveFedora::SolrService.register
15
15
  end
16
- it "should accept host arg into constructor" do
17
- RSolr.should_receive(:connect).with(:read_timeout => 120, :open_timeout => 120, :url => 'http://fubar')
16
+ it 'should accept host arg into constructor' do
17
+ expect(RSolr).to receive(:connect).with(:read_timeout => 120, :open_timeout => 120, :url => 'http://fubar')
18
18
  ActiveFedora::SolrService.register('http://fubar')
19
19
  end
20
- it "should clobber options" do
21
- RSolr.should_receive(:connect).with(:read_timeout => 120, :open_timeout => 120, :url => 'http://localhost:8080/solr', :autocommit=>:off, :foo=>:bar)
22
- ActiveFedora::SolrService.register(nil, {:autocommit=>:off, :foo=>:bar})
20
+ it 'should clobber options' do
21
+ expect(RSolr).to receive(:connect).with(:read_timeout => 120, :open_timeout => 120, :url => 'http://localhost:8080/solr', :autocommit => :off, :foo => :bar)
22
+ ActiveFedora::SolrService.register(nil, {:autocommit => :off, :foo => :bar})
23
23
  end
24
24
 
25
- it "should set the threadlocal solr service" do
26
- RSolr.should_receive(:connect).with(:read_timeout => 120, :open_timeout => 120, :url => 'http://localhost:8080/solr', :autocommit=>:off, :foo=>:bar)
27
- ss = ActiveFedora::SolrService.register(nil, {:autocommit=>:off, :foo=>:bar})
28
- Thread.current[:solr_service].should == ss
29
- ActiveFedora::SolrService.instance.should == ss
25
+ it 'should set the threadlocal solr service' do
26
+ expect(RSolr).to receive(:connect).with(:read_timeout => 120, :open_timeout => 120, :url => 'http://localhost:8080/solr', :autocommit => :off, :foo => :bar)
27
+ ss = ActiveFedora::SolrService.register(nil, {:autocommit => :off, :foo => :bar})
28
+ expect(Thread.current[:solr_service]).to eq(ss)
29
+ expect(ActiveFedora::SolrService.instance).to eq(ss)
30
30
  end
31
- it "should try to initialize if the service not initialized, and fail if it does not succeed" do
32
- Thread.current[:solr_service].should be_nil
33
- ActiveFedora::SolrService.should_receive(:register)
34
- proc{ActiveFedora::SolrService.instance}.should raise_error(ActiveFedora::SolrNotInitialized)
31
+ it 'should try to initialize if the service not initialized, and fail if it does not succeed' do
32
+ expect(Thread.current[:solr_service]).to be_nil
33
+ expect(ActiveFedora::SolrService).to receive(:register)
34
+ expect{ActiveFedora::SolrService.instance}.to raise_error(ActiveFedora::SolrNotInitialized)
35
35
  end
36
36
 
37
- describe "reify solr results" do
37
+ describe 'reify solr results' do
38
38
  before(:all) do
39
39
  class AudioRecord
40
40
  attr_accessor :pid
@@ -45,99 +45,99 @@ describe ActiveFedora::SolrService do
45
45
  def self.connection_for_pid(pid)
46
46
  end
47
47
  end
48
- @sample_solr_hits = [{"id"=>"my:_PID1_", ActiveFedora::SolrService.solr_name("has_model", :symbol)=>["info:fedora/afmodel:AudioRecord"]},
49
- {"id"=>"my:_PID2_", ActiveFedora::SolrService.solr_name("has_model", :symbol)=>["info:fedora/afmodel:AudioRecord"]},
50
- {"id"=>"my:_PID3_", ActiveFedora::SolrService.solr_name("has_model", :symbol)=>["info:fedora/afmodel:AudioRecord"]}]
48
+ @sample_solr_hits = [{'id' => 'my:_PID1_', ActiveFedora::SolrService.solr_name('has_model', :symbol) => ['info:fedora/afmodel:AudioRecord']},
49
+ {'id' => 'my:_PID2_', ActiveFedora::SolrService.solr_name('has_model', :symbol) => ['info:fedora/afmodel:AudioRecord']},
50
+ {'id' => 'my:_PID3_', ActiveFedora::SolrService.solr_name('has_model', :symbol) => ['info:fedora/afmodel:AudioRecord']}]
51
51
  end
52
- describe ".reify_solr_results" do
53
- it "should use AudioRecord.find to instantiate objects" do
54
- AudioRecord.should_receive(:find).with("my:_PID1_", cast: true)
55
- AudioRecord.should_receive(:find).with("my:_PID2_", cast: true)
56
- AudioRecord.should_receive(:find).with("my:_PID3_", cast: true)
52
+ describe '.reify_solr_results' do
53
+ it 'should use AudioRecord.find to instantiate objects' do
54
+ expect(AudioRecord).to receive(:find).with('my:_PID1_', cast: true)
55
+ expect(AudioRecord).to receive(:find).with('my:_PID2_', cast: true)
56
+ expect(AudioRecord).to receive(:find).with('my:_PID3_', cast: true)
57
57
  ActiveFedora::SolrService.reify_solr_results(@sample_solr_hits)
58
58
  end
59
- it "should use AudioRecord.load_instance_from_solr when called with :load_from_solr option" do
60
- AudioRecord.should_receive(:load_instance_from_solr).with("my:_PID1_")
61
- AudioRecord.should_receive(:load_instance_from_solr).with("my:_PID2_")
62
- AudioRecord.should_receive(:load_instance_from_solr).with("my:_PID3_")
59
+ it 'should use AudioRecord.load_instance_from_solr when called with :load_from_solr option' do
60
+ expect(AudioRecord).to receive(:load_instance_from_solr).with('my:_PID1_')
61
+ expect(AudioRecord).to receive(:load_instance_from_solr).with('my:_PID2_')
62
+ expect(AudioRecord).to receive(:load_instance_from_solr).with('my:_PID3_')
63
63
  ActiveFedora::SolrService.reify_solr_results(@sample_solr_hits, load_from_solr: true)
64
64
  end
65
65
  end
66
- describe ".lazy_reify_solr_results" do
67
- it "should lazily reify solr results" do
68
- AudioRecord.should_receive(:find).with("my:_PID1_", cast: true)
69
- AudioRecord.should_receive(:find).with("my:_PID2_", cast: true)
70
- AudioRecord.should_receive(:find).with("my:_PID3_", cast: true)
66
+ describe '.lazy_reify_solr_results' do
67
+ it 'should lazily reify solr results' do
68
+ expect(AudioRecord).to receive(:find).with('my:_PID1_', cast: true)
69
+ expect(AudioRecord).to receive(:find).with('my:_PID2_', cast: true)
70
+ expect(AudioRecord).to receive(:find).with('my:_PID3_', cast: true)
71
71
  ActiveFedora::SolrService.lazy_reify_solr_results(@sample_solr_hits).each {|r| r}
72
72
  end
73
- it "should use AudioRecord.load_instance_from_solr when called with :load_from_solr option" do
74
- AudioRecord.should_receive(:load_instance_from_solr).with("my:_PID1_")
75
- AudioRecord.should_receive(:load_instance_from_solr).with("my:_PID2_")
76
- AudioRecord.should_receive(:load_instance_from_solr).with("my:_PID3_")
73
+ it 'should use AudioRecord.load_instance_from_solr when called with :load_from_solr option' do
74
+ expect(AudioRecord).to receive(:load_instance_from_solr).with('my:_PID1_')
75
+ expect(AudioRecord).to receive(:load_instance_from_solr).with('my:_PID2_')
76
+ expect(AudioRecord).to receive(:load_instance_from_solr).with('my:_PID3_')
77
77
  ActiveFedora::SolrService.lazy_reify_solr_results(@sample_solr_hits, load_from_solr: true).each {|r| r}
78
78
  end
79
79
  end
80
80
  end
81
-
81
+
82
82
  describe '#construct_query_for_pids' do
83
- it "should generate a useable solr query from an array of Fedora pids" do
84
- ActiveFedora::SolrService.construct_query_for_pids(["my:_PID1_", "my:_PID2_", "my:_PID3_"]).should == '_query_:"{!raw f=id}my:_PID1_" OR _query_:"{!raw f=id}my:_PID2_" OR _query_:"{!raw f=id}my:_PID3_"'
83
+ it 'should generate a useable solr query from an array of Fedora pids' do
84
+ expect(ActiveFedora::SolrService.construct_query_for_pids(['my:_PID1_', 'my:_PID2_', 'my:_PID3_'])).to eq('_query_:"{!raw f=id}my:_PID1_" OR _query_:"{!raw f=id}my:_PID2_" OR _query_:"{!raw f=id}my:_PID3_"')
85
85
 
86
86
  end
87
- it "should return a valid solr query even if given an empty array as input" do
88
- ActiveFedora::SolrService.construct_query_for_pids([""]).should == "id:NEVER_USE_THIS_ID"
89
-
87
+ it 'should return a valid solr query even if given an empty array as input' do
88
+ expect(ActiveFedora::SolrService.construct_query_for_pids([''])).to eq('id:NEVER_USE_THIS_ID')
89
+
90
90
  end
91
91
  end
92
-
92
+
93
93
  describe '#escape_uri_for_query' do
94
- it "should escape : with a backslash" do
95
- ActiveFedora::SolrService.escape_uri_for_query("my:pid").should == 'my\:pid'
94
+ it 'should escape : with a backslash' do
95
+ expect(ActiveFedora::SolrService.escape_uri_for_query('my:pid')).to eq('my\:pid')
96
96
  end
97
97
  end
98
98
 
99
- describe ".query" do
100
- it "should call solr" do
101
- mock_conn = double("Connection")
102
- stub_result = double("Result")
103
- mock_conn.should_receive(:get).with('select', :params=>{:q=>'querytext', :qt=>'standard'}).and_return(stub_result)
104
- ActiveFedora::SolrService.stub(:instance =>double("instance", :conn=>mock_conn))
105
- ActiveFedora::SolrService.query('querytext', :raw=>true).should == stub_result
99
+ describe '.query' do
100
+ it 'should call solr' do
101
+ mock_conn = double('Connection')
102
+ stub_result = double('Result')
103
+ expect(mock_conn).to receive(:get).with('select', :params => {:q => 'querytext', :qt => 'standard'}).and_return(stub_result)
104
+ ActiveFedora::SolrService.stub(:instance => double('instance', :conn => mock_conn))
105
+ expect(ActiveFedora::SolrService.query('querytext', :raw => true)).to eq(stub_result)
106
106
  end
107
107
  end
108
- describe ".count" do
109
- it "should return a count of matching records" do
110
- mock_conn = double("Connection")
111
- stub_result = {'response' => {'numFound'=>'7'}}
112
- mock_conn.should_receive(:get).with('select', :params=>{:rows=>0, :q=>'querytext', :qt=>'standard'}).and_return(stub_result)
113
- ActiveFedora::SolrService.stub(:instance =>double("instance", :conn=>mock_conn))
114
- ActiveFedora::SolrService.count('querytext').should == 7
108
+ describe '.count' do
109
+ it 'should return a count of matching records' do
110
+ mock_conn = double('Connection')
111
+ stub_result = {'response' => {'numFound' => '7'}}
112
+ expect(mock_conn).to receive(:get).with('select', :params => {:rows => 0, :q => 'querytext', :qt => 'standard'}).and_return(stub_result)
113
+ ActiveFedora::SolrService.stub(:instance => double('instance', :conn => mock_conn))
114
+ expect(ActiveFedora::SolrService.count('querytext')).to eq(7)
115
115
  end
116
- it "should accept query args" do
117
- mock_conn = double("Connection")
118
- stub_result = {'response' => {'numFound'=>'7'}}
119
- mock_conn.should_receive(:get).with('select', :params=>{:rows=>0, :q=>'querytext', :qt=>'standard', :fq=>'filter'}).and_return(stub_result)
120
- ActiveFedora::SolrService.stub(:instance =>double("instance", :conn=>mock_conn))
121
- ActiveFedora::SolrService.count('querytext', :fq=>'filter', :rows=>10).should == 7
116
+ it 'should accept query args' do
117
+ mock_conn = double('Connection')
118
+ stub_result = {'response' => {'numFound' => '7'}}
119
+ expect(mock_conn).to receive(:get).with('select', :params => {:rows => 0, :q => 'querytext', :qt => 'standard', :fq => 'filter'}).and_return(stub_result)
120
+ ActiveFedora::SolrService.stub(:instance => double('instance', :conn => mock_conn))
121
+ expect(ActiveFedora::SolrService.count('querytext', :fq => 'filter', :rows => 10)).to eq(7)
122
122
  end
123
123
  end
124
- describe ".add" do
125
- it "should call solr" do
126
- mock_conn = double("Connection")
124
+ describe '.add' do
125
+ it 'should call solr' do
126
+ mock_conn = double('Connection')
127
127
  doc = {'id' => '1234'}
128
- mock_conn.should_receive(:add).with(doc)
129
- ActiveFedora::SolrService.stub(:instance =>double("instance", :conn=>mock_conn))
128
+ expect(mock_conn).to receive(:add).with(doc)
129
+ ActiveFedora::SolrService.stub(:instance => double('instance', :conn => mock_conn))
130
130
  ActiveFedora::SolrService.add(doc)
131
131
  end
132
132
  end
133
- describe ".commit" do
134
- it "should call solr" do
135
- mock_conn = double("Connection")
133
+ describe '.commit' do
134
+ it 'should call solr' do
135
+ mock_conn = double('Connection')
136
136
  doc = {'id' => '1234'}
137
- mock_conn.should_receive(:commit)
138
- ActiveFedora::SolrService.stub(:instance =>double("instance", :conn=>mock_conn))
137
+ expect(mock_conn).to receive(:commit)
138
+ ActiveFedora::SolrService.stub(:instance => double('instance', :conn => mock_conn))
139
139
  ActiveFedora::SolrService.commit()
140
140
  end
141
141
  end
142
-
142
+
143
143
  end