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
@@ -2,370 +2,370 @@ require 'spec_helper'
2
2
  require 'config_helper'
3
3
 
4
4
  describe ActiveFedora::FileConfigurator do
5
-
5
+
6
6
  subject {ActiveFedora.configurator }
7
-
7
+
8
8
  after :all do
9
9
  unstub_rails
10
10
  # Restore to default fedora configs
11
11
  restore_spec_configuration
12
12
  end
13
13
 
14
- describe "#initialize" do
15
- it "should trigger configuration reset (to empty defaults)" do
16
- ActiveFedora::FileConfigurator.any_instance.should_receive(:reset!)
14
+ describe '#initialize' do
15
+ it 'should trigger configuration reset (to empty defaults)' do
16
+ expect_any_instance_of(ActiveFedora::FileConfigurator).to receive(:reset!)
17
17
  ActiveFedora::FileConfigurator.new
18
- end
18
+ end
19
19
  end
20
20
 
21
- describe "#config_options" do
21
+ describe '#config_options' do
22
22
  before do
23
23
  subject.reset!
24
24
  end
25
- it "should be an empty hash" do
26
- subject.config_options.should == {}
25
+ it 'should be an empty hash' do
26
+ expect(subject.config_options).to eq({})
27
27
  end
28
28
  end
29
29
 
30
- describe "#fedora_config" do
30
+ describe '#fedora_config' do
31
31
  before do
32
32
  subject.reset!
33
33
  end
34
- it "should trigger configuration to load" do
35
- subject.should_receive(:load_fedora_config)
34
+ it 'should trigger configuration to load' do
35
+ expect(subject).to receive(:load_fedora_config)
36
36
  subject.fedora_config
37
- end
37
+ end
38
38
  end
39
- describe "#solr_config" do
39
+ describe '#solr_config' do
40
40
  before do
41
41
  subject.reset!
42
42
  end
43
- it "should trigger configuration to load" do
44
- subject.should_receive(:load_solr_config)
43
+ it 'should trigger configuration to load' do
44
+ expect(subject).to receive(:load_solr_config)
45
45
  subject.solr_config
46
- end
46
+ end
47
47
  end
48
48
 
49
- describe "#reset!" do
49
+ describe '#reset!' do
50
50
  before { subject.reset! }
51
- it "should clear @fedora_config" do
52
- subject.instance_variable_get(:@fedora_config).should == {}
51
+ it 'should clear @fedora_config' do
52
+ expect(subject.instance_variable_get(:@fedora_config)).to eq({})
53
53
  end
54
- it "should clear @solr_config" do
55
- subject.instance_variable_get(:@solr_config).should == {}
54
+ it 'should clear @solr_config' do
55
+ expect(subject.instance_variable_get(:@solr_config)).to eq({})
56
56
  end
57
- it "should clear @config_options" do
58
- subject.instance_variable_get(:@config_options).should == {}
57
+ it 'should clear @config_options' do
58
+ expect(subject.instance_variable_get(:@config_options)).to eq({})
59
59
  end
60
60
  end
61
61
 
62
- describe "initialization methods" do
63
-
64
- describe "get_config_path(:fedora)" do
65
- it "should use the config_options[:config_path] if it exists" do
66
- subject.should_receive(:config_options).and_return({:fedora_config_path => "/path/to/fedora.yml"})
67
- File.should_receive(:file?).with("/path/to/fedora.yml").and_return(true)
68
- subject.get_config_path(:fedora).should eql("/path/to/fedora.yml")
62
+ describe 'initialization methods' do
63
+
64
+ describe 'get_config_path(:fedora)' do
65
+ it 'should use the config_options[:config_path] if it exists' do
66
+ expect(subject).to receive(:config_options).and_return({:fedora_config_path => '/path/to/fedora.yml'})
67
+ expect(File).to receive(:file?).with('/path/to/fedora.yml').and_return(true)
68
+ expect(subject.get_config_path(:fedora)).to eql('/path/to/fedora.yml')
69
69
  end
70
70
 
71
- it "should look in Rails.root/config/fedora.yml if it exists and no fedora_config_path passed in" do
72
- subject.should_receive(:config_options).and_return({})
73
- stub_rails(:root => "/rails/root")
74
- File.should_receive(:file?).with("/rails/root/config/fedora.yml").and_return(true)
75
- subject.get_config_path(:fedora).should eql("/rails/root/config/fedora.yml")
71
+ it 'should look in Rails.root/config/fedora.yml if it exists and no fedora_config_path passed in' do
72
+ expect(subject).to receive(:config_options).and_return({})
73
+ stub_rails(:root => '/rails/root')
74
+ expect(File).to receive(:file?).with('/rails/root/config/fedora.yml').and_return(true)
75
+ expect(subject.get_config_path(:fedora)).to eql('/rails/root/config/fedora.yml')
76
76
  unstub_rails
77
77
  end
78
78
 
79
- it "should look in ./config/fedora.yml if neither rails.root nor :fedora_config_path are set" do
80
- subject.should_receive(:config_options).and_return({})
81
- Dir.stub(:getwd => "/current/working/directory")
82
- File.should_receive(:file?).with("/current/working/directory/config/fedora.yml").and_return(true)
83
- subject.get_config_path(:fedora).should eql("/current/working/directory/config/fedora.yml")
79
+ it 'should look in ./config/fedora.yml if neither rails.root nor :fedora_config_path are set' do
80
+ expect(subject).to receive(:config_options).and_return({})
81
+ Dir.stub(:getwd => '/current/working/directory')
82
+ expect(File).to receive(:file?).with('/current/working/directory/config/fedora.yml').and_return(true)
83
+ expect(subject.get_config_path(:fedora)).to eql('/current/working/directory/config/fedora.yml')
84
84
  end
85
85
 
86
- it "should return default fedora.yml that ships with active-fedora if none of the above" do
87
- subject.should_receive(:config_options).and_return({})
88
- Dir.should_receive(:getwd).and_return("/current/working/directory")
89
- File.should_receive(:file?).with("/current/working/directory/config/fedora.yml").and_return(false)
90
- File.should_receive(:file?).with(File.expand_path(File.join(File.dirname("__FILE__"),'config','fedora.yml'))).and_return(true)
91
- logger.should_receive(:warn).with("Using the default fedora.yml that comes with active-fedora. If you want to override this, pass the path to fedora.yml to ActiveFedora - ie. ActiveFedora.init(:fedora_config_path => '/path/to/fedora.yml') - or set Rails.root and put fedora.yml into \#{Rails.root}/config.")
92
- subject.get_config_path(:fedora).should eql(File.expand_path(File.join(File.dirname("__FILE__"),'config','fedora.yml')))
86
+ it 'should return default fedora.yml that ships with active-fedora if none of the above' do
87
+ expect(subject).to receive(:config_options).and_return({})
88
+ expect(Dir).to receive(:getwd).and_return('/current/working/directory')
89
+ expect(File).to receive(:file?).with('/current/working/directory/config/fedora.yml').and_return(false)
90
+ expect(File).to receive(:file?).with(File.expand_path(File.join(File.dirname('__FILE__'), 'config', 'fedora.yml'))).and_return(true)
91
+ expect(logger).to receive(:warn).with("Using the default fedora.yml that comes with active-fedora. If you want to override this, pass the path to fedora.yml to ActiveFedora - ie. ActiveFedora.init(:fedora_config_path => '/path/to/fedora.yml') - or set Rails.root and put fedora.yml into \#{Rails.root}/config.")
92
+ expect(subject.get_config_path(:fedora)).to eql(File.expand_path(File.join(File.dirname('__FILE__'), 'config', 'fedora.yml')))
93
93
  end
94
94
  end
95
95
 
96
- describe "get_config_path(:predicate_mappings)" do
97
- it "should use the config_options[:config_path] if it exists" do
98
- subject.should_receive(:config_options).and_return({:predicate_mappings_config_path => "/path/to/predicate_mappings.yml"})
99
- File.should_receive(:file?).with("/path/to/predicate_mappings.yml").and_return(true)
100
- subject.get_config_path(:predicate_mappings).should eql("/path/to/predicate_mappings.yml")
96
+ describe 'get_config_path(:predicate_mappings)' do
97
+ it 'should use the config_options[:config_path] if it exists' do
98
+ expect(subject).to receive(:config_options).and_return({:predicate_mappings_config_path => '/path/to/predicate_mappings.yml'})
99
+ expect(File).to receive(:file?).with('/path/to/predicate_mappings.yml').and_return(true)
100
+ expect(subject.get_config_path(:predicate_mappings)).to eql('/path/to/predicate_mappings.yml')
101
101
  end
102
102
 
103
- it "should look in Rails.root/config/predicate_mappings.yml if it exists and no predicate_mappings_config_path passed in" do
104
- subject.should_receive(:config_options).and_return({})
105
- stub_rails(:root => "/rails/root")
106
- File.should_receive(:file?).with("/rails/root/config/predicate_mappings.yml").and_return(true)
107
- subject.get_config_path(:predicate_mappings).should eql("/rails/root/config/predicate_mappings.yml")
103
+ it 'should look in Rails.root/config/predicate_mappings.yml if it exists and no predicate_mappings_config_path passed in' do
104
+ expect(subject).to receive(:config_options).and_return({})
105
+ stub_rails(:root => '/rails/root')
106
+ expect(File).to receive(:file?).with('/rails/root/config/predicate_mappings.yml').and_return(true)
107
+ expect(subject.get_config_path(:predicate_mappings)).to eql('/rails/root/config/predicate_mappings.yml')
108
108
  unstub_rails
109
109
  end
110
110
 
111
- it "should look in ./config/predicate_mappings.yml if neither rails.root nor :predicate_mappings_config_path are set" do
112
- subject.should_receive(:config_options).and_return({})
113
- Dir.stub(:getwd => "/current/working/directory")
114
- File.should_receive(:file?).with("/current/working/directory/config/predicate_mappings.yml").and_return(true)
115
- subject.get_config_path(:predicate_mappings).should eql("/current/working/directory/config/predicate_mappings.yml")
111
+ it 'should look in ./config/predicate_mappings.yml if neither rails.root nor :predicate_mappings_config_path are set' do
112
+ expect(subject).to receive(:config_options).and_return({})
113
+ Dir.stub(:getwd => '/current/working/directory')
114
+ expect(File).to receive(:file?).with('/current/working/directory/config/predicate_mappings.yml').and_return(true)
115
+ expect(subject.get_config_path(:predicate_mappings)).to eql('/current/working/directory/config/predicate_mappings.yml')
116
116
  end
117
117
 
118
- it "should return default predicate_mappings.yml that ships with active-fedora if none of the above" do
119
- subject.should_receive(:config_options).and_return({})
120
- Dir.should_receive(:getwd).and_return("/current/working/directory")
121
- File.should_receive(:file?).with("/current/working/directory/config/predicate_mappings.yml").and_return(false)
122
- File.should_receive(:file?).with(File.expand_path(File.join(File.dirname("__FILE__"),'config','predicate_mappings.yml'))).and_return(true)
123
- logger.should_receive(:warn).with("Using the default predicate_mappings.yml that comes with active-fedora. If you want to override this, pass the path to predicate_mappings.yml to ActiveFedora - ie. ActiveFedora.init(:predicate_mappings_config_path => '/path/to/predicate_mappings.yml') - or set Rails.root and put predicate_mappings.yml into \#{Rails.root}/config.")
124
- subject.get_config_path(:predicate_mappings).should eql(File.expand_path(File.join(File.dirname("__FILE__"),'config','predicate_mappings.yml')))
118
+ it 'should return default predicate_mappings.yml that ships with active-fedora if none of the above' do
119
+ expect(subject).to receive(:config_options).and_return({})
120
+ expect(Dir).to receive(:getwd).and_return('/current/working/directory')
121
+ expect(File).to receive(:file?).with('/current/working/directory/config/predicate_mappings.yml').and_return(false)
122
+ expect(File).to receive(:file?).with(File.expand_path(File.join(File.dirname('__FILE__'), 'config', 'predicate_mappings.yml'))).and_return(true)
123
+ expect(logger).to receive(:warn).with("Using the default predicate_mappings.yml that comes with active-fedora. If you want to override this, pass the path to predicate_mappings.yml to ActiveFedora - ie. ActiveFedora.init(:predicate_mappings_config_path => '/path/to/predicate_mappings.yml') - or set Rails.root and put predicate_mappings.yml into \#{Rails.root}/config.")
124
+ expect(subject.get_config_path(:predicate_mappings)).to eql(File.expand_path(File.join(File.dirname('__FILE__'), 'config', 'predicate_mappings.yml')))
125
125
  end
126
126
  end
127
127
 
128
- describe "get_config_path(:solr)" do
129
- it "should return the solr_config_path if set in config_options hash" do
130
- subject.stub(:config_options => {:solr_config_path => "/path/to/solr.yml"})
131
- File.should_receive(:file?).with("/path/to/solr.yml").and_return(true)
132
- subject.get_config_path(:solr).should eql("/path/to/solr.yml")
128
+ describe 'get_config_path(:solr)' do
129
+ it 'should return the solr_config_path if set in config_options hash' do
130
+ subject.stub(:config_options => {:solr_config_path => '/path/to/solr.yml'})
131
+ expect(File).to receive(:file?).with('/path/to/solr.yml').and_return(true)
132
+ expect(subject.get_config_path(:solr)).to eql('/path/to/solr.yml')
133
133
  end
134
-
135
- it "should return the solr.yml file in the same directory as the fedora.yml if it exists" do
136
- subject.should_receive(:path).and_return("/path/to/fedora/config/fedora.yml")
137
- File.should_receive(:file?).with("/path/to/fedora/config/solr.yml").and_return(true)
138
- subject.get_config_path(:solr).should eql("/path/to/fedora/config/solr.yml")
134
+
135
+ it 'should return the solr.yml file in the same directory as the fedora.yml if it exists' do
136
+ expect(subject).to receive(:path).and_return('/path/to/fedora/config/fedora.yml')
137
+ expect(File).to receive(:file?).with('/path/to/fedora/config/solr.yml').and_return(true)
138
+ expect(subject.get_config_path(:solr)).to eql('/path/to/fedora/config/solr.yml')
139
139
  end
140
-
141
- context "no solr.yml in same directory as fedora.yml and fedora.yml does not contain solr url" do
140
+
141
+ context 'no solr.yml in same directory as fedora.yml and fedora.yml does not contain solr url' do
142
142
 
143
143
  before :each do
144
144
  subject.stub(:config_options => {})
145
- subject.should_receive(:path).and_return("/path/to/fedora/config/fedora.yml")
146
- File.should_receive(:file?).with("/path/to/fedora/config/solr.yml").and_return(false)
145
+ expect(subject).to receive(:path).and_return('/path/to/fedora/config/fedora.yml')
146
+ expect(File).to receive(:file?).with('/path/to/fedora/config/solr.yml').and_return(false)
147
147
  end
148
148
  after :each do
149
149
  unstub_rails
150
150
  end
151
151
 
152
- it "should not raise an error if there is not a solr.yml in the same directory as the fedora.yml and the fedora.yml has a solr url defined and look in rails.root" do
153
- stub_rails(:root=>"/rails/root")
154
- File.should_receive(:file?).with("/rails/root/config/solr.yml").and_return(true)
155
- subject.get_config_path(:solr).should eql("/rails/root/config/solr.yml")
152
+ it 'should not raise an error if there is not a solr.yml in the same directory as the fedora.yml and the fedora.yml has a solr url defined and look in rails.root' do
153
+ stub_rails(:root => '/rails/root')
154
+ expect(File).to receive(:file?).with('/rails/root/config/solr.yml').and_return(true)
155
+ expect(subject.get_config_path(:solr)).to eql('/rails/root/config/solr.yml')
156
156
  end
157
157
 
158
- it "should look in ./config/solr.yml if no rails root" do
159
- Dir.stub(:getwd => "/current/working/directory")
160
- File.should_receive(:file?).with("/current/working/directory/config/solr.yml").and_return(true)
161
- subject.get_config_path(:solr).should eql("/current/working/directory/config/solr.yml")
158
+ it 'should look in ./config/solr.yml if no rails root' do
159
+ Dir.stub(:getwd => '/current/working/directory')
160
+ expect(File).to receive(:file?).with('/current/working/directory/config/solr.yml').and_return(true)
161
+ expect(subject.get_config_path(:solr)).to eql('/current/working/directory/config/solr.yml')
162
162
  end
163
163
 
164
- it "should return the default solr.yml file that ships with active-fedora if no other option is set" do
165
- Dir.stub(:getwd => "/current/working/directory")
166
- File.should_receive(:file?).with("/current/working/directory/config/solr.yml").and_return(false)
167
- File.should_receive(:file?).with(File.expand_path(File.join(File.dirname("__FILE__"),'config','solr.yml'))).and_return(true)
168
- logger.should_receive(:warn).with("Using the default solr.yml that comes with active-fedora. If you want to override this, pass the path to solr.yml to ActiveFedora - ie. ActiveFedora.init(:solr_config_path => '/path/to/solr.yml') - or set Rails.root and put solr.yml into \#{Rails.root}/config.")
169
- subject.get_config_path(:solr).should eql(File.expand_path(File.join(File.dirname("__FILE__"),'config','solr.yml')))
164
+ it 'should return the default solr.yml file that ships with active-fedora if no other option is set' do
165
+ Dir.stub(:getwd => '/current/working/directory')
166
+ expect(File).to receive(:file?).with('/current/working/directory/config/solr.yml').and_return(false)
167
+ expect(File).to receive(:file?).with(File.expand_path(File.join(File.dirname('__FILE__'), 'config', 'solr.yml'))).and_return(true)
168
+ expect(logger).to receive(:warn).with("Using the default solr.yml that comes with active-fedora. If you want to override this, pass the path to solr.yml to ActiveFedora - ie. ActiveFedora.init(:solr_config_path => '/path/to/solr.yml') - or set Rails.root and put solr.yml into \#{Rails.root}/config.")
169
+ expect(subject.get_config_path(:solr)).to eql(File.expand_path(File.join(File.dirname('__FILE__'), 'config', 'solr.yml')))
170
170
  end
171
171
  end
172
172
 
173
173
  end
174
174
 
175
- describe "load_fedora_config" do
175
+ describe 'load_fedora_config' do
176
176
  before(:each) do
177
177
  subject.reset!
178
178
  end
179
- it "should load the file specified in fedora_config_path" do
180
- subject.stub(:load_solrizer_config)
181
- subject.should_receive(:get_config_path).with(:fedora).and_return("/path/to/fedora.yml")
182
- subject.should_receive(:load_solr_config)
183
- IO.should_receive(:read).with("/path/to/fedora.yml").and_return("development:\n url: http://devfedora:8983\ntest:\n url: http://myfedora:8080")
184
- subject.load_fedora_config.should == {:url=>"http://myfedora:8080"}
185
- subject.fedora_config.should == {:url=>"http://myfedora:8080"}
179
+ it 'should load the file specified in fedora_config_path' do
180
+ allow(subject).to receive(:load_solrizer_config)
181
+ expect(subject).to receive(:get_config_path).with(:fedora).and_return('/path/to/fedora.yml')
182
+ expect(subject).to receive(:load_solr_config)
183
+ expect(IO).to receive(:read).with('/path/to/fedora.yml').and_return("development:\n url: http://devfedora:8983\ntest:\n url: http://myfedora:8080")
184
+ expect(subject.load_fedora_config).to eq({:url => 'http://myfedora:8080'})
185
+ expect(subject.fedora_config).to eq({:url => 'http://myfedora:8080'})
186
186
  end
187
187
 
188
- it "should allow sharding" do
189
- subject.stub(:load_solrizer_config)
190
- subject.should_receive(:get_config_path).with(:fedora).and_return("/path/to/fedora.yml")
191
- subject.should_receive(:load_solr_config)
192
- IO.should_receive(:read).with("/path/to/fedora.yml").and_return("development:\n url: http://devfedora:8983\ntest:\n- url: http://myfedora:8080\n- url: http://myfedora:8081")
193
- subject.load_fedora_config.should == [{:url=>"http://myfedora:8080"}, {:url=>"http://myfedora:8081"}]
194
- subject.fedora_config.should == [{:url=>"http://myfedora:8080"}, {:url=>"http://myfedora:8081"}]
188
+ it 'should allow sharding' do
189
+ allow(subject).to receive(:load_solrizer_config)
190
+ expect(subject).to receive(:get_config_path).with(:fedora).and_return('/path/to/fedora.yml')
191
+ expect(subject).to receive(:load_solr_config)
192
+ expect(IO).to receive(:read).with('/path/to/fedora.yml').and_return("development:\n url: http://devfedora:8983\ntest:\n- url: http://myfedora:8080\n- url: http://myfedora:8081")
193
+ expect(subject.load_fedora_config).to eq([{:url => 'http://myfedora:8080'}, {:url => 'http://myfedora:8081'}])
194
+ expect(subject.fedora_config).to eq([{:url => 'http://myfedora:8080'}, {:url => 'http://myfedora:8081'}])
195
195
  end
196
196
 
197
- it "should parse the file using ERb" do
198
- subject.stub(:load_solrizer_config)
199
- subject.should_receive(:get_config_path).with(:fedora).and_return("/path/to/fedora.yml")
200
- subject.should_receive(:load_solr_config)
201
- IO.should_receive(:read).with("/path/to/fedora.yml").and_return("development:\n url: http://devfedora:<%= 8983 %>\ntest:\n url: http://myfedora:<%= 8081 %>")
202
- subject.load_fedora_config.should == {:url=>"http://myfedora:8081"}
203
- subject.fedora_config.should == {:url=>"http://myfedora:8081"}
197
+ it 'should parse the file using ERb' do
198
+ allow(subject).to receive(:load_solrizer_config)
199
+ expect(subject).to receive(:get_config_path).with(:fedora).and_return('/path/to/fedora.yml')
200
+ expect(subject).to receive(:load_solr_config)
201
+ expect(IO).to receive(:read).with('/path/to/fedora.yml').and_return("development:\n url: http://devfedora:<%= 8983 %>\ntest:\n url: http://myfedora:<%= 8081 %>")
202
+ expect(subject.load_fedora_config).to eq({:url => 'http://myfedora:8081'})
203
+ expect(subject.fedora_config).to eq({:url => 'http://myfedora:8081'})
204
204
  end
205
205
  end
206
206
 
207
- describe "load_solr_config" do
207
+ describe 'load_solr_config' do
208
208
  before(:each) do
209
209
  subject.reset!
210
210
  end
211
- it "should load the file specified in solr_config_path" do
212
- subject.stub(:load_solrizer_config)
213
- subject.should_receive(:get_config_path).with(:solr).and_return("/path/to/solr.yml")
214
- subject.should_receive(:load_fedora_config)
215
- IO.should_receive(:read).with("/path/to/solr.yml").and_return("development:\n default:\n url: http://devsolr:8983\ntest:\n default:\n url: http://mysolr:8080")
216
- subject.load_solr_config.should == {:url=>"http://mysolr:8080"}
217
- subject.solr_config.should == {:url=>"http://mysolr:8080"}
211
+ it 'should load the file specified in solr_config_path' do
212
+ allow(subject).to receive(:load_solrizer_config)
213
+ expect(subject).to receive(:get_config_path).with(:solr).and_return('/path/to/solr.yml')
214
+ expect(subject).to receive(:load_fedora_config)
215
+ expect(IO).to receive(:read).with('/path/to/solr.yml').and_return("development:\n default:\n url: http://devsolr:8983\ntest:\n default:\n url: http://mysolr:8080")
216
+ expect(subject.load_solr_config).to eq({:url => 'http://mysolr:8080'})
217
+ expect(subject.solr_config).to eq({:url => 'http://mysolr:8080'})
218
218
  end
219
219
 
220
- it "should parse the file using ERb" do
221
- subject.stub(:load_solrizer_config)
222
- subject.should_receive(:get_config_path).with(:solr).and_return("/path/to/solr.yml")
223
- subject.should_receive(:load_fedora_config)
224
- IO.should_receive(:read).with("/path/to/solr.yml").and_return("development:\n default:\n url: http://devsolr:<%= 8983 %>\ntest:\n default:\n url: http://mysolr:<%= 8081 %>")
225
- subject.load_solr_config.should == {:url=>"http://mysolr:8081"}
226
- subject.solr_config.should == {:url=>"http://mysolr:8081"}
220
+ it 'should parse the file using ERb' do
221
+ allow(subject).to receive(:load_solrizer_config)
222
+ expect(subject).to receive(:get_config_path).with(:solr).and_return('/path/to/solr.yml')
223
+ expect(subject).to receive(:load_fedora_config)
224
+ expect(IO).to receive(:read).with('/path/to/solr.yml').and_return("development:\n default:\n url: http://devsolr:<%= 8983 %>\ntest:\n default:\n url: http://mysolr:<%= 8081 %>")
225
+ expect(subject.load_solr_config).to eq({:url => 'http://mysolr:8081'})
226
+ expect(subject.solr_config).to eq({:url => 'http://mysolr:8081'})
227
227
  end
228
228
  end
229
229
 
230
- describe "load_configs" do
231
- describe "when config is not loaded" do
230
+ describe 'load_configs' do
231
+ describe 'when config is not loaded' do
232
232
  before do
233
233
  subject.instance_variable_set :@config_loaded, nil
234
234
  end
235
- it "should load the fedora and solr configs" do
236
- subject.config_loaded?.should be_false
235
+ it 'should load the fedora and solr configs' do
236
+ expect(subject.config_loaded?).to be_falsey
237
237
  subject.load_configs
238
- subject.config_loaded?.should be_true
238
+ expect(subject.config_loaded?).to be_truthy
239
239
  end
240
240
  end
241
- describe "when config is loaded" do
241
+ describe 'when config is loaded' do
242
242
  before do
243
243
  subject.instance_variable_set :@config_loaded, true
244
244
  end
245
- it "should load the fedora and solr configs" do
246
- subject.should_receive(:load_config).never
247
- subject.config_loaded?.should be_true
245
+ it 'should load the fedora and solr configs' do
246
+ expect(subject).to receive(:load_config).never
247
+ expect(subject.config_loaded?).to be_truthy
248
248
  subject.load_configs
249
- subject.config_loaded?.should be_true
249
+ expect(subject.config_loaded?).to be_truthy
250
250
  end
251
251
  end
252
252
  end
253
253
 
254
- describe "check_fedora_path_for_solr" do
255
- it "should find the solr.yml file and return it if it exists" do
256
- subject.should_receive(:path).and_return("/path/to/fedora/fedora.yml")
257
- File.should_receive(:file?).with("/path/to/fedora/solr.yml").and_return(true)
258
- subject.check_fedora_path_for_solr.should == "/path/to/fedora/solr.yml"
254
+ describe 'check_fedora_path_for_solr' do
255
+ it 'should find the solr.yml file and return it if it exists' do
256
+ expect(subject).to receive(:path).and_return('/path/to/fedora/fedora.yml')
257
+ expect(File).to receive(:file?).with('/path/to/fedora/solr.yml').and_return(true)
258
+ expect(subject.check_fedora_path_for_solr).to eq('/path/to/fedora/solr.yml')
259
259
  end
260
- it "should return nil if the solr.yml file is not there" do
261
- subject.should_receive(:path).and_return("/path/to/fedora/fedora.yml")
262
- File.should_receive(:file?).with("/path/to/fedora/solr.yml").and_return(false)
263
- subject.check_fedora_path_for_solr.should be_nil
260
+ it 'should return nil if the solr.yml file is not there' do
261
+ expect(subject).to receive(:path).and_return('/path/to/fedora/fedora.yml')
262
+ expect(File).to receive(:file?).with('/path/to/fedora/solr.yml').and_return(false)
263
+ expect(subject.check_fedora_path_for_solr).to be_nil
264
264
  end
265
265
  end
266
266
  end
267
-
268
- describe "setting the environment and loading configuration" do
269
-
267
+
268
+ describe 'setting the environment and loading configuration' do
269
+
270
270
  before(:all) do
271
271
  @fake_rails_root = File.expand_path(File.dirname(__FILE__) + '/../fixtures/rails_root')
272
272
  end
273
273
 
274
-
274
+
275
275
  after(:all) do
276
- config_file = File.join(File.dirname(__FILE__), "..", "..", "config", "fedora.yml")
277
- environment = "test"
278
- ActiveFedora.init(:environment=>environment, :fedora_config_path=>config_file)
276
+ config_file = File.join(File.dirname(__FILE__), '..', '..', 'config', 'fedora.yml')
277
+ environment = 'test'
278
+ ActiveFedora.init(:environment => environment, :fedora_config_path => config_file)
279
279
  end
280
-
281
- it "can tell its config paths" do
280
+
281
+ it 'can tell its config paths' do
282
282
  subject.init
283
- subject.should respond_to(:solr_config_path)
283
+ expect(subject).to respond_to(:solr_config_path)
284
284
  end
285
- it "loads a config from the current working directory as a second choice" do
286
- subject.stub(:load_solrizer_config)
287
- Dir.stub(:getwd).and_return(@fake_rails_root)
285
+ it 'loads a config from the current working directory as a second choice' do
286
+ allow(subject).to receive(:load_solrizer_config)
287
+ allow(Dir).to receive(:getwd).and_return(@fake_rails_root)
288
288
  subject.init
289
- subject.get_config_path(:fedora).should eql("#{@fake_rails_root}/config/fedora.yml")
290
- subject.solr_config_path.should eql("#{@fake_rails_root}/config/solr.yml")
289
+ expect(subject.get_config_path(:fedora)).to eql("#{@fake_rails_root}/config/fedora.yml")
290
+ expect(subject.solr_config_path).to eql("#{@fake_rails_root}/config/solr.yml")
291
291
  end
292
- it "loads the config that ships with this gem as a last choice" do
293
- Dir.stub(:getwd).and_return("/fake/path")
294
- subject.stub(:load_solrizer_config)
295
- logger.should_receive(:warn).with("Using the default fedora.yml that comes with active-fedora. If you want to override this, pass the path to fedora.yml to ActiveFedora - ie. ActiveFedora.init(:fedora_config_path => '/path/to/fedora.yml') - or set Rails.root and put fedora.yml into \#{Rails.root}/config.").exactly(3).times
292
+ it 'loads the config that ships with this gem as a last choice' do
293
+ allow(Dir).to receive(:getwd).and_return('/fake/path')
294
+ allow(subject).to receive(:load_solrizer_config)
295
+ expect(logger).to receive(:warn).with("Using the default fedora.yml that comes with active-fedora. If you want to override this, pass the path to fedora.yml to ActiveFedora - ie. ActiveFedora.init(:fedora_config_path => '/path/to/fedora.yml') - or set Rails.root and put fedora.yml into \#{Rails.root}/config.").exactly(3).times
296
296
  subject.init
297
- expected_config = File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "config"))
298
- subject.get_config_path(:fedora).should eql(expected_config+'/fedora.yml')
299
- subject.solr_config_path.should eql(expected_config+'/solr.yml')
297
+ expected_config = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'config'))
298
+ expect(subject.get_config_path(:fedora)).to eql(expected_config + '/fedora.yml')
299
+ expect(subject.solr_config_path).to eql(expected_config + '/solr.yml')
300
300
  end
301
- it "raises an error if you pass in a string" do
302
- lambda{ subject.init("#{@fake_rails_root}/config/fake_fedora.yml") }.should raise_exception(ArgumentError)
301
+ it 'raises an error if you pass in a string' do
302
+ expect{ subject.init("#{@fake_rails_root}/config/fake_fedora.yml") }.to raise_exception(ArgumentError)
303
303
  end
304
- it "raises an error if you pass in a non-existant config file" do
305
- lambda{ subject.init(:fedora_config_path=>"really_fake_fedora.yml") }.should raise_exception(ActiveFedora::ConfigurationError)
304
+ it 'raises an error if you pass in a non-existant config file' do
305
+ expect{ subject.init(:fedora_config_path => 'really_fake_fedora.yml') }.to raise_exception(ActiveFedora::ConfigurationError)
306
306
  end
307
-
308
- describe "within Rails" do
309
- before(:all) do
310
- stub_rails(:root=>File.dirname(__FILE__) + '/../fixtures/rails_root')
307
+
308
+ describe 'within Rails' do
309
+ before(:all) do
310
+ stub_rails(:root => File.dirname(__FILE__) + '/../fixtures/rails_root')
311
311
  end
312
312
 
313
313
  after(:all) do
314
314
  unstub_rails
315
315
  end
316
-
317
- it "loads a config from Rails.root as a first choice" do
318
- subject.stub(:load_solrizer_config)
316
+
317
+ it 'loads a config from Rails.root as a first choice' do
318
+ allow(subject).to receive(:load_solrizer_config)
319
319
  subject.init
320
- subject.get_config_path(:fedora).should eql("#{Rails.root}/config/fedora.yml")
321
- subject.solr_config_path.should eql("#{Rails.root}/config/solr.yml")
320
+ expect(subject.get_config_path(:fedora)).to eql("#{Rails.root}/config/fedora.yml")
321
+ expect(subject.solr_config_path).to eql("#{Rails.root}/config/solr.yml")
322
322
  end
323
-
324
- it "can tell what environment it is set to run in" do
325
- stub_rails(:env=>"development")
323
+
324
+ it 'can tell what environment it is set to run in' do
325
+ stub_rails(:env => 'development')
326
326
  subject.init
327
- ActiveFedora.environment.should eql("development")
327
+ expect(ActiveFedora.environment).to eql('development')
328
328
  end
329
-
329
+
330
330
  end
331
331
  end
332
-
332
+
333
333
  ##########################
334
-
335
- describe ".build_predicate_config_path" do
336
- it "should return the path to the default config/predicate_mappings.yml if no valid path is given" do
337
- subject.send(:build_predicate_config_path).should == default_predicate_mapping_file
334
+
335
+ describe '.build_predicate_config_path' do
336
+ it 'should return the path to the default config/predicate_mappings.yml if no valid path is given' do
337
+ expect(subject.send(:build_predicate_config_path)).to eq(default_predicate_mapping_file)
338
338
  end
339
339
  end
340
340
 
341
- describe ".predicate_config" do
341
+ describe '.predicate_config' do
342
342
  before do
343
343
  subject.instance_variable_set :@config_loaded, nil
344
344
  end
345
- it "should return the default mapping if it has not been initialized" do
346
- subject.predicate_config().should == YAMLAdaptor.load(File.read(default_predicate_mapping_file))
345
+ it 'should return the default mapping if it has not been initialized' do
346
+ expect(subject.predicate_config()).to eq(YAMLAdaptor.load(File.read(default_predicate_mapping_file)))
347
347
  end
348
348
  end
349
349
 
350
- describe ".valid_predicate_mapping" do
351
- it "should return true if the predicate mapping has the appropriate keys and value types" do
352
- subject.send(:valid_predicate_mapping?,default_predicate_mapping_file).should be_true
350
+ describe '.valid_predicate_mapping' do
351
+ it 'should return true if the predicate mapping has the appropriate keys and value types' do
352
+ expect(subject.send(:valid_predicate_mapping?, default_predicate_mapping_file)).to be_truthy
353
353
  end
354
- it "should return false if the mapping is missing the :default_namespace" do
355
- mock_yaml({:default_namespace0=>"my_namespace",:predicate_mapping=>{:key0=>"value0", :key1=>"value1"}},"/path/to/predicate_mappings.yml")
356
- subject.send(:valid_predicate_mapping?,"/path/to/predicate_mappings.yml").should be_false
354
+ it 'should return false if the mapping is missing the :default_namespace' do
355
+ mock_yaml({:default_namespace0 => 'my_namespace', :predicate_mapping => {:key0 => 'value0', :key1 => 'value1'}}, '/path/to/predicate_mappings.yml')
356
+ expect(subject.send(:valid_predicate_mapping?, '/path/to/predicate_mappings.yml')).to be_falsey
357
357
  end
358
- it "should return false if the :default_namespace is not a string" do
359
- mock_yaml({:default_namespace=>{:foo=>"bar"}, :predicate_mapping=>{:key0=>"value0", :key1=>"value1"}},"/path/to/predicate_mappings.yml")
360
- subject.send(:valid_predicate_mapping?,"/path/to/predicate_mappings.yml").should be_false
358
+ it 'should return false if the :default_namespace is not a string' do
359
+ mock_yaml({:default_namespace => {:foo => 'bar'}, :predicate_mapping => {:key0 => 'value0', :key1 => 'value1'}}, '/path/to/predicate_mappings.yml')
360
+ expect(subject.send(:valid_predicate_mapping?, '/path/to/predicate_mappings.yml')).to be_falsey
361
361
  end
362
- it "should return false if the :predicate_mappings key is missing" do
363
- mock_yaml({:default_namespace=>"a string"},"/path/to/predicate_mappings.yml")
364
- subject.send(:valid_predicate_mapping?,"/path/to/predicate_mappings.yml").should be_false
362
+ it 'should return false if the :predicate_mappings key is missing' do
363
+ mock_yaml({:default_namespace => 'a string'}, '/path/to/predicate_mappings.yml')
364
+ expect(subject.send(:valid_predicate_mapping?, '/path/to/predicate_mappings.yml')).to be_falsey
365
365
  end
366
- it "should return false if the :predicate_mappings key is not a hash" do
367
- mock_yaml({:default_namespace=>"a string",:predicate_mapping=>"another string"},"/path/to/predicate_mappings.yml")
368
- subject.send(:valid_predicate_mapping?,"/path/to/predicate_mappings.yml").should be_false
366
+ it 'should return false if the :predicate_mappings key is not a hash' do
367
+ mock_yaml({:default_namespace => 'a string', :predicate_mapping => 'another string'}, '/path/to/predicate_mappings.yml')
368
+ expect(subject.send(:valid_predicate_mapping?, '/path/to/predicate_mappings.yml')).to be_falsey
369
369
  end
370
370
 
371
371
  end